{
  "openapi": "3.0.1",
  "security": [
    {
      "basicAuth": []
    }
  ],
  "info": {
    "title": "Centralized Products and Offers API (CPOPOfferms)",
    "description": "\nThe primary purpose of Offerms is to host end points that can return qualified and eligible offers associated with different product types <br/>\n  <br/>\n  This API can be accessed within AT&T network by using a mechid for authentication.This process layer API can be invoked by through various channels like WEB and Native systems.\n  <br/>\n  <br/>\n  The Products and Offers domain is responsible for discovery of offers which includes the following key functions:\n\n    1. Browsing\n    2. Searching\n    3. Offer Details\n    4. Promotion Details\n\n   The above functions are retrieved based on qualified product offerings for customers to purchase, according to the sales channel, serviceability and qualification rules.\n   The product offering information includes product characteristics, prices, promotions, and meta-info.\n   <br/>\n   <br/>\n  ### Upstream services: ###\n\n  ` salesproductorchestrationms, cpopproductsms `\n\n  ### Downstream services: ###\n  ` Commercetools, saleswirelessaccountsetup, customergraphproductms, productOrder, cpoppricing, personalizationms, fanprofile, wirelessorder, skinnycart, wirelessproductrecommendationms, wirelesspostpaidaccountms `\n  <br/><br/>\n  [Sequence Diagram](https://wiki.web.att.com/display/CPOPDEV/CpopOfferMs+Sequence+diagram)\n\n  [Cpopofferms wiki](https://wiki.web.att.com/display/CPOPDEV/CPOPOfferMS)\n\n  [Send an email to Products and Offers Team](mailto:CPOPDEV@list.att.com)",
    "version": "0.0.10",
    "contact": {
      "name": "Products and Offers",
      "email": "CPOPDEV@list.att.com"
    },
    "x-att-catalog": {
      "shortDescription": "CPOP offers ms Provides details such as Standalone Offers,Trade In offers,BOGO offers,Upsell Offers,Private Offers",
      "productTeam": "Products & Offers",
      "mots": 33824,
      "attSubDomain": "Product & Offer Catalog",
      "scrumTeam": "Stateless Cart SPO",
      "scrumTeamContact": "CPOPDEV@list.att.com",
      "attFunctionalDomain": "Product & Offer",
      "internetFacing": "No",
      "gatewayUsed": "None",
      "status": "STABLE",
      "apiType": "PROCESS",
      "channelsSupported": [
        "WEB",
        "NATIVE"
      ],
      "aidUrl": null,
      "dynatraceUrl": "https://dynatrace.az.3pc.att.com/e/fc09f351-c4e7-46dc-afb8-cd98de60285e/ui/diagnostictools/mda?gtf=-1h&gf=all&mdaId=topweb&metric=RESPONSE_TIME&dimension=%7BRequest:Name%7D&mergeServices=true&aggregation=P90&percentile=80&chart=COLUMN&servicefilter=0%1E26%112%1026%111%1053%11%5BKubernetes%5Dapp%14Cpopofferms",
      "grafanaUrl": null,
      "efkUrl": "https://digitalelk.az.3pc.att.com/goto/d4cb71c0-bb60-11ec-80ef-55d7659f4bf0",
      "appCodeUrl": "https://codecloud.web.att.com/scm/st_cpop/cpopofferms.git",
      "notes": null,
      "otherUrls": null,
      "specRepoUrl": "https://codecloud.web.att.com/scm/st_gov/cpopofferms_specs.git",
      "ccProject": "ST_CPOP",
      "domainArea": "Products & Offers",
      "Downstream": "Commercetools",
      "Sequence diagram": "https://wiki.web.att.com/display/CPOPDEV/CpopOfferMs+Sequence+diagram",
      "Average Response Time": "61 ms",
      "95% Response Time": "1036 ms",
      "Contact the Developer": "CTX- Products and Offers Discovery",
      "Security and Authorization": "Reach out to the scrum team for details"
    }
  },
  "servers": [
    {
      "url": "/msapi/pno/cpopoffer"
    }
  ],
  "paths": {
    "/pno/cpopoffer/v1/generic-entity/reason-codes": {
      "get": {
        "tags": [
          "Generic Entity APIs"
        ],
        "summary": "Reason Codes",
        "description": "Reason codes will be returned for specified filter action",
        "operationId": "getReasonCodes v1",
        "parameters": [
          {
            "name": "channel",
            "in": "query",
            "description": "Channel name of client.",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "SelfService",
              "enum": [
                "SelfService",
                "ATTR",
                "ECOMM",
                "BACKOFF"
              ]
            }
          },
          {
            "name": "filterAction",
            "in": "query",
            "description": "Order actions to filter (can be multiple, comma separated).",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 5,
              "type": "string",
              "default": "terminate",
              "enum": [
                "resume",
                "cancel",
                "terminate",
                "suspend",
                "change",
                "swap",
                "add"
              ]
            }
          },
          {
            "name": "productType",
            "in": "query",
            "description": "Type of product.",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "BSSEBroadband",
              "enum": [
                "WBB",
                "BB",
                "BSSeWireless",
                "BSSEBroadband"
              ]
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Alpha code of the state where the reasonCode is applicable. eg NY",
            "required": false,
            "schema": {
              "maxLength": 5,
              "minLength": 2,
              "type": "string",
              "enum": [
                "AL",
                "AK",
                "AZ",
                "AR",
                "CA",
                "CO",
                "CT",
                "DE",
                "DC",
                "FL",
                "GA",
                "HI",
                "ID",
                "IL",
                "IN",
                "IA",
                "KS",
                "KY",
                "LA",
                "ME",
                "MD",
                "MA",
                "MI",
                "MN",
                "MS",
                "MO",
                "MT",
                "NE",
                "NV",
                "NH",
                "NJ",
                "NM",
                "NY",
                "NC",
                "ND",
                "OH",
                "OK",
                "OR",
                "PA",
                "RI",
                "SC",
                "SD",
                "TN",
                "TX",
                "UT",
                "VT",
                "VA",
                "WA",
                "WV",
                "WI",
                "WY"
              ]
            }
          },
          {
            "name": "metaData",
            "in": "query",
            "description": "Boolean indicator if metadata will be included in the response. eg true/false",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields to be filtered. eg chargeCode",
            "required": false,
            "schema": {
              "maxLength": 10,
              "minLength": 2,
              "type": "string",
              "default": "ALL",
              "enum": [
                "ALL",
                "chargeCode",
                "GracePeriodForNRF",
                "feeToApply",
                "suspendPerYear"
              ]
            }
          },
          {
            "name": "ctn",
            "in": "query",
            "description": "Customer telephone number. e.g. 7876758046",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "customerType",
            "in": "query",
            "description": "Type of the customer e.g : Consumer,smallBusiness ",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "paymentReasonCode",
            "in": "query",
            "description": "Reason of the payment E.g: cancel,terminate",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "subscriberStatus",
            "in": "query",
            "description": "Status of the subscriber E.g: Active",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "subscriberActivationDate",
            "in": "query",
            "description": "Epoch time where reason is effective (defaults to current time if not passed). eg 1652799175",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "deviceType",
            "in": "query",
            "description": "Type of the device",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "effectiveDate",
            "in": "query",
            "description": "Epoch time where reason is effective (defaults to current time if not passed). eg 1652799175",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "filterMetaData",
            "in": "query",
            "description": "Dynamic filtering on metadata when metadata is set to true",
            "required": false,
            "schema": {
              "maxLength": 500,
              "minLength": 2,
              "type": "string",
              "enum": [
                "%7B%22Amend%22%3A%22Y%22%7D"
              ]
            }
          },
          {
            "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-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-acctinfocus",
            "in": "header",
            "description": "Existing Customer's BAN focus. e.g: 177068635919",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK.. Returns success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericEntityEntry"
                },
                "examples": {
                  "Sample response from server": {
                    "value": [
                      {
                        "id": "080337f7-1659-42c0-9ade-d3bc54a8bd5e",
                        "field": [
                          {
                            "key": "change",
                            "value": [
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "System"
                                  },
                                  {
                                    "key": "name",
                                    "value": "System"
                                  },
                                  {
                                    "key": "type",
                                    "value": "technical"
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Manage service"
                                  },
                                  {
                                    "key": "name",
                                    "value": "MS-NEW"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "NRFDuration",
                                        "value": "30"
                                      },
                                      {
                                        "key": "gracePeriodForNRF",
                                        "value": "180"
                                      },
                                      {
                                        "key": "displayOrder",
                                        "value": "100"
                                      },
                                      {
                                        "key": "feeToApply",
                                        "value": "NRF"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Auto bill pay enrollment"
                                  },
                                  {
                                    "key": "name",
                                    "value": "MS-ABPENR"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "displayOrder",
                                        "value": "1000"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      }
                                    ]
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Auto bill pay de-enrollment"
                                  },
                                  {
                                    "key": "name",
                                    "value": "MS-ABPDEENR"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "displayOrder",
                                        "value": "1100"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "N"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  "BSSeWireless terminate Sample response": {
                    "value": [
                      {
                        "id": "f46c0a3a-fede-4b82-91fd-abbc843f7535",
                        "field": [
                          {
                            "key": "terminate",
                            "value": [
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Not happy - switched to a competitor"
                                  },
                                  {
                                    "key": "name",
                                    "value": "WTERM-COMP"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Moved into assisted living facility or deceased"
                                  },
                                  {
                                    "key": "name",
                                    "value": "WTERM-DEC"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "displayOrder",
                                        "value": "400"
                                      },
                                      {
                                        "key": "BREDuration",
                                        "value": "14"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "BREFullDuration",
                                        "value": "3"
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Involuntary Bankrupt"
                                  },
                                  {
                                    "key": "name",
                                    "value": "WTERM-INVBANK"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "displayOrder",
                                        "value": "800"
                                      },
                                      {
                                        "key": "BREDuration",
                                        "value": "0"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "Y"
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Involuntary: Non-payment"
                                  },
                                  {
                                    "key": "name",
                                    "value": "WTERM-INVNP"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "displayOrder",
                                        "value": "700"
                                      },
                                      {
                                        "key": "BREDuration",
                                        "value": "0"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "Y"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  "BSSeWireless BRE terminate Sample response": {
                    "value": [
                      {
                        "id": "f46c0a3a-fede-4b82-91fd-abbc843f7535",
                        "field": [
                          {
                            "key": "terminate",
                            "value": [
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "After full duration period till end of BRE with usage"
                                  },
                                  {
                                    "key": "name",
                                    "value": "POSTINITBRE"
                                  },
                                  {
                                    "key": "type",
                                    "value": "technical"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "BREDuration",
                                        "value": "14"
                                      },
                                      {
                                        "key": "TechSupportVisible",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "usage",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "productType",
                                        "value": "WIRELESS"
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Usage within BRE full duration period"
                                  },
                                  {
                                    "key": "name",
                                    "value": "INITBRE"
                                  },
                                  {
                                    "key": "type",
                                    "value": "technical"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "BREDuration",
                                        "value": "3"
                                      },
                                      {
                                        "key": "TechSupportVisible",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "usage",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "productType",
                                        "value": "WIRELESS"
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "No usage within entire BRE period"
                                  },
                                  {
                                    "key": "name",
                                    "value": "BRENOI"
                                  },
                                  {
                                    "key": "type",
                                    "value": "technical"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "BREDuration",
                                        "value": "14"
                                      },
                                      {
                                        "key": "TechSupportVisible",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "usage",
                                        "value": "N"
                                      },
                                      {
                                        "key": "productType",
                                        "value": "WIRELESS"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  "BSSEBroadband terminate Sample response": {
                    "value": [
                      {
                        "id": "f46c0a3a-fede-4b82-91fd-abbc843f7535",
                        "field": [
                          {
                            "key": "terminate",
                            "value": [
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Not happy - switched to a competitor"
                                  },
                                  {
                                    "key": "name",
                                    "value": "FTERM_COMP"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "cancelImmediate",
                                        "value": "N"
                                      },
                                      {
                                        "key": "refund",
                                        "value": "N"
                                      },
                                      {
                                        "key": "accountMaintenance",
                                        "value": "Keep"
                                      },
                                      {
                                        "key": "NRFDuration",
                                        "value": "30"
                                      },
                                      {
                                        "key": "gracePeriodForNRF",
                                        "value": "180"
                                      },
                                      {
                                        "key": "voluntaryReason",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "BREDuration",
                                        "value": "14"
                                      },
                                      {
                                        "key": "feeToApply",
                                        "value": "NRF"
                                      },
                                      {
                                        "key": "BREFullDuration",
                                        "value": "7"
                                      },
                                      {
                                        "key": "BREReasonCode",
                                        "value": "TERM-NS-BRE"
                                      },
                                      {
                                        "key": "markedAsOfferRemoval",
                                        "value": "TRUE"
                                      },
                                      {
                                        "key": "productType",
                                        "value": "FIBER"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  "BSSEBroadband cancel Sample response": {
                    "value": [
                      {
                        "id": "e2934954-4257-40ea-8802-a58dc9d7b3f4",
                        "field": [
                          {
                            "key": "cancel",
                            "value": [
                              {
                                "entry": [
                                  {
                                    "key": "localizedName",
                                    "value": "Customer Request"
                                  },
                                  {
                                    "key": "name",
                                    "value": "FNSCA-CSCM"
                                  },
                                  {
                                    "key": "type",
                                    "value": "business"
                                  },
                                  {
                                    "key": "metadata",
                                    "entry": [
                                      {
                                        "key": "productType",
                                        "value": "FIBER"
                                      },
                                      {
                                        "key": "cancelImmediate",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "cancelParentOrderType",
                                        "value": "add"
                                      },
                                      {
                                        "key": "displayOrder",
                                        "value": "100"
                                      },
                                      {
                                        "key": "feeToApply",
                                        "value": "NRF"
                                      },
                                      {
                                        "key": "gracePeriodForNRF",
                                        "value": "180"
                                      },
                                      {
                                        "key": "NRFDuration",
                                        "value": "30"
                                      },
                                      {
                                        "key": "refund",
                                        "value": "Y"
                                      },
                                      {
                                        "key": "userVisibility",
                                        "value": "Yes"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Sample response from server": {
                    "value": {
                      "error": {
                        "errorId": "General-4000000",
                        "message": "Invalid Request",
                        "details": [
                          {
                            "code": "General-4000000",
                            "message": "Invalid Request."
                          }
                        ]
                      }
                    }
                  },
                  "EMPTY CHANNEL": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - channel",
                      "code": 400
                    }
                  },
                  "EMPTY PRODUCT TYPE": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - productType",
                      "code": 400
                    }
                  },
                  "INVALID PRODUCT TYPE": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - the productType 'BSSEBroadband1' is not supported.",
                      "code": 400
                    }
                  },
                  "EMPTY FILTER ACTION": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - filterAction",
                      "code": 400
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Response for server error": {
                    "value": {
                      "error": {
                        "errorId": "CPOPOFFER_E400005",
                        "message": "CPOPOFFERMS Internal Server Error.",
                        "details": [
                          {
                            "code": "CTLG_E400005_D001",
                            "message": "Error Occured."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pno/cpopoffer/v1/generic-entity/external-charges": {
      "get": {
        "tags": [
          "Generic Entity APIs"
        ],
        "summary": "External Charges",
        "description": "External charges will be returned for specified filter action",
        "operationId": "getExternalCharges  forGenericEntity",
        "parameters": [
          {
            "name": "channel",
            "in": "query",
            "description": "Channel name of client.",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "SelfService",
              "enum": [
                "SelfService",
                "ATTR",
                "ECOMM",
                "BACKOFF"
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Filter value. eg NRF",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "NRF",
              "enum": [
                "NRF",
                "LATEFEE",
                "SUSPENSIONFEE",
                "RESTOREFEE"
              ]
            }
          },
          {
            "name": "model",
            "in": "query",
            "description": "Filter value. eg CGW450-400",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "productType",
            "in": "query",
            "description": "Type of product. eg WBB,BB, BSSEBroadband",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "BSSEBroadband",
              "enum": [
                "WBB",
                "BB",
                "BSSEBroadband",
                "BSSeWireless"
              ]
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Alpha code of the state where the externalCharge is applicable. eg TX",
            "required": false,
            "schema": {
              "maxLength": 5,
              "minLength": 2,
              "type": "string",
              "enum": [
                "AL",
                "AK",
                "AZ",
                "AR",
                "CA",
                "CO",
                "CT",
                "DE",
                "DC",
                "FL",
                "GA",
                "HI",
                "ID",
                "IL",
                "IN",
                "IA",
                "KS",
                "KY",
                "LA",
                "ME",
                "MD",
                "MA",
                "MI",
                "MN",
                "MS",
                "MO",
                "MT",
                "NE",
                "NV",
                "NH",
                "NJ",
                "NM",
                "NY",
                "NC",
                "ND",
                "OH",
                "OK",
                "OR",
                "PA",
                "RI",
                "SC",
                "SD",
                "TN",
                "TX",
                "UT",
                "VT",
                "VA",
                "WA",
                "WV",
                "WI",
                "WY"
              ]
            }
          },
          {
            "name": "effectiveDate",
            "in": "query",
            "description": "Effective date in Epoch format. eg 1651819729",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields to be filtered. eg chargeCode",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK.. Returns success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericEntityEntry"
                },
                "examples": {
                  "Fiber Response": {
                    "$ref": "#/components/examples/GenericEntityFiber"
                  },
                  "SampleResponse": {
                    "$ref": "#/components/examples/ExternalChargesResponse"
                  },
                  "BSSE Fiber Response": {
                    "$ref": "#/components/examples/GenericEntityBSSEFiber"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Sample response from server": {
                    "value": {
                      "error": {
                        "errorId": "General-4000000",
                        "message": "Invalid Request",
                        "details": [
                          {
                            "code": "General-4000000",
                            "message": "Invalid Request."
                          }
                        ]
                      }
                    }
                  },
                  "EMPTY PRODUCT TYPE": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - productType",
                      "code": 400
                    }
                  },
                  "INVALID PRODUCT TYPE": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - the productType 'BSSEBroadband1' is not supported.",
                      "code": 400
                    }
                  },
                  "EMPTY CHANNEL": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - channel",
                      "code": 400
                    }
                  },
                  "EMPTY CATEGORY": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - category",
                      "code": 400
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Response for server error": {
                    "value": {
                      "error": {
                        "errorId": "CPOPOFFER_E400005",
                        "message": "CPOPOFFERMS Internal Server Error.",
                        "details": [
                          {
                            "code": "CTLG_E400005_D001",
                            "message": "Error Occured."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pno/cpopoffer/v1/generic-entity/skuDetails": {
      "get": {
        "tags": [
          "Generic Entity APIs"
        ],
        "summary": "Sku Details",
        "description": "skuDetails will be returned.",
        "operationId": "getSkuDetails",
        "parameters": [
          {
            "name": "channel",
            "in": "query",
            "description": "Channel name of client.",
            "required": true,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "SelfService",
              "enum": [
                "SelfService",
                "ATTR",
                "ECOMM",
                "BACKOFF"
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Sku Category. eg Hub, Booster",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "Fiber_Hub",
              "enum": [
                "Hub",
                "Booster",
                "Fiber_Hub"
              ]
            }
          },
          {
            "name": "model",
            "in": "query",
            "description": "Sku Model. eg BGW530-900, 4981, CGW450-400, WFEXT4971EM-41",
            "required": false,
            "schema": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string",
              "default": "BGW530-900",
              "enum": [
                "BGW530-900",
                "WFEXT4971EM-41",
                "CGW450-400"
              ]
            }
          },
          {
            "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK.. Returns success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericEntityEntry"
                },
                "examples": {
                  "BSSEFiberSampleResponse": {
                    "$ref": "#/components/examples/skuDetailsForBSSEFiber"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Sample response from server": {
                    "value": {
                      "error": {
                        "errorId": "General-4000000",
                        "message": "Invalid Request",
                        "details": [
                          {
                            "code": "General-4000000",
                            "message": "Invalid Request."
                          }
                        ]
                      }
                    }
                  },
                  "EMPTY CHANNEL": {
                    "summary": "CPOPOFFERS_BSSe_IB_PO_VALIDATION",
                    "value": {
                      "error": "CPOPOFFERS_BSSe_IB_PO_VALIDATION_DETAILS",
                      "message": "failed input validations - channel",
                      "code": 400
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                },
                "examples": {
                  "Response for server error": {
                    "value": {
                      "error": {
                        "errorId": "CPOPOFFER_E400005",
                        "message": "CPOPOFFERMS Internal Server Error.",
                        "details": [
                          {
                            "code": "CTLG_E400005_D001",
                            "message": "Error Occured."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Enter the username and password here for authorization."
      }
    },
    "schemas": {
      "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"
            }
          }
        }
      },
      "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"
          }
        },
        "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"
            }
          }
        },
        "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."
      },
      "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"
      },
      "Entry": {
        "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"
            }
          }
        },
        "description": "Entry related to each reason code"
      },
      "Field": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Required=true, action for the reason codes. e.g. terminate, cancel"
          },
          "value": {
            "type": "array",
            "description": "Required=true, Contains list of entries for the reason code.",
            "items": {
              "$ref": "#/components/schemas/Entry"
            }
          }
        },
        "description": "List of key-value pair associated with Generic Element Entry"
      },
      "GenericEntityEntry": {
        "required": [
          "field",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Required=true, The unique ID of the Generic Entity Entry. e.g. ff1f96e8-704e-4d97-92c6-35008ec1c0ac"
          },
          "field": {
            "type": "array",
            "description": "Required=true, List of key-value pair associated with Generic Entity Entry.",
            "items": {
              "$ref": "#/components/schemas/Field"
            }
          }
        },
        "description": "Generic Entity Entry"
      }
    },
    "examples": {
      "ExternalChargesResponse": {
        "value": [
          {
            "id": "e2911185-2593-44a6-9c3a-9604e9e2f35d",
            "field": [
              {
                "key": "NRF",
                "value": [
                  {
                    "entry": [
                      {
                        "key": "chargeCode",
                        "value": "NRFBOOST"
                      },
                      {
                        "key": "Model",
                        "value": "4981"
                      },
                      {
                        "key": "TaxInclEx",
                        "value": "Excluded"
                      },
                      {
                        "key": "customerCommunication",
                        "value": "Y"
                      },
                      {
                        "key": "Amount",
                        "value": "65"
                      },
                      {
                        "key": "pbiCode",
                        "value": "RT000005.00"
                      },
                      {
                        "key": "taxCode",
                        "value": "EQP01"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "GenericEntityFiber": {
        "value": [
          {
            "id": "43d1d660-9d8e-4cb0-8005-e77d6b1a7d6e",
            "field": [
              {
                "key": "NRF",
                "value": [
                  {
                    "entry": [
                      {
                        "key": "chargeCode",
                        "value": "NRFHUB"
                      },
                      {
                        "key": "Model",
                        "value": "CGW450-400"
                      },
                      {
                        "key": "Amount",
                        "value": "0"
                      },
                      {
                        "key": "TaxInclEx",
                        "value": "Excluded"
                      },
                      {
                        "key": "customerCommunication",
                        "value": "Y"
                      },
                      {
                        "key": "pbiCode",
                        "value": "RT000005.00"
                      },
                      {
                        "key": "taxCode",
                        "value": "EQP01"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "GenericEntityBSSEFiber": {
        "value": [
          {
            "id": "bd7587b0-cbe4-4af3-8202-9e9750297ec5",
            "field": [
              {
                "key": "NRF",
                "value": [
                  {
                    "entry": [
                      {
                        "key": "chargeCode",
                        "value": "NRFHUB"
                      },
                      {
                        "key": "Model",
                        "value": "CGW450-400"
                      },
                      {
                        "key": "Amount",
                        "value": "200"
                      },
                      {
                        "key": "TaxInclEx",
                        "value": "Excluded"
                      },
                      {
                        "key": "customerCommunication",
                        "value": "Y"
                      },
                      {
                        "key": "pbiCode",
                        "value": "RT000005.00"
                      },
                      {
                        "key": "taxCode",
                        "value": "EQP01"
                      },
                      {
                        "key": "taxationAddress",
                        "value": "SA"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "skuDetailsForBSSEFiber": {
        "value": [
          {
            "id": "8b3e2e0e-fbf9-47c3-9e1b-6f4b8d9b67e8",
            "field": [
              {
                "key": "skuDetails",
                "value": [
                  {
                    "entry": [
                      {
                        "key": "SKUWithPrefix",
                        "value": "RTL.250AB"
                      },
                      {
                        "key": "SKU",
                        "value": "250AB"
                      },
                      {
                        "key": "Manufacturer",
                        "value": "OPTECH-ARS"
                      },
                      {
                        "key": "Model",
                        "value": "BGW620-700"
                      },
                      {
                        "key": "LTEType",
                        "value": "B"
                      },
                      {
                        "key": "IMEIType",
                        "value": "LC"
                      },
                      {
                        "key": "RecoverableDisconnect",
                        "value": "RECOVERABLE"
                      },
                      {
                        "key": "Category",
                        "value": "Fiber_Hub"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Generic Entity APIs"
    }
  ]
}