{
  "openapi": "3.0.1",
  "info": {
    "title": "Centralized Products and Offers API",
    "description": "\nThe primary purpose of Offerms is to host end points that can return qualified and eligible offers associated with different product types.",
    "version": "1.0.7",
    "contact": {}
  },
  "paths": {
    "/v1/product-offers": {
      "get": {
        "tags": [
          "ProductOffering Discovery APIs"
        ],
        "summary": "Product Discovery",
        "description": "Productoffering details will be returned for the provided eligibility and/or filter",
        "operationId": "getProductOfferings",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "Comma separated list of productOfferingIDs to retrieve details. e.g. ibbndl_prod11920327_prod8580387_rwd-43100015_prod9040405",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Max number of productOffering details to be returned in response. Not used when ids query param is populated.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Page number of productOffering details response. Not used when ids query param is populated.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "channel",
            "in": "query",
            "description": "Channel name of client. eg ATTR,ECOMM,SelfService",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "enum": [
                "SelfService",
                "ATTR",
                "ECOMM"
              ]
            }
          },
          {
            "name": "categoryName",
            "in": "query",
            "description": "Category name of productOffering. e.g. WBB_Plans, tobrInitiator, tobrAcceptor, Mobile_devices, BB_Plans. Required for retrieving device details.",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "enum": [
                "WBB_Plans",
                "tobrInitiator",
                "tobrAcceptor",
                "Mobile_Devices",
                "Mobile_Offers",
                "Mobile_Accessories",
                "Mobile_Addons",
                "BB_Plans"
              ]
            }
          },
          {
            "name": "serviceAddressId",
            "in": "query",
            "description": "Place id of the primary service. Mandatory for WBB offer search. Not required when ids query param is populated. e.g. 00010LVFT8",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "productOfferingTypeGroup",
            "in": "query",
            "description": "The type group of the product offering. The values are used as defined from catalog e.g. WBBOffer, WBBPlan, equipment",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "characteristics",
            "in": "query",
            "description": "<i>`conditionally required`</i><br/> Either __characteristics__ or __productOfferingId__ is required for getting the device details response.\n Characteristics key value pairs to filter the response. This value\n should be urlencoded. <br/> E.g. [{\"Streaming\":\"Standard-definition\"}], [{\"uniqueUrlName\"=\"apple-iphone-15-pro\"}], %7BuniqueUrlName%3Dapple-iphone-15-pro%7D,\n [{\"SKU\"=\"XXXX\"}],[{\"SpecialSvc\"=\"LWI\"}],%7B%SpecialSvc%22%3A%22LWI%22%7D",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productOfferingId",
            "in": "query",
            "description": "<i>`conditionally required`</i><br/> productOfferingId for fetching the device details. Either __productOfferingId__ or __characteristics__ is required for fetching the device details. <br/>\n E.g. Mobile_Device_prod21068_sku21068v2",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cartId",
            "in": "query",
            "description": "<i>`conditionally required`</i><br/> The unique id associated with the cart. This is used to get the cart context. Required when getting the Addons for wireless <br/> E.g cb7605f0-9b3e-11ec-b7a2-b93d4c24b7bd",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productOrderItemId",
            "in": "query",
            "description": "<i>`conditionally required`</i><br/> The unique id associated with the productOrderItem present in the cart. Required when getting the Addons for wireless <br/> E.g ProductOrder_142274321286134385_OrderItem_777154531415434162",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "migratedFrom",
            "in": "query",
            "description": "Migration indicator. e.g. ADSL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relatedProductOfferingId",
            "in": "query",
            "description": "Related entity ID to be used in retrieving related offers. e.g. ibbndl_prod11920327_prod8580387_rwd-43100015_prod9040405",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationType",
            "in": "query",
            "description": "Business Relationship type. i.e. CommercialRelation",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationRole",
            "in": "query",
            "description": "Business Relationship role. i.e. addon,manualReward",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Unique identifier of the related party. e.g. 4c6c369e-cc46-44e7-b692-709d48fa2f42",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "description": "The the product's ID in the customer inventory. e.g. 202513607257576794",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerType",
            "in": "query",
            "description": "Customer type. e.g. Consumer, IRU, CRU, Business",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerSubType",
            "in": "query",
            "description": "Customer sub type. e.g. Individual, Consumer Small Office",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checkEligibilityForCoupon",
            "in": "query",
            "description": "Check Eligibility For Coupon. e.g. ACTNOW",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contextType",
            "in": "query",
            "description": "Check context type eg Order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contextMainIdentifier",
            "in": "query",
            "description": "Check context type eg Order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ACPClassification",
            "in": "query",
            "description": "Check ACP eligibility e.g TRIBAL, NON_TRIBAL",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "TRIBAL",
                "NON_TRIBAL"
              ]
            }
          },
          {
            "name": "actionType",
            "in": "query",
            "description": "Specifies the action type e.g crp",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-ClientId",
            "in": "header",
            "description": "Domain ID of calling application. e.g. MyATT-MAS,ccmule",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 5,
              "type": "string",
              "default": "MyATT-MAS"
            }
          },
          {
            "name": "idpctx-appname",
            "in": "header",
            "description": "End UI application name. eg SF-SALES,onlineservices,myATTNative",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "myATTNative"
            }
          },
          {
            "name": "idpctx-uuid",
            "in": "header",
            "description": "Domain ID of calling application. e.g. CheckoutMs,onlinesalesorch",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "idpctx-linkeduverseaccnums",
            "in": "header",
            "description": "Existing Customer Ban Id in CRP flow. e.g: 639035473",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-linkedwirelessaccnums",
            "in": "header",
            "description": "Existing Customer's Wireless Account Number in ACC flow. e.g: 177068635919",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-acctinfocustype",
            "in": "header",
            "description": "Existing customer's account type. e.g: WIRELESS",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-acctinfocus",
            "in": "header",
            "description": "Existing Customer's BAN focus. e.g: 177068635919",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-agentid",
            "in": "header",
            "description": "ACC flow agent related Id e.g. att123",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-storeid",
            "in": "header",
            "description": "ACC flow storeId e.g. 12334",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-agentChannel",
            "in": "header",
            "description": "ACC flow agentChannel e.g. MSS, hellip",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "idpctx-x-akamai-edgescape",
            "in": "header",
            "description": "From idpctx-x-akamai-edgescape will retrive zipCode e.g. qwudh",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "losgTypes",
            "in": "query",
            "description": "LosgTypes of productOffering. e.g. NEW, UP, AL",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "enum": [
                "NEW",
                "UP",
                "AL"
              ]
            }
          },
          {
            "name": "paymentType",
            "in": "query",
            "description": "PaymentType of productOffering. e.g. Prepaid, Postpaid",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "enum": [
                "Prepaid",
                "Postpaid"
              ]
            }
          },
          {
            "name": "offerTypes",
            "in": "query",
            "description": "OfferTypes of productOffering. e.g standalone, tradein, bogo, abp",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "enum": [
                "standalone",
                "tradein",
                "standalone,tradein",
                "bogo",
                "abp"
              ]
            }
          },
          {
            "name": "deviceProductIds",
            "in": "query",
            "description": "DeviceProductIds of productOffering. e.g. prod11070255",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "mode",
            "in": "query",
            "description": "Mode of productOffering. e.g. buyFlow,add,new,existing",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "enum": [
                "buyFlow",
                "add",
                "new",
                "existing"
              ]
            }
          },
          {
            "name": "allVariants",
            "in": "query",
            "description": "allVariants of productOffering",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "lobs",
            "in": "query",
            "description": "lobs of productOffering. e.g wireless, wireline",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "productType",
            "in": "query",
            "description": "lob or execution flow. eg wireless, wireline",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "atgSkuIds",
            "in": "query",
            "description": "skuId of the wireless product. eg sku6910280, sku6910280",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupByVariantGroup",
            "in": "query",
            "description": "Indicator to get all the variants of the wireless product. eg true, false",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imeiTypes",
            "in": "query",
            "description": "imeiTypes of the wireless product. eg S6, R1",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skus",
            "in": "query",
            "description": "skuId of the wireless product. eg sku6910280, sku6910280",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceSkuId",
            "in": "query",
            "description": "deviceSkuId of the wireless product. eg sku6910280, sku6910280",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "planSkuIds",
            "in": "query",
            "description": "planSkuIds of the wireless product. eg sku6910280, sku6910280",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expandData",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ctn",
            "in": "query",
            "description": "Customer telephone number. e.g. 7876758046. This is required for losgType=Up (upgrade).",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryType",
            "in": "query",
            "description": "e.g. ALL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceCount",
            "in": "query",
            "description": "DeviceCount e.g. 20",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "planFirstFlow",
            "in": "query",
            "description": "planFirstFlow",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "creditRisk",
            "in": "query",
            "description": "CreditRisk e.g. low, medium, high",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referralCode",
            "in": "query",
            "description": "Coupon code",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "installationType",
            "in": "query",
            "description": "InstallationType. e.g. self, tech",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activeProducts",
            "in": "query",
            "description": "ActiveProducts for the customer Eg:Wireless, ADSL, HSIA",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transportTypes",
            "in": "query",
            "description": "To identify specific HSIA product type, the transport type is used eg: FTTN,IP-CO-BP,FTTP",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productOfferingOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "initiatorBan",
            "in": "query",
            "description": "Initiator account. e.g. 523383275671",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceProductOfferingIds",
            "in": "query",
            "description": "DeviceProductOfferingIds. e.g. Mobile_Device_pkey97049_sku2470220",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceAllocationFlow",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "transferCtns",
            "in": "query",
            "description": "Subscriber number under initiator BAN. e.g. 6193956183,6193956184",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acceptorCtn",
            "in": "query",
            "description": "Subscriber number under acceptor BAN. e.g. 2147252420,6193956184",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acceptorBan",
            "in": "query",
            "description": "Acceptor account. e.g. 177070155016",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "initiatorCustomerType",
            "in": "query",
            "description": "Customer Type. e.g. Consumer, IRU, CRU",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "query",
            "description": "Customer market under acceptor account. e.g. DLS",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetedPlancode",
            "in": "query",
            "description": "Targeted plan code to which initiator subscriber will be moved. e.g. SDGMUX",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accessEligible",
            "in": "query",
            "description": "true/false based on user's eligibility for Access. true",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rootBundleProductOrderItemId",
            "in": "query",
            "description": "root bundle product order item id of the Root Offer",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productOfferingGroup",
            "in": "query",
            "description": "product Offering Group will determine which flow its BSSE or NoN BSSE",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productOfferingType",
            "in": "query",
            "description": "product Offering Type will determine which type of Product. example - Mobile_Device, Mobile_Sim, Mobile_Accessory",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dealerCode",
            "in": "query",
            "description": "dealerCode will determine which type of dealer  example - G6MDD",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fanId",
            "in": "query",
            "description": "fanId will determine which type of signature customer  example - IRU/CRU [Conditional] Provide fanId OR combination of liabilityType, contractType, contractVersion for ASF client",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupChangeInFocus",
            "in": "query",
            "description": "this param indicates that all the wls subscribers under the group needs available plans in the CRP journey. Example - G35110269",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "liabilityType",
            "in": "query",
            "description": "[Conditional] Required with contractType & contractVersion when fanId absent for ASF",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contractType",
            "in": "query",
            "description": "[Conditional] Required with liabilityType & contractVersion when fanId absent for ASF. Example CBE",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contractVersion",
            "in": "query",
            "description": "[Conditional] Required with liabilityType & contractType when fanId absent for ASF. Example P20",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channelCatalog",
            "in": "query",
            "description": "[Conditional] Source catalog name is required for ASF. Example 'BMG Catalog'",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderTransactionType",
            "in": "query",
            "description": "[Conditional] Business transaction type is required for ASF",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "New Activation",
                "Device Upgrade",
                "Offer Change",
                "Device Change",
                "Order Product Equipment"
              ]
            }
          },
          {
            "name": "subChannel",
            "in": "query",
            "description": "[Conditional] Treated as the sales channel context in the system, you may pass multiple channel codes comma separated. sub-channel codes (sales context) is required for ASF",
            "required": false,
            "schema": {
              "type": "string",
              "example": "S3,S4"
            }
          },
          {
            "name": "partType",
            "in": "query",
            "description": "Device part type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ALL",
                "LTE",
                "UMTS",
                "GSM",
                "FEM"
              ]
            }
          },
          {
            "name": "suppressSBAPricing",
            "in": "query",
            "description": "Flag to suppress DevicePrice structure in device list response. Eg. \"Y\"",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "Y",
                "N"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK.. Returns success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOffering"
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "SampleResponse": {
                    "$ref": "#/components/examples/400ReposneMessageCommon"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "SampleResponse": {
                    "$ref": "#/components/examples/500ReposneMessageCommon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/product-offers/{id}": {
      "get": {
        "tags": [
          "ProductOffering Discovery APIs"
        ],
        "summary": "Product Lookup",
        "description": "Productoffering details will be returned for the given productoffering id.<br> Lookup api supports device, plan, accessory and add-ons lookup for wireless.",
        "operationId": "getProductOfferingLookup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ProductOfferingID to retrieve details e.g. ibbndl_prod11920327_prod8580387_rwd-43100015_prod9040405<br><br> -Device sample id: Mobile_Device_pkey24006_sku1150070<br> -Wireless prepaid plan sample id: Mobile_Plan_prod8200555_sku7510779<br> -Accessory sample id: Mobile_Accessory_pkey10000243_sku1000032<br> -Add-on sample id: Mobile_Addon_pkey11480320_sku10930339<br><br> minLength=10, maxLength=100",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 10,
              "type": "string"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "description": "Channel name of client. eg ATTR,ECOMM,SelfService",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "enum": [
                "SelfService",
                "ATTR",
                "ECOMM"
              ]
            }
          },
          {
            "name": "productType",
            "in": "query",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "enum": [
                "wireless",
                "wireline"
              ]
            }
          },
          {
            "name": "X-ATT-ClientId",
            "in": "header",
            "description": "Domain ID of calling application. e.g. MyATT-MAS,ccmule",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 5,
              "type": "string",
              "default": "MyATT-MAS"
            }
          },
          {
            "name": "idpctx-appname",
            "in": "header",
            "description": "End UI application name. eg SF-SALES,onlineservices,myATTNative",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "myATTNative"
            }
          },
          {
            "name": "customerType",
            "in": "query",
            "description": "Customer type. e.g. Consumer/Business",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "Consumer",
                "smallBusiness",
                "Business"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK.. Returns success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOffering"
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "SampleResponse": {
                    "$ref": "#/components/examples/400ReposneMessageCommon"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "SampleResponse": {
                    "$ref": "#/components/examples/500ReposneMessageCommon"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://apporigin-tst2-idppo-e2.az.3pc.att.com:8443/msapi/pno/cpopoffer"
    },
    {
      "url": "https://apporigin-tst3-idppo-e2.az.3pc.att.com:8443/msapi/pno/cpopoffer"
    }
  ],
  "tags": [
    {
      "name": "ProductOffering Discovery APIs",
      "description": "ProductOffering discovery apis for searching product offerings"
    }
  ],
  "components": {
    "schemas": {
      "PotentialPromotion": {
        "required": [
          "id",
          "promotion",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The instance ID of the immediate promotion. e.g. 1cf3cb2b-e47e-470d-9a17-8c9615bde6e2"
          },
          "status": {
            "type": "string",
            "description": "Required=true, The status of the qualified promotion. The status can have the following values:\r\n'add' - For a new immediate promotion\r\n'keep' - For an existing product promotion that remains as the result of reevaluation\r\n'revoke' - For an existing product promotion that is revoked as the result of reevaluation\r\n'update' - For an existing product promotion that is updated as the result of reevaluation (meaning one of the existing trigger or benefit items is added or removed). e.g. refer description",
            "enum": [
              "add",
              "keep",
              "revoke",
              "update"
            ]
          },
          "promotion": {
            "$ref": "#/components/schemas/Promotion"
          },
          "itemQualificationType": {
            "type": "string"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string"
          },
          "marketingContent": {
            "type": "string"
          },
          "isOfferTrayEnabled": {
            "type": "boolean"
          }
        },
        "description": "ProductOffering potential promotion object. TMF+"
      },
      "Promotion": {
        "required": [
          "description",
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the promotion. e.g. 2074e0c0-08b6-49ea-8ea9-9390651ab676"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name of the promotion. e.g. Autopay Discount"
          },
          "description": {
            "type": "string",
            "description": "Required=true, The description of the promotion for the business user. e.g. Discount of flat recurring $10 when subscribed to auto pay option."
          },
          "type": {
            "type": "string",
            "description": "Required=true, The type of the promotion. e.g. discount"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "applyPolicy": {
            "type": "string",
            "description": "Required=false, Defines the policy to apply the promotion. e.g. automatic"
          },
          "href": {
            "type": "string",
            "description": "Required=true, href to the promotion"
          },
          "promotionCharacteristics": {
            "type": "array",
            "description": "Required=false, The characteristics of the promotion. e.g. ",
            "items": {
              "$ref": "#/components/schemas/PromotionCharacteristic"
            }
          }
        },
        "description": "Promotion Object"
      },
      "PromotionCharacteristic": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The text ID of the promotion characteristic. e.g. promoType"
          },
          "value": {
            "type": "string",
            "description": "Required=true, Value of the promotion characteristic. e.g. flatrate"
          }
        },
        "description": "The list of the descriptive characteristics for the Discovery flows derived from the promotions and included in the promotion specification (if exists)"
      },
      "TimePeriod": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "Required=false, valid start date and time. e.g. "
          },
          "endDateTime": {
            "type": "string",
            "description": "Required=false, valid end date and time. e.g. "
          }
        },
        "description": "validFor Object for validate start and end date of the related entity"
      },
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "ServiceError": {
        "type": "object",
        "properties": {
          "errorId": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "BenefitItem": {
        "required": [
          "action",
          "href",
          "id",
          "itemState",
          "itemType",
          "pathToRoot",
          "promotionCriteriaGroupId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the benefit item. e.g. ff1f96e8-704e-4d97-92c6-35008ec1c0ac"
          },
          "itemType": {
            "type": "string",
            "description": "Required=true, The type of the benefit item. e.g. catalog"
          },
          "promotionCriteriaGroupId": {
            "type": "string",
            "description": "Required=true, The ID of the promotion criteria group (root or nested) as part of which the item is qualified as a benefit item. e.g. 6bb6c561-4707-4a20-ada1-027a35b57768"
          },
          "pathToRoot": {
            "type": "string",
            "description": "Required=true, The path from the current item in the oroduct offering structure to the root. This property is populated if the benefit item is a nested item. e.g. /d134f2c2-37cd-4eab-96e7-d2d12350e3b0_d8bfb8be-79dd-45e6-95c6-0bc2e30f12d8/943200e2-00da-4555-8f35-a1141683a866_ff1f96e8-704e-4d97-92c6-35008ec1c0ac"
          },
          "action": {
            "type": "array",
            "description": "Required=true, The action of the promotion. When customers meet the conditions in the promotion pattern, they can be given the benefits that are included in the action. Note - duration field is deprecated. Use duarationPolicy instead. e.g. Refer PromotionAction attributes and example values",
            "items": {
              "$ref": "#/components/schemas/PromotionAction"
            }
          },
          "href": {
            "type": "string",
            "description": "Required=true, The self-reference to the trigger item"
          },
          "itemState": {
            "type": "string",
            "description": "Required=true, The benefit item Status new , keep, revoke "
          }
        },
        "description": "benefit item object"
      },
      "DurationPolicy": {
        "type": "object",
        "properties": {
          "duration": {
            "$ref": "#/components/schemas/Quantity"
          },
          "startDatePolicy": {
            "type": "string"
          },
          "endDatePolicy": {
            "type": "string"
          },
          "effectiveFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "terminationPolicy": {
            "type": "string"
          }
        },
        "description": "Policy for calculting a limited duration for any entity "
      },
      "ImmediatePromotion": {
        "required": [
          "id",
          "promotion",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The instance ID of the immediate promotion. e.g. 1cf3cb2b-e47e-470d-9a17-8c9615bde6e2"
          },
          "status": {
            "type": "string",
            "description": "Required=true, The status of the qualified promotion. The status can have the following values:\r\n'add' - For a new immediate promotion\r\n'keep' - For an existing product promotion that remains as the result of reevaluation\r\n'revoke' - For an existing product promotion that is revoked as the result of reevaluation\r\n'update' - For an existing product promotion that is updated as the result of reevaluation (meaning one of the existing trigger or benefit items is added or removed). e.g. refer description",
            "enum": [
              "add",
              "keep",
              "revoke",
              "update"
            ]
          },
          "promotion": {
            "$ref": "#/components/schemas/Promotion"
          },
          "itemQualificationType": {
            "type": "string"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string"
          },
          "marketingContent": {
            "type": "string"
          },
          "isOfferTrayEnabled": {
            "type": "boolean"
          },
          "benefitItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BenefitItem"
            }
          },
          "triggerItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TriggerItem"
            }
          }
        },
        "description": "ProductOffering immediate promotion object. TMF+"
      },
      "ProductOfferingPriceRef": {
        "required": [
          "actionType",
          "id",
          "priceType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 100,
            "minLength": 10,
            "type": "string",
            "description": "Required=true, The unique ID of the action. e.g. 3f0cfcaf-613e-4919-8f09-30bbf8c05967"
          },
          "actionType": {
            "type": "string",
            "description": "Required=true, ProductOfferingPrice price type . e.g. OC."
          },
          "priceType": {
            "type": "string",
            "description": "Required=true, ProductOfferingPrice price type . e.g. OC."
          }
        },
        "description": "ProductOfferingPriceRef Object for promotionPriceAlteration of Promotion pattern promotion action relevant pricing entity that defines the actual discount"
      },
      "PromotionAction": {
        "required": [
          "actionType",
          "actionValue",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 100,
            "minLength": 10,
            "type": "string",
            "description": "Required=true, The unique ID of the action. e.g. 3f0cfcaf-613e-4919-8f09-30bbf8c05967"
          },
          "name": {
            "type": "string",
            "description": "Required=false, The localized name of the promotion. e.g. Discount"
          },
          "actionType": {
            "type": "string",
            "description": "Required=true, The type of the benefit. e.g. Product Offering."
          },
          "actionValue": {
            "type": "integer",
            "description": "Required=true, The value of the action. e.g. type is Price Alteration, the value is populated with '1'.",
            "format": "int32"
          },
          "promotionPriceAlteration": {
            "$ref": "#/components/schemas/ProductOfferingPriceRef"
          },
          "durationPolicy": {
            "$ref": "#/components/schemas/DurationPolicy"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          }
        },
        "description": "PromotionAction Object for The promotion action of the promotion pattern related entities"
      },
      "Quantity": {
        "type": "object",
        "properties": {
          "units": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      },
      "TriggerItem": {
        "required": [
          "id",
          "itemState",
          "itemType",
          "pathToRoot",
          "promotionCriteriaGroupId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the trigger item. e.g. 943200e2-00da-4555-8f35-a1141683a866_ff1f96e8-704e-4d97-92c6-35008ec1c0ac"
          },
          "itemType": {
            "type": "string",
            "description": "Required=true, The type of the trigger item. e.g. catalog"
          },
          "promotionCriteriaGroupId": {
            "type": "string",
            "description": "Required=true, The ID of the promotion criteria group (root or nested) as part of which the item is qualified as a trigger item. e.g. 6bb6c561-4707-4a20-ada1-027a35b57768"
          },
          "pathToRoot": {
            "type": "string",
            "description": "Required=true, The path from the current item in the product offering structure to the root. This property is populated if the trigger item is a nested item. e.g. /d134f2c2-37cd-4eab-96e7-d2d12350e3b0_d8bfb8be-79dd-45e6-95c6-0bc2e30f12d8/943200e2-00da-4555-8f35-a1141683a866_ff1f96e8-704e-4d97-92c6-35008ec1c0ac"
          },
          "href": {
            "type": "string",
            "description": "Required=false, The self-reference to the trigger item"
          },
          "itemState": {
            "type": "string",
            "description": "Required=true, The benefit item Status new , keep, revoke "
          }
        },
        "description": "Trigger item Object"
      },
      "AttachmentRefOrValue": {
        "required": [
          "attachmentType",
          "id",
          "name",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, Unique identifier for this particular attachment. e.g. 4aafacbd-11ff-4dc8-b445-305f2215715f"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name of the attachment. e.g. Moreabout5G"
          },
          "attachmentType": {
            "type": "string",
            "description": "Required=true, Attachment type such as video, picture. e.g. URL"
          },
          "url": {
            "type": "string",
            "description": "Required=true, Uniform Resource Locator, is a web page address (a subset of URI). e.g. /knowledgearticle/5Gbroadband"
          }
        },
        "description": "benefit item object"
      },
      "AttributeOperations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "operationName": {
            "type": "string"
          }
        }
      },
      "BundledProdOfferOption": {
        "required": [
          "numberRelOfferDefault",
          "numberRelOfferLowerLimit",
          "numberRelOfferUpperLimit"
        ],
        "type": "object",
        "properties": {
          "numberRelOfferDefault": {
            "type": "integer",
            "description": "Required=true, Default number of Related Offer Upper Limit. e.g. 1",
            "format": "int32"
          },
          "numberRelOfferLowerLimit": {
            "type": "integer",
            "description": "Required=true, Number of Related Offer Lower Limit. e.g. 1",
            "format": "int32"
          },
          "numberRelOfferUpperLimit": {
            "type": "integer",
            "description": "Required=true, Number of Related Offer Upper Limit. e.g. 1",
            "format": "int32"
          },
          "productOfferingPrice": {
            "type": "array",
            "description": "Required=false, ItemPrice. e.g. Refer ProductOfferingPriceRefOrValue attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingPriceRefOrValue"
            }
          },
          "productOfferingTotalPrice": {
            "type": "array",
            "description": "Required=false, Item TotalPrice. e.g. Refer ProductOfferingPriceRefOrValue attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingPriceRefOrValue"
            }
          }
        },
        "description": "The lower and upper limits for a product offering that can be purchased as part of the related bundled product offering. The values can range from 0 to unlimited."
      },
      "BundledProductOffering": {
        "required": [
          "description",
          "href",
          "id",
          "localizedName",
          "name",
          "productOfferingType",
          "productOfferingTypeGroup"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the bundled product offering. e.g. a002fb3e-991b-4189-aec6-faae3b27ec3e"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name of the bundled product offering. e.g. HD Streaming"
          },
          "localizedName": {
            "type": "string",
            "description": "Required=true, The localized name of the bundled product offering. e.g. HD Streaming"
          },
          "href": {
            "type": "string",
            "description": "Required=true, The link to the productoffering. e.g. https://att.com/​msapi/cpopoffer/v1/product-offers/417df8e3-2026-455b-aa79-03d3545e7f6d?channel=SelfService"
          },
          "description": {
            "type": "string",
            "description": "Required=true, The description of the bundled product offering. e.g. With HD Streaming, you can stream videos in High Definition"
          },
          "productOfferingType": {
            "type": "string",
            "description": "Required=true, The type of the product offering - can represent the LOB or other relevant types like shipping offer. e.g.WBB_Offer, WBB_Plan, Rented_Equipment",
            "enum": [
              "WBB_Offer",
              "WBB_Plan",
              "Rented_Equipment"
            ]
          },
          "productOfferingTypeGroup": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "Required=true, The type group of the product offering. e.g. WBBOffer, WBBPlan, equipment",
            "enum": [
              "WBBPlan",
              "WBBOffer",
              "equipment"
            ]
          },
          "bundledProductOffering": {
            "type": "array",
            "description": "Required=false, The child bundle product offering. e.g. Refer bundledProductOffering attributes and example values",
            "items": {
              "$ref": "#/components/schemas/BundledProductOffering"
            }
          },
          "bundledProductOfferingOption": {
            "type": "array",
            "description": "Required=false, The upper and lower limits of the product offerings that can be purchased as part of the bundle product offering. e.g. Refer BundledProdOfferOption attributes and example values",
            "items": {
              "$ref": "#/components/schemas/BundledProdOfferOption"
            }
          },
          "isBundle": {
            "type": "boolean",
            "description": "Required=false, Indicates whether the bundled product offering represents a single product offering (false) or a bundle of product offerings (true). e.g. true"
          },
          "bundledProductOfferingGroupOption": {
            "type": "array",
            "description": "Required=false, List of product BundledProductOfferingGroupOption Details.",
            "items": {
              "$ref": "#/components/schemas/BundledProductOfferingGroupOption"
            }
          },
          "subscriberResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriberResults"
            }
          }
        },
        "description": "The relation between a bundle product offering entity and its bundled product offering entities"
      },
      "BundledProductOfferingGroupOption": {
        "type": "object",
        "properties": {
          "groupOptionId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "numberRelOfferLowerLimit": {
            "type": "string"
          },
          "numberRelOfferUpperLimit": {
            "type": "string"
          },
          "bundledProductOffering": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BundledProductOffering"
            }
          },
          "localizedName": {
            "type": "string"
          }
        },
        "description": "Required=false, List of product BundledProductOfferingGroupOption Details."
      },
      "CategoryRef": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the product offering category. e.g. c8f31d65-4eb5-4700-bc1b-f157bd17f195"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name of the product offering category. e.g. WBB_Plans",
            "enum": [
              "WBB_Plans"
            ]
          }
        },
        "description": "The category of productoffering related to"
      },
      "CharacteristicValue": {
        "required": [
          "entry",
          "localizedValue",
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "Required=true, The value of the characteristic. e.g. Pay_on_Bill"
          },
          "localizedValue": {
            "type": "string",
            "description": "Required=true, The localized product offering characteristic name. e.g. Pay on Bill"
          },
          "descriptiveCharacteristicsMetadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Metadata"
            }
          },
          "entry": {
            "type": "array",
            "description": "Required=true, Contains list of key-value pair.",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          },
          "default": {
            "type": "boolean"
          }
        },
        "description": "The available values of the descriptive characteristic"
      },
      "ComponentOperations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "operationName": {
            "type": "string"
          }
        }
      },
      "ImmediatePayOption": {
        "type": "object",
        "properties": {
          "payOption": {
            "type": "string"
          },
          "payAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "minPayAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "payImmediately": {
            "type": "boolean"
          }
        }
      },
      "InstallmentOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "installmentOption": {
            "type": "string"
          },
          "numberOfInstallments": {
            "type": "integer",
            "format": "int32"
          },
          "minNumberOfInstallments": {
            "type": "integer",
            "format": "int32"
          },
          "maxNumberOfInstallments": {
            "type": "integer",
            "format": "int32"
          },
          "defaultNumberOfInstallments": {
            "type": "integer",
            "format": "int32"
          },
          "downPayment": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "unit": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "commitmentTerm": {
            "type": "string"
          },
          "commitmentTermId": {
            "type": "string"
          },
          "installmentCharacterstics": {
            "type": "array",
            "description": "Required=false, optional installment entries.",
            "items": {
              "$ref": "#/components/schemas/InstallmentCharacteristic"
            }
          }
        }
      },
      "InstallmentCharacteristic": {
        "required": [
          "name",
          "valueType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The text ID of the product offering characteristic. e.g. productOfferingId",
            "enum": [
              "productOfferingId"
            ]
          },
          "valueType": {
            "type": "string",
            "description": "Required=true, The value type of the characteristic. e.g. String"
          },
          "value": {
            "type": "string",
            "description": "Required=true, The text ID of the product offering characteristic. e.g. Mobile_Commitment_Fees_Item_10300001"
          }
        }
      },
      "KeyValuePair": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Required=true, key of the reason code."
          },
          "value": {
            "type": "string",
            "description": "Required=true, value of the reason code."
          },
          "entry": {
            "type": "array",
            "description": "Required=false, optional metadata entries.",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          }
        },
        "description": "List of key-value pair associated with reason code"
      },
      "Metadata": {
        "required": [
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The name of the metadata. e.g. VisibleInHighlights, PresentationOrder",
            "enum": [
              "VisibleInHighlights",
              "PresentationOrder"
            ]
          },
          "value": {
            "type": "string",
            "description": "Required=false, The value of the metadata, multiple values may be handled with comma seperated. e.g. true/false"
          },
          "type": {
            "type": "string",
            "description": "Required=true, The type of metadata. e.g. Discovery"
          }
        },
        "description": "ProductOffering metadata "
      },
      "Money": {
        "required": [
          "unit",
          "value"
        ],
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "description": "Required=true, The unit of the price. e.g. USD"
          },
          "value": {
            "type": "number",
            "description": "Required=true, Price value. e.g. 10"
          }
        },
        "description": "Price Amount"
      },
      "OMSReqResComponents": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "adminDisplay": {
            "type": "string"
          },
          "componentCode": {
            "type": "string"
          },
          "componentPath": {
            "type": "string"
          },
          "componentMapRequired": {
            "type": "string"
          },
          "componentOperations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentOperations"
            }
          },
          "omsAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OmsAttributes"
            }
          }
        },
        "description": "Required=false, omsreqrescomponents"
      },
      "OmsAttributes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "adminDisplay": {
            "type": "string"
          },
          "attributeCode": {
            "type": "string"
          },
          "attributeValue": {
            "type": "string"
          },
          "attributeOperations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeOperations"
            }
          }
        }
      },
      "OrderItem": {
        "required": [
          "orderItemAction",
          "orderItemId"
        ],
        "type": "object",
        "properties": {
          "orderItemId": {
            "type": "string",
            "description": "Required=true, product OrderIteam Id eg. ProductOrder_601638132832665014_OrderItem_996754333759567849"
          },
          "orderItemAction": {
            "type": "string",
            "description": "Required=true, product OrderIteam Action eg. add"
          }
        },
        "description": "ProductOffering OrderIteam"
      },
      "POPAlteration": {
        "required": [
          "chargeType",
          "price",
          "priceType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=false, The name of the price alteration. Returned in response of productofferingprice e.g. Discount"
          },
          "priceType": {
            "type": "string",
            "description": "Required=true, The type of the price - recurring, one time, or usage. e.g. OC, RC",
            "enum": [
              "OC",
              "RC"
            ]
          },
          "chargeType": {
            "type": "string",
            "description": "Required=true, The charge type that the price alteration represents. The supported values are:\r\ndebit\r\ndiscount\r\ncredit. e.g. refer description",
            "enum": [
              "debit",
              "credit",
              "discount"
            ]
          },
          "immediatePromotionId": {
            "type": "string",
            "description": "Required=false, The ID of the immediate promotion instance. Returned in response of productofferingprice e.g. 943200e2-00da-4555-8f35-a1141683a866"
          },
          "price": {
            "$ref": "#/components/schemas/ProductPriceValue"
          },
          "alterationType": {
            "type": "string"
          },
          "potentialPromotionId": {
            "type": "string"
          },
          "alterationApplyOrder": {
            "type": "integer",
            "format": "int32"
          },
          "offerType": {
            "type": "string"
          }
        },
        "description": "The altered price to be applied for the product offering"
      },
      "Parameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=false, Parameter name"
          },
          "value": {
            "type": "array",
            "description": "Required=false, Parameter value",
            "items": {
              "type": "string",
              "description": "Required=false, Parameter value"
            }
          }
        },
        "description": "ProductOffering PromotionQualificationMessage promotion Parameter object."
      },
      "ParentProdOfferGroupOption": {
        "type": "object",
        "properties": {
          "groupOptionId": {
            "type": "string"
          }
        },
        "description": "Required=false, parentProdOfferGroupOption"
      },
      "ProductOffering": {
        "required": [
          "href",
          "id",
          "isBundle",
          "localizedName",
          "mustBeBundled",
          "name",
          "productOfferingType",
          "productOfferingTypeGroup",
          "validFor"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 100,
            "minLength": 10,
            "type": "string",
            "description": "Required=true, The productoffering unique id. e.g. 52165303-5d47-4827-a51c-f7ab08570210"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name or text id of the product offering. e.g. Unlimited 5G WBB Bundle"
          },
          "localizedName": {
            "type": "string",
            "description": "Required=true, The localized name of the product offering. e.g. Unlimited 5G WBB Bundle"
          },
          "description": {
            "type": "string",
            "description": "Required=false, The localized description of the product offering. e.g. Unlimited 5G WBB Bundle"
          },
          "href": {
            "type": "string",
            "description": "Required=true, The link to the productoffering. e.g. https://att.com/​msapi/cpopoffer/v1/product-offers/417df8e3-2026-455b-aa79-03d3545e7f6d?channel=SelfService"
          },
          "productOfferingType": {
            "type": "string",
            "description": "Required=true, The type of the product offering - can represent the LOB or other relevant types like shipping offer. e.g.WBB_Offer, WBB_Plan, Rented_Equipment",
            "enum": [
              "WBB_Offer",
              "WBB_Plan",
              "Rented_Equipment"
            ]
          },
          "productOfferingTypeGroup": {
            "maxLength": 100,
            "minLength": 3,
            "type": "string",
            "description": "Required=false, The type group of the product offering. The values are used as defined from catalog e.g. WBBOffer",
            "enum": [
              "WBBOffer",
              "WBBPlan",
              "equipment"
            ]
          },
          "mustBeBundled": {
            "type": "boolean",
            "description": "Required=true, Determines if the product offering can be sold as a standalone (false), or available only as part of a bundle or bundles (true). e.g. false"
          },
          "isBundle": {
            "type": "boolean",
            "description": "Required=true, Indicates whether the product offering represents a single product offering (false) or a bundle of product offerings (true). e.g. true"
          },
          "category": {
            "type": "array",
            "description": "Required=false, A reference to an category. e.g. Refer CategoryRef model for category attributes and example values",
            "items": {
              "$ref": "#/components/schemas/CategoryRef"
            }
          },
          "variantGroup": {
            "$ref": "#/components/schemas/VariantGroup"
          },
          "bundledProductOffering": {
            "type": "array",
            "description": "Required=false, The relation between a bundle product offering entity and its bundled product offering entities. e.g. Refer BundledProductOffering model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/BundledProductOffering"
            }
          },
          "productOfferingCharacteristic": {
            "type": "array",
            "description": "Required=false, The list of characteristics for the product offering. The type of the characteristic is determined by the related characteristic property entity. e.g.  Refer ProductOfferingCharacteristic model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingCharacteristic"
            }
          },
          "immediatePromotion": {
            "type": "array",
            "description": "Required=false, The reference to the promotion object. e.g. Refer ImmediatePromotion model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ImmediatePromotion"
            }
          },
          "productOfferingRelationship": {
            "type": "array",
            "description": "Required=false, The relevant Business Relationship. e.g. Refer ProductOfferingRelationship model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingRelationship"
            }
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "productOfferingTotalPrice": {
            "type": "array",
            "description": "Required=false, The productoffer total price. e.g. Refer ProductOfferingPriceRefOrValue model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingPriceRefOrValue"
            }
          },
          "productOfferingPrice": {
            "type": "array",
            "description": "Required=false, The productoffer price. e.g. Refer ProductOfferingPriceRefOrValue model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingPriceRefOrValue"
            }
          },
          "cmsInfo": {
            "type": "array",
            "description": "Required=false, list of cmsInfo Details. This is only applicable for wirelesss devices and accessories.This is returned only in lookup api where productOfferingIDs is/are provided in request. eligibility call will not return cmsInfo.",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          },
          "promotionQualificationMessage": {
            "type": "array",
            "description": "Required=false, The reference to the promotionQualificationMessage object. e.g. Refer ImmediatePromotion model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/PromotionQualificationMessage"
            }
          },
          "orderItem": {
            "type": "array",
            "description": "Required=false, list of product orderItem Details. e.g. Refer OrderItem model for atttributes and example values",
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "bundledProductOfferingGroupOption": {
            "type": "array",
            "description": "Required=false, list of product BundledProductOfferingGroupOption Details.",
            "items": {
              "$ref": "#/components/schemas/BundledProductOfferingGroupOption"
            }
          },
          "attachment": {
            "type": "array",
            "description": "Required=false, An attachment complements the description of an element, for example through a document, a video, a picture. e.g. Refer AttachmentRefOrValue model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/AttachmentRefOrValue"
            }
          },
          "offerClassification": {
            "type": "string",
            "description": "Required=false, offerClassification, eg: mobileOffer"
          },
          "isEnabledBy": {
            "type": "boolean",
            "description": "Required=false, isEnabledBy"
          },
          "valueRank": {
            "type": "integer",
            "description": "Required=false, valueRank",
            "format": "int32"
          },
          "primary": {
            "type": "boolean",
            "description": "Required=false, primary"
          },
          "serialized": {
            "type": "boolean",
            "description": "Required=false, serialized"
          },
          "isRestricted": {
            "type": "boolean",
            "description": "Required=false, isRestricted"
          },
          "parentProdOfferGroupOption": {
            "type": "array",
            "description": "Required=false, parentProdOfferGroupOption",
            "items": {
              "$ref": "#/components/schemas/ParentProdOfferGroupOption"
            }
          },
          "potentialPromotion": {
            "type": "array",
            "description": "Required=false, parentProdOfferGroupOption",
            "items": {
              "$ref": "#/components/schemas/PotentialPromotion"
            }
          },
          "omsreqrescomponents": {
            "type": "array",
            "description": "Required=false, omsreqrescomponents",
            "items": {
              "$ref": "#/components/schemas/OMSReqResComponents"
            }
          }
        },
        "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information."
      },
      "ProductOfferingCharacteristic": {
        "required": [
          "localizedName",
          "name",
          "valueType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The text ID of the product offering characteristic. e.g. Included_Services",
            "enum": [
              "Included_Services",
              "Payment_Type",
              "Payment_Method",
              "Streaming"
            ]
          },
          "localizedName": {
            "type": "string",
            "description": "Required=true, The localized name of the product offering characteristic. e.g. Included Services"
          },
          "valueType": {
            "type": "string",
            "description": "Required=true, The value type of the characteristic. e.g. String"
          },
          "value": {
            "type": "array",
            "description": "Required=false, The available values under the characteristic. e.g. Refer CharacteristicValue attributes and example values",
            "items": {
              "$ref": "#/components/schemas/CharacteristicValue"
            }
          },
          "productSpecification": {
            "$ref": "#/components/schemas/ProductSpecificationRef"
          },
          "characteristicsMetadata": {
            "type": "array",
            "description": "Required=false, The metadata describing the characteristic. e.g. Refer Metadata attributes and example values",
            "items": {
              "$ref": "#/components/schemas/Metadata"
            }
          }
        },
        "description": "The list of the descriptive characteristics for the Discovery flows derived from the product offering and included in the product specification (if exists)"
      },
      "ProductOfferingPriceRefOrValue": {
        "required": [
          "finalPrice",
          "price",
          "priceType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=false, Indicates the name of the price or fee. e.g. Service Price, Fee for Texas"
          },
          "priceCategory": {
            "type": "string",
            "description": "Required=false, Indicates the category of the price. e.g. serviceRC, Fee"
          },
          "priceType": {
            "type": "string",
            "description": "Required=true, The type of the price - recurring, one time, or usage. e.g. OC, RC",
            "enum": [
              "OC",
              "RC"
            ]
          },
          "recurringChargePeriod": {
            "type": "string",
            "description": "Required=false, The period to repeat the application of the price, such as month, week, and so on. e.g. Month",
            "enum": [
              "month",
              "week"
            ]
          },
          "recurringChargePeriodLength": {
            "type": "integer",
            "description": "Required=false, The period length of the recurring charge. e.g. 1",
            "format": "int32"
          },
          "role": {
            "type": "string",
            "description": "Required=false, The role of the price, for example, price, bundle price alteration, and so on. e.g. Price, Bundle Price Alteration",
            "enum": [
              "Bundle Price Alteration",
              "Price"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/ProductPriceValue"
          },
          "finalPrice": {
            "$ref": "#/components/schemas/ProductPriceValue"
          },
          "standalonePrice": {
            "$ref": "#/components/schemas/ProductPriceValue"
          },
          "priceAlteration": {
            "type": "array",
            "description": "Required=false, The altered price to be applied for the product offering. e.g. Refer POPAlteration attributes and example values",
            "items": {
              "$ref": "#/components/schemas/POPAlteration"
            }
          },
          "eligibleProductPromotions": {
            "type": "array",
            "description": "Required=false, The altered price to be applied for the product based on promotion eligibility. e.g. Refer POPAlteration  attributes and example values",
            "items": {
              "$ref": "#/components/schemas/POPAlteration"
            }
          },
          "taxIncluded": {
            "type": "string",
            "description": "Required=false, Indicates if the price is defined in the catalog one as tax included or as tax excluded. e.g. Included, Excluded"
          },
          "immediatePayOption": {
            "$ref": "#/components/schemas/ImmediatePayOption"
          },
          "installmentOption": {
            "$ref": "#/components/schemas/InstallmentOption"
          },
          "customerGroup": {
            "type": "string"
          }
        },
        "description": "ProductOffering DiscoveryPrice"
      },
      "ProductOfferingRelationship": {
        "required": [
          "id",
          "name",
          "relationshipType",
          "role"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true,  The relevant Business Relationship unique identifier. e.g. 0b2a61d3-35a0-4cd0-bba8-1bafc0694fda"
          },
          "name": {
            "type": "string",
            "description": "Required=true, Business Relationship name. e.g. Compatible addons for the product. e.g. Tier_Plan_AddOns_Relation,Replace_between_Tiers_Offers"
          },
          "relationshipType": {
            "type": "string",
            "description": "Required=true, Business Relationship type. The type of the relation by which the related product offering. e.g. commercialRelation",
            "enum": [
              "commercialRelation",
              "replaceOffer"
            ]
          },
          "role": {
            "type": "string",
            "description": "Required=true, Business Relationship role. e.g. ADDON",
            "enum": [
              "addOn",
              "replaceTo"
            ]
          }
        },
        "description": "Product Offering Relationship"
      },
      "ProductPriceValue": {
        "type": "object",
        "properties": {
          "dutyFreeAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxIncludedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "marketingAmount": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "description": "The price of current catalog item. It is set to null if the price record is missing or if there is any exception."
      },
      "ProductSpecificationRef": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The ID of the product specification. e.g. 37c5909b-c35e-4585-85b5-d2a214c37f38"
          },
          "name": {
            "type": "string",
            "description": "Required=true, The name of the product specification. e.g. Mobile"
          }
        },
        "description": "Reference to the ProductSpecification related to this ProductOffer characteristics"
      },
      "PromotionQualificationMessage": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Required=false, Promotion Qualifiation message"
          },
          "type": {
            "type": "string",
            "description": "Required=false, type of promotion"
          },
          "parameter": {
            "type": "array",
            "description": "Required=false, qualified manual promotion parameters",
            "items": {
              "$ref": "#/components/schemas/Parameter"
            }
          }
        },
        "description": "ProductOffering PromotionQualificationMessage promotion object."
      },
      "SubscriberResults": {
        "required": [
          "entry"
        ],
        "type": "object",
        "properties": {
          "entry": {
            "type": "array",
            "description": "Required=true, Contains list of key-value pair for the reason codes.",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          }
        }
      },
      "VariantCharacteristics": {
        "required": [
          "localizedName",
          "name",
          "value",
          "valueType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The text ID of the product offering characteristic. e.g. Memory_Size",
            "enum": [
              "Memory_Size"
            ]
          },
          "localizedName": {
            "type": "string",
            "description": "Required=true, The localized name of the product offering characteristic. e.g. Memory_Size"
          },
          "valueType": {
            "type": "string",
            "description": "Required=true, The value type of the characteristic. e.g. String",
            "enum": [
              "String"
            ]
          },
          "value": {
            "type": "array",
            "description": "Required=true, The available values under the characteristic. e.g. The reference to the CharacteristicValue object",
            "items": {
              "$ref": "#/components/schemas/CharacteristicValue"
            }
          }
        },
        "description": "ProductOffering variant characteristics - The descriptive characteristics"
      },
      "VariantGroup": {
        "required": [
          "id",
          "localizedName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The ID of the variant group. e.g. iPhone_12_Pro_Max"
          },
          "localizedName": {
            "type": "string",
            "description": "Required=true, The localized name of the variant group. e.g. iPhone 12 Pro Max"
          },
          "localizedDescription": {
            "type": "string",
            "description": "Required=false, The localized description of the variant group. e.g. SmartPhones"
          },
          "variantGroupOfferings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VariantGroupOfferings"
            }
          }
        },
        "description": "ProductOffering varient group"
      },
      "VariantGroupOfferings": {
        "required": [
          "id",
          "variantCharacteristics"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The ID of the variant group offerings. e.g. 135b1da7-e54f-477a-bd14-a5505eddb20c"
          },
          "variantCharacteristics": {
            "type": "array",
            "description": "Required=true, The varient characteristics. e.g. The reference to the list of VariantCharacteristics objects",
            "items": {
              "$ref": "#/components/schemas/VariantCharacteristics"
            }
          }
        },
        "description": "The members of the variant group"
      }
    },
    "examples": {
      "400ReposneMessageCommon": {
        "value": {
          "error": {
            "errorId": "General-4000000",
            "message": "Invalid Request",
            "details": [
              {
                "code": "General-4000000",
                "message": "Exception Message"
              }
            ]
          }
        }
      },
      "500ReposneMessageCommon": {
        "value": {
          "error": {
            "errorId": "CPOPOFFER_E400005",
            "message": "CPOPOFFERMS Internal Server Error.",
            "details": [
              {
                "code": "CTLG_E400005_D001",
                "message": "Exception Message."
              }
            ]
          }
        }
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Enter the username and password here for authorization."
      }
    }
  }
}