openapi: 3.1.0
info:
  title: HPE Flex Solutions
  description: |
    This is the API reference document for the HPE Flex Solutions data service.
    It provides endpoints to view and manage Flex device and orders solutions.
  version: v1beta1
  license:
    name: HPE License
    url: https://www.hpe.com/us/en/software/licensing.html
servers:
  - url: https://us-west.api.greenlake.hpe.com
security:
  - Bearer: []
paths:
  /flex/v1beta1/orders:
    get:
      tags:
        - Order Data
      summary: Get and search for orders
      description: >
        This endpoint allows you to retrieve and search for orders.

        You can filter, sort, and paginate the results.

        <br>

        **Pagination:** This endpoint supports offset-based pagination using
        `limit` and `offset` parameters.
      operationId: getOrders
      parameters:
        - name: filter
          in: query
          description: >
            Filter expressions consisting of simple comparison operations joined
            by logical operators.

            <br>

            For the v1beta1 API, the following fields are supported for
            filtering under the [ODATA
            specification](https://www.odata.org/documentation/):
              * `id`
              * `billingAccountId`
              * `sowId`
              * `billingAccountName`
              * `customerName`
              * `resellerName`
              * `partnerName`
              * `distributorName`
              * `isFlexPartner`
            <br>
          required: false
          schema:
            type: string
          examples:
            Filter example 1:
              description: Match all orders with given selected filters
              value: >-
                billingAccountId in ('HP-APJ-999-JPN-00104',
                'HP-APUS-787-EN-00100') and billingAccountName eq 'accountname'
            Filter example 2:
              description: Match all orders with given selected filters
              value: sowId eq 'OPE-0011261086' and customerName eq 'HPE Tech Care'
        - name: select
          in: query
          description: |
            Comma separated list of fields to be returned in the response.
            If not provided, all fields will be returned.
            <br>
            All fields are supported.
          required: false
          schema:
            type: string
          example: resellerName,billingAccountName,orderEndDate
        - name: sort
          in: query
          description: |
            Comma separated list of fields to be sorted by in the response.
            The default sorting order is by `orderEndDate` in ascending order.
          required: false
          schema:
            type: string
          example: orderEndDate asc
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            default: 0
            minimum: 0
          example: 10
        - name: limit
          in: query
          required: false
          description: Number of entities to return with a maximum of 100.
          schema:
            type: integer
            minimum: 0
            maximum: 100
            default: 20
          example: 30
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  count:
                    type: integer
                    description: The number of returned items.
                  total:
                    type: integer
                    description: >-
                      The total number of items in the collection that match the
                      filter query, if one was provided in the request.
                  offset:
                    type: integer
                    description: The offset of the returned page.
        '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: filter
                            description: Invalid filter expression.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized_request:
                  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_request:
                  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_request:
                  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
          headers:
            X-RateLimit-Limit:
              description: The number of requests allowed in the current time window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: The number of requests remaining in the current time window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Number of seconds until the quota resets
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_request:
                  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
  /flex/v1beta1/orders/transform:
    get:
      tags:
        - Order Data
      summary: Get distinct transformative data for orders
      description: >
        This endpoint allows distinct transformative queries for orders.

        <br>

        A transform query applies a logical function to a resource set, such as
        aggregating by a element.

        <br>

        **Pagination:** This endpoint supports offset-based pagination using
        `limit` and `offset` parameters.
      operationId: getOrdersTransform
      parameters:
        - name: group-by
          in: query
          description: >
            Field to be grouped by. Will return unique results of that type.

            <br>

            Supported fields are:
              * `sowId`
              * `customerName`
              * `billingAccountName`
              * `billingAccountId`
              * `partnerName`
            <br>

            (partnerName is a unique combined set of resellerName and
            distributorName)
          required: true
          schema:
            type: string
          example: partnerName
        - name: filter
          in: query
          description: >
            Filter expressions consisting of simple comparison operations joined
            by logical operators.

            <br>

            For the v1beta1 API, the following fields are supported for
            filtering under the [ODATA
            specification](https://www.odata.org/documentation/):
              * `billingAccountId`
              * `sowId`
              * `billingAccountName`
              * `customerName`
              * `resellerName`
              * `distributorName`
              * `partnerName`
            <br>
          required: false
          schema:
            type: string
          examples:
            Filter example 1:
              description: Match all orders with given selected filters
              value: >-
                billingAccountId in ('HP-APJ-999-JPN-00104',
                'HP-APUS-787-EN-00100') and billingAccountName eq 'accountname'
            Filter example 2:
              description: Match all orders with given selected filters
              value: sowId eq 'OPE-0011261086' and customerName eq 'HPE Tech Care'
        - name: sort
          in: query
          description: >
            Fields to be sorted by in the response.

            The default sorting order is by the group-by field in ascending
            order.

            The sort field must be one of the group-by fields, if given.
          required: false
          schema:
            type: string
          example: partnerName desc
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            default: 0
            minimum: 0
          example: 10
        - name: limit
          in: query
          required: false
          description: Number of entities to return with a maximum of 100.
          schema:
            type: integer
            minimum: 0
            maximum: 100
            default: 20
          example: 30
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrderTransform'
                  count:
                    type: integer
                  total:
                    type: integer
                  offset:
                    type: integer
        '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: group-by
                            description: Required parameter is missing.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized_request:
                  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_request:
                  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_request:
                  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
          headers:
            X-RateLimit-Limit:
              description: The number of requests allowed in the current time window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: The number of requests remaining in the current time window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Number of seconds until the quota resets
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_request:
                  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
  /flex/v1beta1/devices:
    get:
      tags:
        - Device Data
      summary: Get and search for Device
      description: >
        This endpoint allows you to retrieve and search for devices.

        You can filter, sort, and paginate the results.

        <br>

        **Pagination:** This endpoint supports offset-based pagination using
        `limit` and `offset` parameters.
      operationId: getDevices
      parameters:
        - name: filter
          in: query
          description: >
            Filter expressions consisting of simple comparison operations joined
            by logical operators.

            <br>

            For the v1beta1 API, the following fields are supported for
            filtering under the [ODATA
            specification](https://www.odata.org/documentation/):
              * `id`
              * `macAddress`
              * `serialNumber`
              * `resourceId`
              * `partNumber`
              * `name`
              * `type`
              * `model`
              * `make`
              * `billingAccountName`
              * `billingTier`
            <br>
          required: false
          schema:
            type: string
          examples:
            Filter example 1:
              description: Match all devices with given selected filters
              value: >-
                macAddress in ('35:CA:68:8C:B0:51', '8A:26:D2:82:65:D0') and
                make eq 'HPE'
            Filter example 2:
              description: Match all devices with given selected filters
              value: >-
                resourceId eq '554c7740-355f-4ece-8334-3fe9ea9ee33e' and
                billingAccountName eq 'HPE Tech Care'
        - name: select
          in: query
          description: |
            Comma separated list of fields to be returned in the response.
            If not provided, all fields will be returned.
            <br>
            All fields are supported.
          required: false
          schema:
            type: string
          example: serialNumber,type,make,orderEndDate,billingTier
        - name: sort
          in: query
          description: |
            Comma separated list of fields to be sorted by in the response.
            The default sorting order is by resourceId in ascending order.
          required: false
          schema:
            type: string
          example: resourceId,model asc
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            default: 0
            minimum: 0
          example: 10
        - name: limit
          in: query
          required: false
          description: Number of entities to return with a maximum of 100.
          schema:
            type: integer
            minimum: 0
            maximum: 100
            default: 20
          example: 30
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Device'
                  count:
                    type: integer
                  total:
                    type: integer
                  offset:
                    type: integer
        '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: filter
                            description: Invalid filter expression.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized_request:
                  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_request:
                  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_request:
                  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
          headers:
            X-RateLimit-Limit:
              description: The number of requests allowed in the current time window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: The number of requests remaining in the current time window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Number of seconds until the quota resets
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_request:
                  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
  /flex/v1beta1/devices/{id}:
    get:
      tags:
        - Device Data
      summary: Get a single device by device resource ID
      description: |
        This endpoint allows you to retrieve a device by device resourceID.
      operationId: getDevice
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            description: The unique identifier (UUID) of the device resource.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '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: path.parameter
                            subject: id
                            description: Parameter ID is missing.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_unauthorized_request:
                  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_request:
                  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_request:
                  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
          headers:
            X-RateLimit-Limit:
              description: The number of requests allowed in the current time window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: The number of requests remaining in the current time window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Number of seconds until the quota resets
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HpeGreenLakeGeneralError'
              examples:
                error_too_many_request:
                  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
  schemas:
    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.
    HpeGreenLakeGeneralError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: The HTTP equivalent status code.
        errorCode:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error.
        message:
          type: string
          description: A user-friendly error message.
        debugId:
          type: string
          example: 64343c3c-3016-4234-baee-765651aa4bb3
          description: A unique identifier for the instance of this error.
        errorDetails:
          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 bad request issues.
          items:
            $ref: '#/components/schemas/ErrorIssue'
    ErrorIssue:
      type: object
      required:
        - source
        - subject
      properties:
        source:
          type: string
          description: The source of the error.
        subject:
          type: string
          description: The specific issue key.
        description:
          type: string
          description: A brief explanation of the error.
    HpeGreenLakeBadRequestError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: The HTTP equivalent status code.
        errorCode:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error.
        message:
          type: string
          description: A user-friendly error message.
        debugId:
          type: string
          example: 64343c3c-3016-4234-baee-765651aa4bb3
          description: A unique identifier for the instance of this error.
        errorDetails:
          type: array
          items:
            $ref: '#/components/schemas/BadRequestErrorDetail'
    HpeGreenLakeServerError:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          format: int32
          description: The HTTP equivalent status code.
        errorCode:
          type: string
          description: >-
            A unique machine-friendly, but human-readable identifier for the
            error.
        message:
          type: string
          description: A user-friendly error message.
        debugId:
          type: string
          example: 64343c3c-3016-4234-baee-765651aa4bb3
          description: A unique identifier for the instance of this error.
        errorDetails:
          type: array
          items:
            $ref: '#/components/schemas/ServerErrorDetail'
    ServerErrorDetail:
      type: object
      required:
        - type
        - retryAfterSeconds
      properties:
        type:
          type: string
        retryAfterSeconds:
          type: integer
          format: int32
    ErrorResponse:
      type: object
      required:
        - httpStatusCode
        - errorCode
        - message
        - debugId
      properties:
        httpStatusCode:
          type: integer
          description: HTTP equivalent status code
          minimum: 400
          maximum: 599
          default: 400
          format: int64
        errorCode:
          type: string
          description: Unique machine-friendly identifier for the error
        message:
          type: string
          description: User-friendly error message
        debugId:
          type: string
          description: Unique identifier for the instance of this error
        errorDetails:
          type: array
          description: Additional detailed information about the error
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      type: object
      required:
        - type
        - source
        - metadata
        - issues
        - retryAfterSeconds
      properties:
        type:
          type: string
          description: The type of error details.
          examples:
            - hpe.greenlake.metadata
        retryAfterSeconds:
          type: integer
          description: The number of seconds to wait before retrying the request.
          example: 60
        source:
          type: string
          description: The source of the error, typically a registered API group.
          examples:
            - hpe.greenlake.organizations
        metadata:
          type: object
          description: Any additional key value pairs that the service defines.
          properties:
            recommendedActions:
              type: array
              items:
                type: string
                description: Action recommended to the user
                examples:
                  - Contact admin to perform operation
        issues:
          type: array
          items:
            type: object
            required:
              - source
              - subject
            properties:
              source:
                type: string
                description: Source of the error
                examples:
                  - hpe.greenlake.organizations
              subject:
                type: string
                description: Subject of the error
                examples:
                  - Order
              field:
                type: string
                description: Field that caused the error
                examples:
                  - name
              reason:
                type: string
                description: Reason for the error
                examples:
                  - Invalid value
              message:
                type: string
                description: Message describing the error
                examples:
                  - Name is required
    Order:
      type: object
      required:
        - id
        - createdAt
        - updatedAt
        - type
        - generation
        - billingAccountId
        - sowId
        - billingAccountName
        - orderStartDate
        - orderEndDate
        - customerName
      properties:
        id:
          type: string
          format: uuid
          description: The unique ID of the order.
          example: 3b741a59-a22b-432f-b2cf-b72cc1a04c2d
        createdAt:
          type: string
          format: date-time
          description: Date of creation of the resource
          example: '2023-01-01T00:00:00Z'
        updatedAt:
          type: string
          format: date-time
          description: Date of last update of the resource
          example: '2023-01-01T00:00:00Z'
        type:
          type: string
          description: The type of resource.
          example: flex/orders
        generation:
          type: integer
          format: int32
          description: Monotonically increasing update counter of the resource
          example: 1
        billingAccountId:
          type: string
          description: Unique ID of the billing account
          example: HP-APJ-0012345678
        sowId:
          type: string
          description: Unique ID of Start of Work (SOW) billing order
          example: OPE-0011261086
        billingAccountName:
          type: string
          description: Name of the billing account
          example: Hewlett Packard Enterprise Cloud Storage
        orderStartDate:
          type: string
          format: date-time
          description: Date of order creation
          example: '2025-01-01T00:00:00Z'
        orderEndDate:
          type: string
          format: date-time
          description: Date of order expiration
          example: '2035-01-01T00:00:00Z'
        customerName:
          type: string
          description: Name of the customer
          example: Some Company Inc.
        resellerName:
          type: string
          description: Name of the reseller
          example: 1st Street Resellers
        distributorName:
          type: string
          description: Name of the distributor
          example: HPE Distributions
        partnerName:
          type: string
          description: Name of partnered vendor
          example: Friendly Reseller LLC
        isFlexPartner:
          type: boolean
          description: Whether the order is a Flex Partner order
          example: true
    OrderTransform:
      type: object
      properties:
        sowId:
          type: string
          description: The unique SOW ID.
          example: OPE-123456789
        billingAccountId:
          type: string
          description: Unique billing account ID
          example: HP-123456789
        billingAccountName:
          type: string
          description: Unique billing account name
          example: Hewlett Packard Enterprise Cloud Storage
        customerName:
          type: string
          description: Unique customer name
          example: Some Company Inc.
        partnerName:
          type: string
          description: Unique partner name
          example: HPE Distributions
    Device:
      type: object
      required:
        - id
        - macAddress
        - serialNumber
        - resourceId
        - partNumber
        - deviceType
        - type
        - createdAt
        - updatedAt
        - generation
        - model
        - make
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: The tags associated with the device.
        id:
          type: string
          format: uuid
          description: ID of the Device
          example: 3b741a59-a22b-432f-b2cf-b72cc1a04c2d
        createdAt:
          type: string
          format: date-time
          description: Date of creation of the resource
          example: '2023-01-01T00:00:00Z'
        updatedAt:
          type: string
          format: date-time
          description: Date of last update of the resource
          example: '2023-01-01T00:00:00Z'
        type:
          type: string
          description: type of resource
          example: flex/devices
        generation:
          type: integer
          format: int32
          description: Monotonically increasing update counter of the resource
          example: 1
        macAddress:
          type: string
          description: MAC address of the device
          example: CA:35:DC:4F:5D:FE
        serialNumber:
          type: string
          description: Serial number of the device
          example: CN134FD36
        resourceId:
          type: string
          format: uuid
          description: Unique resource ID of the device
          example: 3b741a59-a22b-432f-b2cf-b72cc1a04c2d
        partNumber:
          type: string
          description: Part number of the device
          example: JK130GT
        name:
          type: string
          description: Name of the device
          example: custom-device-name
        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 type of the device.
          example: DHCI_STORAGE
        model:
          type: string
          description: The model of the device.
          example: HPE Compute 6030X
        make:
          type: string
          description: The maker of the device
          example: HPE
        billingAccountName:
          type: string
          description: Name of the associated billing account
          example: Hewlett Packard Enterprises
        billingTier:
          type: string
          description: Name of the associated distributor account
          example: HPE Distributions
    Tag:
      type: object
      description: >-
        A tag is a form of metadata applied to any resource and primarily used
        to categorize resources.
      required:
        - name
        - value
      properties:
        name:
          type: string
          description: Name of the tag
          example: category1
        value:
          type: string
          description: Value of the tag
          example: value1
