swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The HDInsight Management Client.
  title: HDInsightManagementClient
  version: 2018-06-01-preview
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/applications.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: hdinsight-applications
  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 HDInsight client API Version.
    in: query
    name: api-version
    required: true
    type: string
  ApplicationNameParameter:
    description: The constant value for the application name.
    in: path
    name: applicationName
    required: true
    type: string
    x-ms-parameter-location: method
  ClusterNameParameter:
    description: The name of the cluster.
    in: path
    name: clusterName
    required: true
    type: string
    x-ms-parameter-location: method
  ResourceGroupNameParameter:
    description: The name of the resource group.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: The subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/applications":
    get:
      description: Lists all of the applications for the HDInsight cluster.
      operationId: Applications_ListByCluster
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ClusterNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/ApplicationListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            description: Describes the format of Error response.
            properties:
              code:
                description: Error code
                type: string
              message:
                description: Error message indicating why the operation failed.
                type: string
            type: object
      tags:
        - Applications
      x-ms-examples:
        Get All Applications for an HDInsight cluster:
          parameters:
            api-version: 2018-06-01-preview
            clusterName: cluster1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: CF938302-6B4D-44A0-A6D2-C0D67E847AEC
                    id: /subscriptions/subId/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1/applications/app
                    name: app
                    properties:
                      applicationState: Running
                      applicationType: CustomApplication
                      computeProfile:
                        roles:
                          - hardwareProfile:
                              vmSize: Standard_D12_v2
                            name: edgenode
                            targetInstanceCount: 1
                      createdDate: 2017-03-22T21:34:39.293
                      httpsEndpoints:
                        - accessModes:
                            - WebPage
                          destinationPort: 20000
                          location: https://cluster1-app.apps.azurehdinsight.net:443
                          publicPort: 443
                      installScriptActions:
                        - name: app-install-app
                          roles:
                            - edgenode
                          uri: http://testurl.com/public/hdi-app/20170301/hdinsight-app-install.sh
                      marketplaceIdentifier: app-on-hdiapp-on-hdi.1.0.3
                      provisioningState: Succeeded
                      sshEndpoints:
                        - destinationPort: 22
                          location: app.cluster1-ssh.azurehdinsight.net:22
                          publicPort: 22
                      uninstallScriptActions: []
                    tags:
                      key1: val1
                    type: Microsoft.HDInsight/clusters/applications
                  - etag: 2C128F8E-BB26-4637-99E4-18EBC39FD51F
                    id: /subscriptions/subId/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1/applications/app2
                    name: app2
                    properties:
                      applicationState: AzureVMConfiguration
                      applicationType: CustomApplication
                      computeProfile:
                        roles:
                          - hardwareProfile:
                              vmSize: Standard_D3
                            name: edgenode
                            targetInstanceCount: 1
                      createdDate: 2017-03-28T02:01:25.107
                      httpsEndpoints:
                        - accessModes:
                            - WebPage
                          destinationPort: 18630
                          location: location
                          publicPort: 443
                      installScriptActions:
                        - name: app2-Install
                          roles:
                            - edgenode
                          uri: https://app2url.com/azure/2.4.0.0/app2_install.sh
                      marketplaceIdentifier: app2-hdinsightsmall.1.0.8
                      provisioningState: InProgress
                      sshEndpoints: []
                      uninstallScriptActions: []
                    tags:
                      key1: val1
                    type: Microsoft.HDInsight/clusters/applications
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/applications/{applicationName}":
    delete:
      description: Deletes the specified application on the HDInsight cluster.
      operationId: Applications_Delete
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ClusterNameParameter"
        - $ref: "#/parameters/ApplicationNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
        "202":
          description: Accepted response definition.
        default:
          description: Error response describing why the operation failed.
          schema:
            description: Describes the format of Error response.
            properties:
              code:
                description: Error code
                type: string
              message:
                description: Error message indicating why the operation failed.
                type: string
            type: object
      tags:
        - Applications
      x-ms-examples:
        Delete Application from HDInsight cluster:
          parameters:
            api-version: 2018-06-01-preview
            applicationName: hue
            clusterName: cluster1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              headers:
                location: https://management.azure.com/subscriptions/subid/providers/Microsoft.HDInsight/pathToOperationResult
            "202": {}
      x-ms-long-running-operation: true
    get:
      description: Gets properties of the specified application.
      operationId: Applications_Get
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ClusterNameParameter"
        - $ref: "#/parameters/ApplicationNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/Application"
        default:
          description: Error response describing why the operation failed.
          schema:
            description: Describes the format of Error response.
            properties:
              code:
                description: Error code
                type: string
              message:
                description: Error message indicating why the operation failed.
                type: string
            type: object
      tags:
        - Applications
      x-ms-examples:
        Get application on HDInsight cluster creation in progress:
          parameters:
            api-version: 2018-06-01-preview
            applicationName: app
            clusterName: cluster1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: 2C128F8E-BB26-4637-99E4-18EBC39FD51F
                id: /subscriptions/subId/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1/applications/app
                name: app
                properties:
                  applicationState: AzureVMConfiguration
                  applicationType: CustomApplication
                  computeProfile:
                    roles:
                      - hardwareProfile:
                          vmSize: Standard_D3
                        name: edgenode
                        targetInstanceCount: 1
                  createdDate: 2017-03-28T02:01:25.107
                  httpsEndpoints:
                    - accessModes:
                        - WebPage
                      destinationPort: 18630
                      location: location
                      publicPort: 443
                  installScriptActions:
                    - name: app-Install
                      roles:
                        - edgenode
                      uri: https://app.com/azure/app_install.sh
                  marketplaceIdentifier: id
                  provisioningState: InProgress
                  sshEndpoints: []
                  uninstallScriptActions: []
                tags:
                  key1: val1
                type: Microsoft.HDInsight/clusters/applications
        Get application on HDInsight cluster successfully created.:
          parameters:
            api-version: 2018-06-01-preview
            applicationName: app
            clusterName: cluster1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: CF938302-6B4D-44A0-A6D2-C0D67E847AEC
                id: /subscriptions/subId/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1/applications/app
                name: app
                properties:
                  applicationState: Running
                  applicationType: CustomApplication
                  computeProfile:
                    roles:
                      - hardwareProfile:
                          vmSize: Standard_D12_v2
                        name: edgenode
                        targetInstanceCount: 1
                  createdDate: 2017-03-22T21:34:39.293
                  httpsEndpoints:
                    - accessModes:
                        - WebPage
                      destinationPort: 20000
                      location: https://cluster1.apps.azurehdinsight.net:443
                      publicPort: 443
                  installScriptActions:
                    - name: app-install
                      roles:
                        - edgenode
                      uri: http://app.com/public/hdi-app/20170301/app-install.sh
                  marketplaceIdentifier: appMarketId
                  provisioningState: Succeeded
                  sshEndpoints:
                    - destinationPort: 22
                      location: cluster1-ssh.azurehdinsight.net:22
                      publicPort: 22
                  uninstallScriptActions: []
                tags:
                  key1: val1
                type: Microsoft.HDInsight/clusters/applications
    put:
      description: Creates applications for the HDInsight cluster.
      operationId: Applications_Create
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ClusterNameParameter"
        - $ref: "#/parameters/ApplicationNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: The application create request.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/Application"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/Application"
        default:
          description: Error response describing why the operation failed.
          schema:
            description: Describes the format of Error response.
            properties:
              code:
                description: Error code
                type: string
              message:
                description: Error message indicating why the operation failed.
                type: string
            type: object
      tags:
        - Applications
      x-ms-examples:
        Create Application:
          parameters:
            api-version: 2018-06-01-preview
            applicationName: hue
            clusterName: cluster1
            parameters:
              properties:
                applicationType: CustomApplication
                computeProfile:
                  roles:
                    - hardwareProfile:
                        vmSize: Standard_D12_v2
                      name: edgenode
                      targetInstanceCount: 1
                errors: []
                httpsEndpoints:
                  - accessModes:
                      - WebPage
                    destinationPort: 20000
                    subDomainSuffix: dss
                installScriptActions:
                  - name: app-install-app1
                    parameters: -version latest -port 20000
                    roles:
                      - edgenode
                    uri: https://.../install.sh
                uninstallScriptActions: []
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: etag
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1/applications/hue
                name: hue
                properties:
                  applicationState: ApplicationConfiguration
                  applicationType: CustomApplication
                  computeProfile:
                    roles:
                      - hardwareProfile:
                          vmSize: Standard_D12_v2
                        name: edgenode
                        targetInstanceCount: 1
                  createdDate: 2017-02-28
                  errors: []
                  httpsEndpoints:
                    - accessModes:
                        - WebPage
                      destinationPort: 20000
                      subDomainSuffix: dss
                  installScriptActions:
                    - name: app-install-app1
                      parameters: -version latest -port 20000
                      roles:
                        - edgenode
                      uri: https://.../install.sh
                  provisioningState: InProgress
                  sshEndpoints: []
                  uninstallScriptActions: []
                tags: {}
                type: Microsoft.HDInsight/clusters/applications
      x-ms-long-running-operation: true
definitions:
  Application:
    allOf:
      - allOf:
          - description: The core properties of ARM resources
            properties:
              id:
                description: Fully qualified resource Id for the resource.
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM proxy resource. It will have everything other than required location and tags
    description: The HDInsight cluster application
    properties:
      etag:
        description: The ETag for the application
        type: string
      properties:
        $ref: "#/definitions/ApplicationProperties"
        description: The properties of the application.
      tags:
        additionalProperties:
          type: string
        description: The tags for the application.
        type: object
    type: object
  ApplicationGetEndpoint:
    description: Gets the application SSH endpoint
    properties:
      destinationPort:
        description: The destination port to connect to.
        format: int32
        type: integer
      location:
        description: The location of the endpoint.
        type: string
      publicPort:
        description: The public port to connect to.
        format: int32
        type: integer
    type: object
  ApplicationGetHttpsEndpoint:
    description: Gets the application HTTP endpoints.
    properties:
      accessModes:
        description: The list of access modes for the application.
        items:
          type: string
        type: array
      destinationPort:
        description: The destination port to connect to.
        format: int32
        type: integer
      disableGatewayAuth:
        description: The value indicates whether to disable GatewayAuth.
        type: boolean
      location:
        description: The location of the endpoint.
        type: string
      publicPort:
        description: The public port to connect to.
        format: int32
        type: integer
      subDomainSuffix:
        description: The subdomain suffix of the application.
        type: string
    type: object
  ApplicationListResult:
    description: Result of the request to list cluster Applications. It contains a list of operations and a URL link to get the next set of results.
    properties:
      nextLink:
        description: The URL to get the next set of operation list results if there are any.
        readOnly: true
        type: string
      value:
        description: The list of HDInsight applications installed on HDInsight cluster.
        items:
          $ref: "#/definitions/Application"
        type: array
  ApplicationProperties:
    description: The HDInsight cluster application GET response.
    properties:
      applicationState:
        description: The application state.
        readOnly: true
        type: string
      applicationType:
        description: The application type.
        type: string
      computeProfile:
        description: Describes the compute profile.
        properties:
          roles:
            description: The list of roles in the cluster.
            items:
              description: Describes a role on the cluster.
              properties:
                autoscale:
                  description: The autoscale request parameters
                  properties:
                    capacity:
                      description: The load-based autoscale request parameters
                      properties:
                        maxInstanceCount:
                          description: The maximum instance count of the cluster
                          format: int32
                          type: integer
                        minInstanceCount:
                          description: The minimum instance count of the cluster
                          format: int32
                          type: integer
                    recurrence:
                      description: Schedule-based autoscale request parameters
                      properties:
                        schedule:
                          description: Array of schedule-based autoscale rules
                          items:
                            description: Parameters for a schedule-based autoscale rule, consisting of an array of days + a time and capacity
                            properties:
                              days:
                                description: Days of the week for a schedule-based autoscale rule
                                items:
                                  enum:
                                    - Monday
                                    - Tuesday
                                    - Wednesday
                                    - Thursday
                                    - Friday
                                    - Saturday
                                    - Sunday
                                  type: string
                                  x-ms-enum:
                                    modelAsString: false
                                    name: DaysOfWeek
                                type: array
                              timeAndCapacity:
                                description: Time and capacity request parameters
                                properties:
                                  maxInstanceCount:
                                    description: The maximum instance count of the cluster
                                    format: int32
                                    type: integer
                                  minInstanceCount:
                                    description: The minimum instance count of the cluster
                                    format: int32
                                    type: integer
                                  time:
                                    description: 24-hour time in the form xx:xx
                                    type: string
                          type: array
                        timeZone:
                          description: The time zone for the autoscale schedule times
                          type: string
                dataDisksGroups:
                  description: The data disks groups for the role.
                  items:
                    description: The data disks groups for the role.
                    properties:
                      diskSizeGB:
                        description: ReadOnly. The DiskSize in GB. Do not set this value.
                        readOnly: true
                        type: integer
                      disksPerNode:
                        description: The number of disks per node.
                        format: int32
                        type: integer
                      storageAccountType:
                        description: ReadOnly. The storage account type. Do not set this value.
                        readOnly: true
                        type: string
                  type: array
                hardwareProfile:
                  description: The hardware profile.
                  properties:
                    vmSize:
                      description: The size of the VM
                      type: string
                minInstanceCount:
                  description: The minimum instance count of the cluster.
                  format: int32
                  type: integer
                name:
                  description: The name of the role.
                  type: string
                osProfile:
                  description: The Linux operation systems profile.
                  properties:
                    linuxOperatingSystemProfile:
                      description: The ssh username, password, and ssh public key.
                      properties:
                        password:
                          description: The password.
                          type: string
                        sshProfile:
                          description: The list of SSH public keys.
                          properties:
                            publicKeys:
                              description: The list of SSH public keys.
                              items:
                                description: The SSH public key for the cluster nodes.
                                properties:
                                  certificateData:
                                    description: The certificate for SSH.
                                    type: string
                              type: array
                        username:
                          description: The username.
                          type: string
                scriptActions:
                  description: The list of script actions on the role.
                  items:
                    description: Describes a script action on role on the cluster.
                    properties:
                      name:
                        description: The name of the script action.
                        type: string
                      parameters:
                        description: The parameters for the script provided.
                        type: string
                      uri:
                        description: The URI to the script.
                        type: string
                    required:
                      - name
                      - uri
                      - parameters
                  type: array
                targetInstanceCount:
                  description: The instance count of the cluster.
                  format: int32
                  type: integer
                virtualNetworkProfile:
                  description: The virtual network properties.
                  properties:
                    id:
                      description: The ID of the virtual network.
                      type: string
                    subnet:
                      description: The name of the subnet.
                      type: string
            type: array
      createdDate:
        description: The application create date time.
        readOnly: true
        type: string
      errors:
        description: The list of errors.
        items:
          description: The error message associated with the cluster creation.
          properties:
            code:
              description: The error code.
              type: string
            message:
              description: The error message.
              type: string
        type: array
      httpsEndpoints:
        description: The list of application HTTPS endpoints.
        items:
          $ref: "#/definitions/ApplicationGetHttpsEndpoint"
        type: array
      installScriptActions:
        description: The list of install script actions.
        items:
          description: Describes a script action on a running cluster.
          properties:
            applicationName:
              description: The application name of the script action, if any.
              readOnly: true
              type: string
            name:
              description: The name of the script action.
              type: string
            parameters:
              description: The parameters for the script
              type: string
            roles:
              description: The list of roles where script will be executed.
              items:
                type: string
              type: array
            uri:
              description: The URI to the script.
              type: string
          required:
            - name
            - uri
            - roles
        type: array
      marketplaceIdentifier:
        description: The marketplace identifier.
        readOnly: true
        type: string
      provisioningState:
        description: The provisioning state of the application.
        readOnly: true
        type: string
      sshEndpoints:
        description: The list of application SSH endpoints.
        items:
          $ref: "#/definitions/ApplicationGetEndpoint"
        type: array
      uninstallScriptActions:
        description: The list of uninstall script actions.
        items:
          description: Describes a script action on a running cluster.
          properties:
            applicationName:
              description: The application name of the script action, if any.
              readOnly: true
              type: string
            name:
              description: The name of the script action.
              type: string
            parameters:
              description: The parameters for the script
              type: string
            roles:
              description: The list of roles where script will be executed.
              items:
                type: string
              type: array
            uri:
              description: The URI to the script.
              type: string
          required:
            - name
            - uri
            - roles
        type: array
    type: object
