openapi: 3.1.0
info:
  version: v1beta1
  title: Sustainability-Insight-Center
  description: >-
    The HPE Sustainability Insight Center API enables users to manage power
    consumption data that helps to reduce costs and achieve IT sustainability
    goals.
  contact: {}
  license:
    name: HPE License
    url: https://www.hpe.com/us/en/software/licensing.html
servers:
  - url: https://us-west.api.greenlake.hpe.com
  - url: https://eu-central.api.greenlake.hpe.com
  - url: https://ap-northeast.api.greenlake.hpe.com
security:
  - bearer: []
tags:
  - name: usages
    description: Aggregate usage data
  - name: coefficients
    description: Create and retrieve custom coefficients for locations
  - name: ingests
    description: Upload and retrieve records of 3rd party ingests
  - name: datasources
    description: Retrieve information about where data comes from
paths:
  /sustainability-insight-ctr/v1beta1/usage-by-entity:
    get:
      tags:
        - usages
      summary: Aggregated energy use for entities
      description: >-
        Retrieves an aggregated energy usage list grouped by individual entities
        over a defined time frame and supports filtering, sorting, and
        offset-based pagination.
      operationId: getUsageByEntity
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          description: >
            Limit the entities operated on by this endpoint, returning only the
            subset of entities that match the filter. The filter grammar is a
            subset of OData 4.0 supporting "eq", "in", and "and" operators only.

            Usage entities can be filtered by:

            - entityId

            - entityMake

            - entityModel

            - entityType

            - entitySerialNum

            - entityProductId

            - locationName

            - locationId

            - locationCity

            - locationState

            - locationCountry

            - name
          schema:
            type: string
          examples:
            country:
              value: locationCountry eq 'DE'
              summary: Filter to only entities in Germany using country code DE
            entityModel:
              value: entityModel in ('ProLiant DL325 Gen11', 'ProLiant DL380 Gen10')
              summary: >-
                Filter to only entities that have a model of ProLiant DL325
                Gen11 or ProLiant DL380 Gen10
        - name: filter-tags
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the entities operated on by this endpoint, returning only the
            subset of entities that contain the tags. The filter grammar is a
            subset of OData 4.0 supporting "eq" and "or" operators only.

            The tag key is on the left of the operator, the value is on the
            right.
          examples:
            operating-system-tag:
              value: '''OS'' eq ''Linux'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux'.
            operating-system-or-tag:
              value: '''OS'' eq ''Linux'' or ''OS'' eq ''Windows'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux' or 'Windows'
            traditional-tag:
              value: '''Tagged'' eq '''''
              summary: >-
                true if the case-insensitive tag key 'Tagged' has an empty
                value.
        - name: currency
          in: query
          required: false
          description: >
            The 3 letter currency code the cost returned will be in, case
            insensitive. Currency calculations are done via a factor queried at
            the beginning of the day. Defaults to USD.
          schema:
            $ref: '#/components/schemas/currencyCode'
            default: USD
          examples:
            canadian-conversion:
              value: CAD
              summary: Return results in Canadian dollars
        - name: sort
          in: query
          required: false
          description: >-
            Odata 4.0 field to sort entities on. Allowed fields are the strings
            "locationName", "locationCountry", "locationState", "entityId",
            "entityMake", "entityModel", "entityType", "entitySerialNum",
            "entityProductId", "name". Must be of the format "property order".
          schema:
            type: string
          examples:
            name:
              value: name asc
              summary: Sort by entity name in ascending order
            entity-id:
              value: entityId desc
              summary: Sort by entityId in descending order
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            format: int32
            default: 0
            minimum: 0
          examples:
            page-size-ten:
              value: 10
              summary: Start querying from 10 usages in.
        - name: limit
          in: query
          required: false
          description: Number of usages to return.
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 100
            default: 10
          examples:
            limit-ten:
              value: 10
              summary: Query for up to 10 items.
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start querying from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/entity'
                  count:
                    type: integer
                    examples:
                      - 5
                  total:
                    type: integer
                    examples:
                      - 10
                  offset:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/usage-totals:
    get:
      tags:
        - usages
      summary: Total aggregated data
      description: >-
        Returns the total aggregated power cost, power consumption, and carbon
        emissions over a defined time frame and supports filtering by entities.
      operationId: getUsageTotals
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the entities operated on by this endpoint, returning only the
            usage for entities that match the filter. The filter grammar is a
            subset of OData 4.0 supporting "eq", "in", and "and" operators only.

            Usage entities can be filtered by:

            - entityId

            - entityMake

            - entityModel

            - entityType

            - entitySerialNum

            - entityProductId

            - locationName

            - locationId

            - locationCity

            - locationState

            - locationCountry
          examples:
            country:
              value: locationCountry eq 'DE'
              summary: Filter to only entities in Germany using country code DE
            entityModel:
              value: entityModel in ('ProLiant DL325 Gen11', 'ProLiant DL380 Gen10')
              summary: >-
                Filter to only entities that have a model of ProLiant DL325
                Gen11 or ProLiant DL380 Gen10
        - name: filter-tags
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the entities operated on by this endpoint, returning only the
            subset of entities that contain the tags. The filter grammar is a
            subset of OData 4.0 supporting "eq" and "or" operators only.

            The tag key is on the left of the operator, the value is on the
            right.
          examples:
            operating-system-tag:
              value: '''OS'' eq ''Linux'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux'.
            operating-system-or-tag:
              value: '''OS'' eq ''Linux'' or ''OS'' eq ''Windows'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux' or 'Windows'
            traditional-tag:
              value: '''Tagged'' eq '''''
              summary: >-
                true if the case-insensitive tag key 'Tagged' has an empty
                value.
        - name: currency
          in: query
          required: false
          description: >
            The 3 letter currency code the cost returned will be in, case
            insensitive. Currency calculations are done via a factor queried at
            the beginning of the day. Defaults to USD.
          schema:
            $ref: '#/components/schemas/currencyCode'
            default: USD
          examples:
            canadian-conversion:
              value: CAD
              summary: Return results in Canadian dollars
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start aggregating from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the aggregate's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/total'
                  count:
                    type: integer
                    examples:
                      - 10
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/usage-series:
    get:
      tags:
        - usages
      summary: Timeseries of energy usage over time
      description: >-
        Retrieves aggregated energy usage statistics grouped by time bucket over
        a defined time frame and supports filtering by entities. Behavior is
        non-deterministic if the time range does not divide evenly by your
        selected interval.
      operationId: getUsageBySeries
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the entities operated on by this endpoint, returning only the
            usage for entities that match the filter. The filter grammar is a
            subset of OData 4.0 supporting "eq", "in", and "and" operators only.

            Usage entities can be filtered by:

            - entityId

            - entityMake

            - entityModel

            - entityType

            - entitySerialNum

            - entityProductId

            - locationName

            - locationId

            - locationCity

            - locationState

            - locationCountry
          examples:
            country:
              value: locationCountry eq 'DE'
              summary: Filter to only entities in Germany using country code DE
            entityModel:
              value: entityModel in ('ProLiant DL325 Gen11', 'ProLiant DL380 Gen10')
              summary: >-
                Filter to only entities that have a model of ProLiant DL325
                Gen11 or ProLiant DL380 Gen10
        - name: filter-tags
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the entities operated on by this endpoint, returning only the
            subset of entities that contain the tags. The filter grammar is a
            subset of OData 4.0 supporting "eq" and "or" operators only.

            The tag key is on the left of the operator, the value is on the
            right.
          examples:
            operating-system-tag:
              value: '''OS'' eq ''Linux'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux'.
            operating-system-or-tag:
              value: '''OS'' eq ''Linux'' or ''OS'' eq ''Windows'''
              summary: >-
                true if the case-insensitive tag key 'OS' has a case-insensitive
                value 'Linux' or 'Windows'
            traditional-tag:
              value: '''Tagged'' eq '''''
              summary: >-
                true if the case-insensitive tag key 'Tagged' has an empty
                value.
        - name: currency
          in: query
          required: false
          description: >
            The 3 letter currency code the cost returned will be in, case
            insensitive. Currency calculations are done via a factor queried at
            the beginning of the day. Defaults to USD.
          schema:
            $ref: '#/components/schemas/currencyCode'
            default: USD
          examples:
            canadian-conversion:
              value: CAD
              summary: Return results in Canadian dollars
        - name: interval
          in: query
          required: true
          description: >-
            Interval of the created time series. Must be of the format "integer
            unit". Valid units are day(s), hour(s), week(s), month(s), and
            year(s).
          schema:
            type: string
          examples:
            day:
              value: 1 day
              summary: Each time bucket would be 1 day in length
            hour:
              value: 2 hours
              summary: Each time bucket would be 2 hours in length
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start aggregating from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeseries'
                  count:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/cloud-usage-by-entity:
    get:
      tags:
        - usages
      summary: Aggregated carbon footprint usage for cloud entities
      description: >
        Retrieves aggregated carbon footprint usage in a list grouped by
        individual cloud entities, i.e., cloud services, over a 

        defined time frame and supports filtering, sorting, and offset-based
        pagination.
      operationId: getCloudUsageByEntity
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          description: >
            Limit the cloud entities operated on by this endpoint, returning
            only the subset of entities that match the filter. The 

            filter grammar is a subset of OData 4.0 supporting "eq", "in", and
            "and" operators only.


            Cloud entities can be filtered by:

            - entityId

            - serviceProvider

            - serviceName

            - serviceRegion

            - serviceAccount

            - name
          schema:
            type: string
          examples:
            serviceProvider:
              value: serviceProvider eq 'AWS'
              summary: Filter to only entities with the service AWS
            serviceRegion:
              value: serviceRegion in ('EMEA', 'AMERICAS')
              summary: >-
                Filter to only entities that a service region of EMEA or
                AMERICAS
        - name: sort
          in: query
          required: false
          description: >-
            Odata 4.0 field to sort entities on. Allowed fields are the strings
            "entityId", "serviceProvider", "serviceName", "serviceRegion",
            "serviceAccount", "name". Must be of the format "property order".
          schema:
            type: string
          examples:
            service-account:
              value: serviceAccount asc
              summary: Sort by entity serviceAccount in ascending order
            entity-id:
              value: entityId desc
              summary: Sort by entityId in descending order
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            format: int32
            default: 0
            minimum: 0
          examples:
            page-size-ten:
              value: 10
              summary: Start querying from 10 usages in.
        - name: limit
          in: query
          required: false
          description: Number of usages to return.
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 100
            default: 10
          examples:
            limit-ten:
              value: 10
              summary: Query for up to 10 items.
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start querying from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/cloudEntity'
                  count:
                    type: integer
                    examples:
                      - 5
                  total:
                    type: integer
                    examples:
                      - 10
                  offset:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/cloud-usage-totals:
    get:
      tags:
        - usages
      summary: Total aggregated cloud carbon footprint usage
      description: >-
        Returns the total carbon footprint over a defined time frame and
        supports filtering by cloud entities.
      operationId: getCloudUsageTotals
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          description: >
            Limit the cloud entities operated on by this endpoint, returning
            only the subset of entities that match the filter. The 

            filter grammar is a subset of OData 4.0 supporting "eq", "in", and
            "and" operators only.


            Cloud entities can be filtered by:

            - entityId

            - serviceProvider

            - serviceName

            - serviceRegion

            - serviceAccount

            - name
          schema:
            type: string
          examples:
            serviceProvider:
              value: serviceProvider eq 'AWS'
              summary: Filter to only entities with the service AWS
            serviceRegion:
              value: serviceRegion in ('EMEA', 'AMERICAS')
              summary: >-
                Filter to only cloud entities that a service region of EMEA or
                AMERICAS
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start aggregating from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the aggregate's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/cloudTotal'
                  count:
                    type: integer
                    examples:
                      - 10
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/cloud-usage-series:
    get:
      tags:
        - usages
      summary: Timeseries of cloud carbon footprint usage over time
      description: >
        Retrieves aggregated carbon footprint usage statistics grouped by time
        bucket over a defined time frame and 

        supports filtering by entities. Behavior is non-deterministic if the
        time range does not divide evenly by your selected 

        interval.
      operationId: getCloudUsageBySeries
      externalDocs:
        url: >-
          https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html
        description: OData 4.0 Documentation
      parameters:
        - name: filter
          in: query
          required: false
          description: >
            Limit the cloud entities operated on by this endpoint, returning
            only the subset of entities that match the filter. The 

            filter grammar is a subset of OData 4.0 supporting "eq", "in", and
            "and" operators only.


            Cloud entities can be filtered by:

            - entityId

            - serviceProvider

            - serviceName

            - serviceRegion

            - serviceAccount

            - name
          schema:
            type: string
          examples:
            serviceProvider:
              value: serviceProvider eq 'AWS'
              summary: Filter to only entities with the service AWS
            serviceRegion:
              value: serviceRegion in ('EMEA', 'AMERICAS')
              summary: >-
                Filter to only entities that a service region of EMEA or
                AMERICAS
        - name: interval
          in: query
          required: true
          description: >
            Interval of the created time series. Must be of the format "integer
            unit". Valid units are day(s), hour

            (s), week(s), month(s), and year(s). Cloud usage typically is
            measured in months, so the smaller time units are 

            likely to be approximations.
          schema:
            type: string
          examples:
            month:
              value: 1 month
              summary: Each time bucket would be 1 month in length
            months:
              value: 3 months
              summary: Each time bucket would be 3 months in length
        - name: start-time
          in: query
          required: true
          description: Start of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-start:
              value: '2024-01-28T08:00:00Z'
              summary: Start aggregating from the 2024-01-28T08:00:00Z timestamp.
        - name: end-time
          in: query
          required: true
          description: End of the query's time range in ISO8601 format.
          schema:
            type: string
          examples:
            january-end:
              value: '2024-01-29T08:00:00Z'
              summary: Aggregate until the 2024-01-28T08:00:00Z timestamp.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/cloudTimeseries'
                  count:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/coefficients:
    get:
      tags:
        - coefficients
      summary: Get all cost and co2 coefficients
      description: >-
        Get a list of all costs (amount per kWh) and co2 coefficients of all
        locations. Supports filtering by locationId.
      operationId: getCoefficients
      parameters:
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            format: int32
            default: 0
            minimum: 0
          examples:
            offset-ten:
              value: 10
              summary: Start querying from 10 coefficients in.
        - name: limit
          in: query
          required: false
          description: Number of entities to return.
          schema:
            type: integer
            format: int32
            default: 10
            minimum: 0
            maximum: 100
          examples:
            limit-ten:
              value: 10
              summary: Query for up to 10 coefficients.
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: >
            Limit the coefficients operated on by this endpoint, returning only
            the subset of entities that match the filter. The filter grammar is
            a subset of OData 4.0 supporting "eq" operator only.

            Coefficients can be filtered by:

            - locationId
          examples:
            default-filter:
              value: locationId eq '00000000-0000-0000-0000-0000000000000'
              summary: >-
                Filter to only coefficients using locationId
                00000000-0000-0000-0000-0000000000000
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/coefficient'
                  count:
                    type: integer
                    examples:
                      - 5
                  total:
                    type: integer
                    examples:
                      - 10
                  offset:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
    post:
      tags:
        - coefficients
      summary: Create cost and co2 coefficients for a location
      description: >-
        Create cost and co2 coefficients for a specific location's data. If a
        coefficient is provided, either the value must be provided of one of the
        use default or use current flags must be set. Takes effect after the
        returned start time.
      operationId: addCoefficients
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - locationId
              properties:
                locationId:
                  type: string
                  examples:
                    - >-
                      /locations/v1beta1/locations/00000000-0000-0000-0000-0000000000000
                  description: The location URI.
                co2eGramsPerKwh:
                  $ref: '#/components/schemas/coefficientInput'
                costUsdPerKwh:
                  description: >-
                    Deprecated feature replaced by costPerKwh. Cannot be used in
                    conjunction with costPerKwh and currency fields.
                  $ref: '#/components/schemas/coefficientInput'
                  deprecated: true
                costPerKwh:
                  $ref: '#/components/schemas/coefficientCostInput'
      responses:
        '201':
          description: OK
          headers:
            Location:
              schema:
                type: string
              description: Resource URI of the created coefficient
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/coefficient'
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/coefficients/{id}:
    get:
      tags:
        - coefficients
      summary: Get a single cost and co2 coefficient for an id
      description: Get a single cost and co2 coefficient for an id
      operationId: getCoefficient
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          examples:
            first-coefficient:
              value: 00000000-0000-0000-0000-0000000000000
              description: >-
                ID for the coefficient mapping being accessed is
                "00000000-0000-0000-0000-0000000000000"
          description: UUID of the coefficient mapping
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/coefficient'
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/ingests:
    get:
      tags:
        - ingests
      summary: Get all metadata of uploaded 3rd party device measurements.
      description: >-
        This returns the associated metadata of each uploaded 3rd party device
        measurement.
      operationId: getIngests
      parameters:
        - name: offset
          in: query
          required: false
          description: Zero-based resource offset to start the response from.
          schema:
            type: integer
            format: int32
            default: 0
            minimum: 0
          examples:
            offset-ten:
              value: 10
              summary: Start querying from 10 records of uploads in.
        - name: limit
          in: query
          required: false
          description: Number of ingested records to return.
          schema:
            type: integer
            format: int32
            default: 10
            minimum: 0
            maximum: 100
          examples:
            limit-ten:
              value: 10
              summary: Query for up to 10 items.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                  - offset
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ingest'
                  count:
                    type: integer
                    examples:
                      - 5
                  total:
                    type: integer
                    examples:
                      - 10
                  offset:
                    type: integer
                    examples:
                      - 5
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
    post:
      tags:
        - ingests
      summary: Upload a document with 3rd party device measurement data.
      description: >-
        Allows a user to upload power measurements for 3rd party devices from
        their own configured ITOM applications.
      operationId: addIngest
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                  examples:
                    - 3rd Party Data A
                  description: The name of the device measurements being uploaded.
                description:
                  type: string
                  examples:
                    - Description A
                  description: Description for this record
                file:
                  type: string
                  format: binary
                  description: >-
                    The 3rd party device measurement file. Must be .csv and
                    matching the SIC third party data template. Maximum size is
                    300MB. Files that are invalid will not be consumed.
      responses:
        '201':
          description: OK
          headers:
            Location:
              schema:
                type: string
              description: Resource URI of the created ingest metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ingest'
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/ingests/{id}:
    get:
      tags:
        - ingests
      summary: Get metadata for a 3rd party device measurement.
      description: Get metadata for an ingested 3rd party device measurement.
      operationId: getIngest
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          examples:
            first-ingest:
              value: 00000000-0000-0000-0000-0000000000000
              description: >-
                ID for the ingest metadata being accessed is
                "00000000-0000-0000-0000-0000000000000"
          description: UUID of the record
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ingest'
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/datasources:
    get:
      tags:
        - datasources
      summary: Get all information for SIC data sources.
      description: >-
        This returns information such as name and data collection times for each
        SIC data source.
      operationId: getDatasources
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - count
                  - total
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/datasource'
                  count:
                    type: integer
                    examples:
                      - 5
                  total:
                    type: integer
                    examples:
                      - 10
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
  /sustainability-insight-ctr/v1beta1/datasources/{id}:
    get:
      tags:
        - datasources
      summary: Get information for a SIC data source.
      description: >-
        Get information such as name and data collection times for a SIC data
        source.
      operationId: getDatasource
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
          examples:
            first-ingest:
              value: 00000000-0000-0000-0000-0000000000000
              description: >-
                ID for the data source being accessed is
                "00000000-0000-0000-0000-0000000000000"
          description: ID of the data source
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/datasource'
        '400':
          description: Bad Request. Incorrect Input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '429':
          description: Exceeded the allowed rate limit.
          headers:
            x-envoy-rate-limited:
              description: Rate limit exceeded
              schema:
                type: string
                format: boolean
              examples:
                rate-limited:
                  value: 'true'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        '500':
          description: Unexpected Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
components:
  securitySchemes:
    bearer:
      description: Personal Access Token issued by the GLC platform.
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    currencyCode:
      type: string
      enum:
        - THB
        - CHF
        - INR
        - EUR
        - GBP
        - NOK
        - USD
        - AUD
        - SEK
        - HKD
        - AED
        - NZD
        - BGN
        - RON
        - CAD
        - UAH
        - MXN
        - KRW
        - JPY
        - TRY
        - DKK
        - PLN
        - CZK
        - CLP
        - CNY
        - ILS
        - HRK
        - BAM
        - TWD
        - MYR
      description: >
        The three letter currency code the costs will be stored or returned in.
        Supported currencies are: THB - Thai Baht (Thailand) CHF - Swiss Franc
        (Switzerland) INR - Indian Rupee (India) EUR - Euro Italy, (Germany,
        Spain, Netherlands, Slovakia, Belgium, Greece, Austria, Slovenia,
        Finland, Portugal, Estonia) GBP - Pound Sterling (United Kingdom) NOK -
        Norwegian Krone (Norway) USD - US Dollar (United States, American Samoa,
        Puerto Rico, Myanmar) AUD - Australian Dollar (Australia) SEK - Swedish
        Krona (Sweden) HKD - Hong Kong Dollar (Hong Kong) AED - UAE Dirham
        (United Arab Emirates) NZD - New Zealand Dollar (New Zealand) BGN -
        Bulgarian Lev (Bulgaria) RON - Romanian Leu (Romania) CAD - Canadian
        Dollar (Canada) UAH - Ukrainian Hryvnia (Ukraine) MXN - Mexican Peso
        (Mexico) KRW - South Korean Won (South Korea) JPY - Japanese Yen (Japan)
        TRY - Turkish Lira (Turkey) DKK - Danish Krone (Denmark) PLN - Polish
        Zloty (Poland) CZK - Czech Koruna (Czech Republic) CLP - Chilean Peso
        (Chile) CNY - Chinese Yuan (China) ILS - Israeli New Shekel (Israel) HRK
        - Croatian Kuna (Croatia) BAM - Convertible Mark (Bosnia and
        Herzegovina) TWD - New Taiwan Dollar (Taiwan) MYR - Malaysian Ringgit
        (Malaysia)
    currencyComponent:
      type: object
      required:
        - currencyCode
        - currencyName
      properties:
        currencyCode:
          description: The currency code of the returned cost
          $ref: '#/components/schemas/currencyCode'
        currencyName:
          description: The name of the currency
          type: string
          examples:
            - Chilean Peso
    entity:
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: ID of the entity.
          type: string
          examples:
            - AQ-1234567
        type:
          description: Type of return object.
          type: string
          examples:
            - sustainability-insight-ctr/entities
        entityId:
          description: ID of the entity.
          type: string
          examples:
            - AQ-1234567
        entityMake:
          description: Make of the entity.
          type: string
          examples:
            - HPE
        entityModel:
          description: Model of the entity.
          type: string
          examples:
            - PROLIANT DL380 GEN10
        entityType:
          description: Type of the entity.
          type: string
          examples:
            - COMPUTE
        entitySerialNum:
          description: Serial number of the entity.
          type: string
          examples:
            - ABCDEFGGG
        entityProductId:
          description: Product ID of the entity.
          type: string
          examples:
            - A59961995
        entityManufacturerTimestamp:
          description: Manufacturing timestamp of the entity.
          type: string
          format: date-time
          examples:
            - '2023-12-20T03:50:23Z'
        locationId:
          description: ID of the entity location.
          type: string
          examples:
            - a324a06e-c5fc-43b0-ab92-cc8bc14566f5
        locationCity:
          description: City that the the entity is located in.
          type: string
          examples:
            - Omaha
        locationName:
          description: The entity location name.
          type: string
          examples:
            - Somewhere in Omaha, NE
        locationState:
          description: State that the the entity is located in.
          type: string
          examples:
            - Nebraska
        locationCountry:
          description: Country that the the entity is located in.
          type: string
          examples:
            - United States
        name:
          description: Name of the entity.
          type: string
          examples:
            - nebraska.server.web
        tags:
          description: List of the entity's tags
          type: array
          items:
            $ref: '#/components/schemas/tag'
        costUsd:
          description: Energy cost in USD.
          type: number
          examples:
            - 60.3
          deprecated: true
        cost:
          description: Energy cost in the provided currency type.
          type: number
          examples:
            - 60.3
        currency:
          description: The currency code of the returned cost
          $ref: '#/components/schemas/currencyCode'
        co2eMetricTon:
          description: CO2 equivalent generation in metric tons.
          type: number
          examples:
            - 0.2
        kwh:
          description: Power consumption in kWh.
          type: number
          examples:
            - 400.1
    tag:
      type: object
      required:
        - name
        - value
      properties:
        name:
          description: The name of the tag
          type: string
          examples:
            - OS
        value:
          description: The value of the tag
          type: string
          examples:
            - Linux
    total:
      type: object
      required:
        - type
      properties:
        type:
          description: Type of returned aggregate.
          type: string
          examples:
            - sustainability-insight-ctr/totals
        costUsd:
          description: Total energy cost in USD.
          type: number
          examples:
            - 60.3
          deprecated: true
        cost:
          description: Total energy cost in the provided currency type.
          type: number
          examples:
            - 60.3
        currency:
          description: The currency code of the returned cost
          $ref: '#/components/schemas/currencyCode'
        co2eMetricTon:
          description: Total CO2 equivalent generation in metric tons.
          type: number
          examples:
            - 0.2
        kwh:
          description: Total power consumption in kWh.
          type: number
          examples:
            - 400.1
    timeseries:
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: ID of the returned time-bucketed aggregate.
          type: string
          examples:
            - '2023-12-20T01:00:00Z'
        type:
          description: Type of returned aggregate.
          type: string
          examples:
            - sustainability-insight-ctr/timeseries
        timeBucket:
          description: >-
            Starting time of the returned time-bucketed aggregate in ISO8601
            format.
          type: string
          format: date-time
          examples:
            - '2023-12-20T01:00:00Z'
        costUsd:
          description: Energy cost in USD for this time bucket.
          type: number
          examples:
            - 60.3
        cost:
          description: Energy cost for this time bucket in the queried for currency type.
          type: number
          examples:
            - 100
        currency:
          description: The currency code of the returned cost
          $ref: '#/components/schemas/currencyCode'
        co2eMetricTon:
          description: CO2 equivalent generation in metric tons for this time bucket.
          type: number
          examples:
            - 0.2
        kwh:
          description: Power consumption in kWh for this time bucket.
          type: number
          examples:
            - 400.1
    cloudEntity:
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: ID of the entity.
          type: string
          examples:
            - '1'
        type:
          description: Type of return object.
          type: string
          examples:
            - sustainability-insight-ctr/cloud-entities
        entityId:
          description: ID of the entity.
          type: string
          examples:
            - '1'
        serviceProvider:
          description: Cloud service provider of the entity.
          type: string
          examples:
            - AWS
        serviceName:
          description: Service name of the entity.
          type: string
          examples:
            - S3
        serviceRegion:
          description: Service region of the entity.
          type: string
          examples:
            - EMEA
        serviceAccount:
          description: Service account id of the entity.
          type: string
          examples:
            - '012345678901'
        name:
          description: Name of the entity.
          type: string
          examples:
            - nebraska.server.web
        co2eMetricTon:
          description: CO2 equivalent generation in metric tons.
          type: number
          examples:
            - 0.2
    cloudTotal:
      type: object
      required:
        - type
      properties:
        type:
          description: Type of returned aggregate.
          type: string
          examples:
            - sustainability-insight-ctr/cloud-totals
        co2eMetricTon:
          description: Total CO2 equivalent generation in metric tons.
          type: number
          examples:
            - 0.2
    cloudTimeseries:
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: ID of the returned time-bucketed aggregate.
          type: string
          examples:
            - '2023-12-20T01:00:00Z'
        type:
          description: Type of returned aggregate.
          type: string
          examples:
            - sustainability-insight-ctr/cloud-timeseries
        timeBucket:
          description: >-
            Starting time of the returned time-bucketed aggregate in ISO8601
            format.
          type: string
          format: date-time
          examples:
            - '2023-12-20T01:00:00Z'
        co2eMetricTon:
          description: CO2 equivalent generation in metric tons for this time bucket.
          type: number
          examples:
            - 0.2
    coefficient:
      type: object
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      properties:
        id:
          description: ID of the returned coefficient mapping
          type: string
          format: uuid
          examples:
            - 00000000-0000-0000-0000-0000000000000
        type:
          description: Type of returned coefficient mapping
          type: string
          examples:
            - sustainability-insight-ctr/coefficient
        associatedLocation:
          description: >-
            A reference to the Location resource that this coefficient is bound
            to.
          type: object
          required:
            - locationId
            - locationName
            - resourceUri
          properties:
            locationId:
              description: The location id that the coefficients apply to.
              type: string
              examples:
                - 00000000-0000-0000-0000-0000000000000
            locationName:
              description: The location name that the coefficients apply to
              type: string
              examples:
                - Location A
            resourceUri:
              type: string
              examples:
                - >-
                  /locations/v1beta1/locations/00000000-0000-0000-0000-0000000000000
        startTime:
          description: >-
            The date in which this coefficient mapping takes effect for this
            location in ISO8601 format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        co2eGramsPerKwh:
          description: >-
            The CO2 equivalent generation coefficient in grams per kilowatt-hour
            for this location. Null if default for this location.
          type: number
          examples:
            - 0.5
        costUsdPerKwh:
          description: >-
            The cost coefficient in USD per kilowatt-hour for this location.
            Null if default for this location.
          type: number
          examples:
            - 0.5
          deprecated: true
        costPerKwh:
          description: >-
            The cost coefficient per kilowatt-hour for this location. Null if
            default for this location.
          type: number
          examples:
            - 0.5
        currency:
          description: The currency code and currency name of the returned cost
          $ref: '#/components/schemas/currencyComponent'
        generation:
          description: Monotonically increasing update counter
          type: integer
          examples:
            - 0
        createdAt:
          description: The server-side creation time of this resource in ISO8601 format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        updatedAt:
          description: >-
            The server-side last updated time of this resource in ISO8601
            format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
    coefficientInput:
      type: object
      required:
        - useDefault
        - useCurrent
      properties:
        useDefault:
          type: boolean
          examples:
            - true
            - false
          description: >-
            Whether or not to use the default coefficient for this location.
            Cannot be true if useCurrent is also true.
        useCurrent:
          type: boolean
          examples:
            - true
            - false
          description: >-
            Whether or not to use the preexisting coefficient for this location.
            Cannot be true if useDefault is also true. Will throw an error if
            there is no preexisting coefficient.
        value:
          type: number
          minimum: 0
          examples:
            - 0.1
          description: >-
            The coefficient mapping for this location. Used if neither
            useDefault or useCurrent flags are true.
    coefficientCostInput:
      type: object
      required:
        - useDefault
        - useCurrent
      properties:
        useDefault:
          type: boolean
          examples:
            - true
            - false
          description: >-
            Whether or not to use the default coefficient for this location.
            Cannot be true if useCurrent is also true.
        useCurrent:
          type: boolean
          examples:
            - true
            - false
          description: >-
            Whether or not to use the preexisting coefficient for this location.
            Cannot be true if useDefault is also true. Will throw an error if
            there is no preexisting coefficient.
        value:
          type: number
          minimum: 0
          examples:
            - 0.1
          description: >-
            The coefficient mapping for this location. Used if neither
            useDefault or useCurrent flags are true.
        currencyCode:
          $ref: '#/components/schemas/currencyCode'
          description: >
            The 3 letter currency code the cost returned will be in, case
            insensitive. Currency calculations are done via a factor queried at
            the beginning of the day.
    ingest:
      type: object
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      properties:
        id:
          description: ID of the returned record
          type: string
          format: uuid
          examples:
            - 00000000-0000-0000-0000-0000000000000
        type:
          description: Type of returned record
          type: string
          examples:
            - sustainability-insight-ctr/ingest
        name:
          description: Name of the record
          type: string
          examples:
            - 3rd party data
        description:
          description: Description of the ingest
          type: string
          examples:
            - Description A
        generation:
          description: Monotonically increasing update counter
          type: integer
          examples:
            - 0
        createdAt:
          description: The server-side creation time of this resource in ISO8601 format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        updatedAt:
          description: >-
            The server-side last updated time of this resource in ISO8601
            format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
    datasource:
      type: object
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      properties:
        id:
          description: ID of the returned datasource record
          type: string
          examples:
            - 00000000-0000-0000-0000-0000000000000
        type:
          description: Type of returned datasource
          type: string
          examples:
            - sustainability-insight-ctr/datasource
        name:
          description: Name of the datasource
          type: string
          examples:
            - HPE Aruba Central
        provider:
          description: Provider name
          type: string
          examples:
            - HPE
        lastCollectionTime:
          description: >-
            Time of the last collected data for this datasource in ISO8601
            format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        firstCollectionTime:
          description: >-
            Time of the first collected data for this datasource in ISO8601
            format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        generation:
          description: Monotonically increasing update counter
          type: integer
          examples:
            - 0
        createdAt:
          description: The server-side creation time of this resource in ISO8601 format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
        updatedAt:
          description: >-
            The server-side last updated time of this resource in ISO8601
            format.
          type: string
          examples:
            - '2024-01-01T00:00:00.000Z'
    apiError:
      type: object
      required:
        - errorCode
        - message
        - debugId
        - httpStatusCode
      properties:
        httpStatusCode:
          description: HTTP equivalent status code.
          type: integer
        message:
          description: User-friendly error message.
          type: string
        debugId:
          description: Unique identifier for the instance of this error
          type: string
        errorCode:
          description: Unique machine-friendly identifier for the error.
          type: string
