swagger: "2.0"
schemes:
  - https
host: adminmanagement.local.azurestack.external
info:
  description: Scale unit operation endpoints and objects.
  title: FabricAdminClient
  version: 2016-05-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/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/ScaleUnit.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: azsadmin-ScaleUnit
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Authorization uses an Azure Active Directory OAuth2 flow.
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  CreateFromJsonScaleUnitParametersInBody:
    description: A list of input data that allows for creating the new scale unit.
    in: body
    name: creationData
    required: true
    schema:
      $ref: "#/definitions/CreateFromJsonScaleUnitParametersList"
    x-ms-parameter-location: method
  ScaleOutScaleUnitParametersInBody:
    description: A list of input data that allows for adding a set of scale unit nodes.
    in: body
    name: scaleUnitNodeParameters
    required: true
    schema:
      $ref: "#/definitions/ScaleOutScaleUnitParametersList"
    x-ms-parameter-location: method
  ScaleUnitParameter:
    description: Name of the scale units.
    in: path
    name: scaleUnit
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits":
    get:
      description: Returns a list of all scale units at a location.
      operationId: ScaleUnits_List
      parameters:
        - description: Subscription credentials that 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
        - description: Name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: Location of the resource.
          in: path
          name: location
          required: true
          type: string
          x-ms-parameter-location: method
        - default: 2016-05-01
          description: Client API Version.
          in: query
          name: api-version
          required: true
          type: string
        - description: OData filter parameter.
          in: query
          name: $filter
          type: string
          x-ms-parameter-location: method
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScaleUnitList"
        "404":
          description: NOT FOUND
      tags:
        - ScaleUnits
      x-ms-examples:
        Returns a list of all scale units at a location.:
          parameters:
            api-version: 2016-05-01
            location: local
            resourceGroupName: System.local
            subscriptionId: 20ff7fc3-e762-44dd-bd96-b71116dcdc23
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnits/S-Cluster
                    location: local
                    name: S-Cluster
                    properties:
                      isMultiNode: false
                      logicalFaultDomain: 0
                      nodes:
                        - /subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/system.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/HC1u15a2437
                      scaleUnitType: HyperConverged
                      state: Running
                      totalCapacity:
                        cores: 32
                        memoryGB: 511.8877
                    tags: {}
                    type: Microsoft.Fabric.Admin/fabricLocations/scaleUnits
            "404": {}
      x-ms-odata: "#/definitions/ScaleUnit"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}":
    get:
      description: Returns the requested scale unit.
      operationId: ScaleUnits_Get
      parameters:
        - description: Subscription credentials that 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
        - description: Name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: Location of the resource.
          in: path
          name: location
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ScaleUnitParameter"
        - default: 2016-05-01
          description: Client API Version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScaleUnit"
        "404":
          description: NOT FOUND
      tags:
        - ScaleUnits
      x-ms-examples:
        Returns the requested scale unit:
          parameters:
            api-version: 2016-05-01
            location: local
            resourceGroupName: System.local
            scaleUnit: S-Cluster
            subscriptionId: 20ff7fc3-e762-44dd-bd96-b71116dcdc23
          responses:
            "200":
              body:
                id: /subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnits/S-Cluster
                location: local
                name: S-Cluster
                properties:
                  isMultiNode: false
                  logicalFaultDomain: 0
                  nodes:
                    - /subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/system.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/HC1u15a2437
                  scaleUnitType: HyperConverged
                  state: Running
                  totalCapacity:
                    cores: 32
                    memoryGB: 511.8877
                tags: {}
                type: Microsoft.Fabric.Admin/fabricLocations/scaleUnits
            "404": {}
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}/createFromJson":
    post:
      description: Add a new scale unit.
      operationId: ScaleUnits_CreateFromJson
      parameters:
        - description: Subscription credentials that 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
        - description: Name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: Location of the resource.
          in: path
          name: location
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ScaleUnitParameter"
        - $ref: "#/parameters/CreateFromJsonScaleUnitParametersInBody"
        - default: 2016-05-01
          description: Client API Version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        "200":
          description: OK
        "202":
          description: ACCEPTED
      tags:
        - ScaleUnits
      x-ms-examples:
        Add a new scale unit.:
          parameters:
            api-version: 2016-05-01
            creationData:
              InfrastructureNetwork:
                Subnet:
                  - 10.0.0.1/24
                VlanId:
                  - "0"
              NetQosPriority: 1
              StorageNetwork:
                Subnet:
                  - 10.0.0.1/24
                VlanId:
                  - "0"
              clusterName: cluster
              physicalNodes:
                - bmcIPAddress: 192.0.0.1
                  name: machine
              softwareBgpAsn: "64703"
              torSwitchBgpAsn: "64703"
              torSwitchBgpPeerIp:
                - 10.0.0.1
            location: local
            resourceGroupName: System.local
            scaleUnit: cluster
            subscriptionId: 20ff7fc3-e762-44dd-bd96-b71116dcdc23
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}/scaleOut":
    post:
      description: Scales out a scale unit.
      operationId: ScaleUnits_ScaleOut
      parameters:
        - description: Subscription credentials that 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
        - description: Name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: Location of the resource.
          in: path
          name: location
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ScaleUnitParameter"
        - $ref: "#/parameters/ScaleOutScaleUnitParametersInBody"
        - default: 2016-05-01
          description: Client API Version.
          in: query
          name: api-version
          required: true
          type: string
      responses:
        "200":
          description: OK
        "202":
          description: ACCEPTED
      tags:
        - ScaleUnits
      x-ms-examples:
        Scales out a scale unit.:
          parameters:
            api-version: 2016-05-01
            location: local
            resourceGroupName: System.local
            scaleUnit: S-Cluster
            scaleUnitNodeParameters:
              bmcIPv4Address: 192.0.0.1
              scaleUnitNode: N1S2
            subscriptionId: 20ff7fc3-e762-44dd-bd96-b71116dcdc23
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
definitions:
  CreateFromJsonScaleUnitParametersList:
    description: A list of input data that allows for creating the new scale unit.
    properties:
      clusterName:
        description: Cluster name for the new scale unit.
        type: string
      infrastructureNetwork:
        $ref: "#/definitions/NetworkDefinitionParameter"
        description: The information associated with the infrastructure network that will be subdivided into subnets.
      netQosPriority:
        description: The network QOS priority setting.
        format: int32
        type: integer
      physicalNodes:
        description: List of nodes in the scale unit.
        items:
          $ref: "#/definitions/DeploymentJsonPhysicalNodeParameters"
        type: array
      softwareBgpAsn:
        description: The software ASN for the cluster's rack.
        type: string
      storageNetwork:
        $ref: "#/definitions/NetworkDefinitionParameter"
        description: The information associated with the storage network that will be subdivided into subnets.
      torSwitchBgpAsn:
        description: The ASN for the cluster's rack TOR.
        type: string
      torSwitchBgpPeerIp:
        description: The list of IP addresses used for TOR communication.
        items:
          type: string
        type: array
    type: object
  DeploymentJsonPhysicalNodeParameters:
    description: Description of a bare metal node used for scale unit scale out operations.
    properties:
      bmcIpAddress:
        description: BMC address of the physical machine.
        type: string
        x-ms-client-name: BMCIPAddress
      name:
        description: Computer name of the physical machine.
        type: string
    type: object
  NetworkDefinitionParameter:
    description: A definition of the network received from a new cluster operation.
    properties:
      subnet:
        description: The subnet IP mask in the example format 10.0.0.0/25.
        items:
          type: string
        type: array
      vlanId:
        description: The Vlan ID of the subnet.
        items:
          type: string
        type: array
    type: object
  ScaleOutScaleUnitParameters:
    description: Input data that allows for adding a scale unit node.
    properties:
      bmcIpv4Address:
        description: BMC address of the physical machine.
        type: string
        x-ms-client-name: BMCIPv4Address
      computerName:
        description: Computer name of the physical machine.
        type: string
    type: object
  ScaleOutScaleUnitParametersList:
    description: A list of input data that allows for adding a set of scale unit nodes.
    properties:
      awaitStorageConvergence:
        description: Flag indicates if the operation should wait for storage to converge before returning.
        type: boolean
      nodeList:
        description: List of nodes in the scale unit.
        items:
          $ref: "#/definitions/ScaleOutScaleUnitParameters"
        type: array
    type: object
  ScaleUnit:
    allOf:
      - description: Base resource object.
        properties:
          id:
            description: URI of the resource.
            readOnly: true
            type: string
          location:
            description: The region where the resource is located.
            type: string
          name:
            description: Name of the resource.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: List of key-value pairs.
            type: object
          type:
            description: Type of resource.
            readOnly: true
            type: string
        type: object
        x-ms-azure-resource: true
    description: Represents a cluster. Generally, the cluster will be a collection of hosts backed by failover cluster manager.
    properties:
      properties:
        $ref: "#/definitions/ScaleUnitModel"
        description: Properties of a scale unit.
        x-ms-client-flatten: true
    type: object
  ScaleUnitCapacity:
    description: The capacity information for a physical machine.
    properties:
      cores:
        description: The number of CPU cores for the physical machine.
        format: int64
        type: integer
      memoryGB:
        description: The memory for the physical machine.
        format: float
        type: number
    type: object
  ScaleUnitList:
    description: A pageable list of scale units.
    properties:
      nextLink:
        description: URI to the next page.
        type: string
      value:
        description: List of scale units.
        items:
          $ref: "#/definitions/ScaleUnit"
        type: array
    type: object
  ScaleUnitModel:
    description: Properties of a scale unit.
    properties:
      isMultiNode:
        description: Denotes if more than one node in cluster.
        type: boolean
      logicalFaultDomain:
        description: Fault domain name of the cluster.
        format: int32
        type: integer
      model:
        description: Model of the servers in the cluster.
        type: string
      nodes:
        description: List of nodes in the server.
        items:
          type: string
        type: array
      scaleUnitType:
        description: Type of cluster.
        enum:
          - Unknown
          - ComputeOnly
          - StorageOnly
          - HyperConverged
        type: string
        x-ms-enum:
          modelAsString: true
          name: ScaleUnitType
      state:
        description: Current state of the cluster.
        enum:
          - Unknown
          - Creating
          - Running
          - Upgrading
          - Deleting
        type: string
        x-ms-enum:
          modelAsString: true
          name: ScaleUnitState
      totalCapacity:
        $ref: "#/definitions/ScaleUnitCapacity"
        description: Capacity information for the cluster.
    type: object
