openapi: 3.1.0
info:
  title: HPE GreenLake APIs for Device Management
  description: >-
    With the HPE GreenLake APIs for Device Management you can view, manage, and
    onboard devices in your workspace. The API allows you to invoke any
    operation or task that is available through the HPE GreenLake edge-to-cloud
    platform user interface.
  version: latest
  license:
    name: HPE End User License Agreement
    url: https://www.hpe.com/us/en/software/licensing.html
servers:
  - url: https://global.api.greenlake.hpe.com
    description: Url hostname
security:
  - Bearer: []
paths:
  /devices/v2beta1/devices:
    post:
      tags:
        - Devices - v2beta1
      summary: Add devices
      description: >-
        Add one or more devices to a workspace. This API endpoint provides an
        asynchronous response and returns `202 Accepted` if basic input
        validations are successful. The  location header in the response
        provides the URI to invoke to  fetch the progress of the device addition
        task. For details about the  status fetch URL, refer to the API endpoint
        [Get progress or status of async operations in
        devices](#operation/getDevicesAsyncOperationResourceV1). <p><b>NOTE</b>:
        You need edit permissions for the Devices and Subscription service to
        call this API endpoint.</p> Rate limits are enforced, and 25 requests
        per minute are supported per workspace. The API endpoint returns `429`
        if this threshold is breached.
      operationId: postDevicesV2beta1
      parameters:
        - name: dry-run
          in: query
          description: >-
            The `dry-run` query parameter is used to perform the resource update
            operation (`POST`, `PUT`, `PATCH`, `DELETE`) and return a response
            as if the operation had completed, but without actually creating,
            updating, or deleting the resource. This allows you to test if the
            request would succeed before making the change. If set to `true`,
            the request is validated but not executed.
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevicesPostRequestV2Beta1'
            examples:
              network:
                summary: Adding network devices into a workspace
                value:
                  serialNumber: SN12345678
                  macAddress: 00:1B:44:11:3A:B7
                  deviceType: NETWORK
                  tags:
                    environment: production
                  location:
                    id: 8cd9ad69-a8e5-4529-97ea-804b2c88d123
              compute:
                summary: Adding compute devices into a workspace
                value:
                  serialNumber: SN87654321
                  partNumber: PN87654321
                  deviceType: COMPUTE
                  tags:
                    environment: staging
                  location:
                    id: 8cd9ad69-a8e5-4529-97ea-804b2c88d456
              storage:
                summary: Adding storage devices into a workspace
                value:
                  serialNumber: SN11223344
                  partNumber: PN11223344
                  deviceType: STORAGE
                  tags:
                    environment: development
                  location:
                    id: 8cd9ad69-a8e5-4529-97ea-804b2c88d789
        required: true
      responses:
        '202':
          description: Request accepted
          content: {}
          headers:
            Location:
              $ref: '#/components/headers/LocationHeaderV1'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: field
                            subject: serialNumber
                            description: serial number is blank.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
    patch:
      tags:
        - Devices - v2beta1
      summary: Update devices
      description: >-
        Update devices by passing one or more device IDs.  <br><br>The API
        supports <b>Device operations</b> such as:

        <ul><li>Assigning and unassigning devices to and from a service.
        </li><li>Adding, updating and removing tags to devices.
        </li><li>Archiving and un-archiving the devices.</li>  </ul> The API
        endpoint supports <b>subscription operations</b> of applying and
        removing subscriptions to and from devices.

        <br><br>To remove an application, set the <code>id</code> under
        <code>application</code> to <code>null</code> and <code>region</code> to
        <code>null</code>. Set an empty array to the attribute
        <code>subscription</code> to remove a subscription. For each tag
        provided in the request body: <ul><li>Tags are created and inserted into
        the specified devices if the provided tags do not map to
        </code>null</code> and are not already present.</li> <li>Tags are
        updated with the provided if the provided tag key is already present in
        a device, but the provided value differs from the existing value.</li>
        <li>Tags are removed from devices when a tag key is mapped to a
        <code>null</code> tag value. The tags are removed from any devices with
        a matching tag with the same key.</li></ul> The endpoint only supports
        either a device or a subscription operation per API call. For example,
        you cannot assign devices to an application and assign subscriptions to
        devices in a single API call. You can achieve this with two separate API
        calls. However, a single API call can perform device operations
        together; for example, assigning an application and adding tags can be
        performed. <br><br>The archive device operation is incompatible with any
        other device operation in the same API call. For example, you cannot
        remove an application and archive a device using the same API call.
        <br><br>This is an asynchronous API endpoint and it returns the
        <code>202 Accepted</code> response code and a Location header containing
        the URI of the asynchronous operation that can be used to track
        progress. For details about the status fetch URL, refer to the API
        <b>Get progress or status of async operations in devices</b>.
        <br><br><b>NOTE:</b> You need edit permissions for the Devices and
        Subscription service to initiate this API call. Rate limits are
        enforced, and 20 requests per minute are supported per workspace. The
        API returns <code>429</code> if this threshold is breached.
      operationId: patchDevicesV2beta1
      parameters:
        - name: id
          explode: true
          in: query
          description: >-
            Array of device resource IDs. Maximum twenty five devices per
            request.
          required: true
          style: form
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
          example: >-
            05fc0c47-e517-5709-976e-c0b726977477&id=08a42d07-b144-5602-9a82-7927d6e44616
        - name: dry-run
          in: query
          description: >-
            The `dry-run` query parameter is used to perform the resource update
            operation (`POST`, `PUT`, `PATCH`, `DELETE`) and return a response
            as if the operation had completed, but without actually creating,
            updating, or deleting the resource. This allows you to test if the
            request would succeed before making the change. If set to `true`,
            the request is validated but not executed.
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDevicesRequestV2'
            examples:
              CreateNewTags:
                $ref: '#/components/examples/CreateNewTags'
              UpdateExistingTagsWithNewTagValues:
                $ref: '#/components/examples/UpdateExistingTagsWithNewTagValues'
              DeleteExistingTags:
                $ref: '#/components/examples/DeleteExistingTags'
              UpdateAndDeleteExistingTags:
                $ref: '#/components/examples/UpdateAndDeleteExistingTags'
              CreateNewTagsAndAssignApplication:
                $ref: '#/components/examples/CreateNewTagsAndAssignApplication'
              UpdateExistingTagsAndUnassignApplication:
                $ref: '#/components/examples/UpdateExistingTagsAndUnassignApplication'
              AssignApplication:
                $ref: '#/components/examples/AssignApplication'
              UnassignApplication:
                $ref: '#/components/examples/UnassignApplication'
              ArchiveDevice:
                $ref: '#/components/examples/ArchiveDevice'
              UnarchiveDevice:
                $ref: '#/components/examples/UnarchiveDevice'
              AssignSubscription:
                $ref: '#/components/examples/AssignSubscription'
              UnassignSubscription:
                $ref: '#/components/examples/UnassignSubscription'
        required: true
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
          headers:
            Location:
              $ref: '#/components/headers/LocationHeaderV1'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: device ID is not a valid UUID.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1/devices:
    get:
      tags:
        - Devices - v1
      summary: Get devices managed in a workspace
      description: >-
        With this API, you can: <ul><li>Retrieve a list of devices managed in a
        workspace.</li> <li>Filter  devices based on conditional
        expressions.</li></ul><p><b>NOTE</b>: You need view  permissions for
        Devices and Subscription service to invoke this API.</p>  Rate limits
        are enforced on this API. 160 requests per minute is supported per
        workspace. The API returns `429` if this threshold is breached.
      operationId: getDevicesV1
      parameters:
        - name: filter
          in: query
          description: >
            Filter expressions consisting of simple comparison operations joined

            by logical operators.<br>

            | CLASS               |  
            EXAMPLES                                         |

            |---------------------|----------------------------------------------------|

            | Types               | integer, decimal, timestamp, string,
            boolean, null |

            | Comparison          | eq, ne, gt, ge, lt, le,
            in                         |

            | Logical Expressions | and, or,
            not                                       |


            The following examples are not an exhaustive list of all possible
            filtering options.
          required: false
          schema:
            type: string
          examples:
            equals:
              summary: Filter with equality check
              description: |
                Return devices where a property equals a value.
                Example syntax, \<property> eq \<value>.
              value: serialNumber eq 'STIAPL6404'
            not:
              summary: Filter on an inverted query
              description: |
                Return devices where a property does not equal a value.
                Example syntax, not \<property> eq \<value>.
              value: not serialNumber eq 'STIAPL6404'
            ge:
              summary: Filter with greater or equal check
              description: |
                Return devices where a property is greater or equal to a value.
                Example syntax, \<property> ge \<value>.
              value: createdAt ge ''2024-01-18T19:53:51.480Z''
            le:
              summary: Filter with lesser or equal check
              description: |
                Return devices where a property is lesser or equal to a value.
                Example syntax, \<property> ge \<value>.
              value: updatedAt le '2024-02-18T19:53:51.480Z'
            conjunction:
              summary: Filter on multiple strict conditionals
              description: >
                Return devices that exactly satisfy multiple filter queries.

                Example syntax, \<property> eq \<value> and \<property> eq
                \<value>.
              value: deviceType eq 'STORAGE' and partNumber eq 'RTICXL6413'
            disjunction:
              summary: Filter on multiple non strict conditionals
              description: >
                Return devices that exactly satisfy one of multiple filter
                queries.

                Example syntax, \<property> eq \<value> or \<property> eq
                \<value>.
              value: serialNumber eq 'STIAPL6404' or partNumber eq 'RTICXL6413'
            alternatives:
              summary: Filter for a value to have one of multiple possibilities
              description: |
                Return devices where a property is one of multiple values.
                Example syntax, \<property> in \<value>,\<value>.
              value: deviceType in 'COMPUTE', 'STORAGE'
        - name: filter-tags
          in: query
          description: |
            Filter expressions consisting of simple comparison operations joined
            by logical operators to be applied on the assigned tags or their
            values.<br>
            | CLASS               |   EXAMPLES      |
            |---------------------|-----------------|
            | Types               | string          |
            | Comparison          | eq, ne, in      |
            | Logical Expressions | and, or, not    |
          required: false
          schema:
            type: string
          examples:
            equals:
              summary: Filter with equality check
              description: |
                Return devices where a tag key is equal to a tag value.
                Example syntax, \<tagKey> eq \<tagValue>.
              value: '''city'' eq ''London'''
            not:
              summary: Filter on an inverted query
              description: |
                Return devices where a tag key does not equal a tag value.
                Example syntax, not \<property> eq \<value>.
              value: not 'city' eq 'Tokyo'
            conjunction:
              summary: Filter on multiple strict conditionals
              description: >
                Return devices that exactly satisfy multiple filter queries
                applied to tag keys.

                Example syntax, \<property> eq \<value> and \<property> eq
                \<value>.
              value: '''city'' eq ''London'' and ''street'' eq ''Piccadilly'''
            disjunction:
              summary: Filter on multiple non-strict conditionals
              description: >
                Return devices that satisfy any of multiple filter queries
                applied to tag keys.

                Example syntax, \<property> eq \<value> or \<property> eq
                \<value>.
              value: '''street'' eq ''Oxford Street'' or ''street'' eq ''Piccadilly'''
            alternatives:
              summary: Filter for a value to have one of multiple possibilities
              description: >
                Return devices containing the tag key and at least one of the
                specified values.

                Example syntax, \<property> in \<value>,\<value>.
              value: '''street'' in ''Regent Street'', ''Oxford Street'', ''Piccadilly'''
        - name: sort
          in: query
          description: >-
            A comma separated list of sort expressions. A sort expression is a
            property name optionally followed by a direction indicator `asc` or
            `desc`. The default is ascending order.
          required: false
          schema:
            type: string
          example: serialNumber,macAddress desc
        - name: select
          explode: false
          in: query
          description: >-
            A comma separated list of select properties to display in the
            response. The default is that all properties are returned.
          required: false
          style: form
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
          example: serialNumber,macAddress
        - name: limit
          in: query
          description: >-
            Specifies the number of results to be returned. The default value is
            2000.
          required: false
          schema:
            maximum: 2000
            minimum: 1
            type: integer
            format: int64
            default: 2000
        - name: offset
          in: query
          description: >-
            Specifies the zero-based resource offset to start the response from.
            The default value is 0.
          required: false
          schema:
            type: integer
            format: int64
            default: 0
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesGetResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: limit
                            description: Must be a numeric value which is 0 or greater.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
    post:
      tags:
        - Devices - v1
      summary: Add devices
      description: >-
        Add one or more devices to a workspace. This API provides an
        asynchronous response and will always  return `202 Accepted` if basic
        input validations are successful. The  location header in the response
        provides the URI to be invoked for  fetching the progress of the device
        addition task. For details about the  status fetch URL, refer to the API
        [Get progress or status of async operations in
        devices](#operation/getDevicesAsyncOperationResourceV1). <p><b>NOTE</b>:
        You need edit permissions for the Devices and Subscription service to
        invoke this API.</p> Rate limits are enforced on this API. 25 requests
        per minute is supported per workspace. The API returns `429` if this
        threshold is breached.
      operationId: postDevicesV1
      parameters:
        - name: dry-run
          in: query
          description: >-
            The `dry-run` query parameter is used to perform the resource update
            operation (`POST`, `PUT`, `PATCH`, `DELETE`) and return a response
            as if the operation had completed, but without actually creating,
            updating, or deleting the resource. This allows you to test if the
            request would succeed before making the change. If set to `true`,
            the request is validated but not executed.
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        description: >-
          Accepts a maximum of five devices per request, combining the count of
          network, compute, and storage devices.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevicesPostRequest'
        required: true
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
          headers:
            Location:
              $ref: '#/components/headers/LocationHeaderV1'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: field
                            subject: serialNumber
                            description: serial number is blank.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
    patch:
      tags:
        - Devices - v1
      summary: Update devices
      description: >-
        Update devices by passing one or more device IDs. The API currently
        supports:<ul><li>Assigning and unassigning devices to and from a
        service.</li><li>Applying and removing subscriptions to and from
        devices.</li></ul> To remove an application, set the `id` under
        `application` to `null` and 'region' to `null`. Set an empty array to
        the attribute `subscription` to remove a subscription. <br><br> Only one
        operation is supported in a single API call. For example, you cannot
        assign devices to an application and assign subscriptions to devices in
        a single API invocation. You can achieve this with two API
        calls.<br><br>This API provides an asynchronous response and returns
        `202 Accepted` if basic input validations are successful. The location
        header in the response provides the URI to be invoked for fetching the
        progress of the device update task. For details about the status fetch
        URL, refer to the API [Get progress or status of async operations in
        devices](#operation/getDevicesAsyncOperationResourceV1).
        <br><br><b>NOTE</b>: You need edit permissions for the Devices and
        Subscription service to invoke this API. <br><br>Rate limits are
        enforced on this API. 20 requests per minute is supported per workspace.
        The API returns `429` if this threshold is breached.
      operationId: patchDevicesV1
      parameters:
        - name: id
          explode: true
          in: query
          description: Array of device resource IDs. Maximum five devices per request.
          required: true
          style: form
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
          example: >-
            05fc0c47-e517-5709-976e-c0b726977477&id=08a42d07-b144-5602-9a82-7927d6e44616
        - name: dry-run
          in: query
          description: >-
            The `dry-run` query parameter is used to perform the resource update
            operation (`POST`, `PUT`, `PATCH`, `DELETE`) and return a response
            as if the operation had completed, but without actually creating,
            updating, or deleting the resource. This allows you to test if the
            request would succeed before making the change. If set to `true`,
            the request is validated but not executed.
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDevicesRequest'
        required: true
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
          headers:
            Location:
              $ref: '#/components/headers/LocationHeaderV1'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: device ID is not a valid UUID.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1/devices/{id}:
    get:
      tags:
        - Devices - v1
      summary: Get device information
      description: >-
        Get details on a specific device by passing its resourceId.
        <p><b>NOTE</b>: You need  view permissions for device management to
        invoke this API.</p> Rate limits are enforced on this API. 40 requests
        per minute is supported per workspace. The API returns `429` if this
        threshold is breached.
      operationId: getDeviceByIdV1
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            description: The unique identifier (uuid) of the device.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceDetail'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: Device ID is not a valid UUID.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request.
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1/async-operations/{id}:
    get:
      tags:
        - Devices - v1
      summary: Get progress or status of async operations in devices
      description: >-
        The add and update device APIs are asynchronous. Use this API to find
        the status of the asynchronous add and update operations. <br><br> An
        asynchronous resource tracks the status of an asynchronous operation. An
        asynchronous resource that has reached a terminal state (`SUCCEEDED`,
        `FAILED`, `TIMEOUT`) will no longer be accessible 24 hours after
        reaching the terminal state. <br><br> The `TIMEOUT` state indicates that
        the operation was in an `INITIALIZED` or `RUNNING` state for a period
        greater than the timeout set. If an asynchronous operation resource
        coming from an asynchronous request consists of multiple devices, a
        breakdown of succeeded devices and failed devices, if there are any,
        will be returned as the response. In this case, the device serial number
        identifies each device. <p><b>NOTE</b>: You need view permissions for
        the Devices and Subscription service to invoke this API.</p> Rate limits
        are enforced on this API. 90 requests per minute is supported per
        workspace. The API returns `429` if this threshold is breached.
      operationId: getDevicesAsyncOperationResourceV1
      parameters:
        - name: id
          in: path
          description: The unique identifier of an asynchronous API operation.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResource'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: Async ID is not provided.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.unauthorized
                        issues:
                          - source: hpe.greenlake.devicemanagement
                            subject: Unauthorized
                            description: Authentication error - the token was expired.
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_not_found:
                  value:
                    errorCode: HPE_GL_ERROR_NOT_FOUND
                    message: Not Found
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 404
                    errorDetails:
                      - type: hpe.greenlake.not_found
                        issues:
                          - source: hpe.greenlake.devicemanagement
                            subject: Internal Server Error
                            description: Device ID not found
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1beta1/devices:
    get:
      deprecated: true
      tags:
        - Devices - v1beta1
      summary: Get devices managed in a workspace
      description: >-
        With this API, you can: <ul><li>Retrieve a list of devices managed in a
        workspace.</li> <li>Filter  devices based on conditional
        expressions.</li></ul><p><b>NOTE</b>: You need view  permissions for
        Devices and Subscription service to invoke this API.</p>  Rate limits
        are enforced on this API. 160 requests per minute is supported per
        workspace. API will result in `429` if this threshold is breached.
      operationId: getDevices
      parameters:
        - name: filter
          in: query
          description: >
            Filter expressions consisting of simple comparison operations joined

            by logical operators.<br>

            | CLASS               |  
            EXAMPLES                                         |

            |---------------------|----------------------------------------------------|

            | Types               | integer, decimal, timestamp, string,
            boolean, null |

            | Comparison          | eq, ne, gt, ge, lt, le,
            in                         |

            | Logical Expressions | and, or,
            not                                       |


            The following examples are not an exhaustive list of all possible
            filtering options.
          required: false
          schema:
            type: string
          examples:
            equals:
              summary: Filter with equality check
              description: |
                Return devices with where a property equals a value.
                \<property> eq \<value>
              value: serialNumber eq 'STIAPL6404'
            not:
              summary: Filter on an inverted query
              description: |
                Return devices where a property does not equal a value
                not \<property> eq \<value>
              value: not serialNumber eq 'STIAPL6404'
            ge:
              summary: Filter with greater or equal check
              description: |
                Return devices with where a property greater or equal a value.
                \<property> ge \<value>
              value: createdAt ge ''2024-01-18T19:53:51.480Z''
            le:
              summary: Filter with lesser or equal check
              description: |
                Return devices with where a property lesser or equal a value.
                \<property> ge \<value>
              value: updatedAt le '2024-02-18T19:53:51.480Z'
            conjunction:
              summary: Filter on multiple strict conditionals
              description: >
                Return devices where property is populated and property contains
                value.

                \<property> eq \<value> and \<property> eq \<value>
              value: deviceType eq 'STORAGE' and partNumber eq 'RTICXL6413'
            disjunction:
              summary: Filter on multiple non strict conditionals
              description: >
                Return devices where property is populated and property contains
                value.

                \<property> eq \<value> or \<property> eq \<value>
              value: serialNumber eq 'STIAPL6404' or partNumber eq 'RTICXL6413'
            alternatives:
              summary: Filter for a value to have one of multiple possibilities
              description: |
                Return devices where property is one of multiple values.
                \<property> in \<value>,\<value>
              value: deviceType in 'COMPUTE', 'STORAGE'
        - name: filter-tags
          in: query
          description: |
            Filter expressions consisting of simple comparison operations joined
            by logical operators to be applied on the assigned tags or their
            values.<br>
            | CLASS               |   EXAMPLES      |
            |---------------------|-----------------|
            | Types               | string          |
            | Comparison          | eq, ne, in      |
            | Logical Expressions | and, or, not    |
          required: false
          schema:
            type: string
          examples:
            equals:
              summary: Filter with equality check
              description: |
                Return devices with where a tag key equal a tag value.
                \<tagKey> eq \<tagValue>
              value: '''city'' eq ''London'''
            not:
              summary: Filter on an inverted query
              description: |
                Return devices with where a tag key does not equal a tag value.
                not \<property> eq \<value>
              value: not 'city' eq 'Tokyo'
            conjunction:
              summary: Filter on multiple strict conditionals
              description: >
                Return devices containing the tag key and the corresponding
                value.

                \<property> eq \<value> and \<property> eq \<value>
              value: '''city'' eq ''London'' and ''street'' eq ''Piccadilly'''
            disjunction:
              summary: Filter on multiple non strict conditionals
              description: >
                Return devices containing the tag key and the corresponding
                value.

                \<property> eq \<value> or \<property> eq \<value>
              value: '''street'' eq ''Oxford Street'' or ''street'' eq ''Piccadilly'''
            alternatives:
              summary: Filter for a value to have one of multiple possibilities
              description: >
                Return devices containing the tag key and at least one of the
                specified values.

                \<property> in \<value>,\<value>
              value: '''street'' in ''Regent Street'', ''Oxford Street'', ''Piccadilly'''
        - name: sort
          in: query
          description: >-
            A comma separated list of sort expressions. A sort expression is a
            property name optionally followed by a direction indicator 'asc' or
            'desc'. The default is ascending order.
          required: false
          schema:
            type: string
          example: serialNumber,macAddress desc
        - name: select
          explode: false
          in: query
          description: >-
            A comma separated list of select properties to display in the
            response. The default is that all properties are returned.
          required: false
          style: form
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
          example: serialNumber,macAddress
        - name: limit
          in: query
          description: >-
            Specifies the number of results to be returned. The default value is
            2000.
          required: false
          schema:
            maximum: 2000
            minimum: 1
            type: integer
            format: int64
            default: 2000
        - name: offset
          in: query
          description: >-
            Specifies the zero-based resource offset to start the response from.
            The default value is 0.
          required: false
          schema:
            type: integer
            format: int64
            default: 0
      responses:
        '200':
          description: Successful response
          headers:
            Deprecation:
              description: |
                Wed, 15 Jan 2025 23:59:59 GMT
              schema:
                type: string
            Sunset:
              description: |
                Tue, 15 Apr 2025 23:59:59 GMT
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesGetResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: limit
                            description: Must be a numeric value which is 0 or greater.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
    post:
      deprecated: true
      tags:
        - Devices - v1beta1
      summary: Add devices
      description: >-
        Add one or more devices to a workspace. This API provides an
        asynchronous response and will always  return `202 Accepted` if basic
        input validations are successful. The  location header in the response
        provides the URI to be invoked for  fetching the progress of the device
        addition task. For details about the  status fetch URL, refer to the API
        [Get progress or status of async operations in
        devices](#operation/getDevicesAsyncOperationResource). <p><b>NOTE</b>:
        You need edit permissions for the Devices and Subscription service to
        invoke this API.</p> Rate limits are enforced on this API. 25 requests
        per minute is supported per workspace. API will result in `429` if this
        threshold is breached.
      operationId: postDevices
      requestBody:
        description: >-
          Accepts a maximum of five devices per request, combining the count of
          network, compute, and storage devices.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevicesPostRequest'
        required: true
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
          headers:
            Deprecation:
              description: |
                Wed, 15 Jan 2025 23:59:59 GMT
              schema:
                type: string
            Sunset:
              description: |
                Tue, 15 Apr 2025 23:59:59 GMT
              schema:
                type: string
            Location:
              $ref: '#/components/headers/LocationHeader'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: field
                            subject: serialNumber
                            description: serial number is blank.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
    patch:
      deprecated: true
      tags:
        - Devices - v1beta1
      summary: Update devices
      description: >-
        Update devices by passing one or more device IDs. The API currently
        supports:<ul><li>Assigning and unassigning devices to and from a
        service.</li><li>Applying and removing subscriptions to and from
        devices.</li></ul> To remove an application, set the `id` under
        `application` to `null` and 'region' to `null`. Set an empty array to
        the attribute `subscription` to remove a subscription. <br><br> Only one
        operation is supported in a single API call. For example, you cannot
        assign devices to an application and assign subscriptions to devices in
        a single API invocation. You can achieve this with two API
        calls.<br><br>This API provides an asynchronous response and returns
        `202 Accepted` if basic input validations are successful. The location
        header in the response provides the URI to be invoked for fetching the
        progress of the device update task. For details about the status fetch
        URL, refer to the API [Get progress or status of async operations in
        devices](#operation/getDevicesAsyncOperationResource).
        <br><br><b>NOTE</b>: You need edit permissions for the Devices and
        Subscription service to invoke this API. <br><br>Rate limits are
        enforced on this API. Five requests per minute is supported per
        workspace. API will result in `429` if this threshold is breached.
      operationId: patchDevices
      parameters:
        - name: id
          explode: true
          in: query
          description: Array of device resource IDs. Maximum five devices per request.
          required: true
          style: form
          schema:
            uniqueItems: true
            type: array
            items:
              type: string
          example: >-
            05fc0c47-e517-5709-976e-c0b726977477&id=08a42d07-b144-5602-9a82-7927d6e44616
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDevicesRequest'
        required: true
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
          headers:
            Deprecation:
              description: |
                Wed, 15 Jan 2025 23:59:59 GMT
              schema:
                type: string
            Sunset:
              description: |
                Tue, 15 Apr 2025 23:59:59 GMT
              schema:
                type: string
            Location:
              $ref: '#/components/headers/LocationHeader'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: device ID is not a valid UUID.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1beta1/devices/{id}:
    get:
      deprecated: true
      tags:
        - Devices - v1beta1
      summary: Get device information
      description: >-
        Get details on a specific device by passing its resourceId.
        <p><b>NOTE</b>: You need  view permissions for device management to
        invoke this API.</p> Rate limits are enforced on this API. 40 requests
        per minute is supported per workspace. API will result in `429` if this
        threshold is breached.
      operationId: getDeviceById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            description: The unique identifier (uuid) of the device.
      responses:
        '200':
          description: Successful response
          headers:
            Deprecation:
              description: |
                Wed, 15 Jan 2025 23:59:59 GMT
              schema:
                type: string
            Sunset:
              description: |
                Tue, 15 Apr 2025 23:59:59 GMT
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceDetail'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: Device ID is not a valid UUID.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Token provided is invalid
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request.
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unprocessable_content:
                  value:
                    errorCode: HPE_GL_UNPROCESSABLE_CONTENT
                    message: Unprocessable Content
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 422
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          content: Could not process the content.
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
  /devices/v1beta1/async-operations/{id}:
    get:
      deprecated: true
      tags:
        - Devices - v1beta1
      summary: Get progress or status of async operations in devices
      description: >-
        The add and update device APIs are asynchronous. Use this API to find
        the status of the asynchronous add and update operations. <br><br> An
        asynchronous resource tracks the status of an asynchronous operation. An
        asynchronous resource that has reached a terminal state (`SUCCEEDED`,
        `FAILED`, `TIMEOUT`) will no longer be accessible 24 hours after
        reaching the terminal state. <br><br> The `TIMEOUT` state indicates that
        the operation was in an `INITIALIZED` or `RUNNING` state for a period
        greater than the timeout set. If an asynchronous operation resource
        coming from an asynchronous request consists of multiple devices, a
        breakdown of succeeded devices and failed devices, if there are any,
        will be returned as the response. In this case, the device serial number
        identifies each device. <p><b>NOTE</b>: You need view permissions for
        the Devices and Subscription service to invoke this API.</p> Rate limits
        are enforced on this API. 90 requests per minute is supported per
        workspace. API will result in `429` if this threshold is breached.
      operationId: getDevicesAsyncOperationResource
      parameters:
        - name: id
          in: path
          description: The unique identifier of an asynchronous API operation.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          headers:
            Deprecation:
              description: |
                Wed, 15 Jan 2025 23:59:59 GMT
              schema:
                type: string
            Sunset:
              description: |
                Tue, 15 Apr 2025 23:59:59 GMT
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResource'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeBadRequestError'
              examples:
                error_bad_request:
                  value:
                    errorCode: HPE_GL_ERROR_BAD_REQUEST
                    message: Bad Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 400
                    errorDetails:
                      - type: hpe.greenlake.bad_request
                        issues:
                          - source: query.parameter
                            subject: id
                            description: Async ID is not provided.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized:
                  value:
                    errorCode: HPE_GL_ERROR_UNAUTHORIZED
                    message: Unauthorized Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 401
                    errorDetails:
                      - type: hpe.greenlake.unauthorized
                        issues:
                          - source: hpe.greenlake.devicemanagement
                            subject: Unauthorized
                            description: Authentication error - the token was expired.
        '403':
          description: The operation is forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_forbidden:
                  value:
                    errorCode: HPE_GL_ERROR_FORBIDDEN
                    message: Forbidden Request
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 403
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          access_token: Permission is denied to perform requested operation.
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_not_found:
                  value:
                    errorCode: HPE_GL_ERROR_NOT_FOUND
                    message: Not Found
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 404
                    errorDetails:
                      - type: hpe.greenlake.not_found
                        issues:
                          - source: hpe.greenlake.devicemanagement
                            subject: Internal Server Error
                            description: Device ID not found
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_requests:
                  value:
                    errorCode: HPE_GL_ERROR_TOO_MANY_REQUESTS
                    message: Too Many Requests
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 429
                    errorDetails:
                      - type: hpe.greenlake.metadata
                        source: hpe.greenlake.subscriptionmanagement
                        metadata:
                          apiRateLimit: >-
                            Too Many Requests. Rate limit has exceeded a
                            predefined value.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeServerError'
              examples:
                error_internal_server_error:
                  value:
                    errorCode: HPE_GL_ERROR_INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    debugId: abbeeb59-12cb-49a3-9ce5-55edba12213f
                    httpStatusCode: 500
                    errorDetails:
                      - type: hpe.greenlake.retry_info
                        retryAfterSeconds: 30
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
  headers:
    LocationHeader:
      schema:
        type: string
        example: /devices/v1beta1/async-operations/22d6fbfb-d253-4455-984a-356da827e5fc
      description: The URI of the accepted asynchronous operation resource
    LocationHeaderV1:
      schema:
        type: string
        example: /devices/v1/async-operations/22d6fbfb-d253-4455-984a-356da827e5fc
      description: The URI of the accepted asynchronous operation resource
  schemas:
    AsyncResponse:
      required:
        - code
        - status
        - transactionId
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: Three digit HTTP status code.
        status:
          type: string
          enum:
            - 100 CONTINUE
            - 101 SWITCHING_PROTOCOLS
            - 102 PROCESSING
            - 103 CHECKPOINT
            - 200 OK
            - 201 CREATED
            - 202 ACCEPTED
            - 203 NON_AUTHORITATIVE_INFORMATION
            - 204 NO_CONTENT
            - 205 RESET_CONTENT
            - 206 PARTIAL_CONTENT
            - 207 MULTI_STATUS
            - 208 ALREADY_REPORTED
            - 226 IM_USED
            - 300 MULTIPLE_CHOICES
            - 301 MOVED_PERMANENTLY
            - 302 FOUND
            - 302 MOVED_TEMPORARILY
            - 303 SEE_OTHER
            - 304 NOT_MODIFIED
            - 305 USE_PROXY
            - 307 TEMPORARY_REDIRECT
            - 308 PERMANENT_REDIRECT
            - 400 BAD_REQUEST
            - 401 UNAUTHORIZED
            - 402 PAYMENT_REQUIRED
            - 403 FORBIDDEN
            - 404 NOT_FOUND
            - 405 METHOD_NOT_ALLOWED
            - 406 NOT_ACCEPTABLE
            - 407 PROXY_AUTHENTICATION_REQUIRED
            - 408 REQUEST_TIMEOUT
            - 409 CONFLICT
            - 410 GONE
            - 411 LENGTH_REQUIRED
            - 412 PRECONDITION_FAILED
            - 413 PAYLOAD_TOO_LARGE
            - 413 REQUEST_ENTITY_TOO_LARGE
            - 414 URI_TOO_LONG
            - 414 REQUEST_URI_TOO_LONG
            - 415 UNSUPPORTED_MEDIA_TYPE
            - 416 REQUESTED_RANGE_NOT_SATISFIABLE
            - 417 EXPECTATION_FAILED
            - 418 I_AM_A_TEAPOT
            - 419 INSUFFICIENT_SPACE_ON_RESOURCE
            - 420 METHOD_FAILURE
            - 421 DESTINATION_LOCKED
            - 422 UNPROCESSABLE_ENTITY
            - 423 LOCKED
            - 424 FAILED_DEPENDENCY
            - 425 TOO_EARLY
            - 426 UPGRADE_REQUIRED
            - 428 PRECONDITION_REQUIRED
            - 429 TOO_MANY_REQUESTS
            - 431 REQUEST_HEADER_FIELDS_TOO_LARGE
            - 451 UNAVAILABLE_FOR_LEGAL_REASONS
            - 500 INTERNAL_SERVER_ERROR
            - 501 NOT_IMPLEMENTED
            - 502 BAD_GATEWAY
            - 503 SERVICE_UNAVAILABLE
            - 504 GATEWAY_TIMEOUT
            - 505 HTTP_VERSION_NOT_SUPPORTED
            - 506 VARIANT_ALSO_NEGOTIATES
            - 507 INSUFFICIENT_STORAGE
            - 508 LOOP_DETECTED
            - 509 BANDWIDTH_LIMIT_EXCEEDED
            - 510 NOT_EXTENDED
            - 511 NETWORK_AUTHENTICATION_REQUIRED
          description: Three digit HTTPS status code and message.
        transactionId:
          type: string
          description: The unique identifier of the transaction.
    DevicesPostRequestV2Beta1:
      type: object
      required:
        - serialNumber
        - deviceType
      properties:
        tags:
          type: object
          additionalProperties:
            type: object
            minProperties: 1
            maxProperties: 50
            properties:
              key:
                type: string
                minLength: 1
                maxLength: 128
                description: A tag key is the name used to refer to the tag.
              value:
                type: string
                minLength: 0
                maxLength: 256
                description: A tag value is a value applied to the tag key.
        serialNumber:
          type: string
          description: The serial number of the device.
        macAddress:
          type: string
          description: >-
            The media access control (MAC) address of the device. This is
            required for claiming `NETWORK` devices.
        partNumber:
          type: string
          description: >-
            The part number of the device. This is required for claiming
            `COMPUTE` or `STORAGE` devices.
        deviceType:
          type: string
          description: The type of device.
          enum:
            - COMPUTE
            - NETWORK
            - STORAGE
        location:
          type: object
          description: The location ID of the device.
          properties:
            id:
              type: string
    DevicesPostRequest:
      required:
        - compute
        - network
        - storage
      type: object
      properties:
        network:
          type: array
          items:
            $ref: '#/components/schemas/RequestNetwork'
        compute:
          type: array
          items:
            $ref: '#/components/schemas/RequestCompute'
        storage:
          type: array
          items:
            $ref: '#/components/schemas/RequestStorage'
    RequestCompute:
      required:
        - partNumber
        - serialNumber
      type: object
      properties:
        tags:
          type: object
          additionalProperties:
            type: object
            minProperties: 1
            maxProperties: 50
            properties:
              key:
                type: string
                minLength: 1
                maxLength: 128
                description: A tag key is the name used to refer to the tag.
              value:
                oneOf:
                  - type: string
                    minLength: 0
                    maxLength: 256
                    description: A tag value is a value applied to the tag key.
                  - type: 'null'
                    description: A tag value of null indicates a tag is to be deleted.
        serialNumber:
          type: string
          description: The serial number of the device.
        partNumber:
          type: string
          description: Identifier of a product component or part.
    RequestNetwork:
      required:
        - macAddress
        - serialNumber
      type: object
      properties:
        tags:
          type: object
          additionalProperties:
            type: object
            minProperties: 1
            maxProperties: 50
            properties:
              key:
                type: string
                minLength: 1
                maxLength: 128
                description: A tag key is the name used to refer to the tag.
              value:
                oneOf:
                  - type: string
                    minLength: 0
                    maxLength: 256
                    description: A tag value is a value applied to the tag key.
                  - type: 'null'
                    description: >-
                      A tag value of null indicates that the tag is to be
                      deleted.
        serialNumber:
          type: string
          description: The serial number of the device.
        macAddress:
          type: string
          description: The media access control (MAC) address of the device.
    RequestStorage:
      required:
        - serialNumber
        - partNumber
      type: object
      properties:
        tags:
          type: object
          additionalProperties:
            type: object
            minProperties: 1
            maxProperties: 50
            properties:
              key:
                type: string
                minLength: 1
                maxLength: 128
                description: A tag key is the name used to refer to the tag.
              value:
                oneOf:
                  - type: string
                    minLength: 0
                    maxLength: 256
                    description: A tag value is a value applied to the tag key.
                  - type: 'null'
                    description: A tag value of null indicates a tag is to be deleted.
        serialNumber:
          type: string
          description: The serial number of the device.
        partNumber:
          type: string
          description: The part number of the device.
    PatchDevicesRequestV2:
      type: object
      properties:
        subscription:
          type: array
          items:
            $ref: '#/components/schemas/RequestSubscription'
        application:
          $ref: '#/components/schemas/RequestApplication'
        region:
          type: string
          description: The region of the application the device is provisioned in.
        tenantWorkspaceId:
          type: string
          description: The platform customer ID of the tenant.
        archived:
          type: boolean
        tags:
          type: object
          description: >-
            Provide a map of `tags` to create or delete for the given `DeviceID`
            (or multiple `DeviceID`'s). Tags are saved with the character casing
            preserved (uppercase, lowercase, mixed, and so on). For example,
            adding a new tag with the key `Location` will fail if the Device
            already has a tag with the key `LOCATION` as they are considered the
            same key. Tag keys and tag values can comprise letters, numbers,
            spaces (represented in UTF-8), and only the characters: `_`, `.`,
            `:`, `=`, `+`, `-`, and  `@`. **NOTE:** Do not store sensitive data,
            such as personally identifiable information, in tags.
          additionalProperties:
            type: object
            minProperties: 1
            maxProperties: 50
            properties:
              key:
                type: string
                minLength: 1
                maxLength: 128
                description: A tag key is the name used to refer to the tag.
              value:
                oneOf:
                  - type: string
                    minLength: 0
                    maxLength: 256
                    description: A tag value is a value applied to the tag key.
                  - type: 'null'
                    description: A tag value of null indicates a tag is to be deleted.
    PatchDevicesRequest:
      type: object
      properties:
        subscription:
          type: array
          items:
            $ref: '#/components/schemas/RequestSubscription'
        application:
          $ref: '#/components/schemas/RequestApplication'
        region:
          type: string
          description: The region of the application the device is provisioned in.
        tenantPlatformCustomerId:
          type: string
          description: The platform customer ID of the tenant.
    RequestApplication:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application.
    RequestSubscription:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the subscription.
    AsyncOperationResource:
      type: object
      required:
        - id
        - type
      properties:
        status:
          type: string
          enum:
            - INITIALIZED
            - RUNNING
            - FAILED
            - SUCCEEDED
            - TIMEDOUT
            - PAUSED
          description: The current status of an asynchronous operation.
        startedAt:
          type: string
          format: date-time
          description: Date and time the asynchronous operation began in UTC format.
        endedAt:
          type: string
          format: date-time
          description: Date and time the asynchronous operation ended in UTC format.
        progressPercent:
          type: integer
          format: int32
          description: >-
            A number that indicates how close to completion the asynchronous
            operation is.
        suggestedPollingIntervalSeconds:
          type: integer
          format: int32
          description: >-
            The suggested time to wait (in minutes) before calling the operation
            again.
        timeoutMinutes:
          type: integer
          format: int32
          description: The number of minutes it took for the operation to time out.
        result:
          type: object
          description: >-
            An array that provides information on successful or unsuccessful
            operations.
        resultType:
          type: string
          description: >-
            Relates individual devices to a result type. A result type declares
            if an operation was successful or unsuccessful.
        id:
          type: string
          example: 3292c36d-30ef-4f26-823b-76b5d213b670
          description: The unique identifier of the device.
        type:
          type: string
          description: The type of the resource
          example: devices/asyncOperation
    DeviceDetail:
      required:
        - id
        - partNumber
        - serialNumber
        - type
      type: object
      properties:
        id:
          maxLength: 36
          minLength: 0
          type: string
          example: 64343c3c-3016-4234-baee-765651aa4bb3
          description: The unique identifier of the device.
        macAddress:
          pattern: ^([0-9a-fA-F]{2})(:[0-9a-fA-F]{2}){5}$
          type: string
          example: '21:01:18:21:12:22'
          description: The media access control (MAC) address of the device
        serialNumber:
          type: string
          example: AX17PR347J
          description: The serial number of the device.
        partNumber:
          type: string
          example: BHD31D9J
          description: Identifier of the a device component or part.
        type:
          type: string
          example: devices/device
          description: The type of the resource.
        deviceType:
          type: string
          enum:
            - ALS
            - AP
            - BLE
            - COMPUTE
            - CONTROLLER
            - DHCI_COMPUTE
            - DHCI_STORAGE
            - EINAR
            - EINR
            - GATEWAY
            - IAP
            - LTE_MODEM
            - MC
            - STORAGE
            - SWITCH
            - NW_THIRD_PARTY
            - PCE
            - SD_WAN_GW
            - OPSRAMP_SAAS
            - SD_SAAS
            - SENSOR
            - BRIDGES
            - UNKNOWN
          description: The category (type) the device belongs to.
        assignedState:
          type: string
          enum:
            - ASSIGNED_TO_ACTIVATE_CONFIG
            - ASSIGNED_TO_DEDICATED_PLATFORM
            - ASSIGNED_TO_SERVICE
            - UNASSIGNED
          description: >
            The current assignment state of the device.

            - `ASSIGNED_TO_ACTIVATE_CONFIG`—The device was moved to the custom
            activate configuration.

            - `ASSIGNED_TO_DEDICATED_PLATFORM`—The device is used in a dedicated
            platform workspace.

            - `ASSIGNED_TO_SERVICE`—The device is assigned to a service.

            - `UNASSIGNED`—The device is available for service provisioning.
        createdAt:
          type: string
          example: '2024-02-13T09:00:22.920Z'
          description: Date and time the device was created in UTC.
        updatedAt:
          type: string
          example: '2024-02-13T19:30:32.920Z'
          description: Date and time the device was last updated in UTC.
        model:
          type: string
          example: COMPUTE
          description: Hardware model of the device
        archived:
          type: boolean
          example: false
          description: >-
            A boolean that indicates whether the device has been archived or
            not. Archived devices are no longer in service.
        deviceName:
          type: string
          example: iLO Hostname
          description: Hostname of the device
        secondaryName:
          type: string
          example: OS Hostname
          description: Secondary hostname of the device
        application:
          $ref: '#/components/schemas/ResponseApplication'
        region:
          type: string
          example: us-west
          description: The region of the application the device is provisioned in
        tags:
          type: object
          additionalProperties:
            type: string
            description: >-
              A tag is a form of metadata applied to any resource and primarily
              used to categorize resources.
        subscription:
          type: array
          items:
            $ref: '#/components/schemas/ResponseSubscription'
        tenantWorkspaceId:
          type: string
          example: 3292c36d-30ef-4f26-823b-76b5d213b670
          description: >-
            The unique identifier of the tenant workspace belonging to an MSP.
            This field is populated only for MSP-owned inventory tenants (the
            MSP owns the devices and subscriptions and also manages the
            workspace on behalf of their customers).
        location:
          $ref: '#/components/schemas/ResponseLocation'
        warranty:
          $ref: '#/components/schemas/ResponseWarranty'
        dedicatedPlatformWorkspace:
          $ref: '#/components/schemas/ResponseDedicatedPlatform'
    DevicesGetResponse:
      type: object
      required:
        - items
        - count
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DeviceDetail'
        count:
          type: integer
          format: int32
          example: 10
          description: Number of items returned
        offset:
          type: integer
          format: int32
          example: 0
          description: Zero-based resource offset
        total:
          type: integer
          format: int32
          example: 100
          description: >-
            Total number of items in the collection that match the filter query,
            if one was provided in the request
    ResponseApplication:
      required:
        - id
        - resourceUri
      type: object
      properties:
        id:
          type: string
          example: 0892c36d-40df-4f26-923b-76b5d213b420
          description: Identifier of the application provisioned on the device
        resourceUri:
          type: string
          description: URI to the application
          example: >-
            /service-catalog/v1beta1/service-managers/0892c36d-40df-4f26-923b-76b5d213b420
    ResponseSubscription:
      required:
        - id
        - resourceUri
      type: object
      properties:
        id:
          type: string
          example: 3292c36d-30ef-4f26-823b-76b5d213b670
          description: Unique identifier of the subscription assigned to the device
        resourceUri:
          type: string
          description: URI to the the subscription
          example: >-
            /subscriptions/v1beta1/subscriptions/3292c36d-30ef-4f26-823b-76b5d213b670
    ResponseLocation:
      required:
        - id
        - resourceUri
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 57f2b22e-7923-497b-8120-fd2b94579f13
          description: Identifier of the location of the device
        city:
          type: string
          example: New York
          description: City of the location
        state:
          type: string
          example: NY
          description: State of the location
        country:
          type: string
          example: USA
          description: Country of the location
        latitude:
          type: number
          format: double
          example: 40.7128
          description: Latitude coordinate
        longitude:
          type: number
          format: double
          example: -74.006
          description: Longitude coordinate
        postalCode:
          type: string
          example: 10001
          description: Postal code of the location
        locationName:
          type: string
          example: Main Office
          description: Name of the location
        streetAddress:
          type: string
          example: 123 Main St
          description: Street address of the location
        locationSource:
          type: string
          example: GPS
          description: Source of the location information
        resourceUri:
          type: string
          description: URI to the location of the device
          example: /locations/v1beta1/locations/57f2b22e-7923-497b-8120-fd2b94579f13
    ResponseWarranty:
      type: object
      description: The warranty information for the device.
      properties:
        country:
          type: string
        currentSupportLevel:
          $ref: '#/components/schemas/ResponseSupportLevel'
        supportLevels:
          type: array
          items:
            $ref: '#/components/schemas/ResponseSupportLevel'
    ResponseSupportLevel:
      type: object
      description: >-
        The support levels are ranked to differentiate and display the support
        provided to customers.
      properties:
        serviceLevel:
          type: string
          description: The value used for differentiation.
        serviceLevelRank:
          type: integer
          description: >-
            The rank of the support level. The lower the rank, the better the
            level.
        contractLevel:
          type: string
          description: Sub-categorizes the support level for display to the customer.
        contractLevelRank:
          type: integer
          description: >-
            The rank of the contract level within the support level. The lower
            the rank, the better the level.
        startDate:
          type: integer
          description: The start date of the support level.
        endDate:
          type: integer
          description: The end date of the support level.
    ResponseDedicatedPlatform:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          example: a482ff61-1e0e-4818-920b-4cbc017208ee
          description: Unique identifier of the dedicated platform workspace
    GeneralErrorDetail:
      type: object
      required:
        - type
        - source
        - metadata
      properties:
        type:
          type: string
          description: The type of error.
        source:
          type: string
          description: The source of the error.
        metadata:
          type: object
          description: Additional key pairs.
          additionalProperties:
            type: object
    HpeGreenLakeGeneralError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: HTTP equivalent status code
        errorCode:
          type: string
          description: Unique machine-friendly identifier for the error
        message:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error
        debugId:
          type: string
          description: Unique identifier for the instance of this error
        generalErrorDetails:
          type: array
          items:
            $ref: '#/components/schemas/GeneralErrorDetail'
    BadRequestErrorDetail:
      type: object
      required:
        - type
        - issues
      properties:
        type:
          type: string
          description: The type of error details.
        issues:
          type: array
          description: An array of request issues.
          items:
            $ref: '#/components/schemas/ErrorIssue'
    ErrorIssue:
      type: object
      properties:
        source:
          type: string
          description: The part of the request with an issue.
        subject:
          type: string
          description: The issue key.
        description:
          type: string
          description: An explanation of the issue.
    HpeGreenLakeBadRequestError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: HTTP equivalent status code
        errorCode:
          type: string
          description: Unique machine-friendly identifier for the error
        message:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error
        debugId:
          type: string
          description: Unique identifier for the instance of this error
        badRequestErrorDetails:
          type: array
          items:
            $ref: '#/components/schemas/BadRequestErrorDetail'
    HpeGreenLakeServerError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: HTTP equivalent status code
        errorCode:
          type: string
          description: Unique machine-friendly identifier for the error
        message:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error
        debugId:
          type: string
          description: Unique identifier for the instance of this error
        serverErrorDetails:
          type: array
          items:
            $ref: '#/components/schemas/ServerErrorDetail'
    ServerErrorDetail:
      type: object
      required:
        - type
        - retryAfterSeconds
      properties:
        type:
          type: string
        retryAfterSeconds:
          type: integer
          format: int32
  examples:
    CreateNewTags:
      summary: Create new tags for a device
      description: >-
        The `location` tag is created with `San Jose`, the `purchase month` tag
        is created with `April 2023` , and the `Setup Option` tag is created
        with `Default`.
      value:
        tags:
          location: San Jose
          purchase month: April 2023
          Setup Option: Default
    UpdateExistingTagsWithNewTagValues:
      summary: Update existing tags with new values
      description: >-
        The `location` tag is updated with `Los Angeles` and the `Setup Option`
        tag is updated with `Simplified`.
      value:
        tags:
          location: Los Angeles
          Setup Option: Simplified
    DeleteExistingTags:
      summary: Remove existing tags from a device
      description: The `purchase month` tag is removed.
      value:
        tags:
          purchase month: null
    UpdateAndDeleteExistingTags:
      summary: Update existing tags with new values and remove existing tags
      description: >-
        The `location` tag is updated with `San Francisco` and the `Setup
        Option` tag is removed.
      value:
        tags:
          location: San Francisco
          Setup Option: null
    CreateNewTagsAndAssignApplication:
      summary: Create new tags and assign an application to a device
      description: >-
        The `location` tag is created with `San Jose`, the `purchase month` tag
        is created with `April 2023`, and the `Setup Option` tag is created with
        `Default`. The application with the ID
        `0892c36d-40df-4f26-923b-76b5d213b420` is assigned to the device.
      value:
        tags:
          location: San Jose
          purchase month: April 2023
          Setup Option: Default
        application:
          id: 0892c36d-40df-4f26-923b-76b5d213b420
    UpdateExistingTagsAndUnassignApplication:
      summary: >-
        Update existing tags with new values and remove an application from a
        device
      description: >-
        The `location` tag is updated with `Los Angeles` and the `Setup Option`
        tag is updated with `Simplified`. The application is removed from the
        device.
      value:
        tags:
          location: Los Angeles
          Setup Option: Simplified
        application:
          id: null
    AssignApplication:
      summary: Assign an application to a device
      description: >-
        The application with the ID `0892c36d-40df-4f26-923b-76b5d213b420` is
        assigned to the device.
      value:
        application:
          id: 0892c36d-40df-4f26-923b-76b5d213b420
    UnassignApplication:
      summary: Remove an application from a device
      description: The application is removed from the device.
      value:
        application:
          id: null
    ArchiveDevice:
      summary: Archive a device
      description: The device is archived.
      value:
        archived: true
    UnarchiveDevice:
      summary: Unarchive a device
      description: The device is unarchived.
      value:
        archived: false
    AssignSubscription:
      summary: Assign a subscription to a device
      description: >-
        The subscription with the ID `3292c36d-30ef-4f26-823b-76b5d213b670` is
        assigned to the device.
      value:
        subscription:
          - id: 3292c36d-30ef-4f26-823b-76b5d213b670
    UnassignSubscription:
      summary: Unassign a subscription from a device
      description: The subscription is unassigned from the device.
      value:
        subscription: []
