{ "swagger": "2.0", "info": { "title": "Product Inventory", "description": "**TMF API Reference : TMF 637 - Product Inventory Management**\n\nRelease : 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\n\n**Product resource**\nA 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).\n\nProduct Inventory API performs the following operations on product :\n- Retrieval of a product or a collection of products depending on filter criteria\n- Partial update of a product (including updating rules and for administration purpose)\n- Creation of a product (including default values and creation rules and for administration purpose)\n- Deletion of a product (for administration purposes)\n- Notification of events on product.\n\nCopyright \u00a9 TM Forum 2019. All Rights Reserved\n\n\n", "version": "4.0.0" }, "host": "serverRoot", "basePath": "/tmf-api/productInventory/v4/", "schemes": [ "https" ], "consumes": [ "application/json;charset=utf-8" ], "produces": [ "application/json;charset=utf-8" ], "tags": [ { "name": "product" }, { "name": "notification listeners (client side)" }, { "name": "events subscription" } ], "paths": { "/product": { "get": { "operationId": "listProduct", "summary": "List or find Product objects", "description": "This operation list or find Product entities", "tags": [ "product" ], "parameters": [ { "name": "fields", "description": "Comma-separated properties to be provided in response", "required": false, "in": "query", "type": "string" }, { "name": "offset", "description": "Requested index for start of resources to be provided in response", "required": false, "in": "query", "type": "integer" }, { "name": "limit", "description": "Requested number of resources to be provided in response", "required": false, "in": "query", "type": "integer" } ], "responses": { "200": { "description": "Success", "headers": { "X-Result-Count": { "description": "Actual number of items returned in the response body", "type": "integer" }, "X-Total-Count": { "description": "Total number of items matching criteria", "type": "integer" } }, "schema": { "type": "array", "items": { "$ref": "#/definitions/Product" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } }, "post": { "operationId": "createProduct", "summary": "Creates a Product", "description": "This operation creates a Product entity.", "tags": [ "product" ], "parameters": [ { "name": "product", "description": "The Product to be created", "required": true, "schema": { "$ref": "#/definitions/Product_Create" }, "in": "body" } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/Product" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/product/{id}": { "get": { "operationId": "retrieveProduct", "summary": "Retrieves a Product by ID", "description": "This operation retrieves a Product entity. Attribute selection is enabled for all first level attributes.", "tags": [ "product" ], "parameters": [ { "name": "id", "description": "Identifier of the Product", "required": true, "type": "string", "in": "path" }, { "name": "fields", "description": "Comma-separated properties to provide in response", "required": false, "type": "string", "in": "query" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Product" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } }, "patch": { "operationId": "patchProduct", "summary": "Updates partially a Product", "description": "This operation updates partially a Product entity.", "tags": [ "product" ], "parameters": [ { "name": "id", "description": "Identifier of the Product", "required": true, "type": "string", "in": "path" }, { "name": "product", "description": "The Product to be updated", "required": true, "schema": { "$ref": "#/definitions/Product_Update" }, "in": "body" } ], "responses": { "200": { "description": "Updated", "schema": { "$ref": "#/definitions/Product" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } }, "delete": { "operationId": "deleteProduct", "summary": "Deletes a Product", "description": "This operation deletes a Product entity.", "tags": [ "product" ], "parameters": [ { "name": "id", "description": "Identifier of the Product", "required": true, "type": "string", "in": "path" } ], "responses": { "204": { "description": "Deleted" }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/hub": { "post": { "operationId": "registerListener", "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.", "tags": [ "events subscription" ], "parameters": [ { "name": "data", "schema": { "$ref": "#/definitions/EventSubscriptionInput" }, "required": true, "in": "body", "description": "Data containing the callback endpoint to deliver the information" } ], "responses": { "201": { "description": "Subscribed", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/hub/{id}": { "delete": { "operationId": "unregisterListener", "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.", "tags": [ "events subscription" ], "parameters": [ { "name": "id", "type": "string", "required": true, "in": "path", "description": "The id of the registered listener" } ], "responses": { "204": { "description": "Deleted" }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method not allowed", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/listener/productCreateEvent": { "post": { "operationId": "listenToProductCreateEvent", "summary": "Client listener for entity ProductCreateEvent", "description": "Example of a client listener for receiving the notification ProductCreateEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/ProductCreateEvent" } } ], "responses": { "201": { "description": "Notified", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/listener/productAttributeValueChangeEvent": { "post": { "operationId": "listenToProductAttributeValueChangeEvent", "summary": "Client listener for entity ProductAttributeValueChangeEvent", "description": "Example of a client listener for receiving the notification ProductAttributeValueChangeEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/ProductAttributeValueChangeEvent" } } ], "responses": { "201": { "description": "Notified", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/listener/productStateChangeEvent": { "post": { "operationId": "listenToProductStateChangeEvent", "summary": "Client listener for entity ProductStateChangeEvent", "description": "Example of a client listener for receiving the notification ProductStateChangeEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/ProductStateChangeEvent" } } ], "responses": { "201": { "description": "Notified", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/listener/productBatchEvent": { "post": { "operationId": "listenToProductBatchEvent", "summary": "Client listener for entity ProductBatchEvent", "description": "Example of a client listener for receiving the notification ProductBatchEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/ProductBatchEvent" } } ], "responses": { "201": { "description": "Notified", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/listener/productDeleteEvent": { "post": { "operationId": "listenToProductDeleteEvent", "summary": "Client listener for entity ProductDeleteEvent", "description": "Example of a client listener for receiving the notification ProductDeleteEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/ProductDeleteEvent" } } ], "responses": { "201": { "description": "Notified", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } } }, "definitions": { "AgreementItemRef": { "type": "object", "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.", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "agreementItemId": { "type": "string", "description": "Identifier of the agreement" }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "Any": {}, "BillingAccountRef": { "type": "object", "description": "BillingAccount reference. A BillingAccount is a detailed description of a bill structure.", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of the billing account" }, "href": { "type": "string", "description": "Reference of the billing account" }, "name": { "type": "string", "description": "Name of the billing account" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "Characteristic": { "type": "object", "description": "Describes a given characteristic of an object or entity through a name/value pair.", "required": [ "name", "value" ], "properties": { "name": { "type": "string", "description": "Name of the characteristic" }, "valueType": { "type": "string", "description": "Data type of the value of the characteristic" }, "value": { "$ref": "#/definitions/Any", "description": "The value of the characteristic" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "EntityRef": { "type": "object", "description": "Entity reference schema to be use for all entityRef class.", "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "Money": { "type": "object", "description": "A base / value business entity used to represent money", "properties": { "unit": { "type": "string", "description": "Currency (ISO4217 norm uses 3 letters to define the currency)" }, "value": { "type": "number", "format": "float", "description": "A positive floating point number" } } }, "Place": { "type": "object", "description": "Place reference. Place defines the places where the products are sold or delivered.", "properties": { "id": { "type": "string", "description": "Unique identifier of the place" }, "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]" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "PlaceRef": { "type": "object", "description": "Place reference. PlaceRef defines the placeRefs where the products are sold or delivered.", "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "Price": { "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 ProdOfferPriceAlteration" }, "taxRate": { "type": "number", "format": "float", "description": "Tax rate" }, "dutyFreeAmount": { "$ref": "#/definitions/Money", "description": "All taxes excluded amount (expressed in the given currency)" }, "taxIncludedAmount": { "$ref": "#/definitions/Money", "description": "All taxes included amount (expressed in the given currency)" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "PriceAlteration": { "type": "object", "description": "Is an amount, usually of money, that modifies the price charged for an order item.", "required": [ "price", "priceType" ], "properties": { "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)" }, "description": { "type": "string", "description": "A narrative that explains in detail the semantics of this order item price alteration" }, "name": { "type": "string", "description": "Name of the 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" }, "recurringChargePeriod": { "type": "string", "description": "Could be month, week..." }, "unitOfMeasure": { "type": "string", "description": "Could be minutes, GB..." }, "price": { "$ref": "#/definitions/Price" }, "productOfferingPrice": { "$ref": "#/definitions/ProductOfferingPriceRef" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "Product": { "type": "object", "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).", "properties": { "id": { "type": "string", "description": "Unique identifier of the product" }, "href": { "type": "string", "description": "Reference 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." }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "orderDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was ordered" }, "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", "format": "date-time", "description": "Is the date from which the product starts" }, "terminationDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was terminated" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementItemRef" } }, "billingAccount": { "$ref": "#/definitions/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/definitions/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/definitions/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/definitions/Characteristic" } }, "productOffering": { "$ref": "#/definitions/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/definitions/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/definitions/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/definitions/ProductRelationship" } }, "productSpecification": { "$ref": "#/definitions/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/definitions/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/definitions/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/definitions/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" } }, "status": { "$ref": "#/definitions/ProductStatusType", "description": "Is the lifecycle status of the product." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "Product_Create": { "type": "object", "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).\nSkipped properties: id,href", "required": [ "status" ], "properties": { "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", "format": "date-time", "description": "Is the date when the product was ordered" }, "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", "format": "date-time", "description": "Is the date from which the product starts" }, "terminationDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was terminated" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementItemRef" } }, "billingAccount": { "$ref": "#/definitions/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/definitions/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/definitions/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/definitions/Characteristic" } }, "productOffering": { "$ref": "#/definitions/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/definitions/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/definitions/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/definitions/ProductRelationship" } }, "productSpecification": { "$ref": "#/definitions/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/definitions/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/definitions/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/definitions/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" } }, "status": { "$ref": "#/definitions/ProductStatusType", "description": "Is the lifecycle status of the product." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "Product_Update": { "type": "object", "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).\nSkipped properties: id,href", "properties": { "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", "format": "date-time", "description": "Is the date when the product was ordered" }, "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", "format": "date-time", "description": "Is the date from which the product starts" }, "terminationDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was terminated" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementItemRef" } }, "billingAccount": { "$ref": "#/definitions/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/definitions/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/definitions/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/definitions/Characteristic" } }, "productOffering": { "$ref": "#/definitions/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/definitions/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/definitions/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/definitions/ProductRelationship" } }, "productSpecification": { "$ref": "#/definitions/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/definitions/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/definitions/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/definitions/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" } }, "status": { "$ref": "#/definitions/ProductStatusType", "description": "Is the lifecycle status of the product." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "ProductOfferingPriceRef": { "type": "object", "description": "ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased", "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "ProductOfferingRef": { "type": "object", "description": "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ProductPrice": { "type": "object", "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.", "required": [ "price", "priceType" ], "properties": { "description": { "type": "string", "description": "A narrative that explains in detail the semantics of this product price." }, "name": { "type": "string", "description": "A short descriptive name such as \"Subscription 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": "#/definitions/BillingAccountRef" }, "price": { "$ref": "#/definitions/Price" }, "productOfferingPrice": { "$ref": "#/definitions/ProductOfferingPriceRef" }, "productPriceAlteration": { "type": "array", "items": { "$ref": "#/definitions/PriceAlteration" } }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "ProductRef": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "ProductRefOrValue": { "type": "object", "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", "properties": { "id": { "type": "string", "description": "Unique identifier of the product" }, "href": { "type": "string", "description": "Reference 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." }, "name": { "type": "string", "description": "Name of the product. It could be the same as the name of the product offering" }, "orderDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was ordered" }, "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", "format": "date-time", "description": "Is the date from which the product starts" }, "terminationDate": { "type": "string", "format": "date-time", "description": "Is the date when the product was terminated" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementItemRef" } }, "billingAccount": { "$ref": "#/definitions/BillingAccountRef" }, "place": { "type": "array", "items": { "$ref": "#/definitions/RelatedPlaceRefOrValue" } }, "product": { "type": "array", "items": { "$ref": "#/definitions/ProductRefOrValue" } }, "productCharacteristic": { "type": "array", "items": { "$ref": "#/definitions/Characteristic" } }, "productOffering": { "$ref": "#/definitions/ProductOfferingRef" }, "productOrderItem": { "type": "array", "items": { "$ref": "#/definitions/RelatedProductOrderItem" } }, "productPrice": { "type": "array", "items": { "$ref": "#/definitions/ProductPrice" } }, "productRelationship": { "type": "array", "items": { "$ref": "#/definitions/ProductRelationship" } }, "productSpecification": { "$ref": "#/definitions/ProductSpecificationRef" }, "productTerm": { "type": "array", "items": { "$ref": "#/definitions/ProductTerm" } }, "realizingResource": { "type": "array", "items": { "$ref": "#/definitions/ResourceRef" } }, "realizingService": { "type": "array", "items": { "$ref": "#/definitions/ServiceRef" } }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" } }, "status": { "$ref": "#/definitions/ProductStatusType", "description": "Is the lifecycle status of the product." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ProductRelationship": { "type": "object", "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", "required": [ "product", "relationshipType" ], "properties": { "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": "#/definitions/ProductRefOrValue" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "ProductSpecificationRef": { "type": "object", "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.", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "version": { "type": "string", "description": "Version of the product specification" }, "targetProductSchema": { "$ref": "#/definitions/TargetProductSchema", "description": "A target product schema reference. The reference object to the schema and type of target product which is described by product specification." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ProductStatusType": { "type": "string", "description": "Possible values for the status of the product", "enum": [ "created", "pendingActive", "cancelled", "active", "pendingTerminate", "terminated", "suspended", "aborted " ] }, "ProductTerm": { "type": "object", "description": "Description of a productTerm linked to this product. This represent a commitment with a duration", "properties": { "description": { "type": "string", "description": "Description of the productTerm" }, "name": { "type": "string", "description": "Name of the productTerm" }, "duration": { "$ref": "#/definitions/Quantity", "description": "Duration of the productTerm" }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "productTerm validity period" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" } } }, "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": "Unit" } } }, "RelatedParty": { "type": "object", "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.", "required": [ "@referredType", "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "role": { "type": "string", "description": "Role played by the related party" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "RelatedPlaceRefOrValue": { "type": "object", "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", "required": [ "role" ], "properties": { "id": { "type": "string", "description": "Unique identifier of the place" }, "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]" }, "role": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "RelatedProductOrderItem": { "type": "object", "description": "RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination.", "required": [ "orderItemId", "productOrderId" ], "properties": { "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" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ResourceRef": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the resource" }, "value": { "type": "string", "description": "The resource value that can be used to identify a resource with a public key (e.g.: a tel nr, an msisdn)" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "ServiceRef": { "type": "object", "description": "Service reference, for when Service is used by other entities", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Unique identifier of a related entity." }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "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" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "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": { "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "This field provides a link to the schema describing the target product" }, "@type": { "type": "string", "description": "Class type of the target product" } } }, "TimePeriod": { "type": "object", "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both", "properties": { "endDateTime": { "type": "string", "format": "date-time", "description": "End of the time period, using IETC-RFC-3339 format" }, "startDateTime": { "type": "string", "format": "date-time", "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end" } } }, "EventSubscription": { "type": "object", "description": "Sets the communication endpoint address the service instance must use to deliver notification information", "required": [ "id", "callback" ], "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" } } }, "EventSubscriptionInput": { "type": "object", "description": "Sets the communication endpoint address the service instance must use to deliver notification information", "required": [ "callback" ], "properties": { "callback": { "type": "string", "description": "The callback being registered." }, "query": { "type": "string", "description": "additional data to be passed" } } }, "ProductCreateEvent": { "type": "object", "description": "The notification data structure", "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", "format": "date-time", "description": "Time of the event occurrence." }, "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", "format": "date-time", "description": "The time the event occured." }, "event": { "description": "The event payload linked to the involved resource object", "$ref": "#/definitions/ProductCreateEventPayload" } } }, "ProductCreateEventPayload": { "type": "object", "description": "The event data structure", "properties": { "product": { "description": "The involved resource data for the event", "$ref": "#/definitions/Product" } } }, "ProductAttributeValueChangeEvent": { "type": "object", "description": "The notification data structure", "properties": { "eventId": { "type": "string", "description": "The identifier of the notification." }, "eventTime": { "type": "string", "format": "date-time", "description": "Time of the event occurrence." }, "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", "format": "date-time", "description": "The time the event occured." }, "fieldPath": { "type": "string", "description": "The path identifying the object field concerned by this notification." }, "event": { "description": "The event payload linked to the involved resource object", "$ref": "#/definitions/ProductAttributeValueChangeEventPayload" } } }, "ProductAttributeValueChangeEventPayload": { "type": "object", "description": "The event data structure", "properties": { "product": { "description": "The involved resource data for the event", "$ref": "#/definitions/Product" } } }, "ProductStateChangeEvent": { "type": "object", "description": "The notification data structure", "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", "format": "date-time", "description": "Time of the event occurrence." }, "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", "format": "date-time", "description": "The time the event occured." }, "event": { "description": "The event payload linked to the involved resource object", "$ref": "#/definitions/ProductStateChangeEventPayload" } } }, "ProductStateChangeEventPayload": { "type": "object", "description": "The event data structure", "properties": { "product": { "description": "The involved resource data for the event", "$ref": "#/definitions/Product" } } }, "ProductBatchEvent": { "type": "object", "description": "The notification data structure", "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", "format": "date-time", "description": "Time of the event occurrence." }, "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", "format": "date-time", "description": "The time the event occured." }, "event": { "description": "The event payload linked to the involved resource object", "$ref": "#/definitions/ProductBatchEventPayload" } } }, "ProductBatchEventPayload": { "type": "object", "description": "The event data structure", "properties": { "product": { "description": "The involved resource data for the event", "$ref": "#/definitions/Product" } } }, "ProductDeleteEvent": { "type": "object", "description": "The notification data structure", "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", "format": "date-time", "description": "Time of the event occurrence." }, "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", "format": "date-time", "description": "The time the event occured." }, "event": { "description": "The event payload linked to the involved resource object", "$ref": "#/definitions/ProductDeleteEventPayload" } } }, "ProductDeleteEventPayload": { "type": "object", "description": "The event data structure", "properties": { "product": { "description": "The involved resource data for the event", "$ref": "#/definitions/Product" } } }, "Error": { "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)", "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": "When sub-classing, this defines the super-class." }, "@schemaLocation": { "type": "string", "format": "uri", "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." } } } } }