{
  "name": "azapi",
  "displayName": "AzAPI",
  "version": "1.12.2",
  "description": "A Pulumi package for creating and managing Azapi resources",
  "keywords": [
    "pulumi",
    "azapi",
    "category/cloud"
  ],
  "homepage": "https://github.com/dirien/pulumi-azapi",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`azapi` Terraform Provider](https://github.com/Azure/terraform-provider-azapi).",
  "repository": "https://github.com/dirien/pulumi-azapi",
  "pluginDownloadURL": "github://api.github.com/dirien/pulumi-azapi",
  "publisher": "dirien",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "ediri"
    },
    "go": {
      "importBasePath": "github.com/dirien/pulumi-azapi/sdk/go/azapi",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true
    },
    "java": {
      "basePackage": "io.dirien",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageName": "@ediri/azapi",
      "packageDescription": "A Pulumi package for creating and managing Azapi resources",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/Azure/terraform-provider-azapi)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-azapi` repo](https://github.com/dirien/pulumi-azapi/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-azapi` repo](https://github.com/Azure/terraform-provider-azapi/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true
    },
    "python": {
      "packageName": "ediri_azapi",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/Azure/terraform-provider-azapi)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-azapi` repo](https://github.com/dirien/pulumi-azapi/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-azapi` repo](https://github.com/Azure/terraform-provider-azapi/issues).",
      "compatibility": "tfbridge20",
      "pyproject": {}
    }
  },
  "config": {
    "variables": {
      "auxiliaryTenantIds": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "clientCertificatePassword": {
        "type": "string",
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
      },
      "clientCertificatePath": {
        "type": "string",
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
      },
      "clientId": {
        "type": "string",
        "description": "The Client ID which should be used.\n"
      },
      "clientSecret": {
        "type": "string",
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
      },
      "customCorrelationRequestId": {
        "type": "string",
        "description": "The value of the x-ms-correlation-request-id header (otherwise an auto-generated UUID will be used).\n"
      },
      "defaultLocation": {
        "type": "string"
      },
      "defaultName": {
        "type": "string"
      },
      "defaultNamingPrefix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "defaultNamingSuffix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "defaultTags": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "disableCorrelationRequestId": {
        "type": "boolean",
        "description": "This will disable the x-ms-correlation-request-id header.\n"
      },
      "disableTerraformPartnerId": {
        "type": "boolean"
      },
      "endpoint": {
        "$ref": "#/types/azapi:config%2Fendpoint:endpoint"
      },
      "environment": {
        "type": "string",
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment and china. Defaults to public.\n"
      },
      "oidcRequestToken": {
        "type": "string",
        "description": "The bearer token for the request to the OIDC provider. For use When authenticating as a Service Principal using OpenID\nConnect.\n"
      },
      "oidcRequestUrl": {
        "type": "string",
        "description": "The URL for the OIDC provider from which to request an ID token. For use When authenticating as a Service Principal\nusing OpenID Connect.\n"
      },
      "oidcToken": {
        "type": "string",
        "description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "oidcTokenFilePath": {
        "type": "string",
        "description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "partnerId": {
        "type": "string",
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
      },
      "skipProviderRegistration": {
        "type": "boolean",
        "description": "Should the Provider skip registering all of the Resource Providers that it supports, if they're not already registered?\n"
      },
      "subscriptionId": {
        "type": "string",
        "description": "The Subscription ID which should be used.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The Tenant ID which should be used.\n"
      },
      "useCli": {
        "type": "boolean",
        "description": "Allow Azure CLI to be used for Authentication.\n"
      },
      "useMsi": {
        "type": "boolean",
        "description": "Allow Managed Service Identity to be used for Authentication.\n"
      },
      "useOidc": {
        "type": "boolean",
        "description": "Allow OpenID Connect to be used for authentication\n"
      }
    },
    "defaults": [
      "environment"
    ]
  },
  "types": {
    "azapi:config/endpoint:endpoint": {
      "properties": {
        "activeDirectoryAuthorityHost": {
          "type": "string",
          "description": "The Active Directory login endpoint which should be used.\n"
        },
        "resourceManagerAudience": {
          "type": "string",
          "description": "The resource ID to obtain AD tokens for.\n"
        },
        "resourceManagerEndpoint": {
          "type": "string",
          "description": "The Resource Manager Endpoint which should be used.\n"
        }
      },
      "type": "object"
    },
    "azapi:index/ProviderEndpoint:ProviderEndpoint": {
      "properties": {
        "activeDirectoryAuthorityHost": {
          "type": "string",
          "description": "The Active Directory login endpoint which should be used.\n"
        },
        "resourceManagerAudience": {
          "type": "string",
          "description": "The resource ID to obtain AD tokens for.\n"
        },
        "resourceManagerEndpoint": {
          "type": "string",
          "description": "The Resource Manager Endpoint which should be used.\n"
        }
      },
      "type": "object"
    },
    "azapi:index/ResourceIdentity:ResourceIdentity": {
      "properties": {
        "identityIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Managed Identity ID's which should be assigned to the azure resource.\n"
        },
        "principalId": {
          "type": "string",
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this azure resource.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this azure resource.\n"
        },
        "type": {
          "type": "string",
          "description": "The Type of Identity which should be used for this azure resource. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned,UserAssigned`.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      }
    },
    "azapi:index/getResourceIdentity:getResourceIdentity": {
      "properties": {
        "identityIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Managed Identity ID's which should be assigned to the azure resource.\n"
        },
        "principalId": {
          "type": "string",
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this azure resource.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this azure resource.\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        }
      },
      "type": "object",
      "required": [
        "identityIds",
        "principalId",
        "tenantId",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the azapi package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "clientCertificatePassword": {
        "type": "string",
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
      },
      "clientCertificatePath": {
        "type": "string",
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
      },
      "clientId": {
        "type": "string",
        "description": "The Client ID which should be used.\n"
      },
      "clientSecret": {
        "type": "string",
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
      },
      "customCorrelationRequestId": {
        "type": "string",
        "description": "The value of the x-ms-correlation-request-id header (otherwise an auto-generated UUID will be used).\n"
      },
      "defaultLocation": {
        "type": "string"
      },
      "defaultName": {
        "type": "string"
      },
      "defaultNamingPrefix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "defaultNamingSuffix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "environment": {
        "type": "string",
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment and china. Defaults to public.\n"
      },
      "oidcRequestToken": {
        "type": "string",
        "description": "The bearer token for the request to the OIDC provider. For use When authenticating as a Service Principal using OpenID\nConnect.\n"
      },
      "oidcRequestUrl": {
        "type": "string",
        "description": "The URL for the OIDC provider from which to request an ID token. For use When authenticating as a Service Principal\nusing OpenID Connect.\n"
      },
      "oidcToken": {
        "type": "string",
        "description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "oidcTokenFilePath": {
        "type": "string",
        "description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "partnerId": {
        "type": "string",
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
      },
      "subscriptionId": {
        "type": "string",
        "description": "The Subscription ID which should be used.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The Tenant ID which should be used.\n"
      }
    },
    "type": "object",
    "required": [
      "environment"
    ],
    "inputProperties": {
      "auxiliaryTenantIds": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "clientCertificatePassword": {
        "type": "string",
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
      },
      "clientCertificatePath": {
        "type": "string",
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
      },
      "clientId": {
        "type": "string",
        "description": "The Client ID which should be used.\n"
      },
      "clientSecret": {
        "type": "string",
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
      },
      "customCorrelationRequestId": {
        "type": "string",
        "description": "The value of the x-ms-correlation-request-id header (otherwise an auto-generated UUID will be used).\n"
      },
      "defaultLocation": {
        "type": "string"
      },
      "defaultName": {
        "type": "string"
      },
      "defaultNamingPrefix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "defaultNamingSuffix": {
        "type": "string",
        "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the naming prefix and suffix in the resource's `name` field instead."
      },
      "defaultTags": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "disableCorrelationRequestId": {
        "type": "boolean",
        "description": "This will disable the x-ms-correlation-request-id header.\n"
      },
      "disableTerraformPartnerId": {
        "type": "boolean"
      },
      "endpoint": {
        "$ref": "#/types/azapi:index%2FProviderEndpoint:ProviderEndpoint"
      },
      "environment": {
        "type": "string",
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment and china. Defaults to public.\n"
      },
      "oidcRequestToken": {
        "type": "string",
        "description": "The bearer token for the request to the OIDC provider. For use When authenticating as a Service Principal using OpenID\nConnect.\n"
      },
      "oidcRequestUrl": {
        "type": "string",
        "description": "The URL for the OIDC provider from which to request an ID token. For use When authenticating as a Service Principal\nusing OpenID Connect.\n"
      },
      "oidcToken": {
        "type": "string",
        "description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "oidcTokenFilePath": {
        "type": "string",
        "description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
      },
      "partnerId": {
        "type": "string",
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
      },
      "skipProviderRegistration": {
        "type": "boolean",
        "description": "Should the Provider skip registering all of the Resource Providers that it supports, if they're not already registered?\n"
      },
      "subscriptionId": {
        "type": "string",
        "description": "The Subscription ID which should be used.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The Tenant ID which should be used.\n"
      },
      "useCli": {
        "type": "boolean",
        "description": "Allow Azure CLI to be used for Authentication.\n"
      },
      "useMsi": {
        "type": "boolean",
        "description": "Allow Managed Service Identity to be used for Authentication.\n"
      },
      "useOidc": {
        "type": "boolean",
        "description": "Allow OpenID Connect to be used for authentication\n"
      }
    },
    "requiredInputs": [
      "environment"
    ]
  },
  "resources": {
    "azapi:index/dataPlaneResource:DataPlaneResource": {
      "description": "This resource can manage some Azure data plane resource.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\ndata \"azurerm_synapse_workspace\" \"example\" {\n  name                = \"example-workspace\"\n  resource_group_name = azurerm_resource_group.example.name\n}\n\nresource \"azapi_data_plane_resource\" \"dataset\" {\n  type      = \"Microsoft.Synapse/workspaces/datasets@2020-12-01\"\n  parent_id = trimprefix(data.azurerm_synapse_workspace.example.connectivity_endpoints.dev, \"https://\")\n  name      = \"example-dataset\"\n  body = jsonencode({\n    properties = {\n      type = \"AzureBlob\",\n      typeProperties = {\n        folderPath = {\n          value = \"@dataset().MyFolderPath\"\n          type  = \"Expression\"\n        }\n        fileName = {\n          value = \"@dataset().MyFileName\"\n          type  = \"Expression\"\n        }\n        format = {\n          type = \"TextFormat\"\n        }\n      }\n      parameters = {\n        MyFolderPath = {\n          type = \"String\"\n        }\n        MyFileName = {\n          type = \"String\"\n        }\n      }\n    }\n  })\n}\n\n```\n\n## Available Resources\n\n| Resource Type | URL | Parent ID Example                                                                           |\n| --- | --- |---------------------------------------------------------------------------------------------|\n| Microsoft.AppConfiguration/configurationStores/keyValues | /kv/{key} | {storeName}.azconfig.io                                                                     |\n| Microsoft.DeviceUpdate/accounts/groups | /deviceupdate/{instanceId}/management/groups/{groupId} | {accountName}.api.adu.microsoft.com/deviceupdate/{instanceName}                             |\n| Microsoft.DeviceUpdate/accounts/groups/deployments | /deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId} | {accountName}.api.adu.microsoft.com/deviceupdate/{instanceName}/management/groups/{groupId} |\n| Microsoft.DeviceUpdate/accounts/v2/deployments | /deviceupdate/{instanceId}/v2/management/deployments/{deploymentId} | {accountName}.api.adu.microsoft.com/deviceupdate/{instanceName}                             |\n| Microsoft.DeviceUpdate/accounts/v2/groups | /deviceupdate/{instanceId}/v2/management/groups/{groupId} | {accountName}.api.adu.microsoft.com/deviceupdate/{instanceName}                             |\n| Microsoft.DigitalTwins/digitalTwinsInstances/digitaltwins | /digitaltwins/{id} | {instanceName}.api.weu.digitaltwins.azure.net                                               |\n| Microsoft.DigitalTwins/digitalTwinsInstances/digitaltwins/relationships | /digitaltwins/{id}/relationships/{relationshipId} | {instanceName}.api.weu.digitaltwins.azure.net/digitaltwins/{digitalTwinId}                  |\n| Microsoft.DigitalTwins/digitalTwinsInstances/eventroutes | /eventroutes/{id} | {instanceName}.api.weu.digitaltwins.azure.net                                               |\n| Microsoft.DigitalTwins/digitalTwinsInstances/jobs/imports | /jobs/imports/{id} | {instanceName}.api.weu.digitaltwins.azure.net                                               |\n| Microsoft.IoTCentral/IoTApps/organizations | /organizations/{organizationId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/IoTApps/scheduledJobs | /scheduledJobs/{scheduledJobId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/IoTApps/users | /users/{userId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/apiTokens | /apiTokens/{tokenId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/continuousDataExports | /continuousDataExports/{exportId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/dashboards | /dashboards/{dashboardId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/dataExport/destinations | /dataExport/destinations/{destinationId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/dataExport/exports | /dataExport/exports/{exportId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/deploymentManifests | /deploymentManifests/{deploymentManifestId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/deviceGroups | /deviceGroups/{deviceGroupId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/deviceTemplates | /deviceTemplates/{deviceTemplateId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/devices | /devices/{deviceId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/devices/attestation | /devices/{deviceId}/attestation | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/devices/relationships | /devices/{deviceId}/relationships/{relationshipId} | {appSubdomain}.azureiotcentral.com/devices/{deviceId}                                       |\n| Microsoft.IoTCentral/iotApps/enrollmentGroups | /enrollmentGroups/{enrollmentGroupId} | {appSubdomain}.azureiotcentral.com                                                          |\n| Microsoft.IoTCentral/iotApps/enrollmentGroups/certificates | /enrollmentGroups/{enrollmentGroupId}/certificates/{entry} | {appSubdomain}.azureiotcentral.com/enrollmentGroups/{enrollmentGroupId}                     |\n| Microsoft.KeyVault/vaults/certificates/contacts | /certificates/contacts | {vaultName}.vault.azure.net                                                                 |\n| Microsoft.KeyVault/vaults/certificates/issuers | /certificates/issuers/{issuer-name} | {vaultName}.vault.azure.net                                                                 |\n| Microsoft.KeyVault/vaults/storage | /storage/{storage-account-name} | {vaultName}.vault.azure.net                                                                 |\n| Microsoft.KeyVault/vaults/storage/sas | /storage/{storage-account-name}/sas/{sas-definition-name} | {vaultName}.vault.azure.net/storage/{storage-account-name}                                  |\n| Microsoft.Purview/accounts/Account/collections | /collections/{collectionName} | {accountName}.purview.azure.com                                                             |\n| Microsoft.Purview/accounts/Account/resourceSetRuleConfigs | /resourceSetRuleConfigs/defaultResourceSetRuleConfig | {accountName}.purview.azure.com                                                             |\n| Microsoft.Purview/accounts/Scanning/azureKeyVaults | /azureKeyVaults/{azureKeyVaultName} | {accountName}.purview.azure.com/scan                                                        |\n| Microsoft.Purview/accounts/Scanning/classificationrules | /classificationrules/{classificationRuleName} | {accountName}.purview.azure.com/scan                                                        |\n| Microsoft.Purview/accounts/Scanning/credentials | /credentials/{credentialName} | {accountName}.purview.azure.com/scan                                                        |\n| Microsoft.Purview/accounts/Scanning/datasources | /datasources/{dataSourceName} | {accountName}.purview.azure.com/scan                                                        |\n| Microsoft.Purview/accounts/Scanning/datasources/scans | /datasources/{dataSourceName}/scans/{scanName} | {accountName}.purview.azure.com/scan/datasources/{dataSourceName}                           |\n| Microsoft.Purview/accounts/Scanning/datasources/scans/triggers | /datasources/{dataSourceName}/scans/{scanName}/triggers/default | {accountName}.purview.azure.com/scan/datasources/{dataSourceName}/scans/{scanName}          |\n| Microsoft.Purview/accounts/Scanning/integrationruntimes | /integrationruntimes/{integrationRuntimeName} | {accountName}.purview.azure.com/scan                                                        |\n| Microsoft.Purview/accounts/Scanning/managedvirtualnetworks/managedprivateendpoints | /managedvirtualnetworks/{managedVirtualNetworkName}/managedprivateendpoints/{managedPrivateEndpointName} | {accountName}.purview.azure.com/scan/managedvirtualnetworks/{managedVirtualNetworkName}     |\n| Microsoft.Purview/accounts/Workflow/workflows | /workflows/{workflowId} | {accountName}.purview.azure.com                                                             |\n| Microsoft.Synapse/workspaces/dataflows | /dataflows/{dataFlowName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/datasets | /datasets/{datasetName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/kqlScripts | /kqlScripts/{kqlScriptName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/libraries | /libraries/{libraryName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/linkconnections | /linkconnections/{linkConnectionName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/linkedservices | /linkedservices/{linkedServiceName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/managedVirtualNetworks/managedPrivateEndpoints | /managedVirtualNetworks/{managedVirtualNetworkName}/managedPrivateEndpoints/{managedPrivateEndpointName} | {workspaceName}.dev.azuresynapse.net/managedVirtualNetworks/{managedVirtualNetworkName}     |\n| Microsoft.Synapse/workspaces/notebooks | /notebooks/{notebookName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/pipelines | /pipelines/{pipelineName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/roleAssignments | /roleAssignments/{roleAssignmentId} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/sparkJobDefinitions | /sparkJobDefinitions/{sparkJobDefinitionName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/sparkconfigurations | /sparkconfigurations/{sparkConfigurationName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/sqlScripts | /sqlScripts/{sqlScriptName} | {workspaceName}.dev.azuresynapse.net                                                        |\n| Microsoft.Synapse/workspaces/triggers | /triggers/{triggerName} | {workspaceName}.dev.azuresynapse.net                                                        |\n",
      "properties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to create and update data plane resource.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n"
        },
        "output": {
          "type": "string",
          "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_data_plane_resource.example.output).properties.loginServer\n}\n"
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created.\n"
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<api-version>` is version of the API used to manage this azure data plane resource.\n\n> **Note** For the available resource types and parent IDs, please refer to the `Available Resources` section below.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "output",
        "parentId",
        "type"
      ],
      "inputProperties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to create and update data plane resource.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
          "willReplaceOnChanges": true
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created.\n",
          "willReplaceOnChanges": true
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<api-version>` is version of the API used to manage this azure data plane resource.\n\n> **Note** For the available resource types and parent IDs, please refer to the `Available Resources` section below.\n"
        }
      },
      "requiredInputs": [
        "parentId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataPlaneResource resources.\n",
        "properties": {
          "body": {
            "type": "string",
            "description": "A JSON object that contains the request body used to create and update data plane resource.\n"
          },
          "ignoreCasing": {
            "type": "boolean",
            "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
          },
          "ignoreMissingProperty": {
            "type": "boolean",
            "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
          },
          "locks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
            "willReplaceOnChanges": true
          },
          "output": {
            "type": "string",
            "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_data_plane_resource.example.output).properties.loginServer\n}\n"
          },
          "parentId": {
            "type": "string",
            "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created.\n",
            "willReplaceOnChanges": true
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `<resource-type>@<api-version>`. `<api-version>` is version of the API used to manage this azure data plane resource.\n\n> **Note** For the available resource types and parent IDs, please refer to the `Available Resources` section below.\n"
          }
        },
        "type": "object"
      }
    },
    "azapi:index/resource:Resource": {
      "description": "This resource can manage any Azure resource manager resource.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\nresource \"azurerm_resource_group\" \"example\" {\n  name     = \"example-rg\"\n  location = \"west europe\"\n}\n\nresource \"azurerm_user_assigned_identity\" \"example\" {\n  name                = \"example\"\n  resource_group_name = azurerm_resource_group.example.name\n  location            = azurerm_resource_group.example.location\n}\n\n// manage a container registry resource\nresource \"azapi_resource\" \"example\" {\n  type      = \"Microsoft.ContainerRegistry/registries@2020-11-01-preview\"\n  name      = \"registry1\"\n  parent_id = azurerm_resource_group.example.id\n\n  location = azurerm_resource_group.example.location\n  identity {\n    type         = \"SystemAssigned, UserAssigned\"\n    identity_ids = [azurerm_user_assigned_identity.example.id]\n  }\n\n  body = jsonencode({\n    sku = {\n      name = \"Standard\"\n    }\n    properties = {\n      adminUserEnabled = true\n    }\n  })\n\n  tags = {\n    \"Key\" = \"Value\"\n  }\n\n  response_export_values = [\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]\n}\n\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\n  value = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n\n// it will output \"disabled\"\noutput \"quarantine_policy\" {\n  value = jsondecode(azapi_resource.example.output).properties.policies.quarantinePolicy.status\n}\n```\n\n## Import\n\nAzure resource can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azapi:index/resource:Resource example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/cluster1\n```\n\nIt also supports specifying API version by using the `resource id` with `api-version` as a query parameter, e.g.\n\n```sh\n$ pulumi import azapi:index/resource:Resource example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/cluster1?api-version=2021-07-01\n```\n\n",
      "properties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to create and update azure resource.\n"
        },
        "identity": {
          "$ref": "#/types/azapi:index%2FResourceIdentity:ResourceIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "ignoreBodyChanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "location": {
          "type": "string",
          "description": "The Azure Region where the azure resource should exist.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n"
        },
        "output": {
          "type": "string",
          "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n"
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n\nFor type `Microsoft.Resources/resourceGroups`, the `parent_id` could be omitted, it defaults to subscription ID specified in provider or the default subscription(You could check the default subscription by azure cli command: `az account show`).\n"
        },
        "removingSpecialChars": {
          "type": "boolean",
          "description": "Whether to remove special characters in resource name. Defaults to `false`.\n",
          "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the `name` field and remove the special characters in the `name` field instead."
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "schemaValidationEnabled": {
          "type": "boolean",
          "description": "Whether enabled the validation on `type` and `body` with embedded schema. Defaults to `true`.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the azure resource.\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        }
      },
      "type": "object",
      "required": [
        "identity",
        "location",
        "name",
        "output",
        "parentId",
        "tags",
        "type"
      ],
      "inputProperties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to create and update azure resource.\n"
        },
        "identity": {
          "$ref": "#/types/azapi:index%2FResourceIdentity:ResourceIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "ignoreBodyChanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "location": {
          "type": "string",
          "description": "The Azure Region where the azure resource should exist.\n",
          "willReplaceOnChanges": true
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
          "willReplaceOnChanges": true
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n\nFor type `Microsoft.Resources/resourceGroups`, the `parent_id` could be omitted, it defaults to subscription ID specified in provider or the default subscription(You could check the default subscription by azure cli command: `az account show`).\n",
          "willReplaceOnChanges": true
        },
        "removingSpecialChars": {
          "type": "boolean",
          "description": "Whether to remove special characters in resource name. Defaults to `false`.\n",
          "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the `name` field and remove the special characters in the `name` field instead."
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "schemaValidationEnabled": {
          "type": "boolean",
          "description": "Whether enabled the validation on `type` and `body` with embedded schema. Defaults to `true`.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the azure resource.\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Resource resources.\n",
        "properties": {
          "body": {
            "type": "string",
            "description": "A JSON object that contains the request body used to create and update azure resource.\n"
          },
          "identity": {
            "$ref": "#/types/azapi:index%2FResourceIdentity:ResourceIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "ignoreBodyChanges": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
          },
          "ignoreCasing": {
            "type": "boolean",
            "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
          },
          "ignoreMissingProperty": {
            "type": "boolean",
            "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
          },
          "location": {
            "type": "string",
            "description": "The Azure Region where the azure resource should exist.\n",
            "willReplaceOnChanges": true
          },
          "locks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
            "willReplaceOnChanges": true
          },
          "output": {
            "type": "string",
            "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n"
          },
          "parentId": {
            "type": "string",
            "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n\nFor type `Microsoft.Resources/resourceGroups`, the `parent_id` could be omitted, it defaults to subscription ID specified in provider or the default subscription(You could check the default subscription by azure cli command: `az account show`).\n",
            "willReplaceOnChanges": true
          },
          "removingSpecialChars": {
            "type": "boolean",
            "description": "Whether to remove special characters in resource name. Defaults to `false`.\n",
            "deprecationMessage": "It will not work in the next minor release and will be removed in the next major release. Please specify the `name` field and remove the special characters in the `name` field instead."
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
          },
          "schemaValidationEnabled": {
            "type": "boolean",
            "description": "Whether enabled the validation on `type` and `body` with embedded schema. Defaults to `true`.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the azure resource.\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object"
      }
    },
    "azapi:index/resourceAction:ResourceAction": {
      "description": "This resource can perform any Azure resource manager resource action.\nIt's recommended to use `azapi.ResourceAction` resource to perform actions which change a resource's state, please use `azapi.ResourceAction` data source,\nif user wants to perform readonly action.\n\n> **Note** The action can be performed on either apply or destroy. The default is apply, see `when` argument for more details.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\nvariable \"enabled\" {\n  type        = bool\n  default     = false\n  description = \"whether start the spring service\"\n}\n\nresource \"azurerm_resource_group\" \"example\" {\n  name     = \"example-rg\"\n  location = \"west europe\"\n}\n\nresource \"azurerm_spring_cloud_service\" \"test\" {\n  name                = \"example-spring\"\n  resource_group_name = azurerm_resource_group.test.name\n  location            = azurerm_resource_group.test.location\n  sku_name            = \"S0\"\n}\n\nresource \"azapi_resource_action\" \"start\" {\n  type                   = \"Microsoft.AppPlatform/Spring@2022-05-01-preview\"\n  resource_id            = azurerm_spring_cloud_service.test.id\n  action                 = \"start\"\n  response_export_values = [\"*\"]\n\n  count = var.enabled ? 1 : 0\n}\n\nresource \"azapi_resource_action\" \"stop\" {\n  type                   = \"Microsoft.AppPlatform/Spring@2022-05-01-preview\"\n  resource_id            = azurerm_spring_cloud_service.test.id\n  action                 = \"stop\"\n  response_export_values = [\"*\"]\n\n  count = var.enabled ? 0 : 1\n}\n```\n\nHere's an example to use the `azapi.ResourceAction` resource to register a provider.\n\n```hcl\nprovider \"azurerm\" {\n  features {}\n}\n\ndata \"azurerm_client_config\" \"current\" {}\n\nresource \"azapi_resource_action\" \"test\" {\n  type        = \"Microsoft.Resources/providers@2021-04-01\"\n  resource_id = \"/subscriptions/${data.azurerm_client_config.current.subscription_id}/providers/Microsoft.Compute\"\n  action      = \"register\"\n  method      = \"POST\"\n}\n```\n\nHere's an example to use the `azapi.ResourceAction` resource to perform a provider action.\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\ndata \"azapi_resource_action\" \"test\" {\n  type        = \"Microsoft.ResourceGraph@2020-04-01-preview\"\n  resource_id = \"/providers/Microsoft.ResourceGraph\"\n  action      = \"resources\"\n  body = jsonencode({\n    query = \"resources| where name contains \\\"test\\\"\"\n  })\n  response_export_values = [\"*\"]\n}\n```\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.\n"
        },
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid modify azapi resources at the same time.\n"
        },
        "method": {
          "type": "string",
          "description": "Specifies the Http method of the azure resource action. Allowed values are `POST`, `PATCH`, `PUT` and `DELETE`. Defaults to `POST`.\n"
        },
        "output": {
          "type": "string",
          "description": "The output json containing the properties specified in `response_export_values`. Here are some examples to decode json and extract the value.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "The ID of an existing azure source.\n"
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"keys\"]`, it will set the following json to computed property `output`.\n\n```\n{\n\"keys\": [\n{\n\"KeyName\": \"Primary\",\n\"Permissions\": \"Full\",\n\"Value\": \"nHGYNd******i4wdug==\"\n},\n{\n\"KeyName\": \"Secondary\",\n\"Permissions\": \"Full\",\n\"Value\": \"6yoCad******SLzKzg==\"\n}\n]\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        },
        "when": {
          "type": "string",
          "description": "When to perform the action, value must be one of: `apply`, `destroy`. Default is `apply`.\n"
        }
      },
      "type": "object",
      "required": [
        "output",
        "resourceId",
        "type"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.\n",
          "willReplaceOnChanges": true
        },
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid modify azapi resources at the same time.\n"
        },
        "method": {
          "type": "string",
          "description": "Specifies the Http method of the azure resource action. Allowed values are `POST`, `PATCH`, `PUT` and `DELETE`. Defaults to `POST`.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "The ID of an existing azure source.\n",
          "willReplaceOnChanges": true
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"keys\"]`, it will set the following json to computed property `output`.\n\n```\n{\n\"keys\": [\n{\n\"KeyName\": \"Primary\",\n\"Permissions\": \"Full\",\n\"Value\": \"nHGYNd******i4wdug==\"\n},\n{\n\"KeyName\": \"Secondary\",\n\"Permissions\": \"Full\",\n\"Value\": \"6yoCad******SLzKzg==\"\n}\n]\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n",
          "willReplaceOnChanges": true
        },
        "when": {
          "type": "string",
          "description": "When to perform the action, value must be one of: `apply`, `destroy`. Default is `apply`.\n"
        }
      },
      "requiredInputs": [
        "resourceId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceAction resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.\n",
            "willReplaceOnChanges": true
          },
          "body": {
            "type": "string",
            "description": "A JSON object that contains the request body.\n"
          },
          "locks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ARM resource IDs which are used to avoid modify azapi resources at the same time.\n"
          },
          "method": {
            "type": "string",
            "description": "Specifies the Http method of the azure resource action. Allowed values are `POST`, `PATCH`, `PUT` and `DELETE`. Defaults to `POST`.\n"
          },
          "output": {
            "type": "string",
            "description": "The output json containing the properties specified in `response_export_values`. Here are some examples to decode json and extract the value.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "The ID of an existing azure source.\n",
            "willReplaceOnChanges": true
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"keys\"]`, it will set the following json to computed property `output`.\n\n```\n{\n\"keys\": [\n{\n\"KeyName\": \"Primary\",\n\"Permissions\": \"Full\",\n\"Value\": \"nHGYNd******i4wdug==\"\n},\n{\n\"KeyName\": \"Secondary\",\n\"Permissions\": \"Full\",\n\"Value\": \"6yoCad******SLzKzg==\"\n}\n]\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n",
            "willReplaceOnChanges": true
          },
          "when": {
            "type": "string",
            "description": "When to perform the action, value must be one of: `apply`, `destroy`. Default is `apply`.\n"
          }
        },
        "type": "object"
      }
    },
    "azapi:index/updateResource:UpdateResource": {
      "description": "This resource can manage a subset of any existing Azure resource manager resource's properties.\n\n> **Note** This resource is used to add or modify properties on an existing resource.\nWhen delete `azapi.UpdateResource`, no operation will be performed, and these properties will stay unchanged.\nIf you want to restore the modified properties to some values, you must apply the restored properties before deleting.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\nresource \"azurerm_resource_group\" \"example\" {\n  name     = \"example-rg\"\n  location = \"west europe\"\n}\n\nresource \"azurerm_public_ip\" \"example\" {\n  name                = \"example-ip\"\n  location            = azurerm_resource_group.example.location\n  resource_group_name = azurerm_resource_group.example.name\n  allocation_method   = \"Static\"\n}\n\nresource \"azurerm_lb\" \"example\" {\n  name                = \"example-lb\"\n  location            = azurerm_resource_group.example.location\n  resource_group_name = azurerm_resource_group.example.name\n\n  frontend_ip_configuration {\n    name                 = \"PublicIPAddress\"\n    public_ip_address_id = azurerm_public_ip.example.id\n  }\n}\n\nresource \"azurerm_lb_nat_rule\" \"example\" {\n  resource_group_name            = azurerm_resource_group.example.name\n  loadbalancer_id                = azurerm_lb.example.id\n  name                           = \"RDPAccess\"\n  protocol                       = \"Tcp\"\n  frontend_port                  = 3389\n  backend_port                   = 3389\n  frontend_ip_configuration_name = \"PublicIPAddress\"\n}\n\nresource \"azapi_update_resource\" \"example\" {\n  type        = \"Microsoft.Network/loadBalancers@2021-03-01\"\n  resource_id = azurerm_lb.example.id\n\n  body = jsonencode({\n    properties = {\n      inboundNatRules = [\n        {\n          properties = {\n            idleTimeoutInMinutes = 15\n          }\n        }\n      ]\n    }\n  })\n\n  depends_on = [\n    azurerm_lb_nat_rule.example,\n  ]\n}\n\n```\n",
      "properties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to add on an existing azure resource.\n"
        },
        "ignoreBodyChanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n"
        },
        "output": {
          "type": "string",
          "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n"
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "The ID of an existing azure source. Changing this forces a new azure resource to be created.\n\n> **Note:** Configuring `name` and `parent_id` is an alternative way to configure `resource_id`.\n"
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "output",
        "parentId",
        "resourceId",
        "type"
      ],
      "inputProperties": {
        "body": {
          "type": "string",
          "description": "A JSON object that contains the request body used to add on an existing azure resource.\n"
        },
        "ignoreBodyChanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
        },
        "ignoreCasing": {
          "type": "boolean",
          "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
        },
        "ignoreMissingProperty": {
          "type": "boolean",
          "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
        },
        "locks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
          "willReplaceOnChanges": true
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n",
          "willReplaceOnChanges": true
        },
        "resourceId": {
          "type": "string",
          "description": "The ID of an existing azure source. Changing this forces a new azure resource to be created.\n\n> **Note:** Configuring `name` and `parent_id` is an alternative way to configure `resource_id`.\n",
          "willReplaceOnChanges": true
        },
        "responseExportValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
        },
        "type": {
          "type": "string",
          "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering UpdateResource resources.\n",
        "properties": {
          "body": {
            "type": "string",
            "description": "A JSON object that contains the request body used to add on an existing azure resource.\n"
          },
          "ignoreBodyChanges": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of properties that should be ignored when comparing the `body` with its current state.\n"
          },
          "ignoreCasing": {
            "type": "boolean",
            "description": "Whether ignore incorrect casing returned in `body` to suppress plan-diff. Defaults to `false`.\n"
          },
          "ignoreMissingProperty": {
            "type": "boolean",
            "description": "Whether ignore not returned properties like credentials in `body` to suppress plan-diff. Defaults to `true`.\n"
          },
          "locks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ARM resource IDs which are used to avoid create/modify/delete azapi resources at the same time.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the azure resource. Changing this forces a new resource to be created.\n",
            "willReplaceOnChanges": true
          },
          "output": {
            "type": "string",
            "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n"
          },
          "parentId": {
            "type": "string",
            "description": "The ID of the azure resource in which this resource is created. Changing this forces a new resource to be created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n",
            "willReplaceOnChanges": true
          },
          "resourceId": {
            "type": "string",
            "description": "The ID of an existing azure source. Changing this forces a new azure resource to be created.\n\n> **Note:** Configuring `name` and `parent_id` is an alternative way to configure `resource_id`.\n",
            "willReplaceOnChanges": true
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `<resource-type>@<api-version>`. `<resource-type>` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`<api-version>` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "azapi:index/getResource:getResource": {
      "description": "This resource can access any existing Azure resource manager resource.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\nresource \"azurerm_resource_group\" \"example\" {\n  name     = \"example-rg\"\n  location = \"west europe\"\n}\n\nresource \"azurerm_container_registry\" \"example\" {\n  name                = \"example\"\n  resource_group_name = azurerm_resource_group.example.name\n  location            = azurerm_resource_group.example.location\n  sku                 = \"Premium\"\n  admin_enabled       = false\n}\n\ndata \"azapi_resource\" \"example\" {\n  name      = \"example\"\n  parent_id = azurerm_resource_group.example.id\n  type      = \"Microsoft.ContainerRegistry/registries@2020-11-01-preview\"\n\n  response_export_values = [\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]\n}\n\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\n  value = jsondecode(data.azapi_resource.example.output).properties.loginServer\n}\n\n// it will output \"disabled\"\noutput \"quarantine_policy\" {\n  value = jsondecode(data.azapi_resource.example.output).properties.policies.quarantinePolicy.status\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResource.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azapi:index%2FgetResourceIdentity:getResourceIdentity",
            "description": "An `identity` block as defined below, which contains the Managed Service Identity information for this azure resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the azure resource.\n"
          },
          "parentId": {
            "type": "string",
            "description": "The ID of the azure resource in which this resource is created. It supports different kinds of deployment scope for **top level** resources: \n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n\nFor type `Microsoft.Resources/resourceGroups`, the `parent_id` could be omitted, it defaults to subscription ID specified in provider or the default subscription(You could check the default subscription by azure cli command: `az account show`).\n"
          },
          "resourceId": {
            "type": "string",
            "description": "The ID of an existing azure source.\n\n\u003e **Note:** Configuring `name` and `parent_id` is an alternative way to configure `resource_id`.\n"
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"properties.loginServer\", \"properties.policies.quarantinePolicy.status\"]`, it will set the following json to computed property `output`.\n```\n{\n\"properties\" : {\n\"loginServer\" : \"registry1.azurecr.io\"\n\"policies\" : {\n\"quarantinePolicy\" = {\n\"status\" = \"disabled\"\n}\n}\n}\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `\u003cresource-type\u003e@\u003capi-version\u003e`. `\u003cresource-type\u003e` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`\u003capi-version\u003e` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object",
        "required": [
          "type"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getResource.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azapi:index%2FgetResourceIdentity:getResourceIdentity",
            "description": "An `identity` block as defined below, which contains the Managed Service Identity information for this azure resource.\n"
          },
          "location": {
            "description": "The Azure Region where the azure resource should exist.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "output": {
            "description": "The output json containing the properties specified in `response_export_values`. Here're some examples to decode json and extract the value.\n```\n// it will output \"registry1.azurecr.io\"\noutput \"login_server\" {\nvalue = jsondecode(azapi_resource.example.output).properties.loginServer\n}\n",
            "type": "string"
          },
          "parentId": {
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "responseExportValues": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the azure resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The Type of Identity which should be used for this azure resource. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned,UserAssigned`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "identity",
          "location",
          "output",
          "parentId",
          "tags",
          "type"
        ],
        "type": "object"
      }
    },
    "azapi:index/getResourceAction:getResourceAction": {
      "description": "This resource can perform resource action which gets information from an existing resource.\nIt's recommended to use `azapi.ResourceAction` data source to perform readonly action, please use `azapi.ResourceAction` resource,\nif user wants to perform actions which change a resource's state.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\nprovider \"azurerm\" {\n  features {}\n}\n\nresource \"azurerm_resource_group\" \"example\" {\n  name     = \"example-rg\"\n  location = \"west europe\"\n}\n\nresource \"azurerm_automation_account\" \"example\" {\n  name                = \"example-account\"\n  resource_group_name = azurerm_resource_group.example.name\n  location            = azurerm_resource_group.example.location\n  sku_name            = \"Basic\"\n}\n\ndata \"azapi_resource_action\" \"example\" {\n  type                   = \"Microsoft.Automation/automationAccounts@2021-06-22\"\n  resource_id            = azurerm_automation_account.example.id\n  action                 = \"listKeys\"\n  response_export_values = [\"*\"]\n}\n```\n\nHere's an example to use the `azapi.ResourceAction` data source to get a provider's permissions.\n\n```hcl\nprovider \"azurerm\" {\n  features {}\n}\n\ndata \"azurerm_client_config\" \"current\" {}\n\ndata \"azapi_resource_action\" \"test\" {\n  type        = \"Microsoft.Resources/providers@2021-04-01\"\n  resource_id = \"/subscriptions/${data.azurerm_client_config.current.subscription_id}/providers/Microsoft.Network\"\n  action      = \"providerPermissions\"\n  method      = \"GET\"\n}\n```\n\nHere's an example to use the `azapi.ResourceAction` data source to perform a provider action.\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nresource \"azapi_resource_action\" \"test\" {\n  type        = \"Microsoft.Cache@2023-04-01\"\n  resource_id = \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Cache\"\n  action      = \"CheckNameAvailability\"\n  body = jsonencode({\n    type = \"Microsoft.Cache/Redis\"\n    name = \"cacheName\"\n  })\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResourceAction.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.\n"
          },
          "body": {
            "type": "string",
            "description": "A JSON object that contains the request body.\n"
          },
          "method": {
            "type": "string",
            "description": "Specifies the Http method of the azure resource action. Allowed values are `POST` and `GET`. Defaults to `POST`.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "The ID of an existing azure source.\n"
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"keys\"]`, it will set the following json to computed property `output`.\n```\n{\n\"keys\": [\n{\n\"KeyName\": \"Primary\",\n\"Permissions\": \"Full\",\n\"Value\": \"nHGYNd******i4wdug==\"\n},\n{\n\"KeyName\": \"Secondary\",\n\"Permissions\": \"Full\",\n\"Value\": \"6yoCad******SLzKzg==\"\n}\n]\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `\u003cresource-type\u003e@\u003capi-version\u003e`. `\u003cresource-type\u003e` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`\u003capi-version\u003e` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object",
        "required": [
          "type"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getResourceAction.\n",
        "properties": {
          "action": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "output": {
            "description": "The output json containing the properties specified in `response_export_values`. Here are some examples to decode json and extract the value.\n```hcl\n// it will output \"nHGYNd******i4wdug==\"\noutput \"primary_key\" {\nvalue = jsondecode(azapi_resource_action.test.output).keys.0.Value\n}\n",
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "responseExportValues": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "output",
          "type"
        ],
        "type": "object"
      }
    },
    "azapi:index/getResourceId:getResourceId": {
      "description": "This resource can parse an Azure resource ID into its separate fields.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\ndata \"azapi_resource_id\" \"account\" {\n  type        = \"Microsoft.Automation/automationAccounts@2021-06-22\"\n  resource_id = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Automation/automationAccounts/automationAccount1\"\n}\n\noutput \"account_name\" {\n  value = data.azapi_resource_id.account.name\n}\n\noutput \"account_resource_group\" {\n  value = data.azapi_resource_id.account.resource_group_name\n}\n\noutput \"account_subscription\" {\n  value = data.azapi_resource_id.account.subscription_id\n}\n\noutput \"account_parent_id\" {\n  value = data.azapi_resource_id.account.parent_id\n}\n\ndata \"azapi_resource_id\" \"vnet\" {\n  type      = \"Microsoft.Network/virtualNetworks@2021-02-01\"\n  parent_id = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1\"\n  name      = \"vnet1\"\n}\n\noutput \"vnet_id\" {\n  value = data.azapi_resource_id.vnet.id\n}\n\noutput \"vnet_resource_group\" {\n  value = data.azapi_resource_id.vnet.resource_group_name\n}\n\noutput \"vnet_subscription\" {\n  value = data.azapi_resource_id.vnet.subscription_id\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResourceId.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Specifies the name of the azure resource.\n"
          },
          "parentId": {
            "type": "string",
            "description": "The ID of the azure resource in which this resource is created. It supports different kinds of deployment scope for **top level** resources:\n- resource group scope: `parent_id` should be the ID of a resource group, it's recommended to manage a resource group by azurerm_resource_group.\n- management group scope: `parent_id` should be the ID of a management group, it's recommended to manage a management group by azurerm_management_group.\n- extension scope: `parent_id` should be the ID of the resource you're adding the extension to.\n- subscription scope: `parent_id` should be like `/subscriptions/00000000-0000-0000-0000-000000000000`\n- tenant scope: `parent_id` should be `/`\n\nFor child level resources, the `parent_id` should be the ID of its parent resource, for example, subnet resource's `parent_id` is the ID of the vnet.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "The ID of an existing azure source.\n\n\u003e **Note:** Configuring `name` and `parent_id` is an alternative way to configure `resource_id`.\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `\u003cresource-type\u003e@\u003capi-version\u003e`. `\u003cresource-type\u003e` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`\u003capi-version\u003e` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object",
        "required": [
          "type"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getResourceId.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the azure resource.\n",
            "type": "string"
          },
          "parentId": {
            "description": "The ID of the azure resource in which this resource is created.\n",
            "type": "string"
          },
          "parts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The map of the resource ID parts, where the key is the part name and the value is the part value. e.g. `virtualNetworks=myVnet`.\n",
            "type": "object"
          },
          "providerNamespace": {
            "description": "The azure resource provider namespace of the azure resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The resource group name of the azure resource.\n",
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "subscriptionId": {
            "description": "The subscription ID of the azure resource.\n",
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "parentId",
          "parts",
          "providerNamespace",
          "resourceGroupName",
          "resourceId",
          "subscriptionId",
          "type"
        ],
        "type": "object"
      }
    },
    "azapi:index/getResourceList:getResourceList": {
      "description": "This resource can list all resources of a specific type under a scope. If the API supports paging, it will automatically fetch all pages and return the full list.\n\n## Example Usage\n\n```hcl\nterraform {\n  required_providers {\n    azapi = {\n      source = \"Azure/azapi\"\n    }\n  }\n}\n\nprovider \"azapi\" {\n}\n\ndata \"azapi_resource_list\" \"listBySubscription\" {\n  type                   = \"Microsoft.Automation/automationAccounts@2021-06-22\"\n  parent_id              = \"/subscriptions/00000000-0000-0000-0000-000000000000\"\n  response_export_values = [\"*\"]\n}\n\ndata \"azapi_resource_list\" \"listByResourceGroup\" {\n  type                   = \"Microsoft.Automation/automationAccounts@2021-06-22\"\n  parent_id              = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1\"\n  response_export_values = [\"*\"]\n}\n\ndata \"azapi_resource_list\" \"listSubnetsByVnet\" {\n  type                   = \"Microsoft.Network/virtualNetworks/subnets@2021-02-01\"\n  parent_id              = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1\"\n  response_export_values = [\"*\"]\n}\n\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResourceList.\n",
        "properties": {
          "parentId": {
            "type": "string",
            "description": "The parent resource ID to list resources under. e.g. `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup`.\n"
          },
          "responseExportValues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of path that needs to be exported from response body.\nSetting it to `[\"*\"]` will export the full response body.\nHere's an example. If it sets to `[\"value\"]`, it will set the following json to computed property `output`.\n```\n{\n\"value\": [\n{\n\"id\": \"id1\",\n\"Permissions\": \"Full\"\n},\n{\n\"id\": \"id2\",\n\"Permissions\": \"Full\"\n}\n]\n}\n```\n"
          },
          "type": {
            "type": "string",
            "description": "It is in a format like `\u003cresource-type\u003e@\u003capi-version\u003e`. `\u003cresource-type\u003e` is the Azure resource type, for example, `Microsoft.Storage/storageAccounts`.\n`\u003capi-version\u003e` is version of the API used to manage this azure resource.\n"
          }
        },
        "type": "object",
        "required": [
          "parentId",
          "type"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getResourceList.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "output": {
            "description": "The output json containing the properties specified in `response_export_values`. Here are some examples to decode json and extract the value.\n",
            "type": "string"
          },
          "parentId": {
            "type": "string"
          },
          "responseExportValues": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "output",
          "parentId",
          "type"
        ],
        "type": "object"
      }
    }
  }
}
