{ "swagger": "2.0", "info": { "title": "Quote", "description": "**TMF API Reference : TMF 648 - Quote Management**\n\n**Release : 19.0 - June 2019**\n\nThe Quote API provides a standardized mechanism for placing a quote with all of the necessary parameters. The API consists of a simple set of operations that interact with CRM/Quote/Pricing Negotiation systems in a consistent manner. A Quote is created based on product offering(s) that is(are) defined in a catalog. The quote identifies the product or set of products that are available to a customer for pricing request, and includes product characteristics.\n\nThe Quote references the product offer(s) which (future) customer request pricing.\nQuote resource features authorization subclass to manage special pricing UC requiring authorization tracking management\n\n**Quote resource**\nA Quote can be used to request pricing between a customer and a service provider or between a service provider and a partner and vice versa. Main quote attributes are its identifier, state, priority, related dates (requested, expected, valid, completion, etc.), related parties and quote items. Main Quote Items attributes are the discribed offering and product characteristics with the related action to be performed (e.g. add, change or delete the products), location information, and product characteristics.\n\nQuote API performs the following operations on Quote :\n\n- Retrieval of a quote or a collection of quotes depending on filter criteria\n- Partial update of a quote (including updating rules)\n- Creation of a quote (including default values and creation rules)\n- Deletion of quote (for administration purposes)\n- Notification of events on quote.\n\nCopyright \u00a9 TM Forum 2019. All Rights Reserved\n\n", "version": "4.0.0" }, "host": "serverRoot", "basePath": "/tmf-api/quoteManagement/v4/", "schemes": [ "https" ], "consumes": [ "application/json;charset=utf-8" ], "produces": [ "application/json;charset=utf-8" ], "tags": [ { "name": "quote" }, { "name": "notification listeners (client side)" }, { "name": "events subscription" } ], "paths": { "/quote": { "get": { "operationId": "listQuote", "summary": "List or find Quote objects", "description": "This operation list or find Quote entities", "tags": [ "quote" ], "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/Quote" } } }, "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": "createQuote", "summary": "Creates a Quote", "description": "This operation creates a Quote entity.", "tags": [ "quote" ], "parameters": [ { "name": "quote", "description": "The Quote to be created", "required": true, "schema": { "$ref": "#/definitions/Quote_Create" }, "in": "body" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Quote" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/Quote" } }, "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" } } } } }, "/quote/{id}": { "get": { "operationId": "retrieveQuote", "summary": "Retrieves a Quote by ID", "description": "This operation retrieves a Quote entity. Attribute selection is enabled for all first level attributes.", "tags": [ "quote" ], "parameters": [ { "name": "id", "description": "Identifier of the Quote", "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/Quote" } }, "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": "patchQuote", "summary": "Updates partially a Quote", "description": "This operation updates partially a Quote entity.", "tags": [ "quote" ], "parameters": [ { "name": "id", "description": "Identifier of the Quote", "required": true, "type": "string", "in": "path" }, { "name": "quote", "description": "The Quote to be updated", "required": true, "schema": { "$ref": "#/definitions/Quote_Update" }, "in": "body" } ], "responses": { "200": { "description": "Updated", "schema": { "$ref": "#/definitions/Quote" } }, "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": "deleteQuote", "summary": "Deletes a Quote", "description": "This operation deletes a Quote entity.", "tags": [ "quote" ], "parameters": [ { "name": "id", "description": "Identifier of the Quote", "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/quoteCreateEvent": { "post": { "operationId": "listenToQuoteCreateEvent", "summary": "Client listener for entity QuoteCreateEvent", "description": "Example of a client listener for receiving the notification QuoteCreateEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/QuoteCreateEvent" } } ], "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/quoteStateChangeEvent": { "post": { "operationId": "listenToQuoteStateChangeEvent", "summary": "Client listener for entity QuoteStateChangeEvent", "description": "Example of a client listener for receiving the notification QuoteStateChangeEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/QuoteStateChangeEvent" } } ], "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/quoteDeleteEvent": { "post": { "operationId": "listenToQuoteDeleteEvent", "summary": "Client listener for entity QuoteDeleteEvent", "description": "Example of a client listener for receiving the notification QuoteDeleteEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/QuoteDeleteEvent" } } ], "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/quoteInformationRequiredEvent": { "post": { "operationId": "listenToQuoteInformationRequiredEvent", "summary": "Client listener for entity QuoteInformationRequiredEvent", "description": "Example of a client listener for receiving the notification QuoteInformationRequiredEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/QuoteInformationRequiredEvent" } } ], "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/quoteAttributeValueChangeEvent": { "post": { "operationId": "listenToQuoteAttributeValueChangeEvent", "summary": "Client listener for entity QuoteAttributeValueChangeEvent", "description": "Example of a client listener for receiving the notification QuoteAttributeValueChangeEvent", "tags": [ "notification listeners (client side)" ], "parameters": [ { "name": "data", "required": true, "in": "body", "description": "The event data", "schema": { "$ref": "#/definitions/QuoteAttributeValueChangeEvent" } } ], "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.", "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." } }, "required": [ "id" ] }, "AgreementRef": { "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." }, "name": { "type": "string", "description": "Name of the agreement" }, "@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": {}, "AppointmentRef": { "type": "object", "description": "Refers an appointment, such as a Customer presentation or internal meeting or site visit", "properties": { "id": { "type": "string", "description": "The identifier of the referred appointment" }, "href": { "type": "string", "description": "The reference of the appointment" }, "description": { "type": "string", "description": "An explanatory text regarding the appointment made with a 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" } }, "required": [ "id" ] }, "Attachment": { "type": "object", "description": "Complements the description of an element (for instance a product) through video, pictures...", "properties": { "id": { "type": "string", "description": "Unique identifier for this particular attachment" }, "href": { "type": "string", "description": "URI for this Attachment" }, "attachmentType": { "type": "string", "description": "Attachment type such as video, picture" }, "content": { "type": "string", "description": "The actual contents of the attachment object, if embedded, encoded as base64" }, "description": { "type": "string", "description": "A narrative text describing the content of the attachment" }, "mimeType": { "type": "string", "description": "Attachment mime type such as extension file for video, picture and document" }, "name": { "type": "string", "description": "The name of the attachment" }, "url": { "type": "string", "description": "Uniform Resource Locator, is a web page address (a subset of URI)" }, "size": { "$ref": "#/definitions/Quantity", "description": "The size of the attachment." }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The period of time for which the attachment is valid" }, "@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" } } }, "AttachmentRef": { "type": "object", "description": "Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures", "properties": { "id": { "type": "string", "description": "Unique-Identifier for this attachment" }, "href": { "type": "string", "description": "URL serving as reference for the attachment resource" }, "description": { "type": "string", "description": "A narrative text describing the content of the attachment" }, "name": { "type": "string", "description": "Name of the related entity." }, "url": { "type": "string", "description": "Link to the attachment media/content" }, "@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" ] }, "AttachmentRefOrValue": { "type": "object", "description": "An attachment by value or by reference. For AttachmentRefOrValue, the attribute type,schemaLocation and referredType are related to the contained entity and not to AttchmentRefOrValue itself", "properties": { "id": { "type": "string", "description": "Unique identifier for this particular attachment" }, "href": { "type": "string", "description": "URI for this Attachment" }, "attachmentType": { "type": "string", "description": "Attachment type such as video, picture" }, "content": { "type": "string", "description": "The actual contents of the attachment object, if embedded, encoded as base64" }, "description": { "type": "string", "description": "A narrative text describing the content of the attachment" }, "mimeType": { "type": "string", "description": "Attachment mime type such as extension file for video, picture and document" }, "name": { "type": "string", "description": "The name of the attachment" }, "url": { "type": "string", "description": "Uniform Resource Locator, is a web page address (a subset of URI)" }, "size": { "$ref": "#/definitions/Quantity", "description": "The size of the attachment." }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The period of time for which the attachment is valid" }, "@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." } } }, "Authorization": { "type": "object", "description": "If special discount or special product offering price or specific condition need an approval for ISP sale representative it is described here.", "properties": { "givenDate": { "type": "string", "format": "date-time", "description": "Date when the authorization (approved or declined) was done" }, "name": { "type": "string", "description": "Name of the required authorization" }, "requestedDate": { "type": "string", "format": "date-time", "description": "Date when the authorization is requested for" }, "signatureRepresentation": { "type": "string", "description": "To describe a digital or manual signature" }, "state": { "type": "string", "description": "State of the authorization, such as: approved or declined" }, "approver": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" } }, "@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" } } }, "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" } } }, "ContactMedium": { "type": "object", "description": "Indicates the contact medium that could be used to contact the party.", "properties": { "mediumType": { "type": "string", "description": "Type of the contact medium, such as: email address, telephone number, postal address" }, "preferred": { "type": "boolean", "description": "If true, indicates that is the preferred contact medium" }, "characteristic": { "$ref": "#/definitions/MediumCharacteristic", "description": "Any additional characteristic(s) of this contact medium" }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The time period that the contact medium is valid for" }, "@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" ] }, "MediumCharacteristic": { "type": "object", "description": "Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)", "properties": { "city": { "type": "string", "description": "The city" }, "contactType": { "type": "string", "description": "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation\u2026" }, "country": { "type": "string", "description": "The country" }, "emailAddress": { "type": "string", "description": "Full email address in standard format" }, "faxNumber": { "type": "string", "description": "The fax number of the contact" }, "phoneNumber": { "type": "string", "description": "The primary phone number of the contact" }, "postCode": { "type": "string", "description": "Postcode" }, "socialNetworkId": { "type": "string", "description": "Identifier as a member of a social network" }, "stateOrProvince": { "type": "string", "description": "State or province" }, "street1": { "type": "string", "description": "Describes the street" }, "street2": { "type": "string", "description": "Complementary street description" }, "@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" } } }, "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" } } }, "Note": { "type": "object", "description": "Extra information about a given entity", "required": [ "text", "id" ], "properties": { "id": { "type": "string", "description": "Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)" }, "author": { "type": "string", "description": "Author of the note" }, "date": { "type": "string", "format": "date-time", "description": "Date of the note" }, "text": { "type": "string", "description": "Text of the note" }, "@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" } } }, "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" } } }, "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" ] }, "ProductOfferingQualificationItemRef": { "type": "object", "description": "It's a productOfferingQualification item that has been executed previously.", "required": [ "id", "productOfferingQualificationId" ], "properties": { "id": { "type": "string", "description": "Id of an item of a product offering qualification" }, "href": { "type": "string", "description": "Reference of the related entity." }, "name": { "type": "string", "description": "Name of the related entity." }, "productOfferingQualificationHref": { "type": "string", "description": "Reference of the related entity." }, "productOfferingQualificationId": { "type": "string", "description": "Unique identifier of a related entity." }, "productOfferingQualificationName": { "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." } } }, "ProductOfferingQualificationRef": { "type": "object", "description": "It's a productOfferingQualification that has been executed previously", "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." } } }, "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.", "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" ] }, "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.", "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." } }, "required": [ "id" ] }, "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" } } }, "Quote": { "type": "object", "description": "Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contain list of quote items, a reference to customer (partyRole), a list of productOffering and attached prices and conditions.", "required": [ "quoteItem" ], "properties": { "id": { "type": "string", "description": "Unique identifier - attributed by quoting system" }, "href": { "type": "string", "description": "Hyperlink to access the quote" }, "category": { "type": "string", "description": "Used to categorize the quote from a business perspective that can be useful for the CRM system (e.g. \"enterprise\", \"residential\", ...)" }, "description": { "type": "string", "description": "Description of the quote" }, "effectiveQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "Date when the quote has been completed" }, "expectedFulfillmentStartDate": { "type": "string", "format": "date-time", "description": "this is the date wished by the requester to have the requested quote item delivered" }, "expectedQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "This is expected date - from quote supplier - to be able to send back a response for this quote" }, "externalId": { "type": "string", "description": "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)" }, "instantSyncQuote": { "type": "boolean", "description": "An indicator which when the value is \"true\" means that requester expects to get quoting result immediately in the response. If the indicator is true then the response code of 200 indicates the operation is successful otherwise a task is created with a response 201. " }, "quoteDate": { "type": "string", "format": "date-time", "description": "Date and time when the quote was created" }, "requestedQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "This is requested date - from quote requester - to get a complete response for this quote" }, "version": { "type": "string", "description": "Quote version - if the customer rejected the quote but negotiations still open a new version of the quote is managed" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementRef" }, "description": "A reference to an agreement defining the context of the quote" }, "authorization": { "type": "array", "items": { "$ref": "#/definitions/Authorization" }, "description": "An authorization provided for the quote" }, "billingAccount": { "type": "array", "items": { "$ref": "#/definitions/BillingAccountRef" }, "description": "A reference to a billing account to provide quote context information " }, "contactMedium": { "type": "array", "items": { "$ref": "#/definitions/ContactMedium" }, "description": "Information contact related to the quote requester" }, "note": { "type": "array", "items": { "$ref": "#/definitions/Note" }, "description": "Free form text associated with the quote" }, "productOfferingQualification": { "type": "array", "items": { "$ref": "#/definitions/ProductOfferingQualificationRef" }, "description": "A reference to a previously done product offering qualification" }, "quoteItem": { "type": "array", "items": { "$ref": "#/definitions/QuoteItem" }, "minItems": 1, "description": "An item of the quote - it is used to descirbe an operation on a product to be quoted" }, "quoteTotalPrice": { "type": "array", "items": { "$ref": "#/definitions/QuotePrice" }, "description": "Quote total price" }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" }, "description": "A reference to a party playing a role in this quote (customer, seller, requester, etc.)" }, "state": { "$ref": "#/definitions/QuoteStateType", "description": "State of the quote : described in the state-machine diagram" }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "Quote 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" } } }, "Quote_Create": { "type": "object", "description": "Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contain list of quote items, a reference to customer (partyRole), a list of productOffering and attached prices and conditions.\nSkipped properties: href,quoteDate,state,effectiveQuoteCompletionDate,quoteAuthorization,quoteTotalPrice,expectedQuoteCompletionDate,validFor", "required": [ "quoteItem" ], "properties": { "id": { "type": "string", "description": "Unique identifier - attributed by quoting system" }, "category": { "type": "string", "description": "Used to categorize the quote from a business perspective that can be useful for the CRM system (e.g. \"enterprise\", \"residential\", ...)" }, "description": { "type": "string", "description": "Description of the quote" }, "expectedFulfillmentStartDate": { "type": "string", "format": "date-time", "description": "this is the date wished by the requester to have the requested quote item delivered" }, "externalId": { "type": "string", "description": "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)" }, "instantSyncQuote": { "type": "boolean", "description": "An indicator which when the value is \"true\" means that requester expects to get quoting result immediately in the response. If the indicator is true then the response code of 200 indicates the operation is successful otherwise a task is created with a response 201. " }, "requestedQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "This is requested date - from quote requester - to get a complete response for this quote" }, "version": { "type": "string", "description": "Quote version - if the customer rejected the quote but negotiations still open a new version of the quote is managed" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementRef" }, "description": "A reference to an agreement defining the context of the quote" }, "authorization": { "type": "array", "items": { "$ref": "#/definitions/Authorization" }, "description": "An authorization provided for the quote" }, "billingAccount": { "type": "array", "items": { "$ref": "#/definitions/BillingAccountRef" }, "description": "A reference to a billing account to provide quote context information " }, "contactMedium": { "type": "array", "items": { "$ref": "#/definitions/ContactMedium" }, "description": "Information contact related to the quote requester" }, "note": { "type": "array", "items": { "$ref": "#/definitions/Note" }, "description": "Free form text associated with the quote" }, "productOfferingQualification": { "type": "array", "items": { "$ref": "#/definitions/ProductOfferingQualificationRef" }, "description": "A reference to a previously done product offering qualification" }, "quoteItem": { "type": "array", "items": { "$ref": "#/definitions/QuoteItem" }, "minItems": 1, "description": "An item of the quote - it is used to descirbe an operation on a product to be quoted" }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" }, "description": "A reference to a party playing a role in this quote (customer, seller, requester, etc.)" }, "@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" } } }, "Quote_Update": { "type": "object", "description": "Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contain list of quote items, a reference to customer (partyRole), a list of productOffering and attached prices and conditions.\nSkipped properties: id,href,quoteDate", "required": [ "quoteItem" ], "properties": { "category": { "type": "string", "description": "Used to categorize the quote from a business perspective that can be useful for the CRM system (e.g. \"enterprise\", \"residential\", ...)" }, "description": { "type": "string", "description": "Description of the quote" }, "effectiveQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "Date when the quote has been completed" }, "expectedFulfillmentStartDate": { "type": "string", "format": "date-time", "description": "this is the date wished by the requester to have the requested quote item delivered" }, "expectedQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "This is expected date - from quote supplier - to be able to send back a response for this quote" }, "externalId": { "type": "string", "description": "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)" }, "instantSyncQuote": { "type": "boolean", "description": "An indicator which when the value is \"true\" means that requester expects to get quoting result immediately in the response. If the indicator is true then the response code of 200 indicates the operation is successful otherwise a task is created with a response 201. " }, "requestedQuoteCompletionDate": { "type": "string", "format": "date-time", "description": "This is requested date - from quote requester - to get a complete response for this quote" }, "version": { "type": "string", "description": "Quote version - if the customer rejected the quote but negotiations still open a new version of the quote is managed" }, "agreement": { "type": "array", "items": { "$ref": "#/definitions/AgreementRef" }, "description": "A reference to an agreement defining the context of the quote" }, "authorization": { "type": "array", "items": { "$ref": "#/definitions/Authorization" }, "description": "An authorization provided for the quote" }, "billingAccount": { "type": "array", "items": { "$ref": "#/definitions/BillingAccountRef" }, "description": "A reference to a billing account to provide quote context information " }, "contactMedium": { "type": "array", "items": { "$ref": "#/definitions/ContactMedium" }, "description": "Information contact related to the quote requester" }, "note": { "type": "array", "items": { "$ref": "#/definitions/Note" }, "description": "Free form text associated with the quote" }, "productOfferingQualification": { "type": "array", "items": { "$ref": "#/definitions/ProductOfferingQualificationRef" }, "description": "A reference to a previously done product offering qualification" }, "quoteItem": { "type": "array", "items": { "$ref": "#/definitions/QuoteItem" }, "minItems": 1, "description": "An item of the quote - it is used to descirbe an operation on a product to be quoted" }, "quoteTotalPrice": { "type": "array", "items": { "$ref": "#/definitions/QuotePrice" }, "description": "Quote total price" }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" }, "description": "A reference to a party playing a role in this quote (customer, seller, requester, etc.)" }, "state": { "$ref": "#/definitions/QuoteStateType", "description": "State of the quote : described in the state-machine diagram" }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "Quote 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" } } }, "QuoteItem": { "type": "object", "description": "A quote items describe an action to be performed on a productOffering or a product in order to get pricing elements and condition.", "properties": { "id": { "type": "string", "description": "Identifier of the quote item (generally it is a sequence number 01, 02, 03, ...)" }, "action": { "type": "string", "description": "Action to be performed on this quote item (add, modify, remove, etc.)" }, "quantity": { "type": "integer", "description": "Quantity asked for this quote item" }, "state": { "type": "string", "description": "State of the quote item : described in the state machine diagram" }, "appointment": { "type": "array", "items": { "$ref": "#/definitions/AppointmentRef" }, "description": "A reference to appointment(s) associated with this quote item" }, "attachment": { "type": "array", "items": { "$ref": "#/definitions/AttachmentRefOrValue" }, "description": "A reference to attachment(s) associated with this quote item" }, "note": { "type": "array", "items": { "$ref": "#/definitions/Note" }, "description": "Free form text associated with the quote item" }, "product": { "$ref": "#/definitions/ProductRefOrValue" }, "productOffering": { "$ref": "#/definitions/ProductOfferingRef" }, "productOfferingQualificationItem": { "$ref": "#/definitions/ProductOfferingQualificationItemRef", "description": "A reference to a previously done POQ with item specified" }, "quoteItem": { "type": "array", "items": { "$ref": "#/definitions/QuoteItem" }, "description": "A structure to embedded quote item within quote item" }, "quoteItemAuthorization": { "type": "array", "items": { "$ref": "#/definitions/Authorization" }, "description": "Authorization related to this quote item" }, "quoteItemPrice": { "type": "array", "items": { "$ref": "#/definitions/QuotePrice" }, "description": "Price for this quote item" }, "quoteItemRelationship": { "type": "array", "items": { "$ref": "#/definitions/QuoteItemRelationship" }, "description": "A relationship from item within a quote" }, "relatedParty": { "type": "array", "items": { "$ref": "#/definitions/RelatedParty" }, "description": "A reference to a party playing a role in this quote item" }, "@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" } } }, "QuoteItemRelationship": { "type": "object", "description": "Used to describe relationship between quote item. These relationship could have an impact on pricing and conditions", "properties": { "id": { "type": "string", "description": "ID of the related order item (must be in the same quote)" }, "relationshipType": { "type": "string", "description": "Relationship type as relies on, bundles, etc..." }, "@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" } } }, "QuotePrice": { "type": "object", "description": "Description of price and discount awarded", "properties": { "description": { "type": "string", "description": "Description of the quote/quote item price" }, "name": { "type": "string", "description": "Name of the quote /quote item price" }, "priceType": { "type": "string", "description": "indicate if the price is for recurrent or no-recurrent charge" }, "recurringChargePeriod": { "type": "string", "description": "Used for recurring charge to indicate period (month, week, etc..)" }, "unitOfMeasure": { "type": "string", "description": "Unit of Measure if price depending on it (Gb, SMS volume, etc..)" }, "price": { "$ref": "#/definitions/Price" }, "priceAlteration": { "type": "array", "items": { "$ref": "#/definitions/PriceAlteration" } }, "productOfferingPrice": { "$ref": "#/definitions/ProductOfferingPriceRef", "description": "An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased. The price is valid for a defined period of time." }, "@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" } } }, "QuoteStateType": { "type": "string", "description": "Possible values for the state of the quote", "enum": [ "rejected", "pending", "inProgress", "cancelled", "approved", "accepted" ] }, "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", "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." } }, "required": [ "id" ] }, "ServiceRef": { "type": "object", "description": "Service reference, for when Service is used by other entities", "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" ] }, "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" } } }, "QuoteCreateEvent": { "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/QuoteCreateEventPayload" } } }, "QuoteCreateEventPayload": { "type": "object", "description": "The event data structure", "properties": { "quote": { "description": "The involved resource data for the event", "$ref": "#/definitions/Quote" } } }, "QuoteStateChangeEvent": { "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/QuoteStateChangeEventPayload" } } }, "QuoteStateChangeEventPayload": { "type": "object", "description": "The event data structure", "properties": { "quote": { "description": "The involved resource data for the event", "$ref": "#/definitions/Quote" } } }, "QuoteDeleteEvent": { "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/QuoteDeleteEventPayload" } } }, "QuoteDeleteEventPayload": { "type": "object", "description": "The event data structure", "properties": { "quote": { "description": "The involved resource data for the event", "$ref": "#/definitions/Quote" } } }, "QuoteInformationRequiredEvent": { "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/QuoteInformationRequiredEventPayload" } } }, "QuoteInformationRequiredEventPayload": { "type": "object", "description": "The event data structure", "properties": { "quote": { "description": "The involved resource data for the event", "$ref": "#/definitions/Quote" } } }, "QuoteAttributeValueChangeEvent": { "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/QuoteAttributeValueChangeEventPayload" } } }, "QuoteAttributeValueChangeEventPayload": { "type": "object", "description": "The event data structure", "properties": { "quote": { "description": "The involved resource data for the event", "$ref": "#/definitions/Quote" } } }, "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." } } } } }