Suger Entitlement API

Access to Entitlement resources

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/suger-entitlement-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 email required.

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

OpenAPI Specification

suger-entitlement-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: support@suger.io
    name: Suger Support
    url: https://www.suger.io/support
  description: CRUD operations on a set of resources, including organizations, products, offers, entitlements, usage record groups for meterting, etc.
  title: Suger API Entitlement API
  version: '1.0'
servers:
- url: https://api.suger.cloud
tags:
- description: Access to Entitlement resources
  name: Entitlement
paths:
  /org/{orgId}/entitlement:
    get:
      description: List entitlements under the given organization with pagination and optional filters.
      operationId: ListEntitlements
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: filter by partner
        explode: true
        in: query
        name: partner
        required: false
        schema:
          type: string
        style: form
      - description: filter by productId
        explode: true
        in: query
        name: productId
        required: false
        schema:
          type: string
        style: form
      - description: filter by offerId
        explode: true
        in: query
        name: offerId
        required: false
        schema:
          type: string
        style: form
      - description: filter by buyerId
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - description: filter by externalId
        explode: true
        in: query
        name: externalId
        required: false
        schema:
          type: string
        style: form
      - description: filter by buyerAccountId is currently supported only for AWS
        explode: true
        in: query
        name: buyerAccountId
        required: false
        schema:
          type: string
        style: form
      - description: List pagination size, default 1000, max value is 1000
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: List pagination offset, default 0
        explode: true
        in: query
        name: offset
        required: false
        schema:
          type: integer
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WorkloadEntitlement'
                type: array
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: List Entitlements
      tags:
      - Entitlement
    post:
      description: Create an new entitlement for the given buyer & offer. Only applicable to non cloud billing partners.
      operationId: CreateEntitlement
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEntitlementParams'
        description: RequestBody
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Create Entitlement
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}:
    get:
      description: Get the entitlement by ID.
      operationId: GetEntitlement
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Get Entitlement
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/addCredit:
    post:
      description: Add the credit amount to the given Entitlement. The credit amount is accumulated & saved in the current Entitlement Term of the gvien Entitlement.
      operationId: AddEntitlementCredit
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddEntitlementCreditParams'
        description: RequestBody
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddEntitlementCreditResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad Request Error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal Server Error
      security:
      - APIKeyAuth: []
      summary: Add Entitlement Credit
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/addon:
    post:
      description: Apply one billing addon to the given Entitlement. The entitlement status must be ACTIVE.
      operationId: ApplyAddonToEntitlement
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillingAddonRecord'
        description: RequestBody
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: Entitlement
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Apply Addon To Entitlement
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/approve:
    post:
      description: Approve the given Entitlement. Only applicable to the Azure or GCP Entitlements with the status of "PENDING_START". Return 200 if the entitlement is already active.
      operationId: ApproveEntitlement
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Approve Entitlement
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/cancel:
    post:
      description: Cancel the active subscription in Azure Marketplace.
      operationId: CancelEntitlement
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: the canceled Entitlement
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Cancel Entitlement
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/divideCommit:
    post:
      description: Divide the commit equally from the given entitlement into sub entitlement terms based on the given time periods.
      operationId: DivideEntitlementCommit
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DivideEntitlementCommitParams'
        description: RequestBody
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Divide Entitlement Commit
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/entitlementName:
    patch:
      description: Update the name of the given Entitlement.
      operationId: UpdateEntitlementName
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/github_com_sugerio_marketplace-service_pkg_legacy_rds-db_lib.UpdateEntitlementNameParams'
        description: UpdateEntitlementNameParams
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Update Entitlement Name
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/entitlementTerm:
    get:
      description: List all Entitlement Terms of the given Entitlement.
      operationId: ListEntitlementTerms
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WorkloadEntitlementTerm'
                type: array
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: List Entitlement Terms
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/entitlementTerm/{entitlementTermId}:
    delete:
      description: Delete the entitlement term by the given entitlement ID and entitlement term ID. Only allow to delete the divided entitlement term.
      operationId: DeleteEntitlementTerm
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement Term ID
        explode: false
        in: path
        name: entitlementTermId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Delete Entitlement Term
      tags:
      - Entitlement
    get:
      description: Get the entitlement term by ID.
      operationId: GetEntitlementTerm
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement Term ID
        explode: false
        in: path
        name: entitlementTermId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlementTerm'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Get Entitlement Term
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/metaInfo:
    patch:
      description: Update the meta info of the given entitlement.
      operationId: UpdateEntitlementMetaInfo
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadMetaInfo'
        description: Entitlement meta info to update
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadMetaInfo'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: internal server error
      security:
      - APIKeyAuth: []
      summary: Update Entitlement Meta Info
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/priceModel:
    patch:
      description: Update the price model of the given entitlement, such as recurring commits, billable dimensions. Only applicable to non cloud billing partners.
      operationId: UpdateEntitlementPriceModel
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEntitlementPriceModelParams'
        description: Entitlement price model update params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: internal server error
      security:
      - APIKeyAuth: []
      summary: Update Entitlement Price Model
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/scheduleCancellation:
    post:
      description: Schedule the cancellation of the given Entitlement.
      operationId: ScheduleEntitlementCancellation
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancellationSchedule'
        description: RequestBody
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Schedule Entitlement Cancellation
      tags:
      - Entitlement
      x-codegen-request-body-name: data
  /org/{orgId}/entitlement/{entitlementId}/seat:
    patch:
      description: Update the seat number for the active AZURE subscription.
      operationId: UpdateEntitlementSeat
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      - description: New seat number
        explode: true
        in: query
        name: newSeat
        required: true
        schema:
          type: integer
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: the original entitlement before the seat update
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Update Seat For The Active AZURE Subscription
      tags:
      - Entitlement
  /org/{orgId}/entitlement/{entitlementId}/unscheduleCancellation:
    post:
      description: Unschedule the cancellation of the given Entitlement.
      operationId: UnscheduleEntitlementCancellation
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Entitlement ID
        explode: false
        in: path
        name: entitlementId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadEntitlement'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Unschedule Entitlement Cancellation
      tags:
      - Entitlement
components:
  schemas:
    AzureADIdentifier:
      example:
        firstName: firstName
        lastName: lastName
        licenseType: licenseType
        puid: puid
        customerId: customerId
        tenantId: tenantId
        billingAccountId: billingAccountId
        emailId: emailId
        objectId: objectId
      properties:
        billingAccountId:
          description: Azure Billing Account ID
          type: string
        customerId:
          type: string
        emailId:
          description: Email address
          type: string
        firstName:
          type: string
        lastName:
          type: string
        licenseType:
          description: Azure License Type
          type: string
        objectId:
          type: string
        puid:
          description: ID of the user, used as External ID of suger IdentityBuyer.
          type: string
        tenantId:
          type: string
      type: object
    SnowflakeMarketplaceOffer:
      properties:
        access_end_time:
          type: string
        access_start_date_preference:
          type: string
        access_start_time:
          type: string
        additional_information:
          type: string
        comment:
          type: string
        contract_duration_months:
          type: integer
        contract_type:
          type: string
        contract_value:
          type: string
        discount:
          type: number
        display_name:
          type: string
        expiration_time:
          type: string
        invoice_start_date_preference:
          description: 'invoice start date preference: FIRST_DAY_NEXT_MONTH, OFFER_ACCEPTED_DATE'
          type: string
        invoice_start_time:
          type: string
        is_default:
          type: boolean
        name:
          type: string
        payment_terms:
          $ref: '#/components/schemas/SnowflakeMarketplaceOfferPaymentTerms'
        pricing_plan_name:
          type: string
        state:
          type: string
        state_updated_on:
          type: string
        target_consumer:
          type: string
        terms_of_service:
          allOf:
          - $ref: '#/components/schemas/SnowflakeMarketplaceOfferTermsOfService'
          description: 'terms of service: {"type":"DEFAULT"}'
          type: object
        updated_on:
          type: string
      type: object
    AzureIncludedBaseQuantity:
      example:
        quantity: 1.2315135367772556
        isInfinite: true
        recurringUnit: Monthly
      properties:
        isInfinite:
          type: boolean
        quantity:
          type: number
        recurringUnit:
          enum:
          - Monthly
          - Annual
          type: string
      type: object
    SnowflakeMarketplacePlanInstallment:
      example:
        installment_amount: 4.652396432933246
        installment_number: 8.969578798196912
      properties:
        installment_amount:
          type: number
        installment_number:
          type: number
      type: object
    AzureMarketplaceSubscriptionStatus:
      enum:
      - NotStarted
      - PendingFulfillmentStart
      - Subscribed
      - Suspended
      - Unsubscribed
      type: string
      x-enum-varnames:
      - AzureMarketplaceSubscriptionStatus_NotStarted
      - AzureMarketplaceSubscriptionStatus_PendingFulfillmentStart
      - AzureMarketplaceSubscriptionStatus_Subscribed
      - AzureMarketplaceSubscriptionStatus_Suspended
      - AzureMarketplaceSubscriptionStatus_Unsubscribed
    PriceModelBulk:
      properties:
        bulkAmount:
          description: A currency amount to rate usage by
          type: number
        bulkSize:
          description: 'An integer amount to represent package size. For example, 1000 here would divide

            usage by 1000 before multiplying by package_amount in rating'
          type: integer
      type: object
    TrialConfig:
      properties:
        trialPeriod:
          type: integer
        trialPeriodUnit:
          $ref: '#/components/schemas/TimeUnit'
      type: object
    NotificationEventAction:
      enum:
      - ''
      - ABNORMAL_ALERT
      - ACCEPT
      - ADD
      - APPROVE
      - CANCEL
      - CLOSE
      - CREATE
      - DELETE
      - ARCHIVE
      - DISBURSE
      - END_SOON
      - EXPIRE
      - EXPIRE_SOON
      - MERGE
      - METER
      - NEW_CLIENT_SIGNUP
      - NOTIFY
      - NOTIFY_CONTACTS
      - OPEN_EMAIL
      - PENDING_CANCEL
      - PENDING_ACCEPTANCE
      - REINSTATE
      - REJECT
      - REOPEN
      - CHARGE
      - REFUND
      - ISSUE
      - SIGN
      - ROTATE_SECRET
      - SUSPEND
      - TEST
      - UPDATE
      - ACE_ENGAGEMENT_SCORE_UPDATE
      - ACE_SALES_REP_UPDATE
      - ACE_CUSTOMER_EMAIL_UPDATE
      - AZURE_STATUS_UPDATE
      - SUBMIT_APPROVAL_REQUEST
      - REVIEW_APPROVAL_REQUEST
      - COMPLETE
      - FAIL
      - WEBHOOK
      - MARKETPLACE_CONTACT_EMAIL_UPDATE
      type: string
      x-enum-comments:
        NotificationEventAction_ADD: Add user to organization
      x-enum-varnames:
      - NotificationEventAction_UNKNOWN
      - NotificationEventAction_ABNORMAL_ALERT
      - NotificationEventAction_ACCEPT
      - NotificationEventAction_ADD
      - NotificationEventAction_APPROVE
      - NotificationEventAction_CANCEL
      - NotificationEventAction_CLOSE
      - NotificationEventAction_CREATE
      - NotificationEventAction_DELETE
      - NotificationEventAction_ARCHIVE
      - NotificationEventAction_DISBURSE
      - NotificationEventAction_END_SOON
      - NotificationEventAction_EXPIRE
      - NotificationEventAction_EXPIRE_SOON
      - NotificationEventAction_MERGE
      - NotificationEventAction_METER
      - NotificationEventAction_NEW_CLIENT_SIGNUP
      - NotificationEventAction_NOTIFY
      - NotificationEventAction_NOTIFY_CONTACTS
      - NotificationEventAction_OPEN_EMAIL
      - NotificationEventAction_PENDING_CANCEL
      - NotificationEventAction_PENDING_ACCEPTANCE
      - NotificationEventAction_REINSTATE
      - NotificationEventAction_REJECT
      - NotificationEventAction_REOPEN
      - NotificationEventAction_CHARGE
      - NotificationEventAction_REFUND
      - NotificationEventAction_ISSUE
      - NotificationEventAction_SIGN
      - NotificationEventAction_ROTATE_SECRET
      - NotificationEventAction_SUSPEND
      - NotificationEventAction_TEST
      - NotificationEventAction_UPDATE
      - NotificationEventAction_ACE_ENGAGEMENT_SCORE_UPDATE
      - NotificationEventAction_ACE_SALES_REP_UPDATE
      - NotificationEventAction_ACE_CUSTOMER_EMAIL_UPDATE
      - NotificationEventAction_AZURE_STATUS_UPDATE
      - NotificationEventAction_SUBMIT_APPROVAL_REQUEST
      - NotificationEventAction_REVIEW_APPROVAL_REQUEST
      - NotificationEventAction_COMPLETE
      - NotificationEventAction_FAIL
      - NotificationEventAction_WEBHOOK
      - NotificationEventAction_MARKETPLACE_CONTACT_EMAIL_UPDATE
    BillingDiscount:
      example:
        discountType: PERCENTAGE
        value: 1.4658129805029452
      properties:
        discountType:
          $ref: '#/components/schemas/BillingDiscountType'
        value:
          type: number
      type: object
    GcpMarketplacePriceModel:
      enum:
      - FREE
      - SUBSCRIPTION
      - USAGE
      - S

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