{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "x-hasEquivalentPaths": true,
  "info": {
    "description": "ARM managed applications (appliances)",
    "title": "ManagedApplicationClient",
    "version": "2016-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-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Solutions/preview/2016-09-01-preview/managedapplications.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "resources-managedapplications",
    "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 use for this operation.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "SubscriptionIdParameter": {
      "description": "The ID of the target subscription.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/providers/Microsoft.Solutions/operations": {
      "get": {
        "description": "Lists all of the available Microsoft.Solutions REST API operations.",
        "operationId": "ListOperations",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded.",
            "schema": {
              "$ref": "#/definitions/OperationListResult"
            }
          }
        },
        "tags": [
          "Operations"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Solutions/appliances": {
      "get": {
        "description": "Gets all the appliances within a subscription.",
        "operationId": "Appliances_ListBySubscription",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns an array of appliances.",
            "schema": {
              "$ref": "#/definitions/ApplianceListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applianceDefinitions": {
      "get": {
        "description": "Lists the appliance definitions in a resource group.",
        "operationId": "ApplianceDefinitions_ListByResourceGroup",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns an array of appliance definitions.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinitionListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-examples": {
          "List appliance definitions": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myApplianceDef",
                      "identity": null,
                      "location": "East US 2",
                      "managedBy": null,
                      "name": "myApplianceDef",
                      "properties": {
                        "artifacts": [
                          {
                            "name": "CreateUiDefinition",
                            "type": "Custom",
                            "uri": "https://path/to/applianceCreateUiDefinition.json"
                          },
                          {
                            "name": "ApplianceResourceTemplate",
                            "type": "Template",
                            "uri": "https://path/to/mainTemplate.json"
                          }
                        ],
                        "authorizations": [
                          {
                            "principalId": "validprincipalguid",
                            "roleDefinitionId": "validroleguid"
                          }
                        ],
                        "description": "myApplianceDef description",
                        "displayName": "myApplianceDef",
                        "lockLevel": null,
                        "packageFileUri": "https://path/to/packagezipfile"
                      },
                      "resourceGroup": "rg",
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applianceDefinitions"
                    },
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myApplianceDef2",
                      "identity": null,
                      "location": "West US",
                      "managedBy": null,
                      "name": "myApplianceDef2",
                      "properties": {
                        "artifacts": [
                          {
                            "name": "CreateUiDefinition",
                            "type": "Custom",
                            "uri": "https://path/to/applianceCreateUiDefinition.json"
                          },
                          {
                            "name": "ApplianceResourceTemplate",
                            "type": "Template",
                            "uri": "https://path/to/mainTemplate.json"
                          }
                        ],
                        "authorizations": [
                          {
                            "principalId": "validprincipalguid",
                            "roleDefinitionId": "validroleguid"
                          }
                        ],
                        "description": "myApplianceDef2 description",
                        "displayName": "myApplianceDef2",
                        "lockLevel": null,
                        "packageFileUri": "https://path/to/packagezipfile"
                      },
                      "resourceGroup": "rg",
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applianceDefinitions"
                    }
                  ]
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applianceDefinitions/{applianceDefinitionName}": {
      "delete": {
        "description": "Deletes the appliance definition.",
        "operationId": "ApplianceDefinitions_Delete",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance definition to delete.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceDefinitionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "202": {
            "description": "Accepted - Returns this status until the asynchronous operation has completed."
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the appliance definition.",
        "operationId": "ApplianceDefinitions_Get",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance definition.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceDefinitionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the appliance definition.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "404": {
            "description": "Not Found"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-examples": {
          "Get appliance definition": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "applianceName": "myApplianceDef",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myApplianceDef",
                  "identity": null,
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myApplianceDef",
                  "properties": {
                    "artifacts": [
                      {
                        "name": "CreateUiDefinition",
                        "type": "Custom",
                        "uri": "https://path/to/applianceCreateUiDefinition.json"
                      },
                      {
                        "name": "ApplianceResourceTemplate",
                        "type": "Template",
                        "uri": "https://path/to/mainTemplate.json"
                      }
                    ],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "description": "myApplianceDef description",
                    "displayName": "myApplianceDef",
                    "lockLevel": null,
                    "packageFileUri": "https://path/to/packagezipfile"
                  },
                  "resourceGroup": "rg",
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applianceDefinitions"
                },
                "headers": {}
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates a new appliance definition.",
        "operationId": "ApplianceDefinitions_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance definition.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceDefinitionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update an appliance definition.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns information about the appliance definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "201": {
            "description": "Created - Returns information about the appliance definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-examples": {
          "Create or update appliance definition": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "applianceDefinitionName": "myApplianceDef",
              "parameters": {
                "location": "East US 2",
                "properties": {
                  "authorizations": [
                    {
                      "principalId": "validprincipalguid",
                      "roleDefinitionId": "validroleguid"
                    }
                  ],
                  "description": "myApplianceDef description",
                  "displayName": "myApplianceDef",
                  "lockLevel": "None",
                  "packageFileUri": "https://path/to/packagezipfile"
                }
              },
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myApplianceDef",
                  "identity": null,
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myApplianceDef",
                  "properties": {
                    "artifacts": [
                      {
                        "name": "CreateUiDefinition",
                        "type": "Custom",
                        "uri": "https://path/to/applianceCreateUiDefinition.json"
                      },
                      {
                        "name": "ApplianceResourceTemplate",
                        "type": "Template",
                        "uri": "https://path/to/mainTemplate.json"
                      }
                    ],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "description": "myApplianceDef description",
                    "displayName": "myApplianceDef",
                    "lockLevel": null,
                    "packageFileUri": "https://path/to/packagezipfile"
                  },
                  "resourceGroup": "rg",
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applianceDefinitions"
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/appliances": {
      "get": {
        "description": "Gets all the appliances within a resource group.",
        "operationId": "Appliances_ListByResourceGroup",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns an array of appliances.",
            "schema": {
              "$ref": "#/definitions/ApplianceListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-examples": {
          "Lists appliances": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/appliances/myAppliance",
                      "identity": null,
                      "kind": "ServiceCatalog",
                      "location": "East US 2",
                      "managedBy": null,
                      "name": "myAppliance",
                      "plan": null,
                      "properties": {
                        "applianceDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myAppDef",
                        "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                        "outputs": null,
                        "parameters": null,
                        "provisioningState": "Created",
                        "uiDefinitionUri": "https://path/to/applianceCreateUiDefinition.json"
                      },
                      "resourceGroup": "rg",
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/appliances"
                    },
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/appliances/myAppliance2",
                      "identity": null,
                      "kind": "ServiceCatalog",
                      "location": "West US",
                      "managedBy": null,
                      "name": "myAppliance2",
                      "plan": null,
                      "properties": {
                        "applianceDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myAppDef2",
                        "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                        "outputs": null,
                        "parameters": null,
                        "provisioningState": "Created",
                        "uiDefinitionUri": "https://path/to/applianceCreateUiDefinition.json"
                      },
                      "resourceGroup": "rg",
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/appliances"
                    }
                  ]
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/appliances/{applianceName}": {
      "delete": {
        "description": "Deletes the appliance.",
        "operationId": "Appliances_Delete",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted - Returns this status until the asynchronous operation has completed."
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the appliance.",
        "operationId": "Appliances_Get",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the appliance.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "404": {
            "description": "Not Found"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-examples": {
          "Get an appliance": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "applianceName": "myAppliance",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/appliances/myAppliance",
                  "identity": null,
                  "kind": "ServiceCatalog",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myAppliance",
                  "plan": null,
                  "properties": {
                    "applianceDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myAppDef",
                    "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                    "outputs": null,
                    "parameters": null,
                    "provisioningState": "Created",
                    "uiDefinitionUri": "https://path/to/applianceCreateUiDefinition.json"
                  },
                  "resourceGroup": "rg",
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/appliances"
                },
                "headers": {}
              }
            }
          }
        }
      },
      "patch": {
        "description": "Updates an existing appliance. The only value that can be updated via PATCH currently is the tags.",
        "operationId": "Appliances_Update",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to update an existing appliance.",
            "in": "body",
            "name": "parameters",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ]
      },
      "put": {
        "description": "Creates a new appliance.",
        "operationId": "Appliances_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group. The name is case insensitive.",
            "in": "path",
            "maxLength": 90,
            "minLength": 1,
            "name": "resourceGroupName",
            "pattern": "^[-\\w\\._\\(\\)]+$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the appliance.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applianceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update an appliance.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "201": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-examples": {
          "Create or update appliance": {
            "parameters": {
              "api-version": "2016-09-01-preview",
              "applianceName": "myAppliance",
              "parameters": {
                "kind": "ServiceCatalog",
                "location": "East US 2",
                "name": "myAppliance",
                "properties": {
                  "applianceDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myAppDef",
                  "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG"
                }
              },
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/appliances/myAppliance",
                  "identity": null,
                  "kind": "ServiceCatalog",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myAppliance",
                  "plan": null,
                  "properties": {
                    "applianceDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applianceDefinitions/myAppDef",
                    "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                    "outputs": null,
                    "parameters": null,
                    "provisioningState": "Created",
                    "uiDefinitionUri": "https://path/to/applianceCreateUiDefinition.json"
                  },
                  "resourceGroup": "rg",
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/appliances"
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/{applianceDefinitionId}": {
      "delete": {
        "description": "Deletes the appliance definition.",
        "operationId": "ApplianceDefinitions_DeleteById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance definition, including the appliance name and the appliance definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applianceDefinitions/{applianceDefinition-name}",
            "in": "path",
            "name": "applianceDefinitionId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "202": {
            "description": "Accepted - Returns this status until the asynchronous operation has completed."
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the appliance definition.",
        "operationId": "ApplianceDefinitions_GetById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance definition, including the appliance name and the appliance definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applianceDefinitions/{applianceDefinition-name}",
            "in": "path",
            "name": "applianceDefinitionId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the appliance definition.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "404": {
            "description": "Not Found"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ]
      },
      "put": {
        "description": "Creates a new appliance definition.",
        "operationId": "ApplianceDefinitions_CreateOrUpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance definition, including the appliance name and the appliance definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applianceDefinitions/{applianceDefinition-name}",
            "in": "path",
            "name": "applianceDefinitionId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to the create or update an appliance definition.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns information about the appliance definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "201": {
            "description": "Created - Returns information about the appliance definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplianceDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplianceDefinitions"
        ],
        "x-ms-long-running-operation": true
      }
    },
    "/{applianceId}": {
      "delete": {
        "description": "Deletes the appliance.",
        "operationId": "Appliances_DeleteById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance, including the appliance name and the appliance resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/appliances/{appliance-name}",
            "in": "path",
            "name": "applianceId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted - Returns this status until the asynchronous operation has completed."
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the appliance.",
        "operationId": "Appliances_GetById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance, including the appliance name and the appliance resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/appliances/{appliance-name}",
            "in": "path",
            "name": "applianceId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the appliance.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "404": {
            "description": "Not Found"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ]
      },
      "patch": {
        "description": "Updates an existing appliance. The only value that can be updated via PATCH currently is the tags.",
        "operationId": "Appliances_UpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance, including the appliance name and the appliance resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/appliances/{appliance-name}",
            "in": "path",
            "name": "applianceId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to update an existing appliance.",
            "in": "body",
            "name": "parameters",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ]
      },
      "put": {
        "description": "Creates a new appliance.",
        "operationId": "Appliances_CreateOrUpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the appliance, including the appliance name and the appliance resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/appliances/{appliance-name}",
            "in": "path",
            "name": "applianceId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to the create or update an appliance.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "201": {
            "description": "Created - Returns information about the appliance, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Appliance"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Appliances"
        ],
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "Appliance": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about appliance.",
      "properties": {
        "kind": {
          "description": "The kind of the appliance. Allowed values are MarketPlace and ServiceCatalog.",
          "pattern": "^[-\\w\\._,\\(\\)]+$",
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/Plan",
          "description": "The plan information."
        },
        "properties": {
          "$ref": "#/definitions/ApplianceProperties",
          "description": "The appliance properties.",
          "x-ms-client-flatten": true
        }
      }
    },
    "ApplianceArtifact": {
      "description": "Appliance artifact.",
      "properties": {
        "name": {
          "description": "The appliance artifact name.",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/ApplianceArtifactType",
          "description": "The appliance artifact type."
        },
        "uri": {
          "description": "The appliance artifact blob uri.",
          "type": "string"
        }
      }
    },
    "ApplianceArtifactType": {
      "description": "The appliance artifact type.",
      "enum": [
        "Template",
        "Custom"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ApplianceArtifactType"
      }
    },
    "ApplianceDefinition": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about appliance definition.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ApplianceDefinitionProperties",
          "description": "The appliance definition properties.",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ]
    },
    "ApplianceDefinitionListResult": {
      "description": "List of appliance definitions.",
      "properties": {
        "nextLink": {
          "description": "The URL to use for getting the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The array of appliance definitions.",
          "items": {
            "$ref": "#/definitions/ApplianceDefinition"
          },
          "type": "array"
        }
      }
    },
    "ApplianceDefinitionProperties": {
      "description": "The appliance definition properties.",
      "properties": {
        "artifacts": {
          "description": "The collection of appliance artifacts. The portal will use the files specified as artifacts to construct the user experience of creating an appliance from an appliance definition.",
          "items": {
            "$ref": "#/definitions/ApplianceArtifact"
          },
          "type": "array"
        },
        "authorizations": {
          "description": "The appliance provider authorizations.",
          "items": {
            "$ref": "#/definitions/ApplianceProviderAuthorization"
          },
          "type": "array"
        },
        "description": {
          "description": "The appliance definition description.",
          "type": "string"
        },
        "displayName": {
          "description": "The appliance definition display name.",
          "type": "string"
        },
        "lockLevel": {
          "$ref": "#/definitions/ApplianceLockLevel",
          "description": "The appliance lock level."
        },
        "packageFileUri": {
          "description": "The appliance definition package file Uri.",
          "type": "string"
        }
      },
      "required": [
        "lockLevel",
        "authorizations",
        "packageFileUri"
      ]
    },
    "ApplianceListResult": {
      "description": "List of appliances.",
      "properties": {
        "nextLink": {
          "description": "The URL to use for getting the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The array of appliances.",
          "items": {
            "$ref": "#/definitions/Appliance"
          },
          "type": "array"
        }
      }
    },
    "ApplianceLockLevel": {
      "description": "The appliance lock level.",
      "enum": [
        "CanNotDelete",
        "ReadOnly",
        "None"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ApplianceLockLevel"
      }
    },
    "AppliancePatchable": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about appliance.",
      "properties": {
        "kind": {
          "description": "The kind of the appliance. Allowed values are MarketPlace and ServiceCatalog.",
          "pattern": "^[-\\w\\._,\\(\\)]+$",
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/PlanPatchable",
          "description": "The plan information."
        },
        "properties": {
          "$ref": "#/definitions/AppliancePropertiesPatchable",
          "description": "The appliance properties.",
          "x-ms-client-flatten": true
        }
      }
    },
    "ApplianceProperties": {
      "description": "The appliance properties.",
      "properties": {
        "applianceDefinitionId": {
          "description": "The fully qualified path of appliance definition Id.",
          "type": "string"
        },
        "managedResourceGroupId": {
          "description": "The managed resource group Id.",
          "type": "string"
        },
        "outputs": {
          "description": "Name and value pairs that define the appliance outputs.",
          "readOnly": true,
          "type": "object"
        },
        "parameters": {
          "description": "Name and value pairs that define the appliance parameters. It can be a JObject or a well formed JSON string.",
          "type": "object"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The appliance provisioning state.",
          "readOnly": true
        },
        "uiDefinitionUri": {
          "description": "The blob URI where the UI definition file is located.",
          "type": "string"
        }
      },
      "required": [
        "managedResourceGroupId"
      ]
    },
    "AppliancePropertiesPatchable": {
      "description": "The appliance properties.",
      "properties": {
        "applianceDefinitionId": {
          "description": "The fully qualified path of appliance definition Id.",
          "type": "string"
        },
        "managedResourceGroupId": {
          "description": "The managed resource group Id.",
          "type": "string"
        },
        "outputs": {
          "description": "Name and value pairs that define the appliance outputs.",
          "readOnly": true,
          "type": "object"
        },
        "parameters": {
          "description": "Name and value pairs that define the appliance parameters. It can be a JObject or a well formed JSON string.",
          "type": "object"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The appliance provisioning state.",
          "readOnly": true
        },
        "uiDefinitionUri": {
          "description": "The blob URI where the UI definition file is located.",
          "type": "string"
        }
      }
    },
    "ApplianceProviderAuthorization": {
      "description": "The appliance provider authorization.",
      "properties": {
        "principalId": {
          "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the appliance resources.",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the appliance's container resource group. This role definition cannot have permission to delete the resource group.",
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "roleDefinitionId"
      ]
    },
    "ErrorResponse": {
      "description": "Error response indicates ARM appliance is not able to process the incoming request. The reason is provided in the error message.",
      "properties": {
        "errorCode": {
          "description": "Error code.",
          "type": "string"
        },
        "errorMessage": {
          "description": "Error message indicating why the operation failed.",
          "type": "string"
        },
        "httpStatus": {
          "description": "Http status code.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenericResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Resource information.",
      "properties": {
        "identity": {
          "$ref": "#/definitions/Identity",
          "description": "The identity of the resource."
        },
        "managedBy": {
          "description": "ID of the resource that manages this resource.",
          "type": "string"
        },
        "sku": {
          "$ref": "#/definitions/Sku",
          "description": "The SKU of the resource."
        }
      }
    },
    "Identity": {
      "description": "Identity for the resource.",
      "properties": {
        "principalId": {
          "description": "The principal ID of resource identity.",
          "readOnly": true,
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant ID of resource.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "The identity type.",
          "enum": [
            "SystemAssigned"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ResourceIdentityType"
          }
        }
      }
    },
    "Operation": {
      "description": "Microsoft.Solutions operation",
      "properties": {
        "display": {
          "description": "The object that represents the operation.",
          "properties": {
            "operation": {
              "description": "Operation type: Read, write, delete, etc.",
              "type": "string"
            },
            "provider": {
              "description": "Service provider: Microsoft.Solutions",
              "type": "string"
            },
            "resource": {
              "description": "Resource on which the operation is performed: Profile, endpoint, etc.",
              "type": "string"
            }
          }
        },
        "name": {
          "description": "Operation name: {provider}/{resource}/{operation}",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OperationListResult": {
      "description": "Result of the request to list Microsoft.Solutions operations. It contains a list of operations and a URL link to get the next set of results.",
      "properties": {
        "nextLink": {
          "description": "URL to get the next set of operation list results if there are any.",
          "type": "string"
        },
        "value": {
          "description": "List of Microsoft.Solutions operations.",
          "items": {
            "$ref": "#/definitions/Operation"
          },
          "type": "array"
        }
      }
    },
    "Plan": {
      "description": "Plan for the appliance.",
      "properties": {
        "name": {
          "description": "The plan name.",
          "type": "string"
        },
        "product": {
          "description": "The product code.",
          "type": "string"
        },
        "promotionCode": {
          "description": "The promotion code.",
          "type": "string"
        },
        "publisher": {
          "description": "The publisher ID.",
          "type": "string"
        },
        "version": {
          "description": "The plan's version.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "product",
        "version"
      ]
    },
    "PlanPatchable": {
      "description": "Plan for the appliance.",
      "properties": {
        "name": {
          "description": "The plan name.",
          "type": "string"
        },
        "product": {
          "description": "The product code.",
          "type": "string"
        },
        "promotionCode": {
          "description": "The promotion code.",
          "type": "string"
        },
        "publisher": {
          "description": "The publisher ID.",
          "type": "string"
        },
        "version": {
          "description": "The plan's version.",
          "type": "string"
        }
      }
    },
    "ProvisioningState": {
      "description": "Provisioning status of the appliance.",
      "enum": [
        "Accepted",
        "Running",
        "Ready",
        "Creating",
        "Created",
        "Deleting",
        "Deleted",
        "Canceled",
        "Failed",
        "Succeeded",
        "Updating"
      ],
      "readOnly": true,
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ProvisioningState"
      }
    },
    "Resource": {
      "description": "Resource information.",
      "properties": {
        "id": {
          "description": "Resource ID",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "Resource location",
          "type": "string"
        },
        "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"
        }
      },
      "x-ms-azure-resource": true
    },
    "Sku": {
      "description": "SKU for the resource.",
      "properties": {
        "capacity": {
          "description": "The SKU capacity.",
          "format": "int32",
          "type": "integer"
        },
        "family": {
          "description": "The SKU family.",
          "type": "string"
        },
        "model": {
          "description": "The SKU model.",
          "type": "string"
        },
        "name": {
          "description": "The SKU name.",
          "type": "string"
        },
        "size": {
          "description": "The SKU size.",
          "type": "string"
        },
        "tier": {
          "description": "The SKU tier.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    }
  }
}