{ "openapi": "3.0.1", "info": { "title": "TMF 637 Product Inventory Management", "description": "**TMF API Reference : TMF 637 - Product Inventory Management** Release : 19.0 - June 2019\n\nThe Product Inventory Management API provides standardized mechanism for product inventory management such as creation, update and retrieval of the representation of a product in the inventory. It also allows the notification of events related to product lifecycle **Product resource** A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s). Product Inventory API performs the following operations on product : - Retrieval of a product or a collection of products depending on filter criteria - Partial update of a product (including updating rules and for administration purpose) - Creation of a product (including default values and creation rules and for administration purpose) - Deletion of a product (for administration purposes) - Notification of events on product. Copyright \u00a9 TM Forum 2019. All Rights Reserved ", "license": { "name": "Apache 2.0", "url": "https://osl.etsi.org" }, "version": "4.0.0" }, "externalDocs": { "description": "TMF API Tables", "url": "https://www.tmforum.org/oda/open-apis/table" }, "servers": [ { "url": "https://portal.openslice.eu/tmf-api", "description": "Generated server url" } ], "security": [ { "security_auth": [] } ], "paths": { "/productInventoryManagement/v4/product": { "get": { "tags": [ "product" ], "summary": "List or find Product objects", "description": "This operation list or find Product entities", "operationId": "listProduct", "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated properties to be provided in response", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "Requested index for start of resources to be provided in response", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Requested number of resources to be provided in response", "required": false, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "200": { "description": "Success", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } }, "post": { "tags": [ "product" ], "summary": "Creates a Product", "description": "This operation creates a Product entity.", "operationId": "createProduct", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductCreate" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Created", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/listener/productStateChangeEvent": { "post": { "tags": [ "notification listeners (client side)" ], "summary": "Client listener for entity ProductStateChangeEvent", "description": "Example of a client listener for receiving the notification ProductStateChangeEvent", "operationId": "listenToProductStateChangeEvent", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductStateChangeEvent" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Notified", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/listener/productDeleteEvent": { "post": { "tags": [ "notification listeners (client side)" ], "summary": "Client listener for entity ProductDeleteEvent", "description": "Example of a client listener for receiving the notification ProductDeleteEvent", "operationId": "listenToProductDeleteEvent", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductDeleteEvent" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Notified", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/listener/productCreateEvent": { "post": { "tags": [ "notification listeners (client side)" ], "summary": "Client listener for entity ProductCreateEvent", "description": "Example of a client listener for receiving the notification ProductCreateEvent", "operationId": "listenToProductCreateEvent", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductCreateEvent" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Notified", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/listener/productBatchEvent": { "post": { "tags": [ "notification listeners (client side)" ], "summary": "Client listener for entity ProductBatchEvent", "description": "Example of a client listener for receiving the notification ProductBatchEvent", "operationId": "listenToProductBatchEvent", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductBatchEvent" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Notified", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/listener/productAttributeValueChangeEvent": { "post": { "tags": [ "notification listeners (client side)" ], "summary": "Client listener for entity ProductAttributeValueChangeEvent", "description": "Example of a client listener for receiving the notification ProductAttributeValueChangeEvent", "operationId": "listenToProductAttributeValueChangeEvent", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductAttributeValueChangeEvent" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Notified", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/hub": { "post": { "tags": [ "events subscription" ], "summary": "Register a listener", "description": "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", "operationId": "registerListener", "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscriptionInput" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "201": { "description": "Subscribed", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/productInventoryManagement/v4/product/{id}": { "get": { "tags": [ "product" ], "summary": "Retrieves a Product by ID", "description": "This operation retrieves a Product entity. Attribute selection is enabled for all first level attributes.", "operationId": "retrieveProduct", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Product", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated properties to provide in response", "required": false, "schema": { "type": "string" } } ], "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "200": { "description": "Success", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } }, "delete": { "tags": [ "product" ], "summary": "Deletes a Product", "description": "This operation deletes a Product entity.", "operationId": "deleteProduct", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Product", "required": true, "schema": { "type": "string" } } ], "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "204": { "description": "Deleted" }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } }, "patch": { "tags": [ "product" ], "summary": "Updates partially a Product", "description": "This operation updates partially a Product entity.", "operationId": "patchProduct", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Product", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ProductUpdate" } } }, "required": true }, "responses": { "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "200": { "description": "Updated", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } }, "/hub/{id}": { "delete": { "tags": [ "events subscription" ], "summary": "Unregister a listener", "description": "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", "operationId": "unregisterListener", "parameters": [ { "name": "id", "in": "path", "description": "The id of the registered listener", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Deleted" }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "Bad request", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "405": { "description": "Method not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "string" } } } } } } } }, "components": { "schemas": { "AgreementItemRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "atReferredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "id": { "type": "string", "description": "Unique identifier of a related entity." }, "agreementItemId": { "type": "string" }, "@referredType": { "type": "string" } }, "description": "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications." }, "BillingAccountRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "atBaseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "atSchemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "atType": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "atReferredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Reference of the billing account" }, "name": { "type": "string", "description": "Name of the billing account" }, "id": { "type": "string", "description": "Unique identifier of the billing account" }, "@referredType": { "type": "string" } }, "description": "BillingAccount reference. A BillingAccount is a detailed description of a bill structure." }, "Characteristic": { "required": [ "value" ], "type": "object", "properties": { "uuid": { "type": "string" }, "value": { "type": "object", "description": "The value of the characteristic" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "valueType": { "type": "string", "description": "Data type of the value of the characteristic" } }, "description": "Describes a given characteristic of an object or entity through a name/value pair." }, "Money": { "required": [ "unit", "value" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "unit": { "type": "string", "description": "Currency (ISO4217 norm uses 3 letters to define the currency)" }, "value": { "type": "number", "description": "A positive floating point number", "format": "float" } }, "description": "A base / value business entity used to represent money" }, "Price": { "required": [ "atBaseType", "atSchemaLocation", "atType", "dutyFreeAmount", "percentage", "taxIncludedAmount", "taxRate" ], "type": "object", "properties": { "uuid": { "type": "string" }, "atBaseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "atSchemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "atType": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "percentage": { "type": "number", "description": "Percentage to apply for ProdOfferPriceAlteration", "format": "float" }, "taxRate": { "type": "number", "description": "Tax rate", "format": "float" }, "dutyFreeAmount": { "$ref": "#/components/schemas/Money" }, "taxIncludedAmount": { "$ref": "#/components/schemas/Money" } }, "description": "Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration." }, "PriceAlteration": { "required": [ "applicationDuration", "description", "name", "price", "priceType", "priority", "productOfferingPrice", "recurringChargePeriod", "unitOfMeasure" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the order item price alteration" }, "applicationDuration": { "type": "integer", "description": "Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge)", "format": "int32" }, "description": { "type": "string", "description": "A narrative that explains in detail the semantics of this order item price alteration" }, "priceType": { "type": "string", "description": "A category that describes the price such as recurring, one time and usage." }, "priority": { "type": "integer", "description": "Priority level for applying this alteration among all the defined alterations on the order item price", "format": "int32" }, "recurringChargePeriod": { "type": "string", "description": "Could be month, week..." }, "unitOfMeasure": { "type": "string", "description": "Could be minutes, GB..." }, "price": { "$ref": "#/components/schemas/Price" }, "productOfferingPrice": { "$ref": "#/components/schemas/ProductOfferingPriceRef" } }, "description": "Is an amount, usually of money, that modifies the price charged for an order item." }, "ProductCreate": { "required": [ "agreement", "atBaseType", "atSchemaLocation", "atType", "billingAccount", "description", "isBundle", "isCustomerVisible", "name", "orderDate", "place", "product", "productCharacteristic", "productOffering", "productOrderItem", "productPrice", "productRelationship", "productSerialNumber", "productSpecification", "productTerm", "realizingResource", "realizingService", "relatedParty", "startDate", "status", "terminationDate" ], "type": "object", "properties": { "atBaseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "atSchemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "atType": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "description": { "type": "string", "description": "Is the description of the product. It could be copied from the description of the Product Offering." }, "isBundle": { "type": "boolean", "description": "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering." }, "isCustomerVisible": { "type": "boolean", "description": "If true, the product is visible by the customer." }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "orderDate": { "type": "string", "description": "Is the date when the product was ordered", "format": "date-time" }, "productSerialNumber": { "type": "string", "description": "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router." }, "startDate": { "type": "string", "description": "Is the date from which the product starts", "format": "date-time" }, "terminationDate": { "type": "string", "description": "Is the date when the product was terminated", "format": "date-time" }, "agreement": { "type": "array", "items": { "$ref": "#/components/schemas/AgreementItemRef" } }, "billingAccount": { "$ref": "#/components/schemas/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/components/schemas/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/components/schemas/Characteristic" } }, "productOffering": { "$ref": "#/components/schemas/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/components/schemas/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/components/schemas/ProductRelationship" } }, "productSpecification": { "$ref": "#/components/schemas/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/components/schemas/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedParty" } }, "status": { "type": "string", "enum": [ "CREATED", "PENDINGACTIVE", "CANCELLED", "ACTIVE", "PENDINGTERMINATE", "TERMINATED", "SUSPENDED", "ABORTED_ " ] }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" } }, "description": "The Product to be created" }, "ProductOfferingPriceRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "lastUpdate": { "type": "string", "description": "Date and time of the last update" }, "lifecycleStatusEnum": { "type": "string", "writeOnly": true, "enum": [ "In study", "In design", "In test", "Active", "Launched", "Retired", "Obsolete", "Rejected" ] }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "description": { "type": "string", "description": "Description of this catalog" }, "lifecycleStatus": { "type": "string", "description": "Used to indicate the current lifecycle status" }, "version": { "type": "string", "description": "Entity version" }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "id": { "type": "string", "description": "Unique identifier of a related entity." }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "description": "ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased" }, "ProductOfferingRef": { "required": [ "id" ], "type": "object", "properties": { "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "id": { "type": "string", "description": "Unique identifier of a related entity." }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "description": "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information." }, "ProductPrice": { "required": [ "billingAccount", "description", "name", "price", "priceType", "productOfferingPrice", "productPriceAlteration", "recurringChargePeriod", "unitOfMeasure" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "A short descriptive name such as \"Subscription price\"." }, "description": { "type": "string", "description": "A narrative that explains in detail the semantics of this product price." }, "priceType": { "type": "string", "description": "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth." }, "recurringChargePeriod": { "type": "string", "description": "Could be month, week..." }, "unitOfMeasure": { "type": "string", "description": "Could be minutes, GB..." }, "billingAccount": { "$ref": "#/components/schemas/BillingAccountRef" }, "price": { "$ref": "#/components/schemas/Price" }, "productOfferingPrice": { "$ref": "#/components/schemas/ProductOfferingPriceRef" }, "productPriceAlteration": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/PriceAlteration" } } }, "description": "An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time." }, "ProductRefOrValue": { "required": [ "agreement", "billingAccount", "description", "href", "id", "isBundle", "isCustomerVisible", "name", "orderDate", "place", "productCharacteristic", "productOffering", "productOrderItem", "productPrice", "productRelationship", "productSerialNumber", "productSpecification", "productTerm", "realizingResource", "realizingService", "relatedParty", "startDate", "status", "terminationDate" ], "type": "object", "properties": { "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Reference of the product" }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "id": { "type": "string", "description": "Unique identifier of the product" }, "description": { "type": "string", "description": "Is the description of the product. It could be copied from the description of the Product Offering." }, "isBundle": { "type": "boolean", "description": "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering." }, "isCustomerVisible": { "type": "boolean", "description": "If true, the product is visible by the customer." }, "orderDate": { "type": "string", "description": "Is the date when the product was ordered", "format": "date-time" }, "productSerialNumber": { "type": "string", "description": "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router." }, "startDate": { "type": "string", "description": "Is the date from which the product starts", "format": "date-time" }, "terminationDate": { "type": "string", "description": "Is the date when the product was terminated", "format": "date-time" }, "agreement": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/AgreementItemRef" } }, "billingAccount": { "$ref": "#/components/schemas/BillingAccountRef" }, "place": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedPlaceRefOrValue" } }, "productCharacteristic": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/Characteristic" } }, "productOffering": { "$ref": "#/components/schemas/ProductOfferingRef" }, "productOrderItem": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedProductOrderItem" } }, "productPrice": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductPrice" } }, "productRelationship": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductRelationship" } }, "productSpecification": { "$ref": "#/components/schemas/ProductSpecificationRef" }, "productTerm": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductTerm" } }, "realizingResource": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "realizingService": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ServiceRef" } }, "relatedParty": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedParty" } }, "status": { "type": "string", "enum": [ "CREATED", "PENDINGACTIVE", "CANCELLED", "ACTIVE", "PENDINGTERMINATE", "TERMINATED", "SUSPENDED", "ABORTED_ " ] } }, "description": "A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself" }, "ProductRelationship": { "required": [ "product", "relationshipType" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "relationshipType": { "type": "string", "description": "Type of the product relationship, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful" }, "product": { "$ref": "#/components/schemas/ProductRefOrValue" } }, "description": "Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful" }, "ProductSpecificationRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "lastUpdate": { "type": "string", "description": "Date and time of the last update" }, "lifecycleStatusEnum": { "type": "string", "writeOnly": true, "enum": [ "In study", "In design", "In test", "Active", "Launched", "Retired", "Obsolete", "Rejected" ] }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "description": { "type": "string", "description": "Description of this catalog" }, "lifecycleStatus": { "type": "string", "description": "Used to indicate the current lifecycle status" }, "version": { "type": "string", "description": "Entity version" }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "id": { "type": "string", "description": "Unique identifier of a related entity." }, "targetProductSchema": { "$ref": "#/components/schemas/TargetProductSchema" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "description": "Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role." }, "ProductTerm": { "required": [ "description", "duration", "name", "validFor" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the productTerm" }, "description": { "type": "string", "description": "Description of the productTerm" }, "duration": { "$ref": "#/components/schemas/Quantity" }, "validFor": { "$ref": "#/components/schemas/TimePeriod" } }, "description": "Description of a productTerm linked to this product. This represent a commitment with a duration" }, "Quantity": { "type": "object", "properties": { "amount": { "type": "number", "description": "Numeric value in a given unit", "format": "float" }, "units": { "type": "string", "description": "Unit" } }, "description": "An amount in a given unit" }, "RelatedParty": { "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "role": { "type": "string", "description": "Role of the related party." }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." }, "id": { "type": "string" }, "extendedInfo": { "type": "string" } }, "description": "RelatedParty reference. A related party defines party or party role linked to a specific entity." }, "RelatedPlaceRefOrValue": { "required": [ "atReferredType", "href", "id", "name", "role" ], "type": "object", "properties": { "uuid": { "type": "string" }, "atReferredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the place" }, "name": { "type": "string", "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]" }, "id": { "type": "string", "description": "Unique identifier of the place" }, "role": { "type": "string" }, "@referredType": { "type": "string" } }, "description": "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself" }, "RelatedProductOrderItem": { "required": [ "orderItemId", "productOrderId" ], "type": "object", "properties": { "uuid": { "type": "string" }, "atBaseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "atSchemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "atType": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "atReferredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "orderItemAction": { "type": "string", "description": "Action of the order item for this product" }, "orderItemId": { "type": "string", "description": "Identifier of the order item where the product was managed" }, "productOrderHref": { "type": "string", "description": "Reference of the related entity." }, "productOrderId": { "type": "string", "description": "Unique identifier of a related entity." }, "role": { "type": "string", "description": "role of the product order item for this product" }, "@referredType": { "type": "string" } }, "description": "RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination." }, "ResourceRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "id": { "type": "string", "description": "Unique identifier of the supporting resource" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ServiceRef": { "required": [ "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "id": { "type": "string", "description": "Id of the service" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "description": "Service reference, for when Service is used by other entities" }, "TargetProductSchema": { "type": "object", "properties": { "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" } }, "description": "The reference object to the schema and type of target product which is described by product specification" }, "TimePeriod": { "type": "object", "properties": { "endDateTime": { "type": "string", "description": "End of the time period, using IETC-RFC-3339 format" }, "startDateTime": { "type": "string", "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end" } }, "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both" }, "Product": { "required": [ "agreement", "billingAccount", "description", "href", "id", "isBundle", "isCustomerVisible", "name", "orderDate", "place", "product", "productCharacteristic", "productOffering", "productOrderItem", "productPrice", "productRelationship", "productSerialNumber", "productSpecification", "productTerm", "realizingResource", "realizingService", "relatedParty", "startDate", "status", "terminationDate" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Reference of the product" }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "id": { "type": "string", "description": "Unique identifier of the product" }, "description": { "type": "string", "description": "Is the description of the product. It could be copied from the description of the Product Offering." }, "isBundle": { "type": "boolean", "description": "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering." }, "isCustomerVisible": { "type": "boolean", "description": "If true, the product is visible by the customer." }, "orderDate": { "type": "string", "description": "Is the date when the product was ordered", "format": "date-time" }, "productSerialNumber": { "type": "string", "description": "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router." }, "startDate": { "type": "string", "description": "Is the date from which the product starts", "format": "date-time" }, "terminationDate": { "type": "string", "description": "Is the date when the product was terminated", "format": "date-time" }, "agreement": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/AgreementItemRef" } }, "billingAccount": { "$ref": "#/components/schemas/BillingAccountRef" }, "place": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedPlaceRefOrValue" } }, "product": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductRefOrValue" } }, "productCharacteristic": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/Characteristic" } }, "productOffering": { "$ref": "#/components/schemas/ProductOfferingRef" }, "productOrderItem": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedProductOrderItem" } }, "productPrice": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductPrice" } }, "productRelationship": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductRelationship" } }, "productSpecification": { "$ref": "#/components/schemas/ProductSpecificationRef" }, "productTerm": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProductTerm" } }, "realizingResource": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "realizingService": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ServiceRef" } }, "relatedParty": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/RelatedParty" } }, "status": { "type": "string", "enum": [ "CREATED", "PENDINGACTIVE", "CANCELLED", "ACTIVE", "PENDINGTERMINATE", "TERMINATED", "SUSPENDED", "ABORTED_ " ] } }, "description": "A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s)." }, "ProductStateChangeEvent": { "required": [ "correlationId", "description", "domain", "event", "eventId", "eventTime", "eventType", "href", "id", "priority", "timeOcurred", "title" ], "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of the Process flow" }, "href": { "type": "string", "description": "Reference of the ProcessFlow" }, "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "description": "Time of the event occurrence.", "format": "date-time" }, "eventType": { "type": "string", "description": "The type of the notification." }, "correlationId": { "type": "string", "description": "The correlation id for this event." }, "domain": { "type": "string", "description": "The domain of the event." }, "title": { "type": "string", "description": "The title of the event." }, "description": { "type": "string", "description": "An explnatory of the event." }, "priority": { "type": "string", "description": "A priority." }, "timeOcurred": { "type": "string", "description": "The time the event occured.", "format": "date-time" }, "event": { "$ref": "#/components/schemas/ProductStateChangeEventPayload" } }, "description": "The event data" }, "ProductStateChangeEventPayload": { "required": [ "product" ], "type": "object", "properties": { "product": { "$ref": "#/components/schemas/Product" } }, "description": "The event data structure" }, "EventSubscription": { "required": [ "callback", "id", "query" ], "type": "object", "properties": { "id": { "type": "string", "description": "Id of the listener" }, "callback": { "type": "string", "description": "The callback being registered." }, "query": { "type": "string", "description": "additional data to be passed" } }, "description": "Sets the communication endpoint address the service instance must use to deliver notification information" }, "ProductDeleteEvent": { "required": [ "correlationId", "description", "domain", "event", "eventId", "eventTime", "eventType", "href", "id", "priority", "timeOcurred", "title" ], "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of the Process flow" }, "href": { "type": "string", "description": "Reference of the ProcessFlow" }, "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "description": "Time of the event occurrence.", "format": "date-time" }, "eventType": { "type": "string", "description": "The type of the notification." }, "correlationId": { "type": "string", "description": "The correlation id for this event." }, "domain": { "type": "string", "description": "The domain of the event." }, "title": { "type": "string", "description": "The title of the event." }, "description": { "type": "string", "description": "An explnatory of the event." }, "priority": { "type": "string", "description": "A priority." }, "timeOcurred": { "type": "string", "description": "The time the event occured.", "format": "date-time" }, "event": { "$ref": "#/components/schemas/ProductDeleteEventPayload" } }, "description": "The event data" }, "ProductDeleteEventPayload": { "required": [ "product" ], "type": "object", "properties": { "product": { "$ref": "#/components/schemas/Product" } }, "description": "The event data structure" }, "ProductCreateEvent": { "required": [ "correlationId", "description", "domain", "event", "eventId", "eventTime", "eventType", "href", "id", "priority", "timeOcurred", "title" ], "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of the Process flow" }, "href": { "type": "string", "description": "Reference of the ProcessFlow" }, "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "description": "Time of the event occurrence.", "format": "date-time" }, "eventType": { "type": "string", "description": "The type of the notification." }, "correlationId": { "type": "string", "description": "The correlation id for this event." }, "domain": { "type": "string", "description": "The domain of the event." }, "title": { "type": "string", "description": "The title of the event." }, "description": { "type": "string", "description": "An explnatory of the event." }, "priority": { "type": "string", "description": "A priority." }, "timeOcurred": { "type": "string", "description": "The time the event occured.", "format": "date-time" }, "event": { "$ref": "#/components/schemas/ProductCreateEventPayload" } }, "description": "The event data" }, "ProductCreateEventPayload": { "required": [ "product" ], "type": "object", "properties": { "product": { "$ref": "#/components/schemas/Product" } }, "description": "The event data structure" }, "ProductBatchEvent": { "required": [ "correlationId", "description", "domain", "event", "eventId", "eventTime", "eventType", "href", "id", "priority", "timeOcurred", "title" ], "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of the Process flow" }, "href": { "type": "string", "description": "Reference of the ProcessFlow" }, "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "description": "Time of the event occurrence.", "format": "date-time" }, "eventType": { "type": "string", "description": "The type of the notification." }, "correlationId": { "type": "string", "description": "The correlation id for this event." }, "domain": { "type": "string", "description": "The domain of the event." }, "title": { "type": "string", "description": "The title of the event." }, "description": { "type": "string", "description": "An explnatory of the event." }, "priority": { "type": "string", "description": "A priority." }, "timeOcurred": { "type": "string", "description": "The time the event occured.", "format": "date-time" }, "event": { "$ref": "#/components/schemas/ProductBatchEventPayload" } }, "description": "The event data" }, "ProductBatchEventPayload": { "required": [ "product" ], "type": "object", "properties": { "product": { "$ref": "#/components/schemas/Product" } }, "description": "The event data structure" }, "ProductAttributeValueChangeEvent": { "required": [ "correlationId", "description", "domain", "event", "eventId", "eventTime", "eventType", "fieldPath", "priority", "timeOcurred", "title" ], "type": "object", "properties": { "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "description": "Time of the event occurrence.", "format": "date-time" }, "eventType": { "type": "string", "description": "The type of the notification." }, "correlationId": { "type": "string", "description": "The correlation id for this event." }, "domain": { "type": "string", "description": "The domain of the event." }, "title": { "type": "string", "description": "The title of the event." }, "description": { "type": "string", "description": "An explnatory of the event." }, "priority": { "type": "string", "description": "A priority." }, "timeOcurred": { "type": "string", "description": "The time the event occured.", "format": "date-time" }, "fieldPath": { "type": "string", "description": "The path identifying the object field concerned by this notification." }, "event": { "$ref": "#/components/schemas/ProductAttributeValueChangeEventPayload" } }, "description": "The event data" }, "ProductAttributeValueChangeEventPayload": { "required": [ "product" ], "type": "object", "properties": { "product": { "$ref": "#/components/schemas/Product" } }, "description": "The event data structure" }, "EventSubscriptionInput": { "required": [ "callback", "query" ], "type": "object", "properties": { "callback": { "type": "string", "description": "The callback being registered." }, "query": { "type": "string", "description": "additional data to be passed" } }, "description": "Data containing the callback endpoint to deliver the information" }, "ProductUpdate": { "required": [ "agreement", "atBaseType", "atSchemaLocation", "atType", "billingAccount", "description", "isBundle", "isCustomerVisible", "name", "orderDate", "place", "product", "productCharacteristic", "productOffering", "productOrderItem", "productPrice", "productRelationship", "productSerialNumber", "productSpecification", "productTerm", "realizingResource", "realizingService", "relatedParty", "startDate", "status", "terminationDate" ], "type": "object", "properties": { "atBaseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "atSchemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "atType": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name" }, "description": { "type": "string", "description": "Is the description of the product. It could be copied from the description of the Product Offering." }, "isBundle": { "type": "boolean", "description": "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering." }, "isCustomerVisible": { "type": "boolean", "description": "If true, the product is visible by the customer." }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "orderDate": { "type": "string", "description": "Is the date when the product was ordered", "format": "date-time" }, "productSerialNumber": { "type": "string", "description": "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router." }, "startDate": { "type": "string", "description": "Is the date from which the product starts", "format": "date-time" }, "terminationDate": { "type": "string", "description": "Is the date when the product was terminated", "format": "date-time" }, "agreement": { "type": "array", "items": { "$ref": "#/components/schemas/AgreementItemRef" } }, "billingAccount": { "$ref": "#/components/schemas/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/components/schemas/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/components/schemas/Characteristic" } }, "productOffering": { "$ref": "#/components/schemas/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/components/schemas/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/components/schemas/ProductRelationship" } }, "productSpecification": { "$ref": "#/components/schemas/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/components/schemas/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/components/schemas/RelatedParty" } }, "status": { "type": "string", "enum": [ "CREATED", "PENDINGACTIVE", "CANCELLED", "ACTIVE", "PENDINGTERMINATE", "TERMINATED", "SUSPENDED", "ABORTED_ " ] }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" } }, "description": "The Product to be updated" } }, "securitySchemes": { "security_auth": { "type": "oauth2", "scheme": "bearer", "bearerFormat": "JWT", "flows": { "authorizationCode": { "authorizationUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/auth", "tokenUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/token", "scopes": { "read": "read scope", "write": "write scope" } } } } } } }