Paigo Offerings API

Manage offerings in Paigo.

Operations 5

GET /offerings #
POST /offerings #
GET /offerings/{offeringId} #
PUT /offerings/{offeringId} #
DELETE /offerings/{offeringId} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/paigo-offerings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

paigo-offerings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Paigo Customers Offerings API
  description: "\nFor developer documentation of the platform, please visit https://docs.paigo.tech.\n\n## Authentication\nPaigo API supports **bearer token** as the authentication method.\nSteps to set up authentication:\n1. Sign up with Paigo platform and get **client id** and **client secret**.\n2. Make a POST request to the auth endpoint `https://auth.paigo.tech/oauth/token` with the following body:\n```json\n{\n        audience: 'https://qnonyh1pc7.execute-api.us-east-1.amazonaws.com',\n        grant_type: 'client_credentials',\n        client_id: <your client id>,\n        client_secret: <your client secret>\n}\n```\nAdditionally verify that the following headers are set by the client you are using: \n```json\n{\n    \"Content-Type\": \"application/json\"\n}\n```\n\n3. Use the access token in the response to make requests to the Paigo API. Here is an example of the response:  \n```json   \n{\n            access_token: <your access token>,\n            expires_in: 86400,\n            token_type: 'Bearer'  \n}\n```\n4. To use Paigo API, add in the header of your request:\n```json\n{\n        Authorization: \"Bearer <your access token>\"\n}\n```\n\n## API Endpoints\nPaigo API has the following endpoint:\n- Production Environment API: `https://api.prod.paigo.tech`\n        "
  version: v1.10
  contact: {}
servers:
- url: https://api.prod.paigo.tech
  description: Product Environment API
tags:
- name: Offerings
  description: Manage offerings in Paigo.
paths:
  /offerings:
    get:
      operationId: Get all Offerings
      summary: ''
      description: List all offerings created in this account
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadOfferingResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Offerings
      security:
      - bearer: []
    post:
      operationId: Create an offering
      summary: ''
      description: Create an offering
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOfferingDTO'
      responses:
        '201':
          description: Offering Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOfferingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Offerings
      security:
      - bearer: []
  /offerings/{offeringId}:
    get:
      operationId: Get an offering by ID
      summary: ''
      description: Find an offering
      parameters:
      - name: offeringId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `22372d1d-1c0c-40e0-8167-af0b4f5c82f6`'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadOfferingResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Offering Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Offerings
      security:
      - bearer: []
    put:
      operationId: Update an offering
      summary: ''
      description: Update an offering
      parameters:
      - name: offeringId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `22372d1d-1c0c-40e0-8167-af0b4f5c82f6`'
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOfferingDto'
      responses:
        '200':
          description: Offering Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateOfferingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Offering Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Offerings
      security:
      - bearer: []
    delete:
      operationId: Delete an offering
      summary: ''
      description: Delete an offering
      parameters:
      - name: offeringId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `22372d1d-1c0c-40e0-8167-af0b4f5c82f6`'
        schema:
          type: string
      responses:
        '200':
          description: Offering Deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOfferingResponse'
        '404':
          description: Offering Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Offering with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
        '409':
          description: Conflict - Can't delete Offering
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: An error message containing the reason why the offering cannot be deleted.<br><br> Offerings cannot be deleted if they are in use by active customers.
                    example: 'Cannot delete offering when they are attached to customers, remove customers from offerings before deleting. Current customerIds using the offering:: 80ddb121-e3d2-4d28-891d-704532c6649d'
      tags:
      - Offerings
      security:
      - bearer: []
components:
  schemas:
    KafkaDeploymentParametersDto:
      type: object
      properties:
        securityMechanism:
          type: string
          externalDocs:
            url: https://docs.confluent.io/platform/current/kafka/authentication_sasl/authentication_sasl_plain.html#sasl-plain-overview
          example: PLAIN
          description: 'The security protocol to use when connecting to the Kafka cluster. Defaults to `PLAIN`. Note this is not PLAINTEXT. PLAIN is the SASL_PLAIN protocol. <br><br> Example: `"PLAIN"`'
        username:
          type: string
          description: 'The username to use when connecting to the Kafka cluster. <br><br> Example: `"admin"`'
          example: admin
        password:
          type: string
          description: 'The password to use when connecting to the Kafka cluster. <br><br> Example: `"hunter2"`'
          example: hunter2
        bootstrapServerEndpoint:
          type: string
          description: 'The endpoint of the Kafka cluster to connect to. <br><br> Example: `"kafka.paigo.tech"`'
          example: kafka.paigo.tech
        topic:
          type: string
          description: 'The topic to subscribe to. <br><br> Example: `"test-topic"`'
          example: '"test-topic"'
        dlqTopic:
          type: string
          description: 'The DLQ topic to write to when a message fails to be processed. <br><br> Example: `"dlq-topic"`'
          example: '"dlq-topic"'
      required:
      - securityMechanism
      - username
      - password
      - bootstrapServerEndpoint
      - topic
      - dlqTopic
    TimeBasedConsumptionUnit:
      type: object
      properties:
        unit:
          enum:
          - second
          - minute
          - hour
          - day
          type: string
          description: A unit of time for a dimension of type time-based
          examples:
          - second
          - minute
          - hour
          - day
        type:
          type: string
          enum:
          - time
          description: A string that indicates the type of consumption unit
      required:
      - unit
      - type
    DimensionOverridesDto:
      type: object
      properties:
        dimensionId:
          type: string
          description: 'The Id of the dimension that is being overridden.

            <br><br>

            Example: `"6a8fb855-206c-4226-8695-daf67352e7ee"`'
          example: 6a8fb855-206c-4226-8695-daf67352e7ee
        consumptionPrice:
          type: string
          description: 'The price of the dimension. Must be a valid number.

            <br><br>

            Example: `"10.00"`'
          example: '10.00'
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/DimensionTierDto'
        tiersGroupByMetadata:
          type: array
          items:
            $ref: '#/components/schemas/DimensionTiersGroupByMetadataDto'
      required:
      - dimensionId
    DimensionTiersGroupByMetadataDto:
      type: object
      properties:
        metadataGroups:
          type: object
          description: 'The metadata groups to group the tiers by. A collection of key value pairs. metadata groups are used alongside the usage passed in to define more accurately how to break up price and usage for a dimension.

            <br><br>

            Example: `{ "instanceType": "t3.medium", "region": "us-east-1", "deployment": "production"}`'
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/DimensionTierDto'
      required:
      - metadataGroups
      - tiers
    ReadOfferingResponseData:
      type: object
      properties:
        offeringVisibility:
          description: 'The visibility of the offering, specifically if its private or public.

            Public offerings are designed to be shared among customers.

            Private offerings are typically used for enterprise deals which contain discounts or prepaid credits.

            <br><br>

            Example: `"private"`'
          example: private
          enum:
          - private
          - public
          type: string
          default: public
        offeringType:
          type: string
          description: 'The type of offering.

            <br>  • `usage-based` - The offering is a pure usage-based offering, or pay-as-you-go. Customers on this plan will be billed precisely based on consumption.

            <br>  • `subscription` - The offering is a fixed subscription. Customer will be billed on a fixed price.


            Example `"subscription"`'
          enum:
          - usage-based
          - subscription
          default: usage-based
          example: subscription
          externalDocs:
            description: Read more about the different offering types
            url: https://docs.paigo.tech/model-pricing-and-package/pricing-modeling-guide
        billingCycle:
          description: 'The time frame when an automatic bill should be sent leave empty for no automated billing

            <br><br>


            Example `"monthly"`'
          example: monthly
          enum:
          - monthly
          - annualToDate
          - topUp
          type: string
          default: monthly
        currency:
          description: 'The supported currency for the offering. USD is currently supported. Customers can override the currency for their account.

            However all offerings are denoted in USD.

            <br><br>

            Example `"USD"`'
          example: USD
          enum:
          - USD
          - EUR
          - CNY
          type: string
        dimensionOverrides:
          description: Overrides for the offering. Applies specific overrides to the dimensions associated with the offering. These effect the price of each dimension on the offering.
          type: array
          items:
            $ref: '#/components/schemas/DimensionOverridesDto'
        offeringId:
          type: string
          description: 'Unique identifier assigned by Paigo.

            <br><br>

            Example: `539b7f74-3832-474e-a955-6d69c5df12d0`'
          example: 539b7f74-3832-474e-a955-6d69c5df12d0
        dimensions:
          description: The list of dimensions attached to the offering.
          type: array
          items:
            $ref: '#/components/schemas/ReadDimensionResponseData'
        prepaidCredit:
          type: string
          description: 'Prepaid credit amount to be deducted as part of the bill payments. Only numerical string is allowed.

            <br><br>Example: `"20.00"` for $20.00.'
          example: '20.00'
        minimumCharge:
          type:
          - string
          - 'null'
          description: 'A minimum charge to be billed to the customer in the event that the customer''s bill is less than the minimum charge. Only on usage based offerings. Only numerical strings are allowed, must be greater than zero.

            <br><br>Example: `"32.00"` for $32.00.'
          example: '32.00'
        topUpAmount:
          type: string
          description: 'The amount to top up the account by. Only positive number string is allowed. Required if `billingCycle` is `topUp`.

            <br><br>

            Example: `"20.00"` for $20.00.'
          example: '20.00'
        topUpThreshold:
          type: string
          description: 'The threshold at which the account should be topped up. Only positive number string is allowed. Between 0 and 1.

            If not provided the default value will be 0.2 or 20%. Meaning that when the account balance reaches 20% of the the top up amount, the account will be

            topped up, and the end customer charged.

            <br><br>

            Example: `"0.2"` for 20%.'
          example: '0.2'
        subscriptionPrice:
          type: number
          description: 'The price of the subscription.

            Only positive number string is allowed.

            Only required if `offeringType` is `subscription`.

            <br><br>


            Example: `20.00` for $20.00.'
          example: 20
        freeTrialLength:
          type: string
          description: 'The length of time for a free trial. This is a number of days.

            Only positive number string is allowed.

            <br><br>


            Example: `"1"` for 1 day or 1 billing cycle depending on the offeringType.'
          example: '1'
        offeringName:
          type: string
          description: 'A friendly, human-readable name for the offering.

            <br><br>

            Example `"Entperise Plan"`'
          example: Entperise Plan
        metadata:
          type: object
          description: 'An optional key-value map of additional metadata to associate with the offerings.

            such as environment, purpose, owner, developer, contract number,

            or any arbitrary data to be associated with this usage record. Additionally, if `null` is passed for any value in the metadata object it will be removed.

            To entirely remove the metadata object, pass null to the metadata field.

            <br><br>

            Example `{"environment": "staging", "purpose": "proof-of-concept", "owner": "John Doe", "workspaceId": null}`

            <br><br>

            In the above example, the `workspaceId` metadata key will be removed from the dimension. To remove all fields pass the following.

            <br><br>

            Example `"metadata": null`'
      required:
      - offeringId
      - dimensions
      - offeringName
    ReadMeasurementResponseData:
      type: object
      properties:
        measurementMode:
          type: string
          enum:
          - infrastructureBased
          - agentBased
          - datastoreBased
          example: infrastructureBased
          description: The measurement method. See <a href="https://docs.paigo.tech/measure-usage-and-collect-data/measure-and-collect-usage-data-at-production-scale">Measure and Collect Usage Data at Production Scale</a> for more information. <br><br> Example `"agentBased"`
        measurementConfiguration:
          description: Configuration for the measurement method.
          oneOf:
          - $ref: '#/components/schemas/InfrastructureAccessInformation'
          - $ref: '#/components/schemas/AgentAccessInformation'
          - $ref: '#/components/schemas/DatastoreAccessInformationResponse'
        measurementName:
          type: string
          description: 'The human readable name of the measurement

            <br><br>

            Example `"EBS Usage"`'
          example: EBS Usage
        measurementId:
          type: string
          description: 'Unique identifier assigned by Paigo.

            <br><br>

            Example `"de388932-a7e1-11ed-afa1-0242ac120002"`'
          example: de388932-a7e1-11ed-afa1-0242ac120002
      required:
      - measurementMode
      - measurementConfiguration
      - measurementId
    InfrastructureAccessInformation:
      type: object
      properties:
        iamRoleArn:
          type: string
          description: 'The IAM role created by SaaS business and can be by Paigo AWS account to measure usage.

            <br><br>

            Example `"arn:aws:iam::214826386939:role/paigo-scraper"`'
          example: arn:aws:iam::214826386939:role/paigo-scraper
        externalId:
          type: string
          description: 'The Optional ExternalId associated with the IAM role.

            <br><br>

            Example `"123456789"`'
          example: '123456789'
          externalDocs:
            description: Read more about why externalIds are important
            url: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
        cloudPlatform:
          type: string
          enum:
          - aws
          example: aws
          description: Cloud infrastructure platform <br><br> Example `"aws"`
        region:
          type: string
          description: 'Supported region of the infrastructure


            Example `"us-east-1"`'
          example: us-east-1
        resourceType:
          type: string
          enum:
          - ebssnapshot
          - ebs
          - k8spod
          - ec2
          - ec2egress
          - usageData
          example: ebs
          description: Underlying resource type which Paigo measures usage for. <br><br> Example `"ec2"`
      required:
      - iamRoleArn
      - cloudPlatform
      - region
      - resourceType
    AgentAccessInformation:
      type: object
      properties:
        iamRoleArn:
          type: string
          description: 'The IAM role created by SaaS business and can be by Paigo AWS account to measure usage.

            <br><br>

            Example `"arn:aws:iam::214826386939:role/paigo-scraper"`'
          example: arn:aws:iam::214826386939:role/paigo-scraper
        externalId:
          type: string
          description: 'The Optional ExternalId associated with the IAM role.

            <br><br>

            Example `"123456789"`'
          example: '123456789'
          externalDocs:
            description: Read more about why externalIds are important
            url: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
        hostingPlatform:
          type: string
          enum:
          - k8spod
          example: k8spod
          description: Hosting platform of SaaS application
      required:
      - iamRoleArn
      - hostingPlatform
    DeleteOfferingResponse:
      type: object
      properties:
        message:
          type: string
          description: A human readable message describing the outcome of the operation
          example: This is a sample API message. The exact message may vary based on the API behavior
        offeringId:
          type: string
          description: The Unique ID defining the offering document
          example: 539b7f74-3832-474e-a955-6d69c5df12d0
      required:
      - message
      - offeringId
    BasicResponseDTO:
      type: object
      properties:
        message:
          type: string
          description: A human readable message describing the outcome of the operation
          example: This is a sample API message. The exact message may vary based on the API behavior
      required:
      - message
    CountBasedConsumptionUnit:
      type: object
      properties:
        unit:
          type: string
          enum:
          - count-based
          description: A dimensionless unit for a dimension of type count-based
          examples:
          - count-based
        type:
          type: string
          enum:
          - count
          description: A string that indicates the type of consumption unit
      required:
      - unit
      - type
    DimensionTierDto:
      type: object
      properties:
        tierName:
          type: string
          description: 'The name of the tier as it would appear on the invoice. If Tier name is not included, no `tierName` will be displayed on the invoice, and it will follow the default line item naming standard. See: https://docs.paigo.tech/invoicing-and-payment/issue-invoice/automatic-line-item-formatting

            <br><br>

            Example: `"Tier 1"`'
          example: Tier 1
        upperBound:
          type: string
          description: 'The upper limit of the tier, inclusive. If the upperBound is set to "inf", it must have the highest `tierPosition`. Additionally, the `upperBound` must be a multiple of the `usageIncrement`

            on the dimension. For example, if the `usageIncrement` is 100, the `upperBound` must be 100, 200, 300, etc. The `upperBound` cannot overlap with previous tiers, so tier 1''s `upperBound` must be smaller than tier 2''s.

            <br><br>

            Example: `"100"`'
          example: '100'
        unitPrice:
          type: string
          description: 'The unit price of the tier.

            <br><br>

            Example: `"10"`'
          example: '10'
        tierPosition:
          type: string
          description: 'The position of the tier. The first tier must have a `tierPosition` of 1, the second tier must have a `tierPosition` of 2, etc. Order of the tiers is determined by the `tierPosition`.

            <br><br>

            Example: `"1"`'
          example: '1'
      required:
      - upperBound
      - tierPosition
    DatastoreAccessInformationResponse:
      type: object
      properties:
        platform:
          description: Underlying resource type which paigo connects to. <br><br> Example `"s3"`
          enum:
          - s3
          - kafka
          type: string
          examples:
          - s3
        consumerDeploymentParameters:
          description: The access information and configuration for deploying a datastore consumer by Paigo. Use this field in a case where Paigo is deploying a consumer and you want to provide the access information for the datastore.
          oneOf:
          - $ref: '#/components/schemas/KafkaDeploymentParametersDto'
        ingestion:
          type: string
          description: The Ingestion endpioint for data to be dropped off at.
        dlq:
          type: string
          description: The DLQ endpoint for data which has failed to be processed.
        iamRoleArn:
          type: string
          description: The IAM role associated with the endpoints for access management
        externalId:
          type: string
          description: The externalId associated with the endpoints
        region:
          type: string
          description: The region associated with the endpoints, defaults to `us-east-1`
        accountId:
          type: string
          description: 'The Unqiue ID for your cloud account.

            <br><br>

            Example `"623673123435"`'
          example: '623673123435'
      required:
      - platform
      - ingestion
      - dlq
    ReadDimensionResponseData:
      type: object
      properties:
        dimensionName:
          type: string
          description: 'A friendly, human-readable name for the dimension.

            <br><br>

            Example `"API Call"`'
          examples:
          - API Call
          - CPU Hours
          - Provisioned Capacity
        consumptionUnit:
          description: 'Consumption unit of the dimension.

            Paigo supports three types of consumption units: count-based, time-based, and data-based.

            Supported values for each consumption unit type are listed below. <br>

            - count: `"count-based"` <br>

            - time-based: `"second"`, `"minute"`, `"hour"`, `"day"` <br>

            - data-based: `"byte"`, `"kilobyte"`, `"megabyte"`, `"gigabyte"` <br>


            This field accepts a JSON object with the following schema: <br>

            ```

            { "type": "typeName", "unit": "unitName" }

            ```

            <br><br>

            Example: <br>

            `{ "type": "count", "unit": "count-based" }` <br>

            `{ "type": "time", "unit": "hour" }` <br>

            `{ "type": "data", "unit": "byte" }` <br>'
          oneOf:
          - $ref: '#/components/schemas/CountBasedConsumptionUnit'
          - $ref: '#/components/schemas/TimeBasedConsumptionUnit'
          - $ref: '#/components/schemas/DatabasedConsumptionUnit'
        usageIncrement:
          type: string
          description: 'The minimum increment for usage amount.

            As an example, if usage increment is 1 Hour job execution time,

            then 1 Hour and 5 Minutes execution time may be calculated as 1 Hour or 2 Hours,

            depending on the rounding algorithm field of the dimension.

            <br><br>

            Example `1`'
          example: '24'
          externalDocs:
            description: See how usage increment is used in the billing process
            url: https://docs.paigo.tech/model-pricing-and-package/define-product-metrics#understand-how-billing-aggregation-works
        usageEntitlement:
          description: 'Used with Subscription Tier Offering type. <br>

            SaaS customers subscribed to a subscription tier are entitled to use the amount of product

            with regard to the dimension up to the value specified in this field.

            For example, a subscription tier may entitle subscribers to make up to 1,000,000 API requests.'
          oneOf:
          - type: number
            description: The number of units that the customer is entitled to use, must be greater than or equal to 0
            example: 1000000
          - type: string
            format: inf
            description: The customer is entitled to use the product's dimension without any limit
            example: inf
          examples:
          - inf
          - 1000000
        aggregationInterval:
          description: Time interval to aggregate dimension usage data for billing. <br><br>
          enum:
          - none
          - hour
          - day
          - month
          type: string
          example: hour
          default: hour
          externalDocs:
            description: See how aggregation interval is used in the billing process
            url: https://docs.paigo.tech/model-pricing-and-package/define-product-metrics#understand-how-billing-aggregation-works
        aggregationMethod:
          description: 'The algorithm to aggregate raw usage data for billing.

            <br><br>'
          enum:
          - sum
          - max
          - min
          - count
          - average
          - last
          type: string
          example: sum
          default: max
          externalDocs:
            description: See how aggregation method is used in the billing process
            url: https://docs.paigo.tech/model-pricing-and-package/define-product-metrics#understand-how-billing-aggregation-works
        dimensionId:
          type: string
          description: The unique ID for a dimension
          example: 8a7b5f91-3b85-4cf4-8585-dcdf17f49004
        measurement:
          description: The measurement attached to the dimension
          allOf:
          - $ref: '#/components/schemas/ReadMeasurementResponseData'
        rounding:
          type: string
          description: 'The rounding algorithm that is used to calculate the amount of usage increment.

            Ceiling algorithm rounds up, floor algorithm rounds down, the round algrogrithm rounds to the nearest whole integer rounding half away from zero.

            As an example, if usage increment is 1 Hour job execution time,

            then 1 Hour and 5 Minutes execution time may be calculated as 2 Hours for ceiling algorithm, 1 Hour for floor algorithm, and 1 Hour for round algorithm.

            depending on the rounding algorithm field of the dimension.

            <br><br>'
          enum:
          - round
          - floor
          - ceiling
        overageAllowed:
          type: string
          description: 'Used with Subscription Tier Offering type. <br>

            When the usage entitlement is specified,

            this field decides if allowing SaaS customers to use more than entitled amount of the product dimension.'
          enum:
 

# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paigo/refs/heads/main/openapi/paigo-offerings-api-openapi.yml