swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: ARM applications
  title: ApplicationClient
  version: 2018-06-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/2018-06-01/managedapplications.json
      version: "2.0"
  x-preferred: true
  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:
  "/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}/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: 2018-06-01
            resourceGroupName: rg
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef
                    identity: null
                    location: East US 2
                    managedBy: null
                    name: myManagedApplicationDef
                    properties:
                      artifacts:
                        - name: CreateUiDefinition
                          type: Custom
                          uri: https://path/to/managedApplicationCreateUiDefinition.json
                        - name: ManagedApplicationResourceTemplate
                          type: Template
                          uri: https://path/to/mainTemplate.json
                      authorizations:
                        - principalId: validprincipalguid
                          roleDefinitionId: validroleguid
                      description: myManagedApplicationDef description
                      displayName: myManagedApplicationDef
                      lockLevel: null
                      packageFileUri: https://path/to/packagezipfile
                    resourceGroup: rg
                    sku: null
                    tags: null
                    type: Microsoft.Solutions/applicationDefinitions
                  - id: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef2
                    identity: null
                    location: West US
                    managedBy: null
                    name: myManagedApplicationDef2
                    properties:
                      artifacts:
                        - name: CreateUiDefinition
                          type: Custom
                          uri: https://path/to/managedApplicationCreateUiDefinition.json
                        - name: ManagedApplicationResourceTemplate
                          type: Template
                          uri: https://path/to/mainTemplate.json
                      authorizations:
                        - principalId: validprincipalguid
                          roleDefinitionId: validroleguid
                      description: myManagedApplicationDef2 description
                      displayName: myManagedApplicationDef2
                      lockLevel: null
                      packageFileUri: https://path/to/packagezipfile
                    resourceGroup: rg
                    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"
        "404":
          description: Not Found
        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: 2018-06-01
            managedApplicationName: myManagedApplicationDef
            resourceGroupName: rg
            subscriptionId: subid
          responses:
            "200":
              body:
                id: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef
                identity: null
                location: East US 2
                managedBy: null
                name: myManagedApplicationDef
                properties:
                  artifacts:
                    - name: CreateUiDefinition
                      type: Custom
                      uri: https://path/to/managedApplicationCreateUiDefinition.json
                    - name: ManagedApplicationResourceTemplate
                      type: Template
                      uri: https://path/to/mainTemplate.json
                  authorizations:
                    - principalId: validprincipalguid
                      roleDefinitionId: validroleguid
                  description: myManagedApplicationDef description
                  displayName: myManagedApplicationDef
                  lockLevel: null
                  packageFileUri: https://path/to/packagezipfile
                resourceGroup: rg
                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: 2018-06-01
            managedApplicationDefinitionName: 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:
            "201":
              body:
                id: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myManagedApplicationDef
                identity: null
                location: East US 2
                managedBy: null
                name: myManagedApplicationDef
                properties:
                  artifacts:
                    - name: CreateUiDefinition
                      type: Custom
                      uri: https://path/to/managedApplicationCreateUiDefinition.json
                    - name: ManagedApplicationResourceTemplate
                      type: Template
                      uri: https://path/to/mainTemplate.json
                  authorizations:
                    - principalId: validprincipalguid
                      roleDefinitionId: validroleguid
                  description: myManagedApplicationDef description
                  displayName: myManagedApplicationDef
                  lockLevel: null
                  packageFileUri: https://path/to/packagezipfile
                resourceGroup: rg
                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: 2018-06-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:
                      managedApplicationDefinitionId: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef
                      managedResourceGroupId: /subscriptions/subid/resourceGroups/myManagedRG
                      outputs: null
                      parameters: null
                      provisioningState: Created
                    resourceGroup: rg
                    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:
                      managedApplicationDefinitionId: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef2
                      managedResourceGroupId: /subscriptions/subid/resourceGroups/myManagedRG
                      outputs: null
                      parameters: null
                      provisioningState: Created
                    resourceGroup: rg
                    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"
        "404":
          description: Not Found
        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: 2018-06-01
            managedApplicationName: 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:
                  managedApplicationDefinitionId: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/managedApplicationDefinitions/myAppDef
                  managedResourceGroupId: /subscriptions/subid/resourceGroups/myManagedRG
                  outputs: null
                  parameters: null
                  provisioningState: Created
                resourceGroup: rg
                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: 2018-06-01
            managedApplicationName: myManagedApplication
            parameters:
              kind: ServiceCatalog
              location: East US 2
              name: myManagedApplication
              properties:
                managedApplicationDefinitionId: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef
                managedResourceGroupId: /subscriptions/subid/resourceGroups/myManagedRG
            resourceGroupName: rg
            subscriptionId: subid
          responses:
            "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:
                  managedApplicationDefinitionId: /subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef
                  managedResourceGroupId: /subscriptions/subid/resourceGroups/myManagedRG
                  outputs: null
                  parameters: null
                  provisioningState: Created
                resourceGroup: rg
                sku: null
                tags: null
                type: Microsoft.Solutions/applications
              headers: {}
      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"
        "404":
          description: Not Found
        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:
      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:
        description: The managed application artifact name.
        type: string
      type:
        $ref: "#/definitions/ApplicationArtifactType"
        description: The managed application artifact type.
      uri:
        description: The managed application artifact blob uri.
        type: string
  ApplicationArtifactType:
    description: The managed application artifact type.
    enum:
      - Template
      - Custom
    type: string
    x-ms-enum:
      modelAsString: false
      name: ApplicationArtifactType
  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
  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/ApplicationArtifact"
        type: array
      authorizations:
        description: The managed application provider authorizations.
        items:
          $ref: "#/definitions/ApplicationProviderAuthorization"
        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
      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: string
      lockLevel:
        $ref: "#/definitions/ApplicationLockLevel"
        description: The managed application lock level.
      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
      packageFileUri:
        description: The managed application definition package file Uri. Use this element
        type: string
    required:
      - lockLevel
      - authorizations
  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
  ApplicationPatchable:
    allOf:
      - $ref: "#/definitions/GenericResource"
    description: Information about managed application.
    properties:
      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
  ApplicationProperties:
    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
    required:
      - managedResourceGroupId
  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
  ApplicationProviderAuthorization:
    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
  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:
      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
  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:
      - 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"
        "404":
          description: Not Found
        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
