Microsoft.CustomProviders resourceProviders template reference

Template format

To create a Microsoft.CustomProviders/resourceProviders resource, add the following JSON to the resources section of your template.

{
  "name": "string",
  "type": "Microsoft.CustomProviders/resourceProviders",
  "apiVersion": "2018-09-01-preview",
  "location": "string",
  "tags": {},
  "properties": {
    "actions": [
      {
        "name": "string",
        "endpoint": "string",
        "routingType": "Proxy"
      }
    ],
    "resourceTypes": [
      {
        "name": "string",
        "endpoint": "string",
        "routingType": "string"
      }
    ],
    "validations": [
      {
        "validationType": "Swagger",
        "specification": "string"
      }
    ]
  }
}

Property values

The following tables describe the values you need to set in the schema.

Microsoft.CustomProviders/resourceProviders object

Name Type Required Value
name string Yes The name of the resource provider.
type enum Yes Microsoft.CustomProviders/resourceProviders
apiVersion enum Yes 2018-09-01-preview
location string Yes Resource location
tags object No Resource tags
properties object Yes The manifest for the custom resource provider - CustomRPManifestProperties object

CustomRPManifestProperties object

Name Type Required Value
actions array No A list of actions that the custom resource provider implements. - CustomRPActionRouteDefinition object
resourceTypes array No A list of resource types that the custom resource provider implements. - CustomRPResourceTypeRouteDefinition object
validations array No A list of validations to run on the custom resource provider's requests. - CustomRPValidations object

CustomRPActionRouteDefinition object

Name Type Required Value
name string Yes 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}')
endpoint string Yes 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}')
routingType enum No The routing types that are supported for action requests. - Proxy

CustomRPResourceTypeRouteDefinition object

Name Type Required Value
name string Yes 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}')
endpoint string Yes 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}')
routingType enum No The routing types that are supported for resource requests. - Proxy or Proxy,Cache

CustomRPValidations object

Name Type Required Value
validationType enum No The type of validation to run against a matching request. - Swagger
specification string Yes A link to the validation specification. The specification must be hosted on raw.githubusercontent.com.

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.