Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Bicep resource definition
The resourceProviders resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.CustomProviders/resourceProviders resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.CustomProviders/resourceProviders@2018-09-01-preview' = {
scope: resourceSymbolicName or scope
location: 'string'
name: 'string'
properties: {
actions: [
{
endpoint: 'string'
name: 'string'
routingType: 'string'
}
]
resourceTypes: [
{
endpoint: 'string'
name: 'string'
routingType: 'string'
}
]
validations: [
{
specification: 'string'
validationType: 'string'
}
]
}
tags: {
{customized property}: 'string'
}
}
Property Values
Microsoft.CustomProviders/resourceProviders
| Name | Description | Value |
|---|---|---|
| location | Resource location | string (required) |
| name | The resource name | string Constraints: Min length = 3 Max length = 64 (required) |
| properties | The manifest for the custom resource provider | CustomRPManifestProperties |
| scope | Use when creating a resource at a scope that is different than the deployment scope. | Set this property to the symbolic name of a resource to apply the extension resource. |
| tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
CustomRPActionRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for action requests. | 'Proxy' |
CustomRPManifestProperties
| Name | Description | Value |
|---|---|---|
| actions | A list of actions that the custom resource provider implements. | CustomRPActionRouteDefinition[] |
| resourceTypes | A list of resource types that the custom resource provider implements. | CustomRPResourceTypeRouteDefinition[] |
| validations | A list of validations to run on the custom resource provider's requests. | CustomRPValidations[] |
CustomRPResourceTypeRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for resource requests. | 'Proxy' 'Proxy,Cache' |
CustomRPValidations
| Name | Description | Value |
|---|---|---|
| specification | A link to the validation specification. The specification must be hosted on raw.githubusercontent.com. | string Constraints: Pattern = ^https://raw.githubusercontent.com/.+ (required) |
| validationType | The type of validation to run against a matching request. | 'Swagger' |
ResourceTags
| Name | Description | Value |
|---|
ARM template resource definition
The resourceProviders resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.CustomProviders/resourceProviders resource, add the following JSON to your template.
{
"type": "Microsoft.CustomProviders/resourceProviders",
"apiVersion": "2018-09-01-preview",
"name": "string",
"location": "string",
"properties": {
"actions": [
{
"endpoint": "string",
"name": "string",
"routingType": "string"
}
],
"resourceTypes": [
{
"endpoint": "string",
"name": "string",
"routingType": "string"
}
],
"validations": [
{
"specification": "string",
"validationType": "string"
}
]
},
"tags": {
"{customized property}": "string"
}
}
Property Values
Microsoft.CustomProviders/resourceProviders
| Name | Description | Value |
|---|---|---|
| apiVersion | The api version | '2018-09-01-preview' |
| location | Resource location | string (required) |
| name | The resource name | string Constraints: Min length = 3 Max length = 64 (required) |
| properties | The manifest for the custom resource provider | CustomRPManifestProperties |
| tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
| type | The resource type | 'Microsoft.CustomProviders/resourceProviders' |
CustomRPActionRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for action requests. | 'Proxy' |
CustomRPManifestProperties
| Name | Description | Value |
|---|---|---|
| actions | A list of actions that the custom resource provider implements. | CustomRPActionRouteDefinition[] |
| resourceTypes | A list of resource types that the custom resource provider implements. | CustomRPResourceTypeRouteDefinition[] |
| validations | A list of validations to run on the custom resource provider's requests. | CustomRPValidations[] |
CustomRPResourceTypeRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for resource requests. | 'Proxy' 'Proxy,Cache' |
CustomRPValidations
| Name | Description | Value |
|---|---|---|
| specification | A link to the validation specification. The specification must be hosted on raw.githubusercontent.com. | string Constraints: Pattern = ^https://raw.githubusercontent.com/.+ (required) |
| validationType | The type of validation to run against a matching request. | 'Swagger' |
ResourceTags
| Name | Description | Value |
|---|
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
| Template | Description |
|---|---|
| Create a Custom Resource for templates with Custom Providers |
This sample shows how to add custom resources to Resource Manager Templates using custom providers and logic apps. |
| Create a function app and call it using a Custom Resource |
This template creates function app used as the workload for a custom resource provider in a template deployment. |
| Extend Existing Azure Resources with Custom Providers |
This sample will go into detail on how to extend existing Azure resources and Resource Manager templates to add in custom workloads. |
Terraform (AzAPI provider) resource definition
The resourceProviders resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.CustomProviders/resourceProviders resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.CustomProviders/resourceProviders@2018-09-01-preview"
name = "string"
parent_id = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
actions = [
{
endpoint = "string"
name = "string"
routingType = "string"
}
]
resourceTypes = [
{
endpoint = "string"
name = "string"
routingType = "string"
}
]
validations = [
{
specification = "string"
validationType = "string"
}
]
}
}
}
Property Values
Microsoft.CustomProviders/resourceProviders
| Name | Description | Value |
|---|---|---|
| location | Resource location | string (required) |
| name | The resource name | string Constraints: Min length = 3 Max length = 64 (required) |
| parent_id | The ID of the resource to apply this extension resource to. | string (required) |
| properties | The manifest for the custom resource provider | CustomRPManifestProperties |
| tags | Resource tags | Dictionary of tag names and values. |
| type | The resource type | "Microsoft.CustomProviders/resourceProviders@2018-09-01-preview" |
CustomRPActionRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for action requests. | 'Proxy' |
CustomRPManifestProperties
| Name | Description | Value |
|---|---|---|
| actions | A list of actions that the custom resource provider implements. | CustomRPActionRouteDefinition[] |
| resourceTypes | A list of resource types that the custom resource provider implements. | CustomRPResourceTypeRouteDefinition[] |
| validations | A list of validations to run on the custom resource provider's requests. | CustomRPValidations[] |
CustomRPResourceTypeRouteDefinition
| Name | Description | Value |
|---|---|---|
| endpoint | The route definition endpoint URI that the custom resource provider will proxy requests to. This can be in the form of a flat URI (e.g. 'https://testendpoint/') or can specify to route via a path (e.g. 'https://testendpoint/{requestPath}') | string Constraints: Pattern = ^https://.+ (required) |
| name | The name of the route definition. This becomes the name for the ARM extension (e.g. '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{name}') | string (required) |
| routingType | The routing types that are supported for resource requests. | 'Proxy' 'Proxy,Cache' |
CustomRPValidations
| Name | Description | Value |
|---|---|---|
| specification | A link to the validation specification. The specification must be hosted on raw.githubusercontent.com. | string Constraints: Pattern = ^https://raw.githubusercontent.com/.+ (required) |
| validationType | The type of validation to run against a matching request. | 'Swagger' |
ResourceTags
| Name | Description | Value |
|---|
Usage Examples
Terraform Samples
A basic example of deploying Azure Custom Provider.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "resourceProvider" {
type = "Microsoft.CustomProviders/resourceProviders@2018-09-01-preview"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
resourceTypes = [
{
endpoint = "https://example.com/"
name = "dEf1"
routingType = "Proxy"
},
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}