Microsoft.CustomProviders resourceProviders

Bicep resource definition

The resourceProviders resource type can be deployed to:

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' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  properties: {
    actions: [
      {
        endpoint: 'string'
        name: 'string'
        routingType: 'Proxy'
      }
    ]
    resourceTypes: [
      {
        endpoint: 'string'
        name: 'string'
        routingType: 'string'
      }
    ]
    validations: [
      {
        specification: 'string'
        validationType: 'Swagger'
      }
    ]
  }
}

Property values

resourceProviders

Name Description Value
name The resource name string (required)

Character limit: 3-64

Valid characters:
Can't use:
%&\\?/ or control characters

Can't end with period or space.
location Resource location string (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
properties The manifest for the custom resource provider CustomRPManifestProperties

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[]

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 (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'

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 (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 (required)
validationType The type of validation to run against a matching request. 'Swagger'

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Extend Existing Azure Resources with Custom Providers

Deploy to Azure
This sample will go into detail on how to extend existing Azure resources and Resource Manager templates to add in custom workloads.
Create a function app and call it using a Custom Resource

Deploy to Azure
This template creates function app used as the workload for a custom resource provider in a template deployment.
Create a Custom Resource for templates with Custom Providers

Deploy to Azure
This sample shows how to add custom resources to Resource Manager Templates using custom providers and logic apps.

ARM template resource definition

The resourceProviders resource type can be deployed to:

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",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "actions": [
      {
        "endpoint": "string",
        "name": "string",
        "routingType": "Proxy"
      }
    ],
    "resourceTypes": [
      {
        "endpoint": "string",
        "name": "string",
        "routingType": "string"
      }
    ],
    "validations": [
      {
        "specification": "string",
        "validationType": "Swagger"
      }
    ]
  }
}

Property values

resourceProviders

Name Description Value
type The resource type 'Microsoft.CustomProviders/resourceProviders'
apiVersion The resource api version '2018-09-01-preview'
name The resource name string (required)

Character limit: 3-64

Valid characters:
Can't use:
%&\\?/ or control characters

Can't end with period or space.
location Resource location string (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
properties The manifest for the custom resource provider CustomRPManifestProperties

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[]

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 (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'

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 (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 (required)
validationType The type of validation to run against a matching request. 'Swagger'

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Extend Existing Azure Resources with Custom Providers

Deploy to Azure
This sample will go into detail on how to extend existing Azure resources and Resource Manager templates to add in custom workloads.
Create a function app and call it using a Custom Resource

Deploy to Azure
This template creates function app used as the workload for a custom resource provider in a template deployment.
Create a Custom Resource for templates with Custom Providers

Deploy to Azure
This sample shows how to add custom resources to Resource Manager Templates using custom providers and logic apps.

Terraform (AzAPI provider) resource definition

The resourceProviders resource type can be deployed to:

  • Resource groups

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"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      actions = [
        {
          endpoint = "string"
          name = "string"
          routingType = "Proxy"
        }
      ]
      resourceTypes = [
        {
          endpoint = "string"
          name = "string"
          routingType = "string"
        }
      ]
      validations = [
        {
          specification = "string"
          validationType = "Swagger"
        }
      ]
    }
  })
}

Property values

resourceProviders

Name Description Value
type The resource type "Microsoft.CustomProviders/resourceProviders@2018-09-01-preview"
name The resource name string (required)

Character limit: 3-64

Valid characters:
Can't use:
%&\\?/ or control characters

Can't end with period or space.
location Resource location string (required)
parent_id To deploy to a resource group, use the ID of that resource group. string (required)
tags Resource tags Dictionary of tag names and values.
properties The manifest for the custom resource provider CustomRPManifestProperties

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[]

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 (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"

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 (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 (required)
validationType The type of validation to run against a matching request. "Swagger"