{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "ARM applications",
    "title": "ApplicationClient",
    "version": "2019-07-01",
    "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/stable/2019-07-01/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-examples": {
          "List Solutions operations": {
            "parameters": {
              "api-version": "2019-07-01"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "operation": "Read",
                        "provider": "Microsoft.ResourceProvider",
                        "resource": "Resource1"
                      },
                      "name": "SolutionsOpeartion1"
                    },
                    {
                      "display": {
                        "operation": "Write",
                        "provider": "Microsoft.ResourceProvider",
                        "resource": "Resource2"
                      },
                      "name": "SolutionssOpeartion2"
                    }
                  ]
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Solutions/applications": {
      "get": {
        "description": "Gets all the applications within a subscription.",
        "operationId": "Applications_ListBySubscription",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns an array of applications.",
            "schema": {
              "$ref": "#/definitions/ApplicationListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Solutions/jitRequests": {
      "get": {
        "description": "Retrieves all JIT requests within the subscription.",
        "operationId": "jitRequests_ListBySubscription",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns an array of JIT requests.",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinitionListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions": {
      "get": {
        "description": "Lists the managed application definitions in a resource group.",
        "operationId": "ApplicationDefinitions_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 managed application definitions.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinitionListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplicationDefinitions"
        ],
        "x-ms-examples": {
          "List managed application definitions": {
            "parameters": {
              "api-version": "2019-07-01",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef",
                      "location": "East US 2",
                      "managedBy": null,
                      "name": "myManagedApplicationDef",
                      "properties": {
                        "artifacts": [
                          {
                            "name": "CreateUiDefinition",
                            "type": "Custom",
                            "uri": "https://path/to/managedApplicationCreateUiDefinition.json"
                          },
                          {
                            "name": "ApplicationResourceTemplate",
                            "type": "Template",
                            "uri": "https://path/to/mainTemplate.json"
                          }
                        ],
                        "authorizations": [
                          {
                            "principalId": "validprincipalguid",
                            "roleDefinitionId": "validroleguid"
                          }
                        ],
                        "description": "myManagedApplicationDef description",
                        "displayName": "myManagedApplicationDef",
                        "lockLevel": "None",
                        "packageFileUri": "https://path/to/packagezipfile"
                      },
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applicationDefinitions"
                    },
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef2",
                      "location": "West US",
                      "managedBy": null,
                      "name": "myManagedApplicationDef2",
                      "properties": {
                        "artifacts": [
                          {
                            "name": "CreateUiDefinition",
                            "type": "Custom",
                            "uri": "https://path/to/managedApplicationCreateUiDefinition.json"
                          },
                          {
                            "name": "ApplicationResourceTemplate",
                            "type": "Template",
                            "uri": "https://path/to/mainTemplate.json"
                          }
                        ],
                        "authorizations": [
                          {
                            "principalId": "validprincipalguid",
                            "roleDefinitionId": "validroleguid"
                          }
                        ],
                        "description": "myManagedApplicationDef2 description",
                        "displayName": "myManagedApplicationDef2",
                        "lockLevel": "None",
                        "packageFileUri": "https://path/to/packagezipfile"
                      },
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applicationDefinitions"
                    }
                  ]
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}": {
      "delete": {
        "description": "Deletes the managed application definition.",
        "operationId": "ApplicationDefinitions_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 managed application definition to delete.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationDefinitionName",
            "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": [
          "ApplicationDefinitions"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the managed application definition.",
        "operationId": "ApplicationDefinitions_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 managed application definition.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationDefinitionName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the managed application definition.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplicationDefinitions"
        ],
        "x-ms-examples": {
          "Get managed application definition": {
            "parameters": {
              "api-version": "2019-07-01",
              "applicationDefinitionName": "myManagedApplicationDef",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplicationDef",
                  "properties": {
                    "artifacts": [
                      {
                        "name": "CreateUiDefinition",
                        "type": "Custom",
                        "uri": "https://path/to/managedApplicationCreateUiDefinition.json"
                      },
                      {
                        "name": "ApplicationResourceTemplate",
                        "type": "Template",
                        "uri": "https://path/to/mainTemplate.json"
                      }
                    ],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "deploymentPolicy": null,
                    "description": "myManagedApplicationDef description",
                    "displayName": "myManagedApplicationDef",
                    "lockLevel": "None",
                    "lockingPolicy": null,
                    "managementPolicy": null,
                    "notificationPolicy": null,
                    "packageFileUri": "https://path/to/packagezipfile",
                    "policies": []
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applicationDefinitions"
                },
                "headers": {}
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates a new managed application definition.",
        "operationId": "ApplicationDefinitions_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 managed application definition.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationDefinitionName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update an managed application definition.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns information about the managed application definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "201": {
            "description": "Created - Returns information about the managed application definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplicationDefinitions"
        ],
        "x-ms-examples": {
          "Create or update managed application definition": {
            "parameters": {
              "api-version": "2019-07-01",
              "applicationDefinitionName": "myManagedApplicationDef",
              "parameters": {
                "location": "East US 2",
                "properties": {
                  "authorizations": [
                    {
                      "principalId": "validprincipalguid",
                      "roleDefinitionId": "validroleguid"
                    }
                  ],
                  "description": "myManagedApplicationDef description",
                  "displayName": "myManagedApplicationDef",
                  "lockLevel": "None",
                  "packageFileUri": "https://path/to/packagezipfile"
                }
              },
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplicationDef",
                  "properties": {
                    "artifacts": [
                      {
                        "name": "CreateUiDefinition",
                        "type": "Custom",
                        "uri": "https://path/to/managedApplicationCreateUiDefinition.json"
                      },
                      {
                        "name": "ApplicationResourceTemplate",
                        "type": "Template",
                        "uri": "https://path/to/mainTemplate.json"
                      }
                    ],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "description": "myManagedApplicationDef description",
                    "displayName": "myManagedApplicationDef",
                    "lockLevel": "None",
                    "packageFileUri": "https://path/to/packagezipfile"
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applicationDefinitions"
                },
                "headers": {}
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplicationDef",
                  "properties": {
                    "artifacts": [
                      {
                        "name": "CreateUiDefinition",
                        "type": "Custom",
                        "uri": "https://path/to/managedApplicationCreateUiDefinition.json"
                      },
                      {
                        "name": "ApplicationResourceTemplate",
                        "type": "Template",
                        "uri": "https://path/to/mainTemplate.json"
                      }
                    ],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "description": "myManagedApplicationDef description",
                    "displayName": "myManagedApplicationDef",
                    "lockLevel": "None",
                    "packageFileUri": "https://path/to/packagezipfile"
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applicationDefinitions"
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applications": {
      "get": {
        "description": "Gets all the applications within a resource group.",
        "operationId": "Applications_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 applications.",
            "schema": {
              "$ref": "#/definitions/ApplicationListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-examples": {
          "Lists applications": {
            "parameters": {
              "api-version": "2019-07-01",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/myManagedApplication",
                      "identity": null,
                      "kind": "ServiceCatalog",
                      "location": "East US 2",
                      "managedBy": null,
                      "name": "myManagedApplication",
                      "plan": null,
                      "properties": {
                        "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef",
                        "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                        "outputs": null,
                        "parameters": null,
                        "provisioningState": "Created"
                      },
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applications"
                    },
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/myManagedApplication2",
                      "identity": null,
                      "kind": "ServiceCatalog",
                      "location": "West US",
                      "managedBy": null,
                      "name": "myManagedApplication2",
                      "plan": null,
                      "properties": {
                        "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef2",
                        "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                        "outputs": null,
                        "parameters": null,
                        "provisioningState": "Created"
                      },
                      "sku": null,
                      "tags": null,
                      "type": "Microsoft.Solutions/applications"
                    }
                  ]
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applications/{applicationName}": {
      "delete": {
        "description": "Deletes the managed application.",
        "operationId": "Applications_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 managed application.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationName",
            "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": [
          "Applications"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the managed application.",
        "operationId": "Applications_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 managed application.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the managed application.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-examples": {
          "Get a managed application": {
            "parameters": {
              "api-version": "2019-07-01",
              "applicationName": "myManagedApplication",
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/myManagedApplication",
                  "identity": null,
                  "kind": "ServiceCatalog",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplication",
                  "plan": null,
                  "properties": {
                    "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef",
                    "artifacts": [],
                    "authorizations": [
                      {
                        "principalId": "validprincipalguid",
                        "roleDefinitionId": "validroleguid"
                      }
                    ],
                    "billingDetails": null,
                    "createdBy": {
                      "applicationId": "ClientApplicationId",
                      "oid": "ClientOid",
                      "puid": "ClientPuid"
                    },
                    "customerSupport": null,
                    "jitAccessPolicy": null,
                    "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                    "managementMode": "Managed",
                    "outputs": null,
                    "parameters": null,
                    "provisioningState": "Created",
                    "publisherTenantId": null,
                    "supportUrls": null,
                    "updatedBy": {
                      "applicationId": "ClientApplicationId",
                      "oid": "ClientOid",
                      "puid": "ClientPuid"
                    }
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applications"
                },
                "headers": {}
              }
            }
          }
        }
      },
      "patch": {
        "description": "Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.",
        "operationId": "Applications_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 managed application.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to update an existing managed application.",
            "in": "body",
            "name": "parameters",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ]
      },
      "put": {
        "description": "Creates a new managed application.",
        "operationId": "Applications_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 managed application.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the create or update a managed application.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "201": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-examples": {
          "Create or update managed application": {
            "parameters": {
              "api-version": "2019-07-01",
              "applicationName": "myManagedApplication",
              "parameters": {
                "kind": "ServiceCatalog",
                "location": "East US 2",
                "properties": {
                  "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef",
                  "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG"
                }
              },
              "resourceGroupName": "rg",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/myManagedApplication",
                  "identity": null,
                  "kind": "ServiceCatalog",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplication",
                  "plan": null,
                  "properties": {
                    "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef",
                    "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                    "outputs": null,
                    "parameters": null,
                    "provisioningState": "Created"
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applications"
                },
                "headers": {}
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/myManagedApplication",
                  "identity": null,
                  "kind": "ServiceCatalog",
                  "location": "East US 2",
                  "managedBy": null,
                  "name": "myManagedApplication",
                  "plan": null,
                  "properties": {
                    "applicationDefinitionId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef",
                    "managedResourceGroupId": "/subscriptions/subid/resourceGroups/myManagedRG",
                    "outputs": null,
                    "parameters": null,
                    "provisioningState": "Created"
                  },
                  "sku": null,
                  "tags": null,
                  "type": "Microsoft.Solutions/applications"
                },
                "headers": {}
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applications/{applicationName}/refreshPermissions": {
      "post": {
        "description": "Refresh Permissions for application.",
        "operationId": "Applications_RefreshPermissions",
        "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 managed application.",
            "in": "path",
            "maxLength": 64,
            "minLength": 3,
            "name": "applicationName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted - Returns this status until the asynchronous operation has completed."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/jitRequests": {
      "get": {
        "description": "Retrieves all JIT requests within the resource group.",
        "operationId": "jitRequests_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 JIT requests.",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinitionListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/jitRequests/{jitRequestName}": {
      "delete": {
        "description": "Deletes the JIT request.",
        "operationId": "jitRequests_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 JIT request.",
            "in": "path",
            "name": "jitRequestName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ]
      },
      "get": {
        "description": "Gets the JIT request.",
        "operationId": "JitRequests_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 JIT request.",
            "in": "path",
            "name": "jitRequestName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the JIT request",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ]
      },
      "patch": {
        "description": "Updates the JIT request.",
        "operationId": "JitRequests_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 JIT request.",
            "in": "path",
            "name": "jitRequestName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the update JIT request.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JitRequestPatchable"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Ok - Returns information about the JIT request.",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ]
      },
      "put": {
        "description": "Creates or updates the JIT request.",
        "operationId": "jitRequests_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 JIT request.",
            "in": "path",
            "name": "jitRequestName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the update JIT request.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JitRequestDefinition"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Ok - Returns information about existing JIT request.",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinition"
            }
          },
          "201": {
            "description": "Created - Returns information about the JIT request.",
            "schema": {
              "$ref": "#/definitions/JitRequestDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "JitRequests"
        ],
        "x-ms-long-running-operation": true
      }
    },
    "/{applicationId}": {
      "delete": {
        "description": "Deletes the managed application.",
        "operationId": "Applications_DeleteById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}",
            "in": "path",
            "name": "applicationId",
            "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": [
          "Applications"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the managed application.",
        "operationId": "Applications_GetById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}",
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the managed application.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ]
      },
      "patch": {
        "description": "Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.",
        "operationId": "Applications_UpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}",
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to update an existing managed application.",
            "in": "body",
            "name": "parameters",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ]
      },
      "put": {
        "description": "Creates a new managed application.",
        "operationId": "Applications_CreateOrUpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}",
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to the create or update a managed application.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "201": {
            "description": "Created - Returns information about the managed application, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "Applications"
        ],
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "Application": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about managed application.",
      "properties": {
        "identity": {
          "$ref": "#/definitions/Identity",
          "description": "The identity of the resource."
        },
        "kind": {
          "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog.",
          "pattern": "^[-\\w\\._,\\(\\)]+$",
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/Plan",
          "description": "The plan information."
        },
        "properties": {
          "$ref": "#/definitions/ApplicationProperties",
          "description": "The managed application properties.",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties",
        "kind"
      ]
    },
    "ApplicationArtifact": {
      "description": "Managed application artifact.",
      "properties": {
        "name": {
          "$ref": "#/definitions/ApplicationArtifactName",
          "description": "The managed application artifact name."
        },
        "type": {
          "$ref": "#/definitions/ApplicationArtifactType",
          "description": "The managed application artifact type."
        },
        "uri": {
          "description": "The managed application artifact blob uri.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "uri"
      ]
    },
    "ApplicationArtifactName": {
      "description": "The managed application artifact name.",
      "enum": [
        "NotSpecified",
        "ViewDefinition",
        "Authorizations",
        "CustomRoleDefinition"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ApplicationArtifactName"
      }
    },
    "ApplicationArtifactType": {
      "description": "The managed application artifact type.",
      "enum": [
        "NotSpecified",
        "Template",
        "Custom"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ApplicationArtifactType"
      }
    },
    "ApplicationAuthorization": {
      "description": "The managed application 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 managed application 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 managed application's container resource group. This role definition cannot have permission to delete the resource group.",
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "roleDefinitionId"
      ]
    },
    "ApplicationBillingDetailsDefinition": {
      "description": "Managed application billing details definition.",
      "properties": {
        "resourceUsageId": {
          "description": "The managed application resource usage Id.",
          "type": "string"
        }
      }
    },
    "ApplicationClientDetails": {
      "description": "The application client details to track the entity creating/updating the managed app resource.",
      "properties": {
        "applicationId": {
          "description": "The client application Id.",
          "type": "string"
        },
        "oid": {
          "description": "The client Oid.",
          "type": "string"
        },
        "puid": {
          "description": "The client Puid",
          "type": "string"
        }
      },
      "readOnly": true
    },
    "ApplicationDefinition": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about managed application definition.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ApplicationDefinitionProperties",
          "description": "The managed application definition properties.",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ]
    },
    "ApplicationDefinitionArtifact": {
      "description": "Application definition artifact.",
      "properties": {
        "name": {
          "$ref": "#/definitions/ApplicationDefinitionArtifactName",
          "description": "The managed application definition artifact name."
        },
        "type": {
          "$ref": "#/definitions/ApplicationArtifactType",
          "description": "The managed application definition artifact type."
        },
        "uri": {
          "description": "The managed application definition artifact blob uri.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "uri"
      ]
    },
    "ApplicationDefinitionArtifactName": {
      "description": "The managed application artifact name.",
      "enum": [
        "NotSpecified",
        "ApplicationResourceTemplate",
        "CreateUiDefinition",
        "MainTemplateParameters"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ApplicationDefinitionArtifactName"
      }
    },
    "ApplicationDefinitionListResult": {
      "description": "List of managed application definitions.",
      "properties": {
        "nextLink": {
          "description": "The URL to use for getting the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The array of managed application definitions.",
          "items": {
            "$ref": "#/definitions/ApplicationDefinition"
          },
          "type": "array"
        }
      }
    },
    "ApplicationDefinitionProperties": {
      "description": "The managed application definition properties.",
      "properties": {
        "artifacts": {
          "description": "The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition.",
          "items": {
            "$ref": "#/definitions/ApplicationDefinitionArtifact"
          },
          "type": "array"
        },
        "authorizations": {
          "description": "The managed application provider authorizations.",
          "items": {
            "$ref": "#/definitions/ApplicationAuthorization"
          },
          "type": "array"
        },
        "createUiDefinition": {
          "description": "The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.",
          "type": "object"
        },
        "deploymentPolicy": {
          "$ref": "#/definitions/ApplicationDeploymentPolicy",
          "description": "The managed application deployment policy."
        },
        "description": {
          "description": "The managed application definition description.",
          "type": "string"
        },
        "displayName": {
          "description": "The managed application definition display name.",
          "type": "string"
        },
        "isEnabled": {
          "description": "A value indicating whether the package is enabled or not.",
          "type": "boolean"
        },
        "lockLevel": {
          "$ref": "#/definitions/ApplicationLockLevel",
          "description": "The managed application lock level."
        },
        "lockingPolicy": {
          "$ref": "#/definitions/ApplicationPackageLockingPolicyDefinition",
          "description": "The managed application locking policy."
        },
        "mainTemplate": {
          "description": "The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string.",
          "type": "object"
        },
        "managementPolicy": {
          "$ref": "#/definitions/ApplicationManagementPolicy",
          "description": "The managed application management policy that determines publisher's access to the managed resource group."
        },
        "notificationPolicy": {
          "$ref": "#/definitions/ApplicationNotificationPolicy",
          "description": "The managed application notification policy."
        },
        "packageFileUri": {
          "description": "The managed application definition package file Uri. Use this element",
          "type": "string"
        },
        "policies": {
          "description": "The managed application provider policies.",
          "items": {
            "$ref": "#/definitions/ApplicationPolicy"
          },
          "type": "array"
        }
      },
      "required": [
        "lockLevel"
      ]
    },
    "ApplicationDeploymentPolicy": {
      "description": "Managed application deployment policy.",
      "properties": {
        "deploymentMode": {
          "$ref": "#/definitions/DeploymentMode",
          "description": "The managed application deployment mode."
        }
      },
      "required": [
        "deploymentMode"
      ]
    },
    "ApplicationJitAccessPolicy": {
      "description": "Managed application Jit access policy.",
      "properties": {
        "jitAccessEnabled": {
          "description": "Whether the JIT access is enabled.",
          "type": "boolean"
        },
        "jitApprovalMode": {
          "$ref": "#/definitions/JitApprovalMode",
          "description": "JIT approval mode."
        },
        "jitApprovers": {
          "description": "The JIT approvers",
          "items": {
            "$ref": "#/definitions/JitApproverDefinition"
          },
          "type": "array"
        },
        "maximumJitAccessDuration": {
          "description": "The maximum duration JIT access is granted. This is an ISO8601 time period value.",
          "type": "string"
        }
      },
      "required": [
        "jitAccessEnabled"
      ]
    },
    "ApplicationListResult": {
      "description": "List of managed applications.",
      "properties": {
        "nextLink": {
          "description": "The URL to use for getting the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The array of managed applications.",
          "items": {
            "$ref": "#/definitions/Application"
          },
          "type": "array"
        }
      }
    },
    "ApplicationLockLevel": {
      "description": "The managed application lock level.",
      "enum": [
        "CanNotDelete",
        "ReadOnly",
        "None"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ApplicationLockLevel"
      }
    },
    "ApplicationManagementMode": {
      "description": "The management mode.",
      "enum": [
        "NotSpecified",
        "Unmanaged",
        "Managed"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ApplicationManagementMode"
      }
    },
    "ApplicationManagementPolicy": {
      "description": "Managed application management policy.",
      "properties": {
        "mode": {
          "$ref": "#/definitions/ApplicationManagementMode",
          "description": "The managed application management mode."
        }
      }
    },
    "ApplicationNotificationEndpoint": {
      "description": "Managed application notification endpoint.",
      "properties": {
        "uri": {
          "description": "The managed application notification endpoint uri.",
          "type": "string"
        }
      },
      "required": [
        "uri"
      ]
    },
    "ApplicationNotificationPolicy": {
      "description": "Managed application notification policy.",
      "properties": {
        "notificationEndpoints": {
          "description": "The managed application notification endpoint.",
          "items": {
            "$ref": "#/definitions/ApplicationNotificationEndpoint"
          },
          "type": "array"
        }
      },
      "required": [
        "notificationEndpoints"
      ]
    },
    "ApplicationPackageContact": {
      "description": "The application package contact information.",
      "properties": {
        "contactName": {
          "description": "The contact name.",
          "type": "string"
        },
        "email": {
          "description": "The contact email.",
          "type": "string"
        },
        "phone": {
          "description": "The contact phone number.",
          "type": "string"
        }
      },
      "required": [
        "email",
        "phone"
      ]
    },
    "ApplicationPackageLockingPolicyDefinition": {
      "description": "Managed application locking policy.",
      "properties": {
        "allowedActions": {
          "description": "The deny assignment excluded actions.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "ApplicationPackageSupportUrls": {
      "description": "The appliance package support URLs.",
      "properties": {
        "governmentCloud": {
          "description": "The government cloud support URL.",
          "type": "string"
        },
        "publicAzure": {
          "description": "The public azure support URL.",
          "type": "string"
        }
      }
    },
    "ApplicationPatchable": {
      "allOf": [
        {
          "$ref": "#/definitions/GenericResource"
        }
      ],
      "description": "Information about managed application.",
      "properties": {
        "identity": {
          "$ref": "#/definitions/Identity",
          "description": "The identity of the resource."
        },
        "kind": {
          "description": "The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog.",
          "pattern": "^[-\\w\\._,\\(\\)]+$",
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/PlanPatchable",
          "description": "The plan information."
        },
        "properties": {
          "$ref": "#/definitions/ApplicationPropertiesPatchable",
          "description": "The managed application properties.",
          "x-ms-client-flatten": true
        }
      }
    },
    "ApplicationPolicy": {
      "description": "Managed application policy.",
      "properties": {
        "name": {
          "description": "The policy name",
          "type": "string"
        },
        "parameters": {
          "description": "The policy parameters.",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The policy definition Id.",
          "type": "string"
        }
      }
    },
    "ApplicationProperties": {
      "description": "The managed application properties.",
      "properties": {
        "applicationDefinitionId": {
          "description": "The fully qualified path of managed application definition Id.",
          "type": "string"
        },
        "artifacts": {
          "description": "The collection of managed application artifacts.",
          "items": {
            "$ref": "#/definitions/ApplicationArtifact"
          },
          "readOnly": true,
          "type": "array"
        },
        "authorizations": {
          "description": "The  read-only authorizations property that is retrieved from the application package.",
          "items": {
            "$ref": "#/definitions/ApplicationAuthorization"
          },
          "readOnly": true,
          "type": "array"
        },
        "billingDetails": {
          "$ref": "#/definitions/ApplicationBillingDetailsDefinition",
          "description": "The managed application billing details.",
          "readOnly": true
        },
        "createdBy": {
          "$ref": "#/definitions/ApplicationClientDetails",
          "description": "The client entity that created the JIT request.",
          "readOnly": true
        },
        "customerSupport": {
          "$ref": "#/definitions/ApplicationPackageContact",
          "description": "The read-only customer support property that is retrieved from the application package.",
          "readOnly": true
        },
        "jitAccessPolicy": {
          "$ref": "#/definitions/ApplicationJitAccessPolicy",
          "description": "The managed application Jit access policy."
        },
        "managedResourceGroupId": {
          "description": "The managed resource group Id.",
          "type": "string"
        },
        "managementMode": {
          "$ref": "#/definitions/ApplicationManagementMode",
          "description": "The managed application management mode.",
          "readOnly": true
        },
        "outputs": {
          "description": "Name and value pairs that define the managed application outputs.",
          "readOnly": true,
          "type": "object"
        },
        "parameters": {
          "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string.",
          "type": "object"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The managed application provisioning state.",
          "readOnly": true
        },
        "publisherTenantId": {
          "description": "The publisher tenant Id.",
          "readOnly": true,
          "type": "string"
        },
        "supportUrls": {
          "$ref": "#/definitions/ApplicationPackageSupportUrls",
          "description": "The read-only support URLs property that is retrieved from the application package.",
          "readOnly": true
        },
        "updatedBy": {
          "$ref": "#/definitions/ApplicationClientDetails",
          "description": "The client entity that last updated the JIT request.",
          "readOnly": true
        }
      }
    },
    "ApplicationPropertiesPatchable": {
      "description": "The managed application properties.",
      "properties": {
        "applicationDefinitionId": {
          "description": "The fully qualified path of managed application definition Id.",
          "type": "string"
        },
        "managedResourceGroupId": {
          "description": "The managed resource group Id.",
          "type": "string"
        },
        "outputs": {
          "description": "Name and value pairs that define the managed application outputs.",
          "readOnly": true,
          "type": "object"
        },
        "parameters": {
          "description": "Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string.",
          "type": "object"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The managed application provisioning state.",
          "readOnly": true
        }
      }
    },
    "DeploymentMode": {
      "description": "The deployment mode.",
      "enum": [
        "NotSpecified",
        "Incremental",
        "Complete"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "DeploymentMode"
      }
    },
    "ErrorResponse": {
      "description": "Error response indicates managed application 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": {
        "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"
          }
        }
      }
    },
    "JitApprovalMode": {
      "description": "The Jit approval mode.",
      "enum": [
        "NotSpecified",
        "AutoApprove",
        "ManualApprove"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "JitApprovalMode"
      }
    },
    "JitApproverDefinition": {
      "description": "JIT approver definition.",
      "properties": {
        "displayName": {
          "description": "The approver display name.",
          "type": "string"
        },
        "id": {
          "description": "The approver service principal Id.",
          "type": "string"
        },
        "type": {
          "description": "The approver type.",
          "enum": [
            "user",
            "group"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "JitApproverType"
          }
        }
      },
      "required": [
        "id"
      ]
    },
    "JitAuthorizationPolicies": {
      "description": "The JIT authorization policies.",
      "properties": {
        "principalId": {
          "description": "The the principal id that will be granted JIT access.",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The role definition id that will be granted to the Principal.",
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "roleDefinitionId"
      ]
    },
    "JitRequestDefinition": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Information about JIT request definition.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/JitRequestProperties",
          "description": "The JIT request properties.",
          "x-ms-client-flatten": true
        }
      }
    },
    "JitRequestDefinitionListResult": {
      "description": "List of JIT requests.",
      "properties": {
        "nextLink": {
          "description": "The URL to use for getting the next set of results.",
          "type": "string"
        },
        "value": {
          "description": "The array of Jit request definition.",
          "items": {
            "$ref": "#/definitions/JitRequestDefinition"
          },
          "type": "array"
        }
      }
    },
    "JitRequestPatchable": {
      "description": "Information about JIT request.",
      "properties": {
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Jit request tags",
          "type": "object"
        }
      }
    },
    "JitRequestProperties": {
      "description": "Information about JIT request properties",
      "properties": {
        "applicationResourceId": {
          "description": "The parent application id.",
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/definitions/ApplicationClientDetails",
          "description": "The client entity that created the JIT request.",
          "readOnly": true
        },
        "jitAuthorizationPolicies": {
          "description": "The JIT authorization policies.",
          "items": {
            "$ref": "#/definitions/JitAuthorizationPolicies"
          },
          "type": "array"
        },
        "jitRequestState": {
          "$ref": "#/definitions/JitRequestState",
          "description": "The JIT request state.",
          "readOnly": true
        },
        "jitSchedulingPolicy": {
          "$ref": "#/definitions/JitSchedulingPolicy",
          "description": "The JIT request properties."
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "description": "The JIT request provisioning state.",
          "readOnly": true
        },
        "publisherTenantId": {
          "description": "The publisher tenant id.",
          "readOnly": true,
          "type": "string"
        },
        "updatedBy": {
          "$ref": "#/definitions/ApplicationClientDetails",
          "description": "The client entity that last updated the JIT request.",
          "readOnly": true
        }
      },
      "required": [
        "applicationResourceId",
        "jitAuthorizationPolicies",
        "jitSchedulingPolicy"
      ]
    },
    "JitRequestState": {
      "description": "The JIT request state.",
      "enum": [
        "NotSpecified",
        "Pending",
        "Approved",
        "Denied",
        "Failed",
        "Canceled",
        "Expired",
        "Timeout"
      ],
      "readOnly": true,
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "JitRequestState"
      }
    },
    "JitSchedulingPolicy": {
      "description": "The JIT scheduling policies.",
      "properties": {
        "duration": {
          "format": "duration",
          "title": "The required duration of the JIT request.",
          "type": "string"
        },
        "startTime": {
          "description": "The start time of the request.",
          "format": "date-time",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/JitSchedulingType",
          "description": "The type of JIT schedule."
        }
      },
      "required": [
        "type",
        "duration",
        "startTime"
      ]
    },
    "JitSchedulingType": {
      "description": "The JIT request scheduling type.",
      "enum": [
        "NotSpecified",
        "Once",
        "Recurring"
      ],
      "readOnly": true,
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "JitSchedulingType"
      }
    },
    "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: Application, JitRequest, 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 managed application.",
      "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 managed application.",
      "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 managed application.",
      "enum": [
        "NotSpecified",
        "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"
      ]
    }
  },
  "x-ms-paths": {
    "/{applicationDefinitionId}?disambiguation_dummy": {
      "delete": {
        "description": "Deletes the managed application definition.",
        "operationId": "ApplicationDefinitions_DeleteById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}",
            "in": "path",
            "name": "applicationDefinitionId",
            "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": [
          "ApplicationDefinitions"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets the managed application definition.",
        "operationId": "ApplicationDefinitions_GetById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}",
            "in": "path",
            "name": "applicationDefinitionId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns the managed application definition.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplicationDefinitions"
        ]
      },
      "put": {
        "description": "Creates a new managed application definition.",
        "operationId": "ApplicationDefinitions_CreateOrUpdateById",
        "parameters": [
          {
            "description": "The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}",
            "in": "path",
            "name": "applicationDefinitionId",
            "required": true,
            "type": "string",
            "x-ms-skip-url-encoding": true
          },
          {
            "description": "Parameters supplied to the create or update a managed application definition.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Returns information about the managed application definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "201": {
            "description": "Created - Returns information about the managed application definition, including provisioning status.",
            "schema": {
              "$ref": "#/definitions/ApplicationDefinition"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "tags": [
          "ApplicationDefinitions"
        ],
        "x-ms-long-running-operation": true
      }
    }
  }
}