{
    "openapi":"3.0.0",
    "info":{
        "version":"2025.04.24",
        "title":"REST API Reference for Pricing Design Center TMF 620 API",
        "description":"Pricing Design Center (PDC) TMF 620 REST API is part of the Catalog Management API Family. Its goal is to provide a catalog of products.\n\nThe API performs the following operations on the resources:\n\n    <ul>\n\n    <li>Retrieves an entity or a collection of entities depending on filter criteria.</li>\n\n    <li>Partially updates an entity (including updating rules).</li>\n\n    <li>Creates an entity (including default values and creation rules).</li>\n\n    <li>Deletes an entity.</li>\n\n    <li>Manages notification of events.</li>\n\n    </ul>",
        "x-summary":"Pricing Design Center (PDC) TMF 620 REST API is part of the Catalog Management API Family."
    },
    "servers":[
        {
            "description":"TMF 620 Product Catalog Management Server",
            "url":"http://host:port/productCatalogManagement/v4"
        }
    ],
    "tags":[
        {
            "name":"Product Offering",
            "description":"Represents entities that are orderable from the catalog provider. This includes pricing information."
        },
        {
            "name":"Product Offering Price",
            "description":"Describes prices related to product offerings."
        },
        {
            "name":"Product Specification",
            "description":"Details about a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role."
        }
    ],
    "paths":{
        "/productSpecification":{
            "get":{
                "tags":[
                    "Product Specification"
                ],
                "summary":"Get Product Specifications",
                "description":"Returns a list of the product specification objects.",
                "operationId":"listProductSpecification",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/fields"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"The list of product specification objects were returned successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"array",
                                    "items":{
                                        "$ref":"#/components/schemas/ProductSpecificationOracle"
                                    }
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productSpecification-get",
                "x-filename-id":"productspecification-get"
            },
            "post":{
                "tags":[
                    "Product Specification"
                ],
                "summary":"Create a Product Specification",
                "description":"Creates a product specification.",
                "operationId":"createProductSpecification",
                "requestBody":{
                    "required":true,
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/ProductSpecificationOracle"
                            }
                        }
                    }
                },
                "responses":{
                    "201":{
                        "description":"The product specification was created successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"array",
                                    "items":{
                                        "$ref":"#/components/schemas/ProductSpecificationOracle"
                                    }
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productSpecification-post",
                "x-filename-id":"productspecification-post"
            }
        },
        "/productSpecification/{id}":{
            "get":{
                "tags":[
                    "Product Specification"
                ],
                "summary":"Get a Product Specification by ID",
                "description":"Retrieves the product specification details with the given ID.",
                "operationId":"retrieveProductSpecification",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/id"
                    },
                    {
                        "$ref":"#/components/parameters/fields"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"The product specification details were retrieved successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductSpecificationOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productSpecification-{id}-get",
                "x-filename-id":"productspecification-id-get"
            }
        },
        "/productOffering":{
            "get":{
                "tags":[
                    "Product Offering"
                ],
                "summary":"Get Product Offerings",
                "description":"Retrieves the list of product offering in promoted status.",
                "operationId":"listProductOffering",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/fields"
                    },
                    {
                        "$ref":"#/components/parameters/ids"
                    },
                    {
                        "$ref":"#/components/parameters/name"
                    },
                    {
                        "$ref":"#/components/parameters/href"
                    },
                    {
                        "$ref":"#/components/parameters/lifecycleStatus"
                    },
                    {
                        "$ref":"#/components/parameters/lastUpdate"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"The list of product offering was retrieved successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"array",
                                    "items":{
                                        "$ref":"#/components/schemas/ProductOfferingOracle"
                                    }
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOffering-get",
                "x-filename-id":"productoffering-get"
            },
            "post":{
                "tags":[
                    "Product Offering"
                ],
                "summary":"Create a Product Offering",
                "description":"Creates a product offering with the given name in promoted state.",
                "operationId":"createProductOffering",
                "requestBody":{
                    "required":true,
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/ProductOfferingOracle"
                            }
                        }
                    }
                },
                "responses":{
                    "201":{
                        "description":"The product offering was created successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOffering-post",
                "x-filename-id":"productoffering-post"
            }
        },
        "/productOffering/{id}":{
            "get":{
                "tags":[
                    "Product Offering"
                ],
                "parameters":[
                    {
                        "$ref":"#/components/parameters/id"
                    },
                    {
                        "$ref":"#/components/parameters/fields"
                    },
                    {
                        "$ref":"#/components/parameters/expand"
                    }
                ],
                "summary":"Get a Product Offering's Details",
                "description":"Retrieves the details of the product offering based on ID.",
                "operationId":"retrieveProductOffering",
                "responses":{
                    "200":{
                        "description":"The details of the product offering were retrieved successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOffering-{id}-get",
                "x-filename-id":"productoffering-id-get"
            },
            "patch":{
                "tags":[
                    "Product Offering"
                ],
                "summary":"Update a Product Offering by ID",
                "description":"Partially updates the product offering by ID.",
                "operationId":"patchProductOffering",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/id"
                    }
                ],
                "requestBody":{
                    "required":true,
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/ProductOfferingOracle"
                            }
                        }
                    }
                },
                "responses":{
                    "200":{
                        "description":"The product offering was updated successfuly.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOffering-{id}-patch",
                "x-filename-id":"productoffering-id-patch"
            },
            "delete":{
                "tags":[
                    "Product Offering"
                ],
                "summary":"Delete a Product Offering",
                "description":"Deletes the product offering based on ID.",
                "operationId":"deleteProductOffering",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/id"
                    }
                ],
                "responses":{
                    "204":{
                        "$ref":"#/components/responses/204"
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOffering-{id}-delete",
                "x-filename-id":"productoffering-id-delete"
            }
        },
        "/productOfferingPrice":{
            "get":{
                "tags":[
                    "Product Offering Price"
                ],
                "summary":"Get the Pricing for a Product Offering",
                "description":"Retrieves the list of prices for a product offering in promoted status.",
                "operationId":"listProductOfferingPrice",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/fields"
                    },
                    {
                        "$ref":"#/components/parameters/ids"
                    },
                    {
                        "$ref":"#/components/parameters/name"
                    },
                    {
                        "$ref":"#/components/parameters/href"
                    },
                    {
                        "$ref":"#/components/parameters/lifecycleStatus"
                    },
                    {
                        "$ref":"#/components/parameters/lastUpdate"
                    },
                    {
                        "$ref":"#/components/parameters/priceType"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"The list of product offering prices was retrieved successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"array",
                                    "items":{
                                        "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                                    }
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOfferingPrice-get",
                "x-filename-id":"productofferingprice-get"
            },
            "post":{
                "tags":[
                    "Product Offering Price"
                ],
                "summary":"Create Pricing for a Product Offering",
                "description":"Creates pricing for a product offering with the given name in promoted status.",
                "operationId":"createProductOfferingPrice",
                "requestBody":{
                    "required":true,
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                            }
                        }
                    }
                },
                "responses":{
                    "201":{
                        "description":"The product offering price was created successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOfferingPrice-post",
                "x-filename-id":"productofferingprice-post"
            }
        },
        "/productOfferingPrice/{id}":{
            "get":{
                "tags":[
                    "Product Offering Price"
                ],
                "operationId":"retrieveProductOfferingPrice",
                "summary":"Get the Pricing for a Product Offering by ID",
                "description":"Retrieves the details of pricing for a product offering with the given name.",
                "parameters":[
                    {
                        "$ref":"#/components/parameters/id"
                    },
                    {
                        "$ref":"#/components/parameters/fields"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"The product offering price was retrieved successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOfferingPrice-{id}-get",
                "x-filename-id":"productofferingprice-id-get"
            },
            "patch":{
                "tags":[
                    "Product Offering Price"
                ],
                "summary":"Update the Pricing for a Product Offering",
                "description":"Partially updates the pricing for a product offering.",
                "operationId":"patchProductOfferingPrice",
                "requestBody":{
                    "required":true,
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                            }
                        }
                    }
                },
                "responses":{
                    "200":{
                        "description":"The product offering price was updated successfully.",
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                                }
                            }
                        }
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOfferingPrice-{id}-patch",
                "x-filename-id":"productofferingprice-id-patch"
            },
            "delete":{
                "tags":[
                    "Product Offering Price"
                ],
                "summary":"Delete Pricing from a Product Offering",
                "description":"Enters the name of the pricing to be deleted from a product offering.",
                "operationId":"deleteProductOfferingPrice",
                "responses":{
                    "204":{
                        "$ref":"#/components/responses/204"
                    },
                    "400":{
                        "$ref":"#/components/responses/400"
                    },
                    "401":{
                        "$ref":"#/components/responses/401"
                    },
                    "404":{
                        "$ref":"#/components/responses/404"
                    },
                    "405":{
                        "$ref":"#/components/responses/405"
                    },
                    "500":{
                        "$ref":"#/components/responses/500"
                    }
                },
                "x-internal-id":"productOfferingPrice-{id}-delete",
                "x-filename-id":"productofferingprice-id-delete"
            },
            "parameters":[
                {
                    "$ref":"#/components/parameters/id"
                }
            ]
        }
    },
    "security":[
        {
            "BasicAuthentication":[
            ]
        }
    ],
    "components":{
        "securitySchemes":{
            "BasicAuthentication":{
                "type":"http",
                "scheme":"basic"
            }
        },
        "parameters":{
            "Content-Type":{
                "in":"header",
                "name":"Content-Type",
                "schema":{
                    "type":"string"
                },
                "required":false
            },
            "path":{
                "in":"query",
                "name":"path",
                "schema":{
                    "type":"string"
                },
                "required":true
            },
            "id":{
                "name":"id",
                "description":"A unique ID that identifies resources.",
                "in":"path",
                "required":true,
                "schema":{
                    "type":"string"
                }
            },
            "ids":{
                "name":"id",
                "description":"A unique ID that identifies resources.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "limit":{
                "name":"limit",
                "description":"Restricts the number of resources returned inside the resource collection. If the limit exceeds the resource count, the framework will return the available resources.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"integer"
                }
            },
            "offset":{
                "name":"offset",
                "description":"The starting index for the resources have to be provided in response requested by client.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"integer"
                }
            },
            "fields":{
                "name":"fields",
                "description":"Specifies the attributes that need to be returned inside the resource item.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "name":{
                "name":"name",
                "description":"The value for the name query parameter.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "href":{
                "name":"href",
                "description":"The vaue for the href query parameter.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "lifecycleStatus":{
                "name":"lifecycleStatus",
                "description":"The value for the lifecycle Status query parameter.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "priceType":{
                "name":"priceType",
                "description":"The value for the price type query parameter.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"integer"
                }
            },
            "lastUpdate":{
                "name":"lastUpdate",
                "description":"The value for the last update query parameter.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            },
            "expand":{
                "name":"expand",
                "description":"The value for the expand query parameter that fetches the details of the price of the product offering. The default value should be 'productOffering.productOfferingPrice'.",
                "in":"query",
                "required":false,
                "schema":{
                    "type":"string"
                }
            }
        },
        "responses":{
            "204":{
                "description":"The request was successfully processed by the server, but no content was returned."
            },
            "400":{
                "description":"The server cannot process the request due to a client error.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "401":{
                "description":"The user's authentication credentials for the target resource are invalid.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "403":{
                "description":"The request contains??data that the server recognized, but the server refuses to act.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "404":{
                "description":"The requested resource was not found, but it could be accessible in the future. Subsequent client requests are permitted.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "405":{
                "description":"The requested resource does not support the particular request method.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "409":{
                "description":"The request could not be processed due to a conflict with the resource's current state.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "500":{
                "description":"When an unexpected condition is identified and no specific message is appropriate, this generic error message is displayed.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "501":{
                "description":"Either the server is unable to fulfill the request or it is unaware of the request mechanism. This usually indicates future accessibility.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/Error"
                        }
                    }
                }
            },
            "importjob-post-response":{
                "description":"Import Job post response.",
                "content":{
                    "application/json":{
                        "schema":{
                            "$ref":"#/components/schemas/empty-response"
                        }
                    }
                }
            }
        },
        "schemas":{
            "empty-response":{
                "title":"Empty Response",
                "type":"object",
                "properties":{
                }
            },
            "BundledProductOffering":{
                "type":"object",
                "description":"A type of product offering that belongs to a grouping of product offerings made available to the market.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID for the product specification, such as <b>ChargeOfferExample</b>."
                    },
                    "href":{
                        "type":"string",
                        "description":"The unique resource URL of the bundled product offering."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Contains the name of the bundled product offering."
                    },
                    "bundledProductOfferingOption":{
                        "$ref":"#/components/schemas/BundledProductOfferingOption",
                        "description":"A set of numbers that specifies the lower and upper limits for a product offering. These can be procured as part of the related bundled product offering and their values can range from zero to unbounded."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "BundledProductOfferingOption":{
                "type":"object",
                "description":"A set of numbers that specifies the lower and upper limits for a product offering. These can be procured as part of the related bundled product offering and their values can range from zero to unbounded.",
                "properties":{
                    "numberRelOfferDefault":{
                        "type":"integer",
                        "description":"The default number of product offerings that should be procured as part of the related bundled product offering."
                    },
                    "numberRelOfferLowerLimit":{
                        "type":"integer",
                        "description":"The lower limit for a product offering that can be procured as part of the related bundled product offering."
                    },
                    "numberRelOfferUpperLimit":{
                        "type":"integer",
                        "description":"The upper limit for a product offering that can be procured as part of the related bundled product offering."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "BundledProductOfferingPriceRelationship":{
                "type":"object",
                "description":"Represents a bundling pricing relationship, allowing a price to be composed of multiple other prices, such as <b>recurring charge and onetime charge</b>.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID for a bundled product offering price."
                    },
                    "href":{
                        "type":"string",
                        "description":"The unique resource URL of the bundled product offering price."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the bundled product offering price."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "BundledProductSpecification":{
                "type":"object",
                "description":"A type of product specification that belongs to a grouping of product specifications made available to the market.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID for the product specification, such as <b>ChargeOfferExample</b>."
                    },
                    "href":{
                        "type":"string",
                        "description":"The unique resource URL used to get the product specification."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product specification."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "CharacteristicSpecificationBase":{
                "type":"object",
                "description":"Defines a characteristic specification.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID for the characteristic."
                    },
                    "configurable":{
                        "type":"boolean",
                        "description":"If true, the boolean indicates that the target characteristic is configurable."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the characteristic specification."
                    },
                    "extensible":{
                        "type":"boolean",
                        "description":"An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource."
                    },
                    "isUnique":{
                        "type":"boolean",
                        "description":"An indicator that specifies if a value is unique for the specification. Possible values are \"unique while value is in effect\" and \"unique whether value is in effect or not\"."
                    },
                    "maxCardinality":{
                        "type":"integer",
                        "description":"The maximum number of instances a characteristic value can take on. For example, <b>zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality</b>."
                    },
                    "minCardinality":{
                        "type":"integer",
                        "description":"The minimum number of instances a characteristic value can take on. For example, <b>zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality</b>."
                    },
                    "name":{
                        "type":"string",
                        "description":"A word, term, or phrase which distiguishes the characteristic specification from other characteristic specifications."
                    },
                    "regex":{
                        "type":"string",
                        "description":"A rule or principle represented in regular expression used to derive the value of a characteristic value."
                    },
                    "valueType":{
                        "type":"string",
                        "description":"A value that the characteristic can take on, such as a <b>number</b> or <b>text</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period of time for which a characteristic is applicable."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@valueSchemaLocation":{
                        "type":"string",
                        "description":"An optional field that provides a link to the schema describing the value type."
                    }
                }
            },
            "CharacteristicValueSpecification":{
                "type":"object",
                "description":"The specification of a value (<b>number, text or an object</b>) that can be assigned to a characteristic.",
                "properties":{
                    "isDefault":{
                        "type":"boolean",
                        "description":"If true, the boolean Indicates if the value is the default value for a characteristic."
                    },
                    "rangeInterval":{
                        "type":"string",
                        "description":"An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. Possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\"."
                    },
                    "regex":{
                        "type":"string",
                        "description":"A regular expression constraint for given value."
                    },
                    "unitOfMeasure":{
                        "type":"string",
                        "description":"A determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, <b>such as 1 foot, 1 yard, 1 mile, 1 square foot</b>. Thie could be  <b>length, surface, volume, dry measure, liquid measure, money, weight, time etc</b>."
                    },
                    "valueFrom":{
                        "type":"integer",
                        "description":"The low range value that a characteristic can take on."
                    },
                    "valueTo":{
                        "type":"integer",
                        "description":"The upper range value that a characteristic can take on."
                    },
                    "valueType":{
                        "type":"string",
                        "description":"A kind of value that the characteristic value can take on, such as <b>numeric, text</b> etc."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period of time for which a value is applicable."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class Extensible name while sub-classing."
                    }
                }
            },
            "ConstraintRef":{
                "type":"object",
                "description":"It is a constraint reference. The constraint resource represents a policy or rule applied to an entity or entity specification.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"Refers to the constraint version."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ],
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ConstraintRef":"#/components/schemas/ConstraintRef",
                        "ConstraintOracle":"#/components/schemas/ConstraintOracle"
                    }
                }
            },
            "ConstraintOracle":{
                "title":"ConstraintOracle",
                "type":"object",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ConstraintRef"
                    },
                    {
                        "properties":{
                            "stereoType":{
                                "type":"string",
                                "description":"Refers to the maps selector type value."
                            },
                            "validFor":{
                                "$ref":"#/components/schemas/TimePeriod"
                            },
                            "constraintRule":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/ConstraintRuleOracle"
                                }
                            }
                        }
                    }
                ]
            },
            "ConstraintRuleOracle":{
                "title":"ConstraintRuleOracle",
                "type":"object",
                "description":"Refers to the rules applied over a characteristic.",
                "properties":{
                    "name":{
                        "type":"string",
                        "description":"Name of the rule."
                    },
                    "valueRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ValueRelationshipOracle"
                        }
                    },
                    "selectorProductOfferingPrice":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        }
                    },
                    "productOfferingPrice":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        }
                    }
                }
            },
            "ValueRelationshipOracle":{
                "title":"ValueRelationshipOracle",
                "type":"object",
                "description":"Represents the value of a characteristic forming the constraint rule.",
                "properties":{
                    "fieldKind":{
                        "type":"string",
                        "description":"Kind of the field that represents a relationship attribute."
                    },
                    "fieldName":{
                        "type":"string",
                        "description":"Name of the field that represents a relationship attribute."
                    },
                    "fieldValue":{
                        "type":"string",
                        "description":"Value that represents a relationship attribute."
                    },
                    "operation":{
                        "type":"string",
                        "description":"Operation that represents a relationship attribute."
                    },
                    "separator":{
                        "type":"string",
                        "description":"Separator that represents a relationship attribute."
                    }
                }
            },
            "Duration":{
                "type":"object",
                "description":"A time interval in a given unit of time.",
                "properties":{
                    "amount":{
                        "type":"integer",
                        "description":"Refers to a time interval. For example, <b>number of seconds, minutes, hours</b> etc."
                    },
                    "units":{
                        "type":"string",
                        "description":"Refers to a unit of time. For example, <b>seconds, minutes, hours</b> etc."
                    }
                }
            },
            "JobStateType":{
                "type":"string",
                "description":"Valid values for the state of a batch job, such as a <b> catalog import</b>.",
                "enum":[
                    "Not Started",
                    "Running",
                    "Succeeded",
                    "Failed"
                ]
            },
            "Money":{
                "type":"object",
                "description":"A base or value business entity used to represent money.",
                "properties":{
                    "unit":{
                        "type":"string",
                        "description":"Refers to the currency. Note that ISO4217 norm uses 3 letters to define the currency."
                    },
                    "value":{
                        "type":"number",
                        "format":"float",
                        "description":"A positive floating point number."
                    }
                }
            },
            "POPAlteration":{
                "type":"object",
                "description":"An amount, usually of money, that modifies the price charged for an order item.",
                "required":[
                    "price",
                    "priceType"
                ],
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the semantics of the order item price alteration."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name given to the price alteration."
                    },
                    "priceType":{
                        "type":"string",
                        "description":"A category that describes the price such as <b>recurring, one time and usage</b>.",
                        "enum":[
                            "RECURRING",
                            "ONE_TIME",
                            "USAGE",
                            "USAGE_PREPAID",
                            "USAGE_POSTPAID",
                            "ALTERATION",
                            "ALLOWANCE",
                            "OVERAGE",
                            "ROLLOVER",
                            "OVERAGE_PRICE_PLAN",
                            "PENALTY",
                            "ONE_TIME_PRICE_PLAN",
                            "RECURRING_PRICE_PLAN",
                            "USAGE_PRICE_PLAN",
                            "ALTERATION_PRICE_PLAN"
                        ]
                    },
                    "priority":{
                        "type":"integer",
                        "description":"Priority level for applying the alteration among all the defined alterations on the order item price."
                    },
                    "recurringChargePeriod":{
                        "type":"string",
                        "description":"Defines the time period.",
                        "enum":[
                            "MONTHLY",
                            "BI_MONTHLY",
                            "QUARTERLY",
                            "SEMI_ANNUAL",
                            "ANNUAL",
                            "DAILY"
                        ]
                    },
                    "applicationDuration":{
                        "$ref":"#/components/schemas/Duration",
                        "description":"The period for which the product offering price alteration is applicable."
                    },
                    "price":{
                        "$ref":"#/components/schemas/ProductPriceValue"
                    },
                    "unitOfMeasure":{
                        "$ref":"#/components/schemas/Quantity",
                        "description":"A number and unit that represents the denominator of an alteration rate. For example, <b>for a data discount rate of $1 per 20 GB usage, the amount of unitOfMeasure will be 20 with units as GB</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering price alteration is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "POPAlteration":"#/components/schemas/POPAlteration",
                        "POPAlterationOracle":"#/components/schemas/POPAlterationOracle"
                    }
                }
            },
            "POPAlterationOracle":{
                "type":"object",
                "title":"POPAlterationOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/POPAlteration"
                    },
                    {
                        "properties":{
                            "shareAllowance":{
                                "type":"boolean",
                                "description":"Flag that indicates that the allowance is shared."
                            },
                            "allowanceValidity":{
                                "title":"AllowanceValidityOracle",
                                "type":"object",
                                "description":"Refers the the validity of allowance.",
                                "properties":{
                                    "value":{
                                        "type":"number",
                                        "description":"Indicates the amount of allowance validity."
                                    },
                                    "unit":{
                                        "type":"string",
                                        "description":"Indicates the unit of allowance validity.",
                                        "enum":[
                                            "SECOND",
                                            "MINUTE",
                                            "HOUR",
                                            "DAY",
                                            "MONTH",
                                            "ACCOUNTING_CYCLE",
                                            "BILLING_CYCLE",
                                            "EVENT_CYCLE",
                                            "CALENDAR_DAY"
                                        ]
                                    }
                                },
                                "required":[
                                    "value",
                                    "unit"
                                ]
                            },
                            "rollOverPrice":{
                                "$ref":"#/components/schemas/ProductRollOverPriceValueOracle"
                            },
                            "glid":{
                                "type":"string",
                                "description":"glid"
                            },
                            "price":{
                                "$ref":"#/components/schemas/ProductPriceValueOracle"
                            }
                        }
                    }
                ]
            },
            "POPCharge":{
                "type":"object",
                "description":"Represents a product offering price (charge) based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a product offering price that reflects an alteration).",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering price."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Last update time of the product offering price."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Lifecycle status of the product offering price."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering price."
                    },
                    "priceType":{
                        "type":"string",
                        "description":"A category that describes the price charge, such as <b>recurring, penalty, one time fee</b> etc."
                    },
                    "recurringChargePeriod":{
                        "type":"string",
                        "description":"The period type to repeat the application of the price.\nCould be month, week etc."
                    },
                    "recurringChargePeriodLength":{
                        "type":"integer",
                        "description":"The period of the recurring charge. It sets to zero if it is not applicable."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering."
                    },
                    "constraint":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ConstraintRef"
                        },
                        "description":"The constraint resource represents a policy or rule applied to the product offering price."
                    },
                    "price":{
                        "$ref":"#/components/schemas/ProductPriceValue"
                    },
                    "priceAlteration":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/POPAlteration"
                        }
                    },
                    "unitOfMeasure":{
                        "$ref":"#/components/schemas/Quantity",
                        "description":"A number and unit that represents the denominator of a rate. For example, <b>for a data charge rate of $2 per 5 GB usage, the amount of unitOfMeasure will be 5 with units as GB<b/>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering price is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "PricingLogicAlgorithm":{
                "type":"object",
                "description":"Represents an instantiation of an interface specification to external rating function (without a modeled bahavior in SID). Some of the parameters of the interface definition may be already set (such as <b>price per unit</b>), while some may be gathered during the rating process from the event (such as <b>call duration</b>) or from product characteristic values (such as <b>assigned bandwidth</b>).",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "description":{
                        "type":"string",
                        "description":"Describes the pricing logic algorithm."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name given to the pricing logic algorithm."
                    },
                    "plaSpecId":{
                        "type":"string",
                        "description":"Refers to the ID that corresponds to the pricing logic algorithm specification."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the picing logic algorithm is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "PricingLogicAlgorithm":"#/components/schemas/PricingLogicAlgorithm",
                        "PricingLogicAlgorithmOracle":"#/components/schemas/PricingLogicAlgorithmOracle"
                    }
                }
            },
            "PricingLogicAlgorithmOracle":{
                "type":"object",
                "title":"PricingLogicAlgorithmOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/PricingLogicAlgorithm"
                    },
                    {
                        "properties":{
                            "distributionMethod":{
                                "type":"string",
                                "description":"Refers to the quantity range selection."
                            },
                            "tierRange":{
                                "$ref":"#/components/schemas/TierRange"
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "PricingLogicAlgorithmOracle":"#/components/schemas/PricingLogicAlgorithmOracle"
                            }
                        }
                    }
                ]
            },
            "TierRange":{
                "title":"TierRange",
                "type":"object",
                "description":"Contains the minimum and maximum quantity for which the pricing is applicable.",
                "properties":{
                    "productOfferingPriceTierRanges":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        }
                    },
                    "minQuantity":{
                        "type":"string",
                        "description":"A minimum quantity of something, typically the total of a thing or things in number, size, value, extent, or money."
                    }
                }
            },
            "QuantityExpression":{
                "title":"QuantityExpression",
                "type":"object",
                "description":"Contains the resource and type of quantity expression.",
                "properties":{
                    "resource":{
                        "type":"string",
                        "description":"Unit value in which the quantity is being measured."
                    },
                    "type":{
                        "type":"string",
                        "description":"The category of expression elements. For example, <b>balance</b>.",
                        "enum":[
                            "BALANCE"
                        ]
                    }
                }
            },
            "ProductOffering":{
                "type":"object",
                "description":"Represents entities that are orderable from the provider of the catalog. This resource includes pricing information.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID of the product offering."
                    },
                    "href":{
                        "type":"string",
                        "description":"The unique resource URL of the product offering."
                    },
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Whether a product specification represents a single offering (<b>true</b>) or multiple offerings (<b>false</b>)."
                    },
                    "isSellable":{
                        "type":"boolean",
                        "description":"A flag that indicates if the product offer can be sold stand-alone for sale or not. If this flag is false it indicates that the offer can only be sold within a bundle."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Date and time of the last update."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering."
                    },
                    "statusReason":{
                        "type":"string",
                        "description":"A string that provides complementary information on the value of the lifecycle status attribute."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering."
                    },
                    "bundledProductOffering":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOffering"
                        },
                        "description":"A type of product offering that belongs to a grouping of product offerings made available to the market. It inherits the attributes of a product offering."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering level. For example, <b>a characteristic 'Color' might have values White, Blue, Green and Red. The list of values can be restricted to White and Blue in an associated product offering.</b> The list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingPrice":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        },
                        "description":"An amount, usually of money, that is asked for or allowed when a product offering is bought, rented or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer."
                    },
                    "productOfferingRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingRelationship"
                        },
                        "description":"Relates between the product offering and other product offerings."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A condition which makes the product offering available to customers. For instance, a product offering can be offered with multiple commitment periods."
                    },
                    "productSpecification":{
                        "$ref":"#/components/schemas/ProductSpecificationRef",
                        "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role."
                    },
                    "serviceCandidate":{
                        "$ref":"#/components/schemas/ServiceCandidateRef",
                        "description":"An entity that makes a service specification available to a catalog."
                    },
                    "eventCandidate":{
                        "$ref":"#/components/schemas/EventCandidateRef",
                        "description":"An entity that makes an event specification available to a catalog."
                    },
                    "serviceLevelAgreement":{
                        "$ref":"#/components/schemas/SLARef",
                        "description":"A type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, etc. The service level agreement is a set of appropriate procedures and targets formally or informally agreed between parties to achieve and maintain specified quality of service."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ProductOffering":"#/components/schemas/ProductOffering",
                        "ProductOfferingOracle":"#/components/schemas/ProductOfferingOracle"
                    }
                }
            },
            "ProductOfferingOracle":{
                "type":"object",
                "title":"ProductOfferingOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductOffering"
                    },
                    {
                        "properties":{
                            "priceTag":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/PriceTag"
                                }
                            },
                            "productSpecCharacteristic":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/ProductSpecificationCharacteristicOracle"
                                }
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "ProductOfferingOracle":"#/components/schemas/ProductOfferingOracle"
                            }
                        }
                    }
                ]
            },
            "ProductOffering_Create":{
                "type":"object",
                "description":"Represents entities that are orderable from the provider of the catalog. This resource includes pricing information.\nSkipped properties: id, href",
                "required":[
                    "name"
                ],
                "properties":{
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Specifies if a product specification represents a single offering (<b>true</b>) or multiple offerings (<b>false</b>)."
                    },
                    "isSellable":{
                        "type":"boolean",
                        "description":"A flag that indicates if the product offer can be sold stand-alone for sale. If this flag is false, it indicates that the offer can only be sold within a bundle."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Date and time of the last update."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering."
                    },
                    "statusReason":{
                        "type":"string",
                        "description":"Provides complementary information on the value of the lifecycle status attribute."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering."
                    },
                    "bundledProductOffering":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOffering"
                        },
                        "description":"A type of product offering that belongs to a grouping of product offerings made available to the market."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic i. aa product specification can be modified at the product offering level. For example, <b>a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering</b>. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingPrice":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        },
                        "description":"An amount, usually of money, that is asked for or allowed when a product offering is bought, rented, or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer."
                    },
                    "productOfferingRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingRelationship"
                        },
                        "description":"Relates between this product offering and other product offerings."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A condition under which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods."
                    },
                    "productSpecification":{
                        "$ref":"#/components/schemas/ProductSpecificationRef",
                        "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role."
                    },
                    "serviceCandidate":{
                        "$ref":"#/components/schemas/ServiceCandidateRef",
                        "description":"An entity that makes a service specification available to a catalog."
                    },
                    "serviceLevelAgreement":{
                        "$ref":"#/components/schemas/SLARef",
                        "description":"A type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities etc. The service level agreement is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified quality of service."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "ProductOffering_Update":{
                "type":"object",
                "description":"Represents entities that are orderable from the provider of the catalog. This resource includes pricing information.\nSkipped properties: id,href,lastUpdate,@type,@baseType",
                "properties":{
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Specifies if a product specification represents a single offering (<b>true</b>) or multiple offerings (<b>false</b>)."
                    },
                    "isSellable":{
                        "type":"boolean",
                        "description":"A flag that indicates if this product offer can be sold stand-alone for sale. If this flag is false, it indicates that the offer can only be sold within a bundle."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering."
                    },
                    "statusReason":{
                        "type":"string",
                        "description":"A string that provides complementary information on the value of the lifecycle status attribute."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering."
                    },
                    "bundledProductOffering":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOffering"
                        },
                        "description":"A type of product offering that belongs to a group of product offerings made available to the market."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering level. For example, <b>a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering</b>. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingPrice":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRefOrValue"
                        },
                        "description":"An amount, usually of money, that is asked for or allowed when a product offering is bought, rented, or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer."
                    },
                    "productOfferingRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingRelationship"
                        },
                        "description":"Relates between this product offering and other product offerings."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A condition under which a product offering is made available to customers. For instance, <b>a product offering can be offered with multiple commitment periods</b>."
                    },
                    "productSpecification":{
                        "$ref":"#/components/schemas/ProductSpecificationRef",
                        "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role."
                    },
                    "serviceCandidate":{
                        "$ref":"#/components/schemas/ServiceCandidateRef",
                        "description":"An entity that makes a service specification available to a catalog."
                    },
                    "serviceLevelAgreement":{
                        "$ref":"#/components/schemas/SLARef",
                        "description":"A type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities etc. The service level agreement is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified quality of service."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering is valid."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    }
                }
            },
            "ProductOfferingPrice":{
                "type":"object",
                "description":"It is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a product offering price that reflects an alteration). The price applied for a product offering may also be influenced by factors such as the product offering term, the customer selected etc. For example, <b>a product offering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this product offering term. A product offering may be cheaper with a 24 month commitment than with a 12 month commitment</b>.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID of the resource."
                    },
                    "href":{
                        "type":"string",
                        "description":"The unique resource URL of the product offering price."
                    },
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering price."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"A flag that indicates whether the price of a product offering is composite (<b>bundle</b>) or not."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"The last update time of the product offering price."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"The lifecycle status of the product offering price."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering price."
                    },
                    "percentage":{
                        "type":"number",
                        "format":"float",
                        "description":"Indicates the percentage to be applied if the product offering price is an alteration (such as a <b>discount</b>)."
                    },
                    "priceType":{
                        "type":"string",
                        "description":"A category that describes the price. For example, <b>recurring, discount, allowance, penalty</b> etc.",
                        "enum":[
                            "RECURRING",
                            "ONE_TIME",
                            "USAGE",
                            "USAGE_PREPAID",
                            "USAGE_POSTPAID",
                            "ALTERATION",
                            "ALLOWANCE",
                            "OVERAGE",
                            "OVERAGE_PRICE_PLAN",
                            "PENALTY",
                            "ROLLOVER",
                            "ONE_TIME_PRICE_PLAN",
                            "RECURRING_PRICE_PLAN",
                            "USAGE_PRICE_PLAN",
                            "ALTERATION_PRICE_PLAN"
                        ]
                    },
                    "recurringChargePeriodLength":{
                        "type":"integer",
                        "description":"Indicates the period of the recurring charge. It sets to zero if it is not applicable."
                    },
                    "recurringChargePeriodType":{
                        "type":"string",
                        "description":"The period to repeat the application of the price.",
                        "enum":[
                            "MONTHLY",
                            "BI_MONTHLY",
                            "QUARTERLY",
                            "SEMI_ANNUAL",
                            "ANNUAL",
                            "DAILY"
                        ]
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering price."
                    },
                    "eventCandidate":{
                        "$ref":"#/components/schemas/EventCandidateRef",
                        "description":"An entity that makes the event specification available to a catalog."
                    },
                    "rumCandidate":{
                        "$ref":"#/components/schemas/RumCandidateRef",
                        "description":"An entity that makes the RUM details available to a catalog."
                    },
                    "bundledPopRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOfferingPriceRelationship"
                        },
                        "description":"Represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship."
                    },
                    "constraint":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ConstraintRef"
                        },
                        "description":"Represents a policy or a rule applied to product offering price."
                    },
                    "popRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRelationship"
                        },
                        "description":"Contains the product offering prices related to the particular product offering price. For example, a price alteration such as <b>allowance or discount.</b>"
                    },
                    "price":{
                        "$ref":"#/components/schemas/Money",
                        "description":"The amount of money that characterizes the price."
                    },
                    "pricingLogicAlgorithm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/PricingLogicAlgorithm"
                        },
                        "description":"Represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as <b>price per unit</b>) and some may be gathered during the rating process from the event (such as <b>call duration</b>) or from product characteristic values (such as <b>assigned bandwidth</b>)."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering price level. The list of values in product specification characteristic value use is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A list of conditions under which a product offering price is made available to customers. For instance, <b>a product offering price can be offered with multiple commitment periods</b>."
                    },
                    "tax":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/TaxItem"
                        },
                        "description":"An amount of money levied on the price of a product by a legislative body."
                    },
                    "unitOfMeasure":{
                        "$ref":"#/components/schemas/Quantity",
                        "description":"A number and unit that represents the quantity of a product offering that is available at the offered price. It is dependent on the priceType. For example, <b>price, rate or discount</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering price is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"The immediate base class type of the product offering price."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "description":"Refers to the hyperlink to the schema describing this resource."
                    },
                    "@type":{
                        "type":"string",
                        "description":"The class type of this product offering price."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ProductOfferingPrice":"#/components/schemas/ProductOfferingPrice",
                        "ProductOfferingPriceOracle":"#/components/schemas/ProductOfferingPriceOracle"
                    }
                }
            },
            "ProductOfferingPrice_Create":{
                "type":"object",
                "description":"It is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a product offering Price that reflects an alteration). The price applied for a product offering may also be influenced by the product Offering term that the customer has selected. For example, <b>a product offering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this product Offering term. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment</b>.\nSkipped properties: id,href",
                "required":[
                    "name"
                ],
                "properties":{
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering price."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"A flag that indicates whether the price of a product offering is composite (<b>bundle</b>) or not."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Last update time of the product offering price."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Lifecycle status of the product offering price."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering price."
                    },
                    "percentage":{
                        "type":"number",
                        "format":"float",
                        "description":"Percentage to apply if this product offering price is an alteration (such as a <b>discount</b>)."
                    },
                    "priceType":{
                        "type":"string",
                        "description":"A category that describes the price, such as <b>recurring, discount, allowance, penalty</b> etc."
                    },
                    "recurringChargePeriodLength":{
                        "type":"integer",
                        "description":"The period of the recurring charge. It sets to zero if it is not applicable."
                    },
                    "recurringChargePeriodType":{
                        "type":"string",
                        "description":"The period to repeat the application of the price."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering price."
                    },
                    "bundledPopRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOfferingPriceRelationship"
                        },
                        "description":"Represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship."
                    },
                    "constraint":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ConstraintRef"
                        },
                        "description":"Represents a policy or a rule applied to product offering price."
                    },
                    "popRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRelationship"
                        },
                        "description":"Contains the product offering prices related to the particular product offering price. For example, <b>a price alteration such as allowance or discount/b>."
                    },
                    "price":{
                        "$ref":"#/components/schemas/Money",
                        "description":"The amount of money that characterizes the price."
                    },
                    "pricingLogicAlgorithm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/PricingLogicAlgorithm"
                        },
                        "description":"Represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as <b>price per unit</b>) and some may be gathered during the rating process from the event (such as <b>call duration</b>) or from product characteristic values (such as <b>assigned bandwidth</b>)."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering price level. The list of values in product specification characteristic value use is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A list of conditions under which a product offering price is made available to customers. For example, <b>a product offering price can be offered with multiple commitment periods</b>."
                    },
                    "tax":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/TaxItem"
                        },
                        "description":"An amount of money levied on the price of a product by a legislative body."
                    },
                    "unitOfMeasure":{
                        "$ref":"#/components/schemas/Quantity",
                        "description":"A number and unit that represents how many of an product offering is available at the offered price. Its meaning is dependent on the priceType. For example, <b>price, a rate or discount</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering price is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"The immediate base class type of the product offering price."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "description":"Refers to the hyperlink to the schema describing the resource."
                    },
                    "@type":{
                        "type":"string",
                        "description":"The class type of the Product Offering Price."
                    }
                }
            },
            "ProductOfferingPrice_Update":{
                "type":"object",
                "description":"It is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a product offering price that reflects an alteration). The price, applied for a product offering may also be influenced by the product offering term that the customer has selected. For example, <b>a product offering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this product offering term. A product offering may be cheaper with a 24 month commitment than with a 12 month commitment</b>.\nSkipped properties: id,href,lastUpdate,@type,@baseType",
                "properties":{
                    "description":{
                        "type":"string",
                        "description":"Description of the product offering price."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"A flag that indicates whether the price of a product offering is a composite (<b>bundle</b>) or not."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Lifecycle status of the product offering price."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering price."
                    },
                    "percentage":{
                        "type":"number",
                        "format":"float",
                        "description":"Percentage to be applied if the product offering price is an alteration (such as a <b>discount</b>)."
                    },
                    "priceType":{
                        "type":"string",
                        "description":"A category that describes the price, such as <b>recurring, discount, allowance, penalty</b> etc."
                    },
                    "recurringChargePeriodLength":{
                        "type":"integer",
                        "description":"The period of the recurring charge. It sets to zero if it is not applicable."
                    },
                    "recurringChargePeriodType":{
                        "type":"string",
                        "description":"The period to repeat the application of the price."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product offering price."
                    },
                    "bundledPopRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductOfferingPriceRelationship"
                        },
                        "description":"Represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship."
                    },
                    "constraint":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ConstraintRef"
                        },
                        "description":"Represents a policy or a rule applied to the product offering price."
                    },
                    "popRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingPriceRelationship"
                        },
                        "description":"Contains product offering prices related to the particular Product Offering Price. For example, a price alteration such as <b>allowance or discount</b>."
                    },
                    "price":{
                        "$ref":"#/components/schemas/Money",
                        "description":"The amount of money that characterizes the price."
                    },
                    "pricingLogicAlgorithm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/PricingLogicAlgorithm"
                        },
                        "description":"Represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as <b>price per unit</b>) and some may be gathered during the rating process from the event (such as <b>call duration</b>) or from product characteristic values (such as <b>assigned bandwidth</b>)."
                    },
                    "prodSpecCharValueUse":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicValueUse"
                        },
                        "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering price level. The list of values in product specification characteristic value use is a strict subset of the list of values as defined in the corresponding product specification characteristics."
                    },
                    "productOfferingTerm":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductOfferingTerm"
                        },
                        "description":"A list of conditions under which a product offering price is made available to customers. For example, a product offering price can be offered with multiple commitment periods."
                    },
                    "tax":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/TaxItem"
                        },
                        "description":"An amount of money levied on the price of a product by a legislative body."
                    },
                    "unitOfMeasure":{
                        "$ref":"#/components/schemas/Quantity",
                        "description":"A number and unit that represents how many of a product offering is available at the offered price. Its meaning is dependent on the priceType. For example, <b>price, a rate or discount</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering price is valid."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "description":"Refers to the hyperlink to the schema describing this resource."
                    }
                }
            },
            "ProductOfferingPriceRef":{
                "type":"object",
                "description":"Refers to an amount, usually of money, that is asked for or allowed when a product offering is bought, rented, or leased.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ],
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef"
                    }
                }
            },
            "ProductOfferingPriceRefOrValue":{
                "type":"object",
                "oneOf":[
                    {
                        "$ref":"#/components/schemas/ProductOfferingPrice"
                    },
                    {
                        "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                    },
                    {
                        "$ref":"#/components/schemas/ProductOfferingPriceSelectorOracle"
                    },
                    {
                        "$ref":"#/components/schemas/ProductOfferingPriceRef"
                    }
                ],
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ProductOfferingPrice":"#/components/schemas/ProductOfferingPrice",
                        "ProductOfferingPriceOracle":"#/components/schemas/ProductOfferingPriceOracle",
                        "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef",
                        "ProductOfferingPriceRefOracle":"#/components/schemas/ProductOfferingPriceRefOracle",
                        "ProductOfferingPriceSelectorOracle":"#/components/schemas/ProductOfferingPriceSelectorOracle"
                    }
                }
            },
            "ProductOfferingPriceOracle":{
                "type":"object",
                "title":"ProductOfferingPriceOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductOfferingPrice"
                    },
                    {
                        "properties":{
                            "serviceCandidate":{
                                "$ref":"#/components/schemas/ServiceCandidateRef"
                            },
                            "priceAlteration":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/POPAlterationOracle"
                                }
                            },
                            "PricingLogicAlgorithmOracle":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/PricingLogicAlgorithmOracle"
                                }
                            },
                            "maxQuantity":{
                                "type":"string",
                                "description":"A maximum quantity of something, typically the total of a thing or things in number, size, value, extent, or money."
                            },
                            "quantityExpression":{
                                "$ref":"#/components/schemas/QuantityExpression"
                            },
                            "taxOracle":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/TaxItemOracle"
                                }
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "ProductOfferingPriceOracle":"#/components/schemas/ProductOfferingPriceOracle"
                            }
                        }
                    }
                ]
            },
            "ProductOfferingPriceSelectorOracle":{
                "type":"object",
                "title":"ProductOfferingPriceSelectorOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductOfferingPriceOracle"
                    }
                ]
            },
            "ProductOfferingPriceRefOracle":{
                "type":"object",
                "title":"ProductOfferingPriceRefOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductOfferingPriceRef"
                    },
                    {
                        "properties":{
                            "eventCandidate":{
                                "$ref":"#/components/schemas/EventCandidateRef",
                                "description":"An entity that makes an event specification available to a catalog."
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "ProductOfferingPriceRefOracle":"#/components/schemas/ProductOfferingPriceRefOracle"
                            }
                        }
                    }
                ]
            },
            "ProductOfferingPriceRelationship":{
                "type":"object",
                "description":"Describes a non-composite relationship between product offering prices. For example, <b>one price might be a discount alteration for another price</b>.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "relationshipType":{
                        "type":"string",
                        "description":"Refers to the type of relationship. For example, <b>override, discount</b> etc."
                    },
                    "role":{
                        "type":"string",
                        "description":"The association role for the source product offering price."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                }
            },
            "ProductOfferingRef":{
                "type":"object",
                "description":"Refers to a product offering. A product offering represents entities that are orderable from the provider of the catalog. This resource includes pricing information.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "ProductOfferingRelationship":{
                "type":"object",
                "description":"A relationship between two product Offerings.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers ri the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "relationshipType":{
                        "type":"string",
                        "description":"Type of relationship between product offerings. For example, <b>requires, exchangableTo, optionalFor</b> etc."
                    },
                    "role":{
                        "type":"string",
                        "description":"The association role for the source product offering."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the relationship is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                }
            },
            "ProductOfferingTerm":{
                "type":"object",
                "description":"A condition under which a product offering is made available to customers. For instance, <b>a product offering can be offered with multiple commitment periods</b>.",
                "properties":{
                    "description":{
                        "type":"string",
                        "description":"Describes the product offering term."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product offering term."
                    },
                    "duration":{
                        "$ref":"#/components/schemas/Duration",
                        "description":"Duration of the product offering term."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product offering term is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "ProductPriceValue":{
                "type":"object",
                "description":"Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for price alteration.",
                "properties":{
                    "percentage":{
                        "type":"number",
                        "format":"float",
                        "description":"Percentage to apply for product offer price alteration."
                    },
                    "taxCategory":{
                        "type":"string",
                        "description":"Refers to the tax category."
                    },
                    "taxRate":{
                        "type":"number",
                        "format":"float",
                        "description":"Refers ro the tax rate."
                    },
                    "dutyFreeAmount":{
                        "$ref":"#/components/schemas/Money",
                        "description":"Refers to the excluded amount in all taxes, which are expressed in the given currency."
                    },
                    "taxIncludedAmount":{
                        "$ref":"#/components/schemas/Money",
                        "description":"Refers to the included amount in all taxes, which are expressed in the given currency."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "ProductPriceValue":"#/components/schemas/ProductPriceValue",
                        "ProductPriceValueOracle":"#/components/schemas/ProductPriceValueOracle"
                    }
                }
            },
            "ProductPriceValueOracle":{
                "type":"object",
                "title":"ProductPriceValueOracle",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductPriceValue"
                    },
                    {
                        "properties":{
                            "priceTag":{
                                "$ref":"#/components/schemas/PriceTag"
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "ProductPriceValueOracle":"#/components/schemas/ProductPriceValueOracle"
                            }
                        }
                    }
                ]
            },
            "ProductRollOverPriceValueOracle":{
                "type":"object",
                "title":"ProductRollOverPriceValueOracle",
                "properties":{
                    "rolloverCount":{
                        "type":"number",
                        "description":"Indicates the count for the rollover price."
                    },
                    "rolloverUnits":{
                        "type":"number",
                        "description":"Indicates the amount of rollover."
                    },
                    "units":{
                        "type":"string",
                        "description":"Indicates the unit of rollover."
                    },
                    "rolloverMaxUnits":{
                        "type":"number",
                        "description":"Indicates a positive maxvalue number for rolloverprice."
                    }
                }
            },
            "ProductSpecification":{
                "type":"object",
                "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The product specification's unique ID."
                    },
                    "href":{
                        "type":"string",
                        "description":"Refers to the product specification."
                    },
                    "brand":{
                        "type":"string",
                        "description":"Refers to the product specification's manufacturer or trademark."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the product specification."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Whether a product specification represents a single specification (<b>true</b>) or multiple specifications (<b>false</b>)."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Date and time of the last update."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product specification."
                    },
                    "productNumber":{
                        "type":"string",
                        "description":"An identification number assigned to uniquely identify the specification."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product specification."
                    },
                    "bundledProductSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductSpecification"
                        },
                        "description":"A type of product specification that belongs to a grouping of product specifications made available to the market."
                    },
                    "productSpecCharacteristic":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristic"
                        },
                        "description":"A characteristic quality or distinctive feature of a product specification.  The characteristic can be take on a discrete value, such as color, and can take on a range of values. (<b>For example, sensitivity of 100-240 mV</b>), or can be derived from a formula (<b>for example, usage time (hrs) = 30 - talk time *3</b>). Certain characteristics, such as color, may be configured during the ordering or other other processes."
                    },
                    "productSpecificationRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationRelationship"
                        },
                        "description":"A migration, substitution, dependency or exclusivity relationship between or among product specifications."
                    },
                    "relatedParty":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/RelatedParty"
                        },
                        "description":"Defines a party or party role linked to a specific entity."
                    },
                    "resourceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ResourceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "serviceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ServiceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "targetProductSchema":{
                        "$ref":"#/components/schemas/TargetProductSchema",
                        "description":"A target product schema reference. The product specification describes the reference object to the schema and type of target product, which is described by product specification."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "ProductSpecificationOracle":{
                "type":"object",
                "description":"Details of the product specification.",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductSpecification"
                    },
                    {
                        "properties":{
                            "pricingType":{
                                "type":"string",
                                "description":"Refers to the type of pricing."
                            },
                            "productSpecCharacteristic":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/ProductSpecificationCharacteristicOracle"
                                }
                            }
                        }
                    }
                ]
            },
            "ProductSpecification_Create":{
                "type":"object",
                "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.\nSkipped properties: id,href",
                "required":[
                    "name"
                ],
                "properties":{
                    "brand":{
                        "type":"string",
                        "description":"Refers to the product specification's manufacturer or trademark."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the product specification."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Whether a product specification represents a single specification (<b>true</b>) or multiple specifications (<b>false</b>)."
                    },
                    "lastUpdate":{
                        "type":"string",
                        "format":"date-time",
                        "description":"Date and time of the last update."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product specification."
                    },
                    "productNumber":{
                        "type":"string",
                        "description":"An identification number assigned to uniquely identity the specification."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product specification."
                    },
                    "bundledProductSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductSpecification"
                        },
                        "description":"A type of product specification that belongs to a grouping of product specifications made available to the market."
                    },
                    "productSpecCharacteristic":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristic"
                        },
                        "description":"A characteristic quality or distinctive feature of a product specification. The characteristic can be take on a discrete value, such as color, a range of values, (<b>for example, sensitivity of 100-240 mV</b>), or can be derived from a formula (<b>for example, usage time (hrs) = 30 - talk time *3<b>). Certain characteristics, such as color, may be configured during ordering or other process."
                    },
                    "productSpecificationRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationRelationship"
                        },
                        "description":"A migration, substitution, dependency or exclusivity relationship between or among product specifications."
                    },
                    "relatedParty":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/RelatedParty"
                        },
                        "description":"Defines party or party role linked to a specific entity."
                    },
                    "resourceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ResourceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "serviceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ServiceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "targetProductSchema":{
                        "$ref":"#/components/schemas/TargetProductSchema",
                        "description":"A target product schema reference. The product specification describes the reference object to the schema and type of target product."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "ProductSpecification_Update":{
                "type":"object",
                "description":"Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.\nSkipped properties: id,href,lastUpdate,@type,@baseType",
                "properties":{
                    "brand":{
                        "type":"string",
                        "description":"Refers to the product specification's manufacturer or trademark."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the product specification."
                    },
                    "isBundle":{
                        "type":"boolean",
                        "description":"Whether a product specification represents a single specification (<b>true</b>) or multiple specifications (<b>false</b>)."
                    },
                    "lifecycleStatus":{
                        "type":"string",
                        "description":"Indicates the current lifecycle status."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the product specification."
                    },
                    "productNumber":{
                        "type":"string",
                        "description":"An identification number assigned to uniquely identity the specification."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product specification."
                    },
                    "bundledProductSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/BundledProductSpecification"
                        },
                        "description":"A type of product specification that belongs to a grouping of product specifications made available to the market."
                    },
                    "productSpecCharacteristic":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristic"
                        },
                        "description":"A characteristic quality or distinctive feature of a product specification.  The characteristic can be take on a discrete value, such as color, or on a range of values, (<b>for example, sensitivity of 100-240 mV<b>), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during ordering or other processes."
                    },
                    "productSpecificationRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationRelationship"
                        },
                        "description":"A migration, substitution, dependency or exclusivity relationship between or among product specifications."
                    },
                    "relatedParty":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/RelatedParty"
                        },
                        "description":"Defines party or party role linked to a specific entity."
                    },
                    "resourceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ResourceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "serviceSpecification":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ServiceSpecificationRef"
                        },
                        "description":"Required to realize a product specification."
                    },
                    "targetProductSchema":{
                        "$ref":"#/components/schemas/TargetProductSchema",
                        "description":"A target product schema reference. The product specification describes the reference object to the schema and type of target product."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification is valid."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    }
                }
            },
            "ProductSpecificationCharacteristic":{
                "type":"object",
                "description":"A characteristic quality or distinctive feature of a  product specification.  The characteristic can be take on a discrete value, such as color, a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during ordering or other processes.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The unique ID for the characteristic."
                    },
                    "configurable":{
                        "type":"boolean",
                        "description":"Indicates if the target Characteristic is configurable (<b>true</b>) or not (<b>false</b>)."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the characteristic specification."
                    },
                    "extensible":{
                        "type":"boolean",
                        "description":"An indicator that specifies if the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource."
                    },
                    "isUnique":{
                        "type":"boolean",
                        "description":"An indicator that specifies if a value is unique for the specification. Possible values may be \"unique while value is in effect\" and \"unique whether value is in effect or not\""
                    },
                    "maxCardinality":{
                        "type":"integer",
                        "description":"The maximum number of instances a characteristic value can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality."
                    },
                    "minCardinality":{
                        "type":"integer",
                        "description":"The minimum number of instances a characteristic value can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality."
                    },
                    "name":{
                        "type":"string",
                        "description":"A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications."
                    },
                    "regex":{
                        "type":"string",
                        "description":"A rule or principle represented in regular expression used to derive the value of a characteristic value."
                    },
                    "valueType":{
                        "type":"string",
                        "description":"A kind of value that the characteristic can take on, such as <b>numeric, text</b> etc."
                    },
                    "productSpecCharRelationship":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicRelationship"
                        },
                        "description":"An aggregation, migration, substitution, dependency or exclusivity relationship between or among specification characteristics."
                    },
                    "productSpecCharacteristicValue":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/CharacteristicValueSpecification"
                        },
                        "description":"Defines a set of attributes, each of which can be assigned to a corresponding set of attributes in a product specification characteristic object. The values of the attributes in the product specification characteristic value object describe the values of the attributes that a corresponding product specification characteristic object can take on."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period of time for which a characteristic is applicable."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@valueSchemaLocation":{
                        "type":"string",
                        "description":"An optional field that provides a link to the schema describing the value type."
                    }
                }
            },
            "ProductSpecificationCharacteristicOracle":{
                "type":"object",
                "description":"Details of the product specification characteristic.",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/ProductSpecificationCharacteristic"
                    },
                    {
                        "properties":{
                            "cardinality":{
                                "type":"string",
                                "description":"Cardinality of the specification."
                            },
                            "productSpecCharacteristicValue":{
                                "type":"array",
                                "items":{
                                    "$ref":"#/components/schemas/CharacteristicValueSpecificationOracle"
                                }
                            }
                        }
                    }
                ]
            },
            "ProductSpecificationCharacteristicRelationship":{
                "type":"object",
                "description":"An aggregation, migration, substitution, dependency or exclusivity relationship between/among product specification characteristics.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"The identifier of the associated product specification."
                    },
                    "href":{
                        "type":"string",
                        "description":"Refers to the hyperlink to the target product specification."
                    },
                    "charSpecSeq":{
                        "type":"integer",
                        "description":"The order in which a characteristic specification appears within another characteristic specification that defines a grouping of characteristic specifications.\n\nFor example, <b>a grouping may represent the name of an individual. The given name is first, the middle name is second, and the last name is third</b>."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the target product specification characteristic."
                    },
                    "relationshipType":{
                        "type":"string",
                        "description":"Type of relationship such as aggregation, migration, substitution, dependency, exclusivity."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification characteristic relationship is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                }
            },
            "ProductSpecificationCharacteristicValueUse":{
                "type":"object",
                "description":"Product offering uses the product specification characteristic value to add additional attributes to override properties of similar values contained in the product specification characteristic value. The corresponding characteristics addressed by this object must exist in the corresponding product specification. The available characteristic values for a product specification characteristic in a product specification can be modified at the product offering price level. The list of values in product specification characteristic value use is a strict subset of the list of values as defined in the corresponding product specification characteristics.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Unique ID for the characteristic."
                    },
                    "description":{
                        "type":"string",
                        "description":"A brief description of the product specification characteristic."
                    },
                    "maxCardinality":{
                        "type":"integer",
                        "description":"The maximum number of instances a characteristic value can take on. For example, <b>zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality</b>."
                    },
                    "minCardinality":{
                        "type":"integer",
                        "description":"The minimum number of instances a characteristic value can take on. For example, <b>zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality</b>."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the associated product specification characteristic."
                    },
                    "valueType":{
                        "type":"string",
                        "description":"A kind of value that the characteristic can take on, such as <b>numeric, text</b> etc."
                    },
                    "productSpecCharacteristicValue":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/CharacteristicValueSpecification"
                        },
                        "description":"A number or text that can be assigned to a product specification characteristic."
                    },
                    "productSpecification":{
                        "$ref":"#/components/schemas/ProductSpecificationRef",
                        "description":"A detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification characteristic is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class Extensible name while sub-classing."
                    }
                }
            },
            "CharacteristicValueSpecificationOracle":{
                "type":"object",
                "description":"Details of the characteristic value specification.",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/CharacteristicValueSpecification"
                    },
                    {
                        "properties":{
                            "values":{
                                "type":"string",
                                "description":"Holds the value of the specification."
                            }
                        }
                    }
                ]
            },
            "ProductSpecificationRef":{
                "type":"object",
                "description":"A detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the product specification."
                    },
                    "productSpecCharacteristic":{
                        "type":"array",
                        "items":{
                            "$ref":"#/components/schemas/ProductSpecificationCharacteristicOracle"
                        }
                    },
                    "targetProductSchema":{
                        "$ref":"#/components/schemas/TargetProductSchema",
                        "description":"A target product schema reference. The product specification desctibes the reference object to the schema and type of target product."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "ProductSpecificationRelationship":{
                "type":"object",
                "description":"A migration, substitution, dependency or exclusivity relationship between or among product specifications.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "relationshipType":{
                        "type":"string",
                        "description":"Type of relationship such as <b>migration, substitution, dependency, exclusivity</b>."
                    },
                    "validFor":{
                        "$ref":"#/components/schemas/TimePeriod",
                        "description":"The period for which the product specification relationship is valid."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                }
            },
            "Quantity":{
                "type":"object",
                "description":"An amount in a given unit.",
                "properties":{
                    "amount":{
                        "default":1,
                        "type":"number",
                        "format":"float",
                        "description":"Numeric value in a given unit."
                    },
                    "units":{
                        "type":"string",
                        "description":"Refers to a unit."
                    }
                }
            },
            "RelatedParty":{
                "type":"object",
                "description":"Defines party or party role linked to a specific entity.",
                "required":[
                    "@referredType",
                    "id"
                ],
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "role":{
                        "type":"string",
                        "description":"Role played by the related party."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                }
            },
            "ResourceCandidateRef":{
                "type":"object",
                "description":"An entity that makes a resource specification available to a catalog. A resource candidate and its associated resource specification may be published in any number of resource catalogs, or in none.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"The version of the resource candidate."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "ResourceSpecificationRef":{
                "type":"object",
                "description":"Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory. They are typically consumed or used by services (for example a physical port assigned to a service) or contribute to the realization of a Product (for example, a SIM card). They can be drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, content and information, and technology components.\nA resource specification is an abstract base class for representing a generic means for implementing a particular type of resource. In essence, a resource specification defines the common attributes and relationships of a set of related resources, while resource defines a specific instance that is based on a particular resource specification.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"The version of the resource specification."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "SLARef":{
                "type":"object",
                "description":"A type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified quality of service.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Unique identifier of service level agreement."
                    },
                    "href":{
                        "type":"string",
                        "description":"Reference of the service level agreement."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the service level agreement."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "ServiceCandidateRef":{
                "type":"object",
                "description":"An entity that makes a service specification available to a catalog.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the service candidate."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "EventCandidateRef":{
                "type":"object",
                "description":"An entity that makes an event specification available to a catalog.",
                "properties":{
                    "name":{
                        "type":"string",
                        "description":"Name of the event."
                    }
                },
                "required":[
                    "name"
                ]
            },
            "RumCandidateRef":{
                "type":"object",
                "description":"An entity that makes a RUM details available to a catalog.",
                "properties":{
                    "name":{
                        "type":"string",
                        "description":"Name of the RUM."
                    }
                },
                "required":[
                    "name"
                ]
            },
            "ServiceSpecificationRef":{
                "type":"object",
                "description":"Contains the service specifications required to realize a product specification.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "name":{
                        "type":"string",
                        "description":"Name of the related entity."
                    },
                    "version":{
                        "type":"string",
                        "description":"Version of the service specification."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    },
                    "@referredType":{
                        "type":"string",
                        "description":"The actual type of the target instance when needed for disambiguation."
                    }
                },
                "required":[
                    "id"
                ]
            },
            "TargetProductSchema":{
                "type":"object",
                "description":"The reference object to the schema and type of target product which is described by product specification.",
                "required":[
                    "@schemaLocation",
                    "@type"
                ],
                "properties":{
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"Provides a link to the schema describing the target product."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Class type of the target product."
                    }
                }
            },
            "TaxItem":{
                "type":"object",
                "description":"Created for each tax rate and tax type used in the bill.",
                "properties":{
                    "id":{
                        "type":"string",
                        "description":"Refers to the unique ID."
                    },
                    "href":{
                        "type":"string",
                        "format":"uri",
                        "description":"Refers to the hyperlink."
                    },
                    "taxCategory":{
                        "type":"string",
                        "description":"Refers to the tax category."
                    },
                    "taxRate":{
                        "type":"number",
                        "format":"float",
                        "description":"Applied rate of the tax."
                    },
                    "taxAmount":{
                        "$ref":"#/components/schemas/Money",
                        "description":"Amount of tax expressed in the given currency."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class extensible name while sub-classing."
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "TaxItem":"#/components/schemas/TaxItem",
                        "TaxItemOracle":"#/components/schemas/TaxItemOracle"
                    }
                }
            },
            "TaxItemOracle":{
                "title":"TaxItemOracle",
                "type":"object",
                "description":"An amount of money levied on the price of a product by a legislative body.",
                "allOf":[
                    {
                        "$ref":"#/components/schemas/TaxItem"
                    },
                    {
                        "properties":{
                            "taxTime":{
                                "type":"string",
                                "description":"A tax time of the tax rate."
                            }
                        },
                        "discriminator":{
                            "propertyName":"@type",
                            "mapping":{
                                "TaxItemOracle":"#/components/schemas/TaxItemOracle"
                            }
                        }
                    }
                ]
            },
            "TimePeriod":{
                "type":"object",
                "description":"A period of time, either as a deadline (endDateTime only), a startDateTime only, or both.",
                "properties":{
                    "endDateTime":{
                        "example":"1985-04-12T23:20:50.52Z",
                        "type":"string",
                        "format":"date-time",
                        "description":"End of the time period, using IETC-RFC-3339 format."
                    },
                    "startDateTime":{
                        "example":"1985-04-12T23:20:50.52Z",
                        "type":"string",
                        "format":"date-time",
                        "description":"Start of the time period, using IETC-RFC-3339 format."
                    }
                }
            },
            "PriceTag":{
                "title":"PriceTag",
                "type":"object",
                "description":"Ability to show unit price on the invoice.",
                "properties":{
                    "attributeName":{
                        "type":"string",
                        "description":"Refers to the attribute name of the offer plan."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Refers to the atType for price tag."
                    },
                    "defaultValue":{
                        "type":"string",
                        "description":"Refers to the default value of the tag item."
                    },
                    "tagName":{
                        "type":"string",
                        "description":"Name of the tag."
                    },
                    "tagScope":{
                        "type":"string",
                        "description":"Scope of the tag."
                    },
                    "description":{
                        "type":"string",
                        "description":"Description of the tag."
                    },
                    "count":{
                        "type":"integer",
                        "description":"Count of the price tag"
                    }
                },
                "discriminator":{
                    "propertyName":"@type",
                    "mapping":{
                        "PriceTag":"#/components/schemas/PriceTag"
                    }
                }
            },
            "Error":{
                "description":"Used when an API throws an error, typically with an HTTP error response-code.",
                "type":"object",
                "required":[
                    "code",
                    "reason"
                ],
                "properties":{
                    "code":{
                        "type":"string",
                        "description":"Application relevant detail, defined in the API or a common list."
                    },
                    "reason":{
                        "type":"string",
                        "description":"Explanation of the reason for the error which can be shown to a client user."
                    },
                    "message":{
                        "type":"string",
                        "description":"More details and corrective actions related to the error which can be shown to a client user."
                    },
                    "status":{
                        "type":"string",
                        "description":"HTTP error code extension."
                    },
                    "referenceError":{
                        "type":"string",
                        "format":"uri",
                        "description":"URI of documentation describing the error."
                    },
                    "@baseType":{
                        "type":"string",
                        "description":"Defines the super-class while sub-classing."
                    },
                    "@schemaLocation":{
                        "type":"string",
                        "format":"uri",
                        "description":"A URI to a JSON-Schema file that defines additional attributes and relationships."
                    },
                    "@type":{
                        "type":"string",
                        "description":"Defines the sub-class entity name while sub-classing."
                    }
                }
            }
        }
    }
}