customproviders
Allows extension of ARM control plane with custom resource providers
COMMUNITYBEARER0 INSTALLS
OpenAPI Specificationv3.0
{
"swagger": "2.0",
"schemes": [
"https"
],
"host": "management.azure.com",
"info": {
"description": "Allows extension of ARM control plane with custom resource providers.",
"title": "customproviders",
"version": "2018-09-01-preview",
"x-apisguru-categories": [
"cloud"
],
"x-logo": {
"url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
},
"x-ms-code-generation-settings": {
"name": "customprovidersClient"
},
"x-origin": [
{
"format": "swagger",
"url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/customproviders/resource-manager/Microsoft.CustomProviders/preview/2018-09-01-preview/customproviders.json",
"version": "2.0"
}
],
"x-providerName": "azure.com",
"x-serviceName": "customproviders",
"x-tags": [
"Azure",
"Microsoft"
]
},
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"securityDefinitions": {
"azure_auth": {
"authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
"description": "Azure Active Directory OAuth2 Flow",
"flow": "implicit",
"scopes": {
"user_impersonation": "impersonate your user account"
},
"type": "oauth2"
}
},
"security": [
{
"azure_auth": [
"user_impersonation"
]
}
],
"parameters": {
"ApiVersionParameter": {
"description": "The API version to be used with the HTTP request.",
"in": "query",
"name": "api-version",
"required": true,
"type": "string"
},
"ResourceGroupNameParameter": {
"description": "The name of the resource group.",
"in": "path",
"name": "resourceGroupName",
"required": true,
"type": "string",
"x-ms-parameter-location": "method"
},
"ResourceProviderNameParameter": {
"description": "The name of the resource provider.",
"in": "path",
"maxLength": 64,
"minLength": 3,
"name": "resourceProviderName",
"required": true,
"type": "string",
"x-ms-parameter-location": "method"
},
"SubscriptionIdParameter": {
"description": "The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)",
"in": "path",
"name": "subscriptionId",
"required": true,
"type": "string"
}
},
"paths": {
"/providers/Microsoft.CustomProviders/operations": {
"get": {
"description": "The list of operations provided by Microsoft CustomProviders.",
"operationId": "Operations_List",
"parameters": [
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "Describe the result of a successful operation.",
"schema": {
"$ref": "#/definitions/ResourceProviderOperationList"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"Operations"
],
"x-ms-examples": {
"List the custom providers operations": {
"parameters": {
"api-version": "2018-09-01-preview"
},
"responses": {
"200": {
"body": {
"value": [
{
"display": {
"description": "List or get the Custom Providers",
"operation": "List Custom Providers",
"provider": "Azure Custom Providers",
"resource": "resourceProviders"
},
"name": "Microsoft.CustomProviders/resourceProviders/read"
},
{
"display": {
"description": "List or get the Custom Providers",
"operation": "List Custom Providers",
"provider": "Azure Custom Providers",
"resource": "resourceProviders"
},
"name": "Microsoft.CustomProviders/resourceProviders/delete"
},
{
"display": {
"description": "List or get the Custom Providers",
"operation": "List Custom Providers",
"provider": "Azure Custom Providers",
"resource": "resourceProviders"
},
"name": "Microsoft.CustomProviders/resourceProviders/wrte"
}
]
}
}
}
}
},
"x-ms-pageable": {
"nextLinkName": "nextLink"
}
}
},
"/subscriptions/{subscriptionId}/providers/Microsoft.CustomProviders/resourceProviders": {
"get": {
"description": "Gets all the custom resource providers within a subscription.",
"operationId": "CustomResourceProvider_ListBySubscription",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK - Returns an array of custom resource providers.",
"schema": {
"$ref": "#/definitions/ListByCustomRPManifest"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"List all custom resource providers on the subscription": {
"parameters": {
"api-version": "2018-09-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp1",
"location": "East US",
"name": "newrp1",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
},
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG2/providers/Microsoft.CustomProviders/resourceProviders/newrp2",
"location": "East US",
"name": "newrp2",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
}
]
},
"headers": {}
}
}
}
},
"x-ms-pageable": {
"nextLinkName": "nextLink"
}
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders": {
"get": {
"description": "Gets all the custom resource providers within a resource group.",
"operationId": "CustomResourceProvider_ListByResourceGroup",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK - Returns an array of custom resource providers.",
"schema": {
"$ref": "#/definitions/ListByCustomRPManifest"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"List all custom resource providers on the resourceGroup": {
"parameters": {
"api-version": "2018-09-01-preview",
"resourceGroupName": "testRG",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp1",
"location": "East US",
"name": "newrp1",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
},
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp2",
"location": "East US",
"name": "newrp2",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
}
]
},
"headers": {}
}
}
}
},
"x-ms-pageable": {
"nextLinkName": "nextLink"
}
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}": {
"delete": {
"description": "Deletes the custom resource provider.",
"operationId": "CustomResourceProvider_Delete",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/ResourceProviderNameParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK resource deleted"
},
"202": {
"description": "OK resource delete has been accepted."
},
"204": {
"description": "OK resource was not found."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"Delete a custom resource provider": {
"parameters": {
"api-version": "2018-09-01-preview",
"resourceGroupName": "testRG",
"resourceProviderName": "newrp",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {},
"202": {},
"204": {}
}
}
},
"x-ms-long-running-operation": true
},
"get": {
"description": "Gets the custom resource provider manifest.",
"operationId": "CustomResourceProvider_Get",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/ResourceProviderNameParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK response definition with the existing resource.",
"schema": {
"$ref": "#/definitions/CustomRPManifest"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"Get a custom resource provider": {
"parameters": {
"api-version": "2018-09-01-preview",
"resourceGroupName": "testRG",
"resourceProviderName": "newrp",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp",
"location": "East US",
"name": "newrp",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
},
"headers": {}
}
}
}
}
},
"patch": {
"description": "Updates an existing custom resource provider. The only value that can be updated via PATCH currently is the tags.",
"operationId": "CustomResourceProvider_Update",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/ResourceProviderNameParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
},
{
"description": "The updatable fields of a custom resource provider.",
"in": "body",
"name": "patchableResource",
"required": true,
"schema": {
"$ref": "#/definitions/ResourceProvidersUpdate"
}
}
],
"responses": {
"200": {
"description": "OK response. The resource has been updated.",
"schema": {
"$ref": "#/definitions/CustomRPManifest"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"Update a custom resource provider": {
"parameters": {
"api-version": "2018-09-01-preview",
"patchableResource": {
"tags": {}
},
"resourceGroupName": "testRG",
"resourceProviderName": "newrp",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp",
"location": "East US",
"name": "newrp",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Succeeded",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
}
}
}
}
}
},
"put": {
"description": "Creates or updates the custom resource provider.",
"operationId": "CustomResourceProvider_CreateOrUpdate",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/ResourceProviderNameParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
},
{
"description": "The parameters required to create or update a custom resource provider definition.",
"in": "body",
"name": "resourceProvider",
"required": true,
"schema": {
"$ref": "#/definitions/CustomRPManifest"
}
}
],
"responses": {
"200": {
"description": "OK response definition. Resource already exists and the changes have been accepted",
"schema": {
"$ref": "#/definitions/CustomRPManifest"
}
},
"201": {
"description": "Created response definition. Resource has been created",
"schema": {
"$ref": "#/definitions/CustomRPManifest"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"CustomResourceProvider"
],
"x-ms-examples": {
"Create or update the custom resource provider": {
"parameters": {
"api-version": "2018-09-01-preview",
"resourceGroupName": "testRG",
"resourceProvider": {
"location": "eastus",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
}
},
"resourceProviderName": "newrp",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp",
"location": "East US",
"name": "newrp",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Accepted",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
}
},
"201": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.CustomProviders/resourceProviders/newrp",
"location": "East US",
"name": "newrp",
"properties": {
"actions": [
{
"endpoint": "https://mytestendpoint/",
"name": "TestAction",
"routingType": "Proxy"
}
],
"provisioningState": "Accepted",
"resourceTypes": [
{
"endpoint": "https://mytestendpoint2/",
"name": "TestResource",
"routingType": "Proxy,Cache"
}
]
},
"type": "Microsoft.CustomProviders/resourceProviders"
}
}
}
}
},
"x-ms-long-running-operation": true
}
},
"/{scope}/providers/Microsoft.CustomProviders/associations": {
"get": {
"description": "Gets all association for the given scope.",
"operationId": "Associations_ListAll",
"parameters": [
{
"description": "The scope of the association.",
"in": "path",
"name": "scope",
"required": true,
"type": "string",
"x-ms-skip-url-encoding": true
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK. Returns all associations for the given scope.",
"schema": {
"$ref": "#/definitions/AssociationsList"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"Associations"
],
"x-ms-examples": {
"Get all associations": {
"parameters": {
"api-version": "2018-09-01-preview",
"scope": "scope"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "scope/providers/Microsoft.CustomProviders/associations/associationName",
"name": "associationName",
"properties": {
"provisioningState": "Succeeded",
"targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/appRG/providers/Microsoft.Solutions/applications/applicationName"
},
"type": "Microsoft.CustomProviders/associations"
}
]
},
"headers": {}
}
}
}
},
"x-ms-pageable": {
"nextLinkName": "nextLink"
}
}
},
"/{scope}/providers/Microsoft.CustomProviders/associations/{associationName}": {
"delete": {
"description": "Delete an association.",
"operationId": "Associations_Delete",
"parameters": [
{
"description": "The scope of the association.",
"in": "path",
"name": "scope",
"required": true,
"type": "string",
"x-ms-skip-url-encoding": true
},
{
"description": "The name of the association.",
"in": "path",
"name": "associationName",
"required": true,
"type": "string"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK. Association deleted."
},
"202": {
"description": "Accepted. Association delete has been accepted."
},
"204": {
"description": "No Content. Association was not found."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"Associations"
],
"x-ms-examples": {
"Delete an association": {
"parameters": {
"api-version": "2018-09-01-preview",
"associationName": "associationName",
"scope": "scope"
},
"responses": {
"200": {},
"202": {},
"204": {}
}
}
},
"x-ms-long-running-operation": true
},
"get": {
"description": "Get an association.",
"operationId": "Associations_Get",
"parameters": [
{
"description": "The scope of the association.",
"in": "path",
"name": "scope",
"required": true,
"type": "string",
"x-ms-skip-url-encoding": true
},
{
"description": "The name of the association.",
"in": "path",
"name": "associationName",
"required": true,
"type": "string"
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK. Returns association.",
"schema": {
"$ref": "#/definitions/Association"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"Associations"
],
"x-ms-examples": {
"Get an association": {
"parameters": {
"api-version": "2018-09-01-preview",
"associationName": "associationName",
"scope": "scope"
},
"responses": {
"200": {
"body": {
"id": "scope/providers/Microsoft.CustomProviders/associations/associationName",
"name": "associationName",
"properties": {
"provisioningState": "Succeeded",
"targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/appRG/providers/Microsoft.Solutions/applications/applicationName"
},
"type": "Microsoft.CustomProviders/associations"
},
"headers": {}
}
}
}
}
},
"put": {
"description": "Create or update an association.",
"operationId": "Associations_CreateOrUpdate",
"parameters": [
{
"description": "The scope of the association. The scope can be any valid REST resource instance. For example, use '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}' for a virtual machine resource.",
"in": "path",
"name": "scope",
"required": true,
"type": "string",
"x-ms-skip-url-encoding": true
},
{
"description": "The name of the association.",
"in": "path",
"name": "associationName",
"required": true,
"type": "string"
},
{
"description": "The parameters required to create or update an association.",
"in": "body",
"name": "association",
"required": true,
"schema": {
"$ref": "#/definitions/Association"
}
},
{
"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "OK. Association already exists and the changes have been accepted.",
"schema": {
"$ref": "#/definitions/Association"
}
},
"201": {
"description": "Created. Association has been created.",
"schema": {
"$ref": "#/definitions/Association"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"tags": [
"Associations"
],
"x-ms-examples": {
"Create or update an association": {
"parameters": {
"api-version": "2018-09-01-preview",
"association": {
"properties": {
"targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/appRG/providers/Microsoft.Solutions/applications/applicationName"
}
},
"associationName": "associationName",
"scope": "scope"
},
"responses": {
"200": {
"body": {
"id": "/scope/providers/Microsoft.CustomProviders/associations/associationName",
"name": "associationName",
"properties": {
"provisioningState": "Succeeded",
"targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/appRG/providers/Microsoft.Solutions/applications/applicationName"
},
"type": "Microsoft.CustomProviders/associations"
},
"headers": {}
},
"201": {
"body": {
"id": "/scope/providers/Microsoft.CustomProviders/associations/associationName",
"name": "associationName",
"properties": {
"provisioningState": "Accepted",
"targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/appRG/providers/Microsoft.Solutions/applications/applicationName"
},
"type": "Microsoft.CustomProviders/associations"
},
"headers": {}
}
}
}
},
"x-ms-long-running-operation": true
}
}
},
"definitions": {
"Association": {
"description": "The resource definition of this association.",
"properties": {
"id": {
"description": "The association id.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "The association name.",
"readOnly": true,
"type": "string"
},
"properties": {
"description": "The properties of the association.",
"properties": {
"provisioningState": {
"description": "The provisioning state of the association.",
"enum": [
"Accepted",
"Deleting",
"Running",
"Succeeded",
"Failed"
],
"readOnly": true,
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "ProvisioningState"
}
},
"targetResourceId": {
"description": "The REST resource instance of the target resource for this association.",
"type": "string"
}
},
"type": "object",
"x-ms-client-flatten": true
},
"type": {
"description": "The association type.",
"readOnly": true,
"type": "string"
}
},
"x-ms-azure-resource": true,
"x-ms-client-flatten": true
},
"AssociationsList": {
"description": "List of associations.",
"properties": {
"nextLink": {
"description": "The URL to use for getting the next set of results.",
"type": "string"
},
"value": {
"description": "The array of associations.",
"items": {
"$ref": "#/definitions/Association"
},
"type": "array"
}
}
},
"CustomRPActionRouteDefinition": {
"allOf": [
{
"$ref": "#/definitions/CustomRPRouteDefinition"
}
],
"description": "The route definition for an action implemented by the custom resource provider.",
"properties": {
"routingType": {
"description": "The routing types that are supported for action requests.",
"enum": [
"Proxy"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "ActionRouting"
}
}
}
},
"CustomRPManifest": {
"allOf": [
{
"$ref": "#/definitions/Resource"
}
],
"description": "A manifest file that defines the custom resource provider resources.",
"properties": {
"properties": {
"description": "The manifest for the custom resource provider",
"properties": {
"actions": {
"description": "A list of actions that the custom resource provider implements.",
"items": {
"$ref": "#/definitions/CustomRPActionRouteDefinition"
},
"type": "array"
},
"provisioningState": {
"description": "The provisioning state of the resource provider.",
"enum": [
"Accepted",
"Deleting",
"Running",
"Succeeded",
"Failed"
],
"readOnly": true,
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "ProvisioningState"
}
},
"resourceTypes": {
"description": "A list of resource types that the custom resource provider implements.",
"items": {
"$ref": "#/definitions/CustomRPResourceTypeRouteDefinition"
},
"type": "array"
},
"validations": {
"description": "A list of validations to run on the custom resource provider's requests.",
"items": {
"$ref": "#/definitions/CustomRPValidations"
},
"type": "array"
}
},
"type": "object",
"x-ms-client-flatten": true
}
}
},
"CustomRPResourceTypeRouteDefinition": {
"allOf": [
{
"$ref": "#/definitions/CustomRPRouteDefinition"
}
],
"description": "The route definition for a resource implemented by the custom resource provider.",
"properties": {
"routingType": {
"description": "The routing types that are supported for resource requests.",
"enum": [
"Proxy",
"Proxy,Cache"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "ResourceTypeRouting"
}
}
}
},
"CustomRPRouteDefinition": {
"description": "A route definition that defines an action or resource that can be interacted with through the custom resource provider.",
"properties": {
"endpoint": {
"description": "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}')",
"pattern": "^https://.+",
"type": "string"
},
"name": {
"description": "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}')",
"type": "string"
}
},
"required": [
"name",
"endpoint"
]
},
"CustomRPValidations": {
"description": "A validation to apply on custom resource provider requests.",
"properties": {
"specification": {
"description": "A link to the validation specification. The specification must be hosted on raw.githubusercontent.com.",
"pattern": "^https://raw.githubusercontent.com/.+",
"type": "string"
},
"validationType": {
"description": "The type of validation to run against a matching request.",
"enum": [
"Swagger"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "ValidationType"
}
}
},
"required": [
"specification"
]
},
"ErrorDefinition": {
"description": "Error definition.",
"properties": {
"code": {
"description": "Service specific error code which serves as the substatus for the HTTP error code.",
"readOnly": true,
"type": "string"
},
"details": {
"description": "Internal error details.",
"items": {
"$ref": "#/definitions/ErrorDefinition"
},
"readOnly": true,
"type": "array"
},
"message": {
"description": "Description of the error.",
"readOnly": true,
"type": "string"
}
}
},
"ErrorResponse": {
"description": "Error response.",
"properties": {
"error": {
"$ref": "#/definitions/ErrorDefinition",
"description": "The error details."
}
}
},
"ListByCustomRPManifest": {
"description": "List of custom resource providers.",
"properties": {
"nextLink": {
"description": "The URL to use for getting the next set of results.",
"type": "string"
},
"value": {
"description": "The array of custom resource provider manifests.",
"items": {
"$ref": "#/definitions/CustomRPManifest"
},
"type": "array"
}
}
},
"Resource": {
"description": "The resource definition.",
"properties": {
"id": {
"description": "Resource Id",
"readOnly": true,
"type": "string"
},
"location": {
"description": "Resource location",
"type": "string",
"x-ms-mutability": [
"read",
"create"
]
},
"name": {
"description": "Resource name",
"readOnly": true,
"type": "string"
},
"tags": {
"additionalProperties": {
"type": "string"
},
"description": "Resource tags",
"type": "object"
},
"type": {
"description": "Resource type",
"readOnly": true,
"type": "string"
}
},
"required": [
"location"
],
"x-ms-azure-resource": true
},
"ResourceProviderOperation": {
"description": "Supported operations of this resource provider.",
"properties": {
"display": {
"description": "Display metadata associated with the operation.",
"properties": {
"description": {
"description": "Description of this operation.",
"type": "string"
},
"operation": {
"description": "Type of operation: get, read, delete, etc.",
"type": "string"
},
"provider": {
"description": "Resource provider: Microsoft Custom Providers.",
"type": "string"
},
"resource": {
"description": "Resource on which the operation is performed.",
"type": "string"
}
}
},
"name": {
"description": "Operation name, in format of {provider}/{resource}/{operation}",
"type": "string"
}
},
"readOnly": true
},
"ResourceProviderOperationList": {
"description": "Results of the request to list operations.",
"properties": {
"nextLink": {
"description": "The URL to use for getting the next set of results.",
"type": "string"
},
"value": {
"description": "List of operations supported by this resource provider.",
"items": {
"$ref": "#/definitions/ResourceProviderOperation"
},
"type": "array"
}
},
"readOnly": true
},
"ResourceProvidersUpdate": {
"description": "custom resource provider update information.",
"properties": {
"tags": {
"additionalProperties": {
"type": "string"
},
"description": "Resource tags",
"type": "object"
}
}
}
}
}