{
  "openapi": "3.0.1",
  "info": {
    "title": "CPOP BSSe Order Pricing API",
    "description": "Provides productOrder pricing details",
    "license": {
      "name": "Internal AT&T restricted apis",
      "url": "http://www.att.com"
    },
    "version": "0.0.10",
    "contact": {
      "name": "Products and Offers",
      "email": "CPOPDEV@list.att.com"
    }
  },
  "servers": [
    {
      "url": "/msapi/pno/cpopoffer"
    },
    {
      "url": "/msapi/pno/cpoppricing"
    }
  ],
  "tags": [
    {
      "name": "Order Action Validation Apis",
      "description": "Apis for validating order actions"
    },
    {
      "name": "Order Pricing Management APIs",
      "description": "Order Pricing APIs for managing Product Orders"
    },
    {
      "name": "Generic Entity APIs."
    }
  ],
  "paths": {
    "/pno/cpoppricing/v1/order-action/validate": {
      "post": {
        "tags": [
          "Order Action Validation Apis"
        ],
        "summary": "Eligibility",
        "description": "Validation details will be returned.",
        "operationId": "validateOrderAction",
        "parameters": [
          {
            "name": "X-ATT-ClientId",
            "in": "header",
            "description": "Domain ID of calling application. e.g. productOrderMs,FulfillmentOptionMS",
            "required": true,
            "schema": {
              "type": "string",
              "default": "productOrderMs"
            }
          },
          {
            "name": "idpctx-appname",
            "in": "header",
            "description": "Required=true,end UI application name. e.g. onlinesales, onlineservices, myATTNative, SF-SALES, omhub",
            "required": true,
            "schema": {
              "type": "string",
              "default": "onlineservices"
            }
          },
          {
            "name": "headers",
            "in": "header",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "length": {
                  "type": "integer",
                  "format": "int32"
                },
                "language": {
                  "type": "object",
                  "properties": {
                    "language": {
                      "type": "string"
                    },
                    "script": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "variant": {
                      "type": "string"
                    },
                    "unicodeLocaleAttributes": {
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unicodeLocaleKeys": {
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "displayLanguage": {
                      "type": "string"
                    },
                    "displayScript": {
                      "type": "string"
                    },
                    "displayCountry": {
                      "type": "string"
                    },
                    "displayVariant": {
                      "type": "string"
                    },
                    "displayName": {
                      "type": "string"
                    },
                    "extensionKeys": {
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "iso3Language": {
                      "type": "string"
                    },
                    "iso3Country": {
                      "type": "string"
                    }
                  }
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "cookies": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      },
                      "version": {
                        "type": "integer",
                        "format": "int32"
                      },
                      "path": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      }
                    }
                  }
                },
                "mediaType": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "subtype": {
                      "type": "string"
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "wildcardSubtype": {
                      "type": "boolean"
                    },
                    "wildcardType": {
                      "type": "boolean"
                    }
                  }
                },
                "requestHeaders": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "acceptableMediaTypes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "subtype": {
                        "type": "string"
                      },
                      "parameters": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "wildcardSubtype": {
                        "type": "boolean"
                      },
                      "wildcardType": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "acceptableLanguages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "language": {
                        "type": "string"
                      },
                      "script": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "variant": {
                        "type": "string"
                      },
                      "unicodeLocaleAttributes": {
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "unicodeLocaleKeys": {
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "displayLanguage": {
                        "type": "string"
                      },
                      "displayScript": {
                        "type": "string"
                      },
                      "displayCountry": {
                        "type": "string"
                      },
                      "displayVariant": {
                        "type": "string"
                      },
                      "displayName": {
                        "type": "string"
                      },
                      "extensionKeys": {
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "iso3Language": {
                        "type": "string"
                      },
                      "iso3Country": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.OrderActionValidationWrapper"
              },
              "examples": {
                "Sample Request for BSSEBroadband Terminate": {
                  "value": {
                    "channel": "SelfService",
                    "orderActionValidation": [
                      {
                        "productType": "BSSEBroadband",
                        "action": "terminate",
                        "reasonCode": "FTERM-QUAL",
                        "billCycleDate": "15",
                        "state": "TX",
                        "requestedCompletionDate": "2025-07-15T06:00:00Z",
                        "activationDate": "2021-01-15T14:00:00Z"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Order Action Validation completed successfully",
            "headers": {
              "idpctx-OC-X-Dox-trace": {
                "description": "traceID from backend generic-element api call",
                "required": true,
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.OrderActionValidationWrapper"
                },
                "examples": {
                  "Sample Response for BSSEBroadband Terminate": {
                    "value": {
                      "channel": "SelfService",
                      "orderActionValidation": [
                        {
                          "productType": "BSSEBroadband",
                          "action": "terminate",
                          "reasonCode": "FTERM-QUAL",
                          "billCycleDate": "15",
                          "state": "TX",
                          "requestedCompletionDate": "2025-07-15T06:00:00Z",
                          "activationDate": "2021-01-15T14:00:00Z",
                          "validationStatus": {
                            "valid": true,
                            "message": "Action valid for provided request",
                            "managerOverrideEligible": false
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error in request details",
            "headers": {
              "idpctx-OC-X-Dox-trace": {
                "description": "traceID from backend generic-element api call",
                "required": true,
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.att.idp.core.exception.ServiceError"
                },
                "examples": {
                  "EMPTY ACTION": {
                    "summary": "EMPTY ACTION",
                    "value": {
                      "error": "CPOP_BSSe_IB_REQ_001",
                      "message": "Invalid Request. Null or empty not allowed for field=action",
                      "code": 400
                    }
                  },
                  "EMPTY PRODUCT TYPE": {
                    "summary": "MS_CPOPPRICING_BWLS_IB_CART_REQ_012",
                    "value": {
                      "error": "V2_CART-E500001",
                      "message": "failed input validations - productType.",
                      "code": 400
                    }
                  },
                  "INVALID REASON CODE": {
                    "summary": "INVALID REASON CODE",
                    "value": {
                      "error": "OAV_RSNCODE01",
                      "message": "Reason code not allowed for action",
                      "code": 400
                    }
                  },
                  "EMPTY ACTIVATION DATE": {
                    "summary": "EMPTY ACTIVATION DATE",
                    "value": {
                      "error": "OAV_RSNCODE31",
                      "message": "activationDate is missing in the request",
                      "code": 400
                    }
                  },
                  "INVALID ACTIVATION DATE": {
                    "summary": "INVALID ACTIVATION DATE",
                    "value": {
                      "error": "OAV_RSNCODE32",
                      "message": "activationDate is invalid",
                      "code": 400
                    }
                  },
                  "INVALID REQUESTED COMPLETION DATE": {
                    "summary": "INVALID REQUESTED COMPLETION DATE",
                    "value": {
                      "error": "OAV_RSNCODE33",
                      "message": "requestedCompletionDate is invalid",
                      "code": 400
                    }
                  },
                  "EMPTY BILL CYCLE DATE": {
                    "summary": "EMPTY BILL CYCLE DATE",
                    "value": {
                      "error": "OAV_RSNCODE13",
                      "message": "billCycleDate is missing in the request",
                      "code": 400
                    }
                  },
                  "EMPTY REQUESTED COMPLETION DATE": {
                    "summary": "EMPTY REQUESTED COMPLETION DATE",
                    "value": {
                      "error": "OAV_RSNCODE11",
                      "message": "requestedCompletionDate is missing in the request",
                      "code": 400
                    }
                  },
                  "DATE MISMATCH": {
                    "summary": "DATE MISMATCH",
                    "value": {
                      "error": "OAV_RSNCODE14",
                      "message": "requestedCompletionDate does not match with last date of billCycle",
                      "code": 400
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Error from backend or error connecting to backend source",
            "headers": {
              "idpctx-OC-X-Dox-trace": {
                "description": "traceID from backend generic-element api call",
                "required": true,
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/com.att.idp.core.exception.ServiceError"
                }
              }
            }
          }
        }
      }
    },
    "/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",
        "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.",
            "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.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields to be filtered.",
            "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."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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",
        "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",
                "NSF"
              ]
            }
          },
          {
            "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."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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": {
    "schemas": {
      "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"
      },
      "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"
            }
          }
        }
      },
      "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"
      },
      "com.att.idp.model.tmf.ActionReason": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Metadata"
            }
          },
          "reason": {
            "type": "string"
          },
          "reasonText": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.AgreementItemRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "agreementItemId": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.AppliedTax": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Characteristic"
            }
          },
          "component": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Component"
          },
          "exemptAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "extensions": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TaxExtensions"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "periodCoverage": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TimePeriod"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "taxDefinition": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TaxDefinition"
          },
          "taxableAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          }
        }
      },
      "com.att.idp.model.tmf.BillingAccountRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.KeyValueObject"
            }
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "ratingType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Characteristic": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "characteristicRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.CharacteristicRelationship"
            }
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Metadata"
            }
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "valueMetadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ValueMetadata"
            }
          },
          "valueType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.CharacteristicRelationship": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "relationshipType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Component": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "revenueType": {
            "type": "string"
          },
          "splitCode": {
            "type": "string"
          },
          "taxCode": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.KeyValueObject": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Metadata": {
        "type": "object",
        "properties": {
          "metadataType": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Money": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        }
      },
      "com.att.idp.model.tmf.Price": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "appliedTax": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.AppliedTax"
            }
          },
          "chargeType": {
            "type": "string"
          },
          "component": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Component"
          },
          "dutyFreeAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "impactingPriceParameter": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.PriceParam"
            }
          },
          "marketingAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "percentage": {
            "type": "number"
          },
          "priceOverride": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "priceRecordId": {
            "type": "string"
          },
          "priceReduction": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "rateValidity": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TimePeriod"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "taxIncludedAmount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Money"
          },
          "taxRate": {
            "type": "number"
          }
        }
      },
      "com.att.idp.model.tmf.PriceAlteration": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "alterationApplyOrder": {
            "type": "integer",
            "format": "int32"
          },
          "alterationBundleProductOfferingId": {
            "type": "string"
          },
          "alterationProductOfferingPriceId": {
            "type": "string"
          },
          "alterationType": {
            "type": "string"
          },
          "applicationDuration": {
            "type": "integer",
            "format": "int32"
          },
          "chargeType": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "immediatePromotionId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Price"
          },
          "priceAlterationCategory": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "priceType": {
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductOfferingPriceRef"
          },
          "promotionActionId": {
            "type": "string"
          },
          "prorationFactor": {
            "type": "number"
          },
          "recurringChargePeriod": {
            "type": "string"
          },
          "recurringChargePeriodLength": {
            "type": "integer",
            "format": "int32"
          },
          "unitOfMeasure": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.PriceParam": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "priceParameterType": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Product": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "actionReason": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ActionReason"
            }
          },
          "activationDate": {
            "type": "string",
            "format": "date-time"
          },
          "agreement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.AgreementItemRef"
            }
          },
          "billingAccount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.BillingAccountRef"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Characteristic"
            }
          },
          "description": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "isBundle": {
            "type": "boolean"
          },
          "isCustomerVisible": {
            "type": "boolean"
          },
          "metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Metadata"
            }
          },
          "name": {
            "type": "string"
          },
          "nextStatus": {
            "type": "string"
          },
          "nextStatusReason": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Reason"
            }
          },
          "orderDate": {
            "type": "string",
            "format": "date-time"
          },
          "place": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.RelatedPlaceRefOrValue"
            }
          },
          "primaryProductId": {
            "type": "string"
          },
          "product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Product"
            }
          },
          "productCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Characteristic"
            }
          },
          "productOffering": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductOfferingRef"
          },
          "productOrderItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.RelatedProductOrderItem"
            }
          },
          "productPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductPrice"
            }
          },
          "productRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductRelationship"
            }
          },
          "productSerialNumber": {
            "type": "string"
          },
          "productSpecification": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductSpecificationRef"
          },
          "productTerm": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductTerm"
            }
          },
          "realizingResource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ResourceRef"
            }
          },
          "realizingService": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.ServiceRef"
            }
          },
          "referenceId": {
            "type": "string"
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.RelatedParty"
            }
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "pendingActive",
              "cancelled",
              "active",
              "pendingTerminate",
              "terminated",
              "suspended",
              "aborted"
            ]
          },
          "terminationDate": {
            "type": "string",
            "format": "date-time"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductOfferingPriceRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "priceType": {
            "type": "string"
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TimePeriod"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductOfferingRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "productOfferingClassification": {
            "type": "string"
          },
          "productOfferingGroup": {
            "type": "string"
          },
          "productOfferingType": {
            "type": "string"
          },
          "productOfferingTypeGroup": {
            "type": "string"
          },
          "productOfferingTypeId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductPrice": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "billingAccount": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.BillingAccountRef"
          },
          "description": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Price"
          },
          "priceType": {
            "type": "string"
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.ProductOfferingPriceRef"
          },
          "productPriceAlteration": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.PriceAlteration"
            }
          },
          "recurringChargePeriod": {
            "type": "string"
          },
          "unitOfMeasure": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductRelationship": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Characteristic"
            }
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "product": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Product"
          },
          "productSpecificationType": {
            "type": "string"
          },
          "productSpecificationTypeId": {
            "type": "string"
          },
          "relationshipSubtype": {
            "type": "string"
          },
          "relationshipType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductSpecificationRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "productSpecificationType": {
            "type": "string"
          },
          "productSpecificationTypeId": {
            "type": "string"
          },
          "targetProductSchema": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TargetProductSchema"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ProductTerm": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "duration": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.Quantity"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TimePeriod"
          }
        }
      },
      "com.att.idp.model.tmf.Quantity": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number"
          },
          "units": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Reason": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "reasonText": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.RelatedParty": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.KeyValueObject"
            }
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "partyType": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.RelatedPlaceRefOrValue": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Characteristic"
            }
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "validated": {
            "type": "boolean"
          }
        }
      },
      "com.att.idp.model.tmf.RelatedProductOrderItem": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "orderItemAction": {
            "type": "string"
          },
          "orderItemId": {
            "type": "string"
          },
          "productOrderHref": {
            "type": "string"
          },
          "productOrderId": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ResourceRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.ServiceRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.TargetProductSchema": {
        "type": "object",
        "properties": {
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.Tax": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.TaxDefinition": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "exemptionType": {
            "type": "string"
          },
          "isExemption": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "taxJurisdiction": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TaxJurisdiction"
          },
          "taxRate": {
            "type": "number"
          },
          "taxType": {
            "type": "string"
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.model.tmf.TimePeriod"
          }
        }
      },
      "com.att.idp.model.tmf.TaxExtensions": {
        "type": "object",
        "properties": {
          "Tax": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.Tax"
            }
          }
        }
      },
      "com.att.idp.model.tmf.TaxJurisdiction": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string"
          },
          "@referredType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "com.att.idp.model.tmf.TimePeriod": {
        "type": "object",
        "properties": {
          "endDateTime": {
            "type": "string",
            "format": "date-time"
          },
          "startDateTime": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "com.att.idp.model.tmf.ValueMetadata": {
        "type": "object",
        "properties": {
          "metadataType": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sourceValue": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.core.exception.ServiceError": {
        "type": "object",
        "properties": {
          "errorId": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.core.exception.ServiceError.Error"
            }
          }
        }
      },
      "com.att.idp.core.exception.ServiceError.Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.genericentity.AssignedProduct": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string"
          },
          "productVersion": {
            "type": "string"
          },
          "productComponentsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.ProductComponents"
            }
          },
          "productSpecificationCode": {
            "type": "string"
          },
          "errorId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "rsnFeeCode": {
            "type": "string"
          },
          "rulesMessageList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.RulesMessage"
            }
          }
        },
        "description": "AssignedProduct"
      },
      "com.att.idp.cpop.model.tmf.genericentity.AssingedProductValidaton": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string"
          },
          "valid": {
            "type": "boolean"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.genericentity.BillingOffers": {
        "type": "object",
        "properties": {
          "actionCode": {
            "type": "string"
          },
          "chargeCode": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "billingOfferID": {
            "type": "string"
          },
          "pricePlanCode": {
            "type": "string"
          },
          "promotionsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.BillingPromotion"
            }
          }
        }
      },
      "com.att.idp.cpop.model.tmf.genericentity.BillingPromotion": {
        "type": "object",
        "properties": {
          "actionCode": {
            "type": "string"
          },
          "chargeCode": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "billingOfferID": {
            "type": "string"
          },
          "pricePlanCode": {
            "type": "string"
          },
          "promotionDurationMonths": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.genericentity.OrderActionValidation": {
        "required": [
          "action",
          "productType",
          "reasonCode",
          "state"
        ],
        "type": "object",
        "properties": {
          "productType": {
            "type": "string",
            "description": "Required=true, Type of Product. e.g. \"WBB\""
          },
          "action": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Required=true, Product order action. Enum: [suspend, terminate, cancel, change, resume]"
          },
          "reasonCode": {
            "type": "string",
            "description": "Required=true, Reason code. e.g. \"Vacation\""
          },
          "billingAccountNumber": {
            "type": "string",
            "description": "Required=false, customer id"
          },
          "accountStatus": {
            "type": "string",
            "description": "Required=false, Account status. e.g. \"Active\""
          },
          "billCycleDate": {
            "type": "string",
            "description": "Required=false, Numeric date of the bill cycle. minimum = \"1\", maximum = \"31\" e.g. \"15\""
          },
          "state": {
            "type": "string",
            "description": "Required=true, State abbreviation e.g. \"TX\""
          },
          "managerOverride": {
            "type": "boolean",
            "description": "Required=false, Determines if the action is being overwritten by the manager."
          },
          "requestedCompletionDate": {
            "type": "string",
            "description": "Required=false, Requested completion date. e.g. \"2022-06-08T18:37:54Z\"",
            "format": "YYYY-MM-DDTHH:MM:SSZ"
          },
          "activationDate": {
            "type": "string",
            "description": "Required=false, Activation date. e.g. \"2022-06-08T18:37:54Z\"",
            "format": "YYYY-MM-DDTHH:MM:SSZ"
          },
          "previousSuspension": {
            "type": "array",
            "description": "Required=false, List of previous suspensions.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.Suspension"
            }
          },
          "suspensionCount": {
            "type": "integer",
            "description": "Required=false, Number of previous suspensions.",
            "format": "int32"
          },
          "suspension": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.Suspension"
          },
          "pastDueAmount": {
            "type": "boolean",
            "description": "Required=false, Flag as true for past due amount for the account"
          },
          "relatedParty": {
            "type": "array",
            "description": "Required=false, Related Party info for the action such as SPLIT BILL",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productorder.RelatedParty"
            }
          },
          "pendingOrders": {
            "type": "array",
            "description": "Required=false, List of pendingOrders with reason codes.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.PendingOrder"
            }
          },
          "previousOrderHistory": {
            "type": "array",
            "description": "Required=false, History of previous order actions.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.PreviousOrderHistory"
            }
          },
          "validationStatus": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.ValidationStatus"
          },
          "unifyOrders": {
            "type": "array",
            "description": "Required=false, List of unifyOrders with reason codes.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.UnifyOrder"
            }
          }
        },
        "description": "Order action details required to be validated."
      },
      "com.att.idp.cpop.model.tmf.genericentity.OrderActionValidationWrapper": {
        "required": [
          "channel",
          "orderActionValidation"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "type": "string",
            "description": "Required=true, Related channel. e.g. \"SelfService\""
          },
          "billingAccountNumber": {
            "type": "string",
            "description": "Required=false, customer id"
          },
          "accountStatus": {
            "type": "string",
            "description": "Required=false, Account status. e.g. \"Active\""
          },
          "orderActionValidation": {
            "type": "array",
            "description": "Required=true, List of order action details required to be validated.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.OrderActionValidation"
            }
          }
        },
        "description": "ValidateOrderAction"
      },
      "com.att.idp.cpop.model.tmf.genericentity.PendingOrder": {
        "required": [
          "pendingOrderReasonCode"
        ],
        "type": "object",
        "properties": {
          "pendingOrderReasonCode": {
            "type": "string",
            "description": "Required=true, Pending Order reason code."
          }
        },
        "description": "Pending Order with reason code that need to be validated."
      },
      "com.att.idp.cpop.model.tmf.genericentity.PreviousOrderHistory": {
        "required": [
          "orderId",
          "suspensionEnd",
          "suspensionStart",
          "type"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Required=true, Order Id of the the order action."
          },
          "type": {
            "type": "string",
            "description": "Required=true, Type of action. e.g. \"suspend\""
          },
          "suspensionStart": {
            "type": "string",
            "description": "Required=true, Date when the suspension took the place. e.g. \"2022-06-08T18:37:54Z\""
          },
          "suspensionEnd": {
            "type": "string",
            "description": "Required=true, Date of restoration for suspension. e.g. \"2022-06-08T18:37:54Z\""
          },
          "orderDate": {
            "type": "string",
            "description": "Required=true, Date of swap order placed. e.g. \"2022-06-08T18:37:54Z\""
          }
        },
        "description": "Historic details for the given order action"
      },
      "com.att.idp.cpop.model.tmf.genericentity.ProductComponents": {
        "type": "object",
        "properties": {
          "componentName": {
            "type": "string"
          },
          "componentCode": {
            "type": "string"
          },
          "serviceType": {
            "type": "string"
          },
          "productComponentId": {
            "type": "string"
          },
          "billingOffersList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.BillingOffers"
            }
          }
        }
      },
      "com.att.idp.cpop.model.tmf.genericentity.RulesMessage": {
        "type": "object",
        "properties": {
          "messageText": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "Required=false, rulesMessageList"
      },
      "com.att.idp.cpop.model.tmf.genericentity.Suspension": {
        "required": [
          "restoreDate",
          "suspensionDate"
        ],
        "type": "object",
        "properties": {
          "reasonCode": {
            "type": "string",
            "description": "Required=false, Type of suspension. e.g. \"Customer Request\""
          },
          "suspensionDate": {
            "type": "string",
            "description": "Required=true, Date when the suspension took the place. e.g. \"2022-06-08T18:37:54Z\""
          },
          "restoreDate": {
            "type": "string",
            "description": "Required=true, Date of restoration for suspension. e.g. \"2022-06-08T18:37:54Z\""
          }
        },
        "description": "Suspension details for the given order action"
      },
      "com.att.idp.cpop.model.tmf.genericentity.UnifyOrder": {
        "required": [
          "productId",
          "productType"
        ],
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Required=true, productId."
          },
          "productType": {
            "type": "string",
            "description": "Required=true, productType"
          },
          "relatedParty": {
            "type": "array",
            "description": "Required=true, Party associated with the product order. e.g. (Complex Object)",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.model.tmf.RelatedParty"
            }
          }
        },
        "description": "Unify Order with reason code that need to be validated."
      },
      "com.att.idp.cpop.model.tmf.genericentity.ValidationStatus": {
        "required": [
          "message",
          "valid"
        ],
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Required=true, Return boolean value based on validation"
          },
          "code": {
            "type": "string",
            "description": "Required=false, ErrorCode"
          },
          "message": {
            "type": "string",
            "description": "Required=true, Message in the response"
          },
          "validProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.AssingedProductValidaton"
            }
          },
          "errorDetails": {
            "type": "array",
            "description": "Required=false, Error Details",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.AssignedProduct"
            }
          },
          "managerOverrideEligible": {
            "type": "boolean",
            "description": "Required=false, ErrorCode"
          },
          "rulesMessageList": {
            "type": "array",
            "description": "Required=false, rulesMessageList",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.RulesMessage"
            }
          }
        },
        "description": "Suspension"
      },
      "com.att.idp.cpop.model.tmf.productorder.NameValuePair": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productorder.RelatedParty": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Required=true, Unique identifier of the related party. e.g. \"42dc48f9-69b8-4118-a7c3-009a363b52ae\""
          },
          "role": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Required=false, Role played by the related party. e.g. \"customer\""
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productorder.NameValuePair"
            }
          }
        },
        "description": "Related Entity reference. A related party defines party or party role linked to a specific entity."
      },
      "com.att.idp.cpop.catalogone.model.productoffering.Metadata": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "propertySetName": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.catalogone.model.productordering.ProductOfferingPriceRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.cpop.catalogone.model.productordering.TimePeriod"
          },
          "priceType": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "Required=false, Indicates pricing strategy of the offer in a bundle"
      },
      "com.att.idp.cpop.catalogone.model.productordering.TimePeriod": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string"
          },
          "endDateTime": {
            "type": "string"
          }
        },
        "description": "Required=false, Indicates the end date of pricing strategy"
      },
      "com.att.idp.cpop.model.tmf.genericentity.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/com.att.idp.cpop.model.tmf.genericentity.KeyValuePair"
            }
          }
        },
        "description": "List of key-value pair associated with reason code"
      },
      "com.att.idp.cpop.model.tmf.productoffering.AdditionalQualificationCriteria": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=true, The name of the additional qualification criteria. e.g. qualifierSkus"
          },
          "value": {
            "type": "array",
            "description": "Required=true, value of the  additional qualification criteria. e.g. List of qualifierSkus",
            "items": {
              "type": "string",
              "description": "Required=true, value of the  additional qualification criteria. e.g. List of qualifierSkus"
            }
          }
        },
        "description": "Holds characteristics with String name and List value, which cannot be accommodated in PromotionCharacteristic"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.AttributeOperations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "operationName": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.BenefitItem": {
        "required": [
          "action",
          "href",
          "id",
          "inCart",
          "itemState",
          "itemStatus",
          "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"
          },
          "itemStatus": {
            "type": "string",
            "description": "Required=true, The benefit item Status new , keep, revoke "
          },
          "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/com.att.idp.cpop.model.tmf.promotion.PromotionAction"
            }
          },
          "href": {
            "type": "string",
            "description": "Required=true, The self-reference to the trigger item"
          },
          "inCart": {
            "type": "boolean",
            "description": "Required=true, The benefit item Status new , keep, revoke "
          },
          "potentialBenefitItem": {
            "type": "array",
            "description": "Required=false, This will show potential offers required to qualify for promotion",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.PotentialBenefitItem"
            }
          },
          "itemState": {
            "type": "string",
            "description": "Required=true, The benefit item Status new , keep, revoke "
          }
        },
        "description": "benefit item object"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ProductOfferingPriceRefOrValue"
            }
          },
          "productOfferingTotalPrice": {
            "type": "array",
            "description": "Required=false, item TotalPrice. e.g. Refer ProductOfferingPriceRefOrValue attributes and example values",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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."
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.BundledProductOfferingGroupOption"
            }
          },
          "ProductOffering": {
            "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/com.att.idp.cpop.model.tmf.productoffering.ProductOffering"
            }
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.ProductOfferingCharacteristic"
            }
          },
          "subscriberResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.SubscriberResults"
            }
          },
          "substitutionAction": {
            "type": "string",
            "description": "Required=false, Action to add incompatible boosters"
          },
          "productOfferingPrice": {
            "type": "array",
            "description": "Required=false, The productoffer price. e.g. Refer ProductOfferingPriceRefOrValue model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.ProductOfferingPriceRefOrValue"
            }
          },
          "installType": {
            "type": "string",
            "description": "Required=false, type of installation Eg: Self Installation/Tech Installation"
          }
        },
        "description": "The relation between a bundle product offering entity and its bundled product offering entities"
      },
      "com.att.idp.cpop.model.tmf.productoffering.BundledProductOfferingGroupOption": {
        "type": "object",
        "properties": {
          "groupOptionId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "numberRelOfferLowerLimit": {
            "type": "string"
          },
          "numberRelOfferUpperLimit": {
            "type": "string"
          },
          "bundledProductOffering": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.BundledProductOffering"
            }
          },
          "localizedName": {
            "type": "string"
          }
        },
        "description": "Required=false, list of product BundledProductOfferingGroupOption Details."
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.Characteristic": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.catalogone.model.productoffering.Metadata"
            }
          },
          "entry": {
            "type": "array",
            "description": "Required=true, Contains list of key-value pair.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.genericentity.KeyValuePair"
            }
          },
          "default": {
            "type": "boolean"
          }
        },
        "description": "The available values of the descriptive characteristic"
      },
      "com.att.idp.cpop.model.tmf.productoffering.CompatibleDevice": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Required=false, The value of name"
          },
          "variantGroup": {
            "type": "string",
            "description": "Required=false, The value of variantGroup"
          },
          "id": {
            "type": "string",
            "description": "Required=false, 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/com.att.idp.cpop.model.tmf.productoffering.VariantCharacteristics"
            }
          }
        },
        "description": "The available values of Compatible Devices"
      },
      "com.att.idp.cpop.model.tmf.productoffering.ComponentOperations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "operationName": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.Constraint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Characteristic"
            }
          }
        },
        "description": "The Constraint resource represents a policy/rule applied to ProductOfferingPrice"
      },
      "com.att.idp.cpop.model.tmf.productoffering.ImmediatePayOption": {
        "type": "object",
        "properties": {
          "payOption": {
            "type": "string"
          },
          "payAmount": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Money"
          },
          "minPayAmount": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Money"
          },
          "payImmediately": {
            "type": "boolean"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.Promotion"
          },
          "itemQualificationType": {
            "type": "string"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string"
          },
          "marketingContent": {
            "type": "string"
          },
          "isOfferTrayEnabled": {
            "type": "boolean"
          },
          "benefitItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.BenefitItem"
            }
          },
          "triggerItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.TriggerItem"
            }
          }
        },
        "description": "ProductOffering immediate promotion object. TMF+"
      },
      "com.att.idp.cpop.model.tmf.productoffering.InstallmentCharacterstics": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
          },
          "monthlyNextUpChg": {
            "type": "number"
          },
          "installmentCharacterstics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.InstallmentCharacterstics"
            }
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.KeyValuePair": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Required=true, key of property like cms key e.g. masterImageUrl",
            "enum": [
              "billCodeContentURL",
              "masterImageUrl"
            ]
          },
          "value": {
            "minLength": 1,
            "type": "string",
            "description": "Required=true, value of generic object like value for a cms property. e.g./idpassets/global/devices/phones/samsung/samsung-galaxy-note20-5g/defaultimage/mystic-gray-hero-zoom.png"
          }
        },
        "description": "Generic object with key and value information"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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 "
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ComponentOperations"
            }
          },
          "omsAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.OmsAttributes"
            }
          }
        },
        "description": "Required=false, omsreqrescomponents"
      },
      "com.att.idp.cpop.model.tmf.productoffering.OmsAttributes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "adminDisplay": {
            "type": "string"
          },
          "attributeCode": {
            "type": "string"
          },
          "attributeValue": {
            "type": "string"
          },
          "attributeOperations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.AttributeOperations"
            }
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ProductPriceValue"
          },
          "discountValueType": {
            "type": "string"
          },
          "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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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."
      },
      "com.att.idp.cpop.model.tmf.productoffering.ParentProdOfferGroupOption": {
        "type": "object",
        "properties": {
          "groupOptionId": {
            "type": "string"
          }
        },
        "description": "Required=false, parentProdOfferGroupOption"
      },
      "com.att.idp.cpop.model.tmf.productoffering.PotentialBenefitItem": {
        "type": "object",
        "properties": {
          "productOfferingId": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "potentialBenefitType": {
            "type": "string"
          },
          "deviceCategory": {
            "type": "string"
          }
        },
        "description": "potential benefit item for qualifying promotion"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.Promotion"
          },
          "itemQualificationType": {
            "type": "string"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string"
          },
          "marketingContent": {
            "type": "string"
          },
          "isOfferTrayEnabled": {
            "type": "boolean"
          },
          "triggerItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.TriggerItem"
            }
          },
          "benefitItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.BenefitItem"
            }
          }
        },
        "description": "ProductOffering potential promotion object. TMF+"
      },
      "com.att.idp.cpop.model.tmf.productoffering.ProductOffering": {
        "required": [
          "href",
          "id",
          "isBundle",
          "localizedName",
          "mustBeBundled",
          "name",
          "productOfferingType",
          "productOfferingTypeGroup",
          "productOfferingTypeId",
          "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"
          },
          "valueRank": {
            "type": "integer",
            "description": "Required=false, valueRank",
            "format": "int32"
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.CategoryRef"
            }
          },
          "variantGroup": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.BundledProductOffering"
            }
          },
          "ProductOffering": {
            "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/com.att.idp.cpop.model.tmf.productoffering.ProductOffering"
            }
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ProductOfferingRelationship"
            }
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ProductOfferingPriceRefOrValue"
            }
          },
          "productOfferingPrice": {
            "type": "array",
            "description": "Required=false, The productoffer price. e.g. Refer ProductOfferingPriceRefOrValue model for attributes and example values",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.KeyValuePair"
            }
          },
          "productOfferingTypeId": {
            "maxLength": 100,
            "minLength": 10,
            "type": "string",
            "description": "Required=true, The productofferingTypeID unique id. e.g. 52165303-5d47-4827-a51c-f7ab08570210"
          },
          "compatibleDevices": {
            "type": "array",
            "description": "Required=false, A reference to  compatibleDevice",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.CompatibleDevice"
            }
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.OrderItem"
            }
          },
          "bundledProductOfferingGroupOption": {
            "type": "array",
            "description": "Required=false, list of product BundledProductOfferingGroupOption Details.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.AttachmentRefOrValue"
            }
          },
          "offerClassification": {
            "type": "string",
            "description": "Required=false, offerClassification, eg: mobileOffer"
          },
          "isEnabledBy": {
            "type": "boolean",
            "description": "Required=false, isEnabledBy"
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.ParentProdOfferGroupOption"
            }
          },
          "potentialPromotion": {
            "type": "array",
            "description": "Required=false, parentProdOfferGroupOption",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.PotentialPromotion"
            }
          },
          "omsreqrescomponents": {
            "type": "array",
            "description": "Required=false, omsreqrescomponents",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.OMSReqResComponents"
            }
          },
          "metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Metadata"
            }
          },
          "productOfferingGroup": {
            "type": "string",
            "description": "productOfferingGroup"
          }
        },
        "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information."
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.CharacteristicValue"
            }
          },
          "productSpecification": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.ProductSpecificationRef"
          },
          "characteristicsMetadata": {
            "type": "array",
            "description": "Required=false, The metadata describing the characteristic. e.g. Refer Metadata attributes and example values",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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)"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.ProductPriceValue"
          },
          "finalPrice": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.ProductPriceValue"
          },
          "standalonePrice": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.POPAlteration"
            }
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/com.att.idp.cpop.catalogone.model.productordering.ProductOfferingPriceRef"
          },
          "periodCoverage": {
            "$ref": "#/components/schemas/com.att.idp.cpop.catalogone.model.productordering.TimePeriod"
          },
          "baseFullPrice": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.ProductPriceValue"
          },
          "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/com.att.idp.cpop.model.tmf.productoffering.ImmediatePayOption"
          },
          "installmentOption": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.InstallmentOption"
          },
          "customerGroup": {
            "type": "string"
          },
          "eligibleProductPromotions": {
            "type": "array",
            "description": "Required=false, The eligible product promotions to be applied for the product offering. e.g. Refer POPAlteration attributes and example values",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.POPAlteration"
            }
          },
          "constraint": {
            "type": "array",
            "description": "Required=false, The Constraint resource represents a policy/rule applied to ProductOfferingPrice.",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Constraint"
            }
          }
        },
        "description": "ProductOffering DiscoveryPrice"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.ProductPriceValue": {
        "type": "object",
        "properties": {
          "dutyFreeAmount": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Money"
          },
          "taxIncludedAmount": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Money"
          },
          "marketingAmount": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.Money"
          },
          "discountPercentage": {
            "type": "number",
            "description": "Required=false, The discount percentage",
            "format": "float"
          }
        },
        "description": "The price of current catalog item. It is set to null if the price record is missing or if there is any exception."
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.promotion.PromotionCharacteristic"
            }
          },
          "additionalQualificationCriteria": {
            "type": "array",
            "description": "Required=false, characteristics items with value as List",
            "items": {
              "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.productoffering.AdditionalQualificationCriteria"
            }
          }
        },
        "description": "Promotion Object"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.Parameter"
            }
          }
        },
        "description": "ProductOffering PromotionQualificationMessage promotion object."
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.genericentity.KeyValuePair"
            }
          }
        }
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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"
          },
          "itemStatus": {
            "type": "string"
          },
          "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"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.CharacteristicValue"
            }
          }
        },
        "description": "ProductOffering variant characteristics - The descriptive characteristics"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.VariantGroupOfferings"
            }
          }
        },
        "description": "ProductOffering varient group"
      },
      "com.att.idp.cpop.model.tmf.productoffering.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/com.att.idp.cpop.model.tmf.productoffering.VariantCharacteristics"
            }
          },
          "default": {
            "type": "boolean"
          }
        },
        "description": "The members of the variant group"
      },
      "com.att.idp.cpop.model.tmf.promotion.DurationPolicy": {
        "type": "object",
        "properties": {
          "duration": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.promotion.Quantity"
          },
          "startDatePolicy": {
            "type": "string"
          },
          "endDatePolicy": {
            "type": "string"
          },
          "effectiveFor": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.promotion.TimePeriod"
          },
          "terminationPolicy": {
            "type": "string"
          }
        },
        "description": "Policy for calculting a limited duration for any entity "
      },
      "com.att.idp.cpop.model.tmf.promotion.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"
      },
      "com.att.idp.cpop.model.tmf.promotion.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/com.att.idp.cpop.model.tmf.promotion.ProductOfferingPriceRef"
          },
          "durationPolicy": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.promotion.DurationPolicy"
          },
          "validFor": {
            "$ref": "#/components/schemas/com.att.idp.cpop.model.tmf.promotion.TimePeriod"
          }
        },
        "description": "PromotionAction Object for The promotion action of the promotion pattern related entities"
      },
      "com.att.idp.cpop.model.tmf.promotion.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)"
      },
      "com.att.idp.cpop.model.tmf.promotion.Quantity": {
        "type": "object",
        "properties": {
          "units": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      },
      "com.att.idp.cpop.model.tmf.promotion.TimePeriod": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "Required=false, valid start date and time. e.g. 2031-04-23T12:38:31.774Z"
          },
          "endDateTime": {
            "type": "string",
            "description": "Required=false, valid end date and time. e.g. 2021-01-31T14:00:00Z"
          }
        },
        "description": "validFor Object for validate start and end date of the related entity"
      }
    },
    "examples": {
      "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"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "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"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "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"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  }
}