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
