AppDirect Discount API

The Discount API from AppDirect — 2 operation(s) for discount.

OpenAPI Specification

appdirect-discount-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed Discount API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Discount
  x-displayName: Discounts
paths:
  /channel/v1/discounts:
    get:
      description: 'Lists all available discounts.

        The parameters can be used to filter the results.'
      tags:
      - Discount
      summary: List all discounts
      operationId: resource_Other_readDiscounts_GET
      parameters:
      - description: Discount code
        name: code
        in: query
        schema:
          type: string
      - description: Number of results to fetch. Used for paging.
        name: count
        in: query
        schema:
          type: integer
          default: 250
      - description: Sort field. Default value is creation date.
        name: sortField
        in: query
        schema:
          type: string
          enum:
          - APPLICATION
          - CHANNEL
          - CODE
          - CREATED_ON
          - END_DATE
          - REDEMPTIONS
          - START_DATE
          default: CREATED_ON
      - description: Sort order. Default value is ascending.
        name: sortOrder
        in: query
        schema:
          type: string
          enum:
          - ASC
          - DESC
          default: ASC
      - description: First result index. Used for paging.
        name: start
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              schema:
                type: integer
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Discount'
            application/json:
              examples:
                response:
                  value:
                  - id: 4
                    uuid: 47055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969138028
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: null
                    partnerSharePercentage: null
                    basePartnerSharePercentage: null
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
            headers:
              examples:
                response:
                  value:
                    X-Total-Count: 1
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/discounts?code=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts',\n  qs: {\n    code: 'SOME_STRING_VALUE',\n    count: 'SOME_INTEGER_VALUE',\n    sortField: 'SOME_STRING_VALUE',\n    sortOrder: 'SOME_STRING_VALUE',\n    start: 'SOME_INTEGER_VALUE'\n  }\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts?code=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    post:
      description: Creates a discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
      tags:
      - Discount
      summary: Create discounts
      operationId: resource_Other_createDiscount_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Discount'
        description: Discount data object
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 1
                    uuid: 17055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969136160
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: 50
                    partnerSharePercentage: 25
                    basePartnerSharePercentage: 25
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts \\\n  --data '{\"applicationId\":0,\"applicationUuid\":\"string\",\"applicationName\":\"string\",\"autoApply\":true,\"basePartnerSharePercentage\":0,\"billingCycles\":0,\"code\":\"string\",\"createdOn\":0,\"description\":\"string\",\"editionId\":0,\"editionUuid\":\"string\",\"expirationDate\":0,\"id\":0,\"uuid\":\"string\",\"industryId\":0,\"maxRedemptions\":0,\"maxUnits\":0,\"minUnits\":0,\"partnerSharePercentage\":0,\"paymentPlanId\":0,\"paymentPlanUuid\":\"string\",\"percentage\":0,\"price\":0,\"redemptionRestriction\":\"string\",\"redemptions\":0,\"retainable\":true,\"startDate\":0,\"type\":\"string\",\"unit\":\"USER\",\"vendorSharePercentage\":0}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts',\n  body: {\n    applicationId: 0,\n    applicationUuid: 'string',\n    applicationName: 'string',\n    autoApply: true,\n    basePartnerSharePercentage: 0,\n    billingCycles: 0,\n    code: 'string',\n    createdOn: 0,\n    description: 'string',\n    editionId: 0,\n    editionUuid: 'string',\n    expirationDate: 0,\n    id: 0,\n    uuid: 'string',\n    industryId: 0,\n    maxRedemptions: 0,\n    maxUnits: 0,\n    minUnits: 0,\n    partnerSharePercentage: 0,\n    paymentPlanId: 0,\n    paymentPlanUuid: 'string',\n    percentage: 0,\n    price: 0,\n    redemptionRestriction: 'string',\n    redemptions: 0,\n    retainable: true,\n    startDate: 0,\n    type: 'string',\n    unit: 'USER',\n    vendorSharePercentage: 0\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"applicationId\\\":0,\\\"applicationUuid\\\":\\\"string\\\",\\\"applicationName\\\":\\\"string\\\",\\\"autoApply\\\":true,\\\"basePartnerSharePercentage\\\":0,\\\"billingCycles\\\":0,\\\"code\\\":\\\"string\\\",\\\"createdOn\\\":0,\\\"description\\\":\\\"string\\\",\\\"editionId\\\":0,\\\"editionUuid\\\":\\\"string\\\",\\\"expirationDate\\\":0,\\\"id\\\":0,\\\"uuid\\\":\\\"string\\\",\\\"industryId\\\":0,\\\"maxRedemptions\\\":0,\\\"maxUnits\\\":0,\\\"minUnits\\\":0,\\\"partnerSharePercentage\\\":0,\\\"paymentPlanId\\\":0,\\\"paymentPlanUuid\\\":\\\"string\\\",\\\"percentage\\\":0,\\\"price\\\":0,\\\"redemptionRestriction\\\":\\\"string\\\",\\\"redemptions\\\":0,\\\"retainable\\\":true,\\\"startDate\\\":0,\\\"type\\\":\\\"string\\\",\\\"unit\\\":\\\"USER\\\",\\\"vendorSharePercentage\\\":0}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts\")\n  .post(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/discounts/{discountId}:
    put:
      description: Updates the specified discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
      tags:
      - Discount
      summary: Update discounts
      operationId: resource_Other_updateDiscount_PUT
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Discount'
        description: Discount data object
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 5
                    uuid: 57055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: null
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 50
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: 50
                    partnerSharePercentage: 25
                    basePartnerSharePercentage: 25
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D \\\n  --data '{\"applicationId\":0,\"applicationUuid\":\"string\",\"applicationName\":\"string\",\"autoApply\":true,\"basePartnerSharePercentage\":0,\"billingCycles\":0,\"code\":\"string\",\"createdOn\":0,\"description\":\"string\",\"editionId\":0,\"editionUuid\":\"string\",\"expirationDate\":0,\"id\":0,\"uuid\":\"string\",\"industryId\":0,\"maxRedemptions\":0,\"maxUnits\":0,\"minUnits\":0,\"partnerSharePercentage\":0,\"paymentPlanId\":0,\"paymentPlanUuid\":\"string\",\"percentage\":0,\"price\":0,\"redemptionRestriction\":\"string\",\"redemptions\":0,\"retainable\":true,\"startDate\":0,\"type\":\"string\",\"unit\":\"USER\",\"vendorSharePercentage\":0}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D',\n  body: {\n    applicationId: 0,\n    applicationUuid: 'string',\n    applicationName: 'string',\n    autoApply: true,\n    basePartnerSharePercentage: 0,\n    billingCycles: 0,\n    code: 'string',\n    createdOn: 0,\n    description: 'string',\n    editionId: 0,\n    editionUuid: 'string',\n    expirationDate: 0,\n    id: 0,\n    uuid: 'string',\n    industryId: 0,\n    maxRedemptions: 0,\n    maxUnits: 0,\n    minUnits: 0,\n    partnerSharePercentage: 0,\n    paymentPlanId: 0,\n    paymentPlanUuid: 'string',\n    percentage: 0,\n    price: 0,\n    redemptionRestriction: 'string',\n    redemptions: 0,\n    retainable: true,\n    startDate: 0,\n    type: 'string',\n    unit: 'USER',\n    vendorSharePercentage: 0\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"applicationId\\\":0,\\\"applicationUuid\\\":\\\"string\\\",\\\"applicationName\\\":\\\"string\\\",\\\"autoApply\\\":true,\\\"basePartnerSharePercentage\\\":0,\\\"billingCycles\\\":0,\\\"code\\\":\\\"string\\\",\\\"createdOn\\\":0,\\\"description\\\":\\\"string\\\",\\\"editionId\\\":0,\\\"editionUuid\\\":\\\"string\\\",\\\"expirationDate\\\":0,\\\"id\\\":0,\\\"uuid\\\":\\\"string\\\",\\\"industryId\\\":0,\\\"maxRedemptions\\\":0,\\\"maxUnits\\\":0,\\\"minUnits\\\":0,\\\"partnerSharePercentage\\\":0,\\\"paymentPlanId\\\":0,\\\"paymentPlanUuid\\\":\\\"string\\\",\\\"percentage\\\":0,\\\"price\\\":0,\\\"redemptionRestriction\\\":\\\"string\\\",\\\"redemptions\\\":0,\\\"retainable\\\":true,\\\"startDate\\\":0,\\\"type\\\":\\\"string\\\",\\\"unit\\\":\\\"USER\\\",\\\"vendorSharePercentage\\\":0}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .put(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
    get:
      description: Retrieves the discount for the given discount ID or UUID.
      tags:
      - Discount
      summary: Retrieve discounts
      operationId: resource_Other_readDiscount_GET
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 4
                    uuid: 47055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969138028
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: null
                    partnerSharePercentage: null
                    basePartnerSharePercentage: null
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    delete:
      description: Deletes the discount with the specified discount ID or UUID.
      tags:
      - Discount
      summary: Delete discounts
      operationId: resource_Other_deleteDiscount_DELETE
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'DELETE',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .delete(null)\n  .build();\n\nResponse response = client.newCall(request).execute();"
components:
  schemas:
    RedemptionRestriction:
      type: string
      title: RedemptionRestriction
      properties:
        RedemptionRestriction:
          type: string
          enum:
          - NONE
          - ONCE_PER_USER
          - ONCE_PER_COMPANY
    DiscountType:
      type: string
      title: DiscountType
      properties:
        DiscountType:
          type: string
          enum:
          - PERCENTAGE
          - FIXED_PRICE
    PricingUnit:
      type: string
      title: PricingUnit
      enum:
      - USER
      - GIGABYTE
      - GMV
      - MEGABYTE
      - PROSPECT_SCORE
      - HOUR
      - MINUTE
      - INVOICE
      - UNIT
      - PROJECT
      - PROPERTY
      - ITEM
      - WORD
      - EMAIL
      - CONTACT
      - CALL
      - CREDIT
      - ROOM
      - HOST
      - AGENT
      - OPERATOR
      - PROVIDER
      - MANAGER
      - TESTER
      - JVM
      - SERVER
      - WEB_USE_MINUTE
      - AUDIO_USE_MINUTE
      - PIECE
      - EMPLOYEE_PAY_PERIOD
      - EMPLOYEE_PER_PAY_PERIOD
      - COMPUTER
      - NOT_APPLICABLE
      - ONE_TIME_SETUP
      - DATA_POINTS
      - TIER1_API_CALLS
      - TIER2_API_CALLS
      - ADVISORY_HOURS
      - OVERAGE_AUDIO_MINUTE
      - EMPLOYEE
      - CONNECTION
      - PUSH_USER
      - THOUSAND_EMAILS_PER_DAY
      - PUSH_NOTIFICATION_DEVICES
      - API_CALLS
      - SMS_TEXT_MESSAGE
      - CONTACTS_1000
      - CONTRACT_FEE
      - TRANSFER_FEE
      - REACTIVATION_FEE
      - RECIPIENT
      - ADDITIONAL_1000_CONTACTS_BLOCK
      - SCHEDULE_PLAN
      - EMAILS_1000
      - EMAILS_2500
      - EMAILS_100000
      - MOBILE_DEVICE
      - PAYSLIP
      - PAYSLIP_CORRECTION
      - STORE
      - WEBSITE
      - EPAPER
      - PAGE
      - POSTAGE_AND_PRINT
      - INTERNATIONAL_POSTAGE_AND_PRINT
      - TIER1_TOP_LEVEL_DOMAIN
      - TIER2_TOP_LEVEL_DOMAIN
      - DEDICATED_IP
      - ENABLELCM
      - MAXCOMPONENTS
      - DATA_MANAGEMENT_USER
      - SPECIALIST_USER
      - PROFESSIONAL_USER
      - MATERIALITY_MATRIX
      - STAKEHOLDER_MANAGEMENT
      - SCORECARD
      - STANDARD_MAPPING
      - DONATION_MANAGEMENT
      - DOCUMENT
      - PACKAGE_SMALL
      - PACKAGE_LARGE
      - MEMBER
      - ATTENDEE
      - MAILING
      - RESPONSE
      - EXTERNAL_INVOICE_FEE
      - CLIENT_TEST
      - IMAGE_TRANSFORMATION
      - TOTAL_IMAGE
      - LICENSE
      - MAILBOX
      - FREE_40_INCH_HDTV_PC
      - FREE_46_INCH_HDTV_PC
      - FREE_46_INCH_HDTV_PC_MOUNTING
      - EMPLOYEE_PER_WEEK
      - REGISTER
      - END_USER
      - CORE
      - DEVICE
      - PORT
      - MEASURER
      - PUBLISHED_MEASUREMENT
      - NODE
      - SERVER_RULE
      - VPN_LP
      - PROXY_LP
      - DESKTOP_CONNECT_LP
      - CAMERA
      - MAIN_SOUND_ZONE
      - SUB_SOUND_ZONE
      - POST
      - REPORT
      - BOX
      - SESSION
      - DISPLAY
      - TRUCKROLL
      - TRANSACTION_FEE
      - SENDING_API_CALL
      - LOOKUP_API_CALL
      - ANALYTICS_API_CALL
      - MIGRATION_INSTANCE
      - NFON_SETUP_PER_PHONE_EXTENSION
      - NFON_SETUP_PER_PHONE_EXTENSION_PLUS
      - NFON_SETUP_PER_EFAX_EXTENSION
      - NFON_PHONE_EXTENSION
      - NFON_PHONE_EXTENSION_PLUS
      - NFON_EFAX_EXTENSION
      - NFON_CALL_CENTER_MONITORING
      - NFON_NMEETING
      - NFON_MOBILE_NFON_DEVICE
      - NFON_ISOFTPHONE_MAC
      - NFON_NSOFTPHONE_STANDARD_WINDOWS
      - NFON_NSOFTPHONE_PREMIUM_WINDOWS
      - NFON_NCTI_STANDARD_WINDOWS
      - NFON_NCTI_STANDARD_CRM_WINDOWS
      - NFON_NCTI_STANDARD_MAC
      - NFON_NSOFTPHONE_STANDARD_WINDOWS_OR_MOBILE
      - WESUSTAIN_PERFORMANCE
      - WESUSTAIN_STAKEHOLDER_REPUTATION
      - WESUSTAIN_WEAPP
      - FAX
      - FAX_LINE
      - ROOM_LINE
      - DEPARTMENT_LINE
      - INTERNATIONAL_LICENSE
      - INTERNATIONAL_DEPARTMENT_LINE
      - INTERNATIONAL_ROOM_LINE
      - INTERNATIONAL_LINE
      - CALLING_CREDIT
      - LINE
      - TOLLFREE_ROOM_LINE
      - TOLLFREE_DEPARTMENT_LINE
      - TAXES_AND_FEES
      - LEAD
      - OPPORTUNITY
      - CAMPAIGN
      - CASE
      - CUSTOMER
      - TIER1_STANDARD_LINE
      - TIER1_ROOM_LINE
      - TIER1_TOLLFREE_ROOM_LINE
      - TIER1_TOLLFREE_DEPARTMENT_LINE
      - TIER1_FAX_LINE
      - TIER1_DEPARTMENT_LINE
      - TIER2_STANDARD_LINE
      - TIER2_ROOM_LINE
      - TIER2_DEPARTMENT_LINE
      - TIER3_STANDARD_LINE
      - TIER3_ROOM_LINE
      - TIER3_DEPARTMENT_LINE
      - TIER4_STANDARD_LINE
      - TIER4_ROOM_LINE
      - TIER4_DEPARTMENT_LINE
      - CLUSTER
      - NODE_4VCPU
      - FIVE_HUNDRED_GB_SSD
      - TWELVE_TB_NETWORK_IO
      - JBOSS_EAP
      - JBOSS_FUSE
      - JBOSS_A_MQ
      - JBOSS_BRMS
      - JBOSS_BPM_SUITE
      - JBOSS_DATA_GRID
      - JBOSS_DATA_VIRT
      - USER_LICENSE
      - ADDITIONAL_NUMBER_LICENSE
      - ROOM_PHONE_LICENSE
      - UBERCONFERENCE_PRO_LICENSE
      - UBERCONFERENCE_PRO_LICENSE_UNBUNDLED
      - INSTANCE
      - INDOOR_CAMERA
      - OUTDOOR_CAMERA
      - VINGATE_LP_LICENCE
      - ADMINISTRATOR
      - MOBILE_USER
      - G_SUITE
      - T1
      - PHONE
      - AUTO_ATTENDANT
      - HUNT_GROUP
      - VOICEMAIL_BOX
      - TOLL_FREE_NUMBER
      - INBOUND_LONG_DISTANCE_MINUTE
      - OUTBOUND_LONG_DISTANCE_MINUTE
      - INBOUND_OUTBOUND_LONG_DISTANCE_MINUTE
      - SET_TOP_BOX
      - MODEM
      - ACCESS_POINT
      - CALLING_FEATURE
      - IAD_DEVICE
      - ANALOG_LINE
      - PRI
      - SBC_DEVICE
      - ROUTER
      - INTERNATIONAL_MINUTE
      - PHONE_LINE
      - DYNAMIC_IP_ADDRESS
      - STATIC_IP_ADDRESS
      - GATEWAY
      - REMOTE_CONTROL
      - TIER1_STANDARD_SEAT
      - TIER2_STANDARD_SEAT
      - TIER3_STANDARD_SEAT
      - TIER4_STANDARD_SEAT
      - TIER1_TOLL_FREE_SEAT
      - MILLION_MESSAGES
      - MESSAGE
      - WEEKLY
      - PHONE_NUMBER
      - GUEST
      - REVISION_SAFE_DATAROOM
      - GROUP_SESSION
      - MAILBOX_AD_SYNC
      - PHONE_SUPPORT
      - EXTRA_10TB
      - EXTRA_50TB
      - EXTRA_200TB
      - MAP_VIEW
      - SVM
      - CHANNEL
      - NUMBER_PRINTER_TABLET
      - NUMBER_ONSITE_SERVER
      - NUMBER_VISITS
      - ONSITE_TECHNICIAN_PC
      - ONSITE_TECHNICIAN_SERVER
      - SHORTER_REACTION_TIMES
      - E_COMMERCE_INTEGRATION
      - LOCATION
      - TRAINING_SESSION
      - GIGABYTES_PER_HOUR
      - FINANCIAL_PLANNING
      - ONSITE_WORKPLACE
      - INTERNAL_TOOLS_ACCESS
      - DUTY_SERVICE
      - TERABYTE
      - HOST_UNIT_HOURS
      - WEB_CHECKS
      - ACTIVE_USERS
      - ACTIVE_EMPLOYEE
      - PC_OF_NET_RECURRING_FEE
      - ACTIVE_VENDOR
      - ADVERTISEMENT
      - ADVERTISER_SPENDS
      - ANNUAL_FUNDRAISING_INCOME
      - ANNUAL_SUBSCRIPTION
      - APPLIANCE
      - ASSET
      - ASSETS_UNDER_MANAGEMENT
      - BUSINESS_PARTNERS
      - CASH_FLOWS
      - COMPONENT
      - CONNECTED_SYSTEMS
      - CONTRACTS
      - COSTS
      - DATA_STREAMS
      - DATABASE_SIZE
      - EXTERNAL_SERVICE_CALLS
      - FILE
      - FIXED
      - FLAT
      - FLAT_FEE_BASED_ON_ASSETS
      - FLEET_PLANNING_ORDERS
      - FORMS
      - GIGABYTE_DATABASE_SIZES
      - INSTALLATION
      - INSTALLED_CAPACITY
      - JOB_POSTING
      - LEARNER
      - LOGON
      - MANAGED_SYSTEM
      - MASTER_DATA_OBJECT
      - MASTER_RECORDS
      - MBPS
      - MONITORED_USER
      - MPLS
      - ORDER
      - OUTPATIENT_DAYS
      - PAGE_VIEW
      - PATIENT_CARE_DAY
      - PATIENT_TREATED
      - PLANT
      - POINTS_OF_DELIVERY
      - PREMIUM
      - PROCESS
      - PRODUCTS
      - RECORDS
      - RENTAL_UNIT
      - RESOURCES
      - REVENUE
      - SALES_ORDER
      - SALES_PORTFOLIOS
      - SERVICE_ORDERS
      - SITE_VISITS
      - SPENDS
      - SPEND_VOLUMES
      - STREAM
      - STUDENT
      - SUBSCRIBER
      - SUPPLIERS
      - TICKETS
      - TOTAL_ANNUAL_BUDGET
      - TUNNEL
      - VIRTUAL_USERS
      - SAP_SYSTEM
      - POSITION_TYPES
      - OVERAGE_FEES
      - OVERAGE_FEE_TRANSACTION
      - OVERAGE_FEES_DOCUMENT
      - OVERAGE_FEES_ITEM
      - EVENT
      - BUSINESS_EVENT
      - LEGAL_TENDER
      - ANNUAL_REVENUE
      - AD_SYNC
      - FULL_DATA_RESTORE
      - USED_STORAGE_100GB
      - COMPANY
      - ADDITIONAL_USER
      - VISIT
      - VIDEO
      - ELECTRONIC_PAYMENT
      - CHECK_PAYMENT
      - EXPRESS_PAY_ELECTRONIC_PAYMENT
      - EXPRESS_PAY_CHECK_PAYMENT
      - DATA_ENTRY_SERVICE
      - MONTHLY_VISIT
      - SCRUB_TRANSACTION
      - DEVICE_LICENSE
      - SERVER_LICENSE
      - BASE_LICENSE
      - SERVICE_CALL
      - SUPPORT_INCIDENT_TICKET
      - CUSTOM_REPORT_BUILDING_TRAINING
      - QUOTA
      - DOMESTIC_TRANSACTION
      - BEE
      - BEE_FLEET
      - BEE_BEACON_AMBIENT_LIGHT
      - BEE_BEACON_TEMPERATURE_HUMIDITY
      - CONTACTS_100
      - TEMPLATE
      - TEMPLATE_PACKS_10
      - PACK
      - SMS_TEXT_MESSAGE_10
      - VIRTUAL_SERVER
      - PHYSICAL_SERVER
      - WORKSTATION
      - CHATS
      - MATCH_LIST
      - CERTIFICATE_12_MONTHS
      - CERTIFICATE_24_MONTHS
      - PRIVACY
      - PAGE_VIEWS_100000
      - VOICE_OUT
      - EXAM
      - PARTICIPANT
      - ENCRYPTION_ADDON
      - ESS
      - ETI
      - ATP_ADDON
      - PBE_ADDO
      - NETI_ADDON
      - HUNDRED_SMS_REMINDER
      - CALENDAR_SYNC
      - PAYMENT_INTERFACE
      - MULTILINGUAL_ONLINE_EVENT_BOOKING
      - SOCKET
      - OFFER
      - FREELANCER
      - SOAP
      - DATEV_LEXWARE_INTERFACE
      - TOKEN
      - SERVICE_MONTH
      - VIDEO_PACKAGE_50_HOURS
      - INTERFACE
      - TEST_CASE
      - MINUTES_15
      - MINUTES_30
      - CONNECTED_ACCESS_POINT
      - DAY
      - SATURDAY_SURCHARGE
      - NIGHT_SURCHARGE
      - SUNDAY_SURCHARGE
      - PUBLIC_HOLIDAY_SURCHARGE
      - BASIC_PACKAGE
      - STANDARD_PACKAGE
      - PREMIUM_PACKAGE
      - REPORTS_MODULE
      - WORKFLOW_MODULE
      - NBV_250K
      - NBV
      - INVENTORY
      - ADDITIONAL_COMPANY
      - TRANSACTION
      - PREMIUM_CREDIT_REPORTS
      - ADDITIONAL_CONNECTION
      - STOCK_UNIT
      - MONTHLY_USAGE_FEE
      - USAGE_FEE
      - MONTHLY_CHARGES
      - STANDARD_USER
      - ADDITIONAL_UNIT
      - COMMISSION
      - KITTING
      - WOP
      - SFDC
      - NAMED_USER_LICENSE
      - BARCODING_AND_WAREHOUSING
      - MODULE
      - MANUFACTURING_MODULE
      - MRP
      - CONSOLE_MODULE
      - CONSOLIDATIONS
      - MULTI_CURRENCY
      - ADDON_LICENSE
      - INBOUND_PAGE
      - OUTBOUND_PAGE
      - OPPORTUNITY_RETENTION
      - SOCIAL_SENTIMENT
      - DEMAND_PRICE
      - SETUP_FEE
      - SHAREPOINT
      - INTEGRATION_MAINTENANCE
      - VIEWER
      - MANAGEMENT_USER
      - SQ_FT
      - LOCATION_UPTO_10_EMPLOYEES
      - LOCATION_UPTO_20_EMPLOYEES
      - LOCATION_UPTO_30_EMPLOYEES
      - LOCATION_UPTO_60_EMPLOYEES
      - LOCATION_UPTO_99_EMPLOYEES
      - M365_ONLINE
      - WEB_HOSTING_SERVER
      - STANDARD_EDITION_GIGABYTE
      - STORAGE_GIGABYTE
      - EGRESS_GIGABYTE
      - FEE_HW_DEFECT_NO_WARRANTY_CASE
      - SIM_CARD
      - SIM_CARDS_10
      - APPLICATION_CONNECTOR
      - ADDITIONAL_API_CALLS
      - USED_STORAGE_PER_GB
      - CERTIFICATION
      - MACHINE
      - CALCULATION_USER
      - MAILBOX_S
      - MAILBOX_M
      - MAILBOX_L
      - STORAGE
      - GROUP
      - VEHICLE
      - ENDPOINT
      - MANAGED_SERVICE
      - SOC
      - ONLINE_PLAN
      - ENTERPRISE_PLAN
      - FLOATING_LICENSE
      - USER_PER_LICENSE
      - CONCURRENT_USER_PER_LICENSE
      - DASHBOARD
      - IT_INTERFACE
      - CONNECTABLE_IOT_DEVICE_VIA_USB
      - CONNECTABLE_IOT_DEVICE_VIA_TULIP_GATEWAY
      - CONNECTABLE_MACHINE_PER_LICENSE
      - OBJECT_TO_BE_CHECKED
      - MACHINE_WITH_BI_SUPPORT
      - CONNECTED_DEVICE
      - LISTING
      - TLS_ENCRYPTION
      - DOMAIN_LEVEL_SEND
      - EFAX_ROUTER
      - PRORATED_CREDIT
      - NEW_HIRE
      - NAS
      - SALESFORCE_USER
      - INTERVIEW
      - ASSESSMENT
      - NU_WEBEX_CALLING_ENHANCED
      - NU_WEBEX_CALLING_PROFESSIONAL
      - WEBEX_ASSISTANT_FOR_WEBEX_MEETINGS_NU
      - NU_MEETINGS_BRIDGE_COUNTRY_CALL_BACK_AUDIO
      - FLEX_TEAMS_MESSAGING
      - ADDON_ANALYSES
      - ADDITIONAL_LISTING
      - MIGRATION_TENANT
      - MIGRATION_GROUP
      - MIGRATION_DOCUMENT
      - MIGRATION_GSUITE
      - MIGRATION_FOLDER
      - ENHANCED_USER
      - SINGLE_NAME_CERTIFICATE
      - SETUP
      - HA_DEVICE_DAY
      - WILDCARD_CERTIFICATE
      - SECURITY_PACKAGE
      - ADDITIONAL_LANGUAGE
      - VANITY_URL
      - BRANDING
      - DATA_SOURCE
      - CREATOR_USER
      - ESIGN_USER
      - READ_ONLY_USER
      - MEASURING_POINT
      - ANDON_TV
      - TABLET
      - USER_10000
      - USER_100
      - PUBLIC_IP
      - WORKLOAD
      - PUBLIC_IP_ADDRESS
      - COMPUTE_POINT
      - RESOURCE_UNIT
      - VALUE_POINT
      - ACCOUNT
      - REQUEST
      - TRANSCRIPT
      - NOTIFICATION
      - CLAIM
      - MID
      - ENGAGEMENT
      - TEAM_LICENSE_DIGITAL_TEAMBOARD
      - TEAM_LICENSE_MODULE_CONNECTIVITY
      - TEAM_LICENSE_MODULE_PROBLEM_SOLUTION
      - TEAM_LICENSE_MODULE_AUDITS
      - TEAM_LICENSE_MODULE_PROCESS_CONFIRMATION
      - TEAM_LICENSE_MODULE_QUALIFICATION_MATRIX
      - TEAM_LICENSE_MODULE_STANDARD_WORK_INSTRUCTION
      - TEAM_LICENSE_MODULE_PARETO_ANALYSIS
      - KPI
      - YEAR_KPI_ARCHIVAL
      - CORPORATE_CLOUD_HOSTING
      - ON_PREMISES_HOSTING
      - SUPPORT_SERVICE_HOUR
      - CLASS
      - EXPERT
      - SPINDLE_HOUR
      - ADDON_ADMINISTRATION
      - ADDON_CONFIGURATION
      - ADDON_PLANNING
      - ADDON_PLANNING_OBJECTS
      - ADDON_MASTER_DATA
      - ADDON_CAPACITY_PLANS_CALENDAR
      - ADDON_CONFLICT_RADAR
      - ADDON_GAP_LIST
      - ADDON_DASHBOARD
      - ADDON_PLANNING_READ_ONLY
      - ADDON_UTILIZATION_POOLS
      - ADDON_FIXED_SCHEDULES
      - ADDON_ASSEMBLY

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