diff --git a/productCatalog/v2/swagger2.json b/productCatalog/v2/swagger2.json index 920a940..aaa22e5 100644 --- a/productCatalog/v2/swagger2.json +++ b/productCatalog/v2/swagger2.json @@ -1,2632 +1,2636 @@ { - "swagger": "2.0", - "info": { - "title": "Product Catalog Management", - "description": "This is Swagger UI environment generated for the TMF Product Catalog Management specification", - "version": "2.0" - }, - "host": "env-0693795.jelastic.servint.net", - "basePath": "/DSProductCatalog/api/catalogManagement/v2", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/category": { - "get": { - "operationId": "listCategory", - "summary": "List or find 'Category' objects", - "tags": [ - "category" - ], - "parameters": [ - { - "type": "string", - "required": false, - "in": "query", - "name": "fields", - "description": "Comma separated properties to display in response" - }, - { - "name": "lastUpdate", - "format": "date-time", - "required": false, - "in": "query", - "type": "string", - "description": "For filtering: Date and time of the last update" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "version", - "description": "For filtering: Category version" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "lifecycleStatus", - "description": "For filtering: Used to indicate the current lifecycle status" - }, - { - "name": "validFor.startDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, starting at the TimePeriod" - }, - { - "name": "validFor.endDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, ending at the TimePeriod." - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "parentId", - "description": "For filtering: Unique identifier of the parent category" - }, - { - "type": "boolean", - "required": false, - "in": "query", - "name": "isRoot", - "description": "For filtering: If true, this Boolean indicates that the category is a root of categories" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "name", - "description": "For filtering: Name of the category" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/Category" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "post": { - "operationId": "createCategory", - "summary": "Creates a 'Category'", - "tags": [ - "category" - ], - "parameters": [ - { - "schema": { - "$ref": "#/definitions/Category_Create" - }, - "required": true, - "in": "body", - "name": "category", - "description": "The Category to be created" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/Category" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + "swagger": "2.0", + "info": { + "title": "Product Catalog Management", + "description": "This is Swagger UI environment generated for the TMF Product Catalog Management specification", + "version": "2.0" + }, + "host": "env-0693795.jelastic.servint.net", + "basePath": "/DSProductCatalog/api/catalogManagement/v2", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/category": { + "get": { + "operationId": "listCategory", + "summary": "List or find 'Category' objects", + "tags": [ + "category" + ], + "parameters": [ + { + "type": "string", + "required": false, + "in": "query", + "name": "fields", + "description": "Comma separated properties to display in response" + }, + { + "name": "lastUpdate", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: Date and time of the last update" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "version", + "description": "For filtering: Category version" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "lifecycleStatus", + "description": "For filtering: Used to indicate the current lifecycle status" + }, + { + "name": "validFor.startDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, starting at the TimePeriod" + }, + { + "name": "validFor.endDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, ending at the TimePeriod." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "parentId", + "description": "For filtering: Unique identifier of the parent category" + }, + { + "type": "boolean", + "required": false, + "in": "query", + "name": "isRoot", + "description": "For filtering: If true, this Boolean indicates that the category is a root of categories" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "name", + "description": "For filtering: Name of the category" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/Category" + }, + "type": "array" } - }, - "/category/{id}": { - "get": { - "operationId": "retrieveCategory", - "summary": "Retrieves a 'Category' by Id", - "tags": [ - "category" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Category" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/Category" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "put": { - "operationId": "updateCategory", - "summary": "Updates a 'Category' by Id", - "tags": [ - "category" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Category" - }, - { - "schema": { - "$ref": "#/definitions/Category_Update" - }, - "required": true, - "in": "body", - "name": "category", - "description": "The Category to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/Category" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "patch": { - "operationId": "updateCategory", - "summary": "Updates partially a 'Category' by Id", - "tags": [ - "category" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Category" - }, - { - "schema": { - "$ref": "#/definitions/Category_Update" - }, - "required": true, - "in": "body", - "name": "category", - "description": "The Category to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/Category" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "/productOffering": { - "get": { - "operationId": "listProductOffering", - "summary": "List or find 'ProductOffering' objects", - "tags": [ - "productOffering" - ], - "parameters": [ - { - "type": "string", - "required": false, - "in": "query", - "name": "fields", - "description": "Comma separated properties to display in response" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "version", - "description": "For filtering: ProductOffering version" - }, - { - "name": "lastUpdate", - "format": "date-time", - "required": false, - "in": "query", - "type": "string", - "description": "For filtering: Date and time of the last update" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "name", - "description": "For filtering: Name of the productOffering" - }, - { - "type": "boolean", - "required": false, - "in": "query", - "name": "isBundle", - "description": "For filtering: isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "lifecycleStatus", - "description": "For filtering: Used to indicate the current lifecycle status" - }, - { - "name": "validFor.startDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, starting at the TimePeriod" - }, - { - "name": "validFor.endDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, ending at the TimePeriod." - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "place.name", - "description": "For filtering: Name of the place" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "serviceLevelAgreement.name", - "description": "For filtering: Name of the service level agreement" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productSpecification.version", - "description": "For filtering: Version of the product specification" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productSpecification.name", - "description": "For filtering: Name of the product specification" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "channel.name", - "description": "For filtering: Name of the channel" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "serviceCandidate.version", - "description": "For filtering: Version of the service candidate" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "serviceCandidate.name", - "description": "For filtering: Name of the service candidate" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "category.version", - "description": "For filtering: Category version" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "category.name", - "description": "For filtering: Name of the category" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "resourceCandidate.version", - "description": "For filtering: Version of the resource candidate" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "resourceCandidate.name", - "description": "For filtering: Name of the resource candidate" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingPrice.name", - "description": "For filtering: Name of the productOfferingPrice" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingPrice.priceType", - "description": "For filtering: Indicates the price type: recurring, one time, usage" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingPrice.unitOfMeasure", - "description": "For filtering: Could be minutes, GB..." - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingPrice.recurringChargePeriod", - "description": "For filtering: Could be month, week..." - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingPrice.version", - "description": "For filtering: ProductOffering version" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "bundledProductOffering.lifecycleStatus", - "description": "For filtering: Used to indicate the current lifecycle status" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "bundledProductOffering.name", - "description": "For filtering: Name of the BundledProductOffering" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingTerm.name", - "description": "For filtering: Name of the productOfferingTerm" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productOfferingTerm.duration", - "description": "For filtering: Duration of the productOfferingTerm" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/ProductOffering" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "post": { - "operationId": "createProductOffering", - "summary": "Creates a 'ProductOffering'", - "tags": [ - "productOffering" - ], - "parameters": [ - { - "schema": { - "$ref": "#/definitions/ProductOffering_Create" - }, - "required": true, - "in": "body", - "name": "productOffering", - "description": "The Product Offering to be created" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ProductOffering" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "/productOffering/{id}": { - "get": { - "operationId": "retrieveProductOffering", - "summary": "Retrieves a 'ProductOffering' by Id", - "tags": [ - "productOffering" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Offering" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/ProductOffering" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "put": { - "operationId": "updateProductOffering", - "summary": "Updates a 'ProductOffering' by Id", - "tags": [ - "productOffering" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Offering" - }, - { - "schema": { - "$ref": "#/definitions/ProductOffering_Update" - }, - "required": true, - "in": "body", - "name": "productOffering", - "description": "The Product Offering to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/ProductOffering" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "patch": { - "operationId": "updateProductOffering", - "summary": "Updates partially a 'ProductOffering' by Id", - "tags": [ - "productOffering" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Offering" - }, - { - "schema": { - "$ref": "#/definitions/ProductOffering_Update" - }, - "required": true, - "in": "body", - "name": "productOffering", - "description": "The Product Offering to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/ProductOffering" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + } + } + }, + "post": { + "operationId": "createCategory", + "summary": "Creates a 'Category'", + "tags": [ + "category" + ], + "parameters": [ + { + "schema": { + "$ref": "#/definitions/Category_Create" + }, + "required": true, + "in": "body", + "name": "category", + "description": "The Category to be created" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Category" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/category/{id}": { + "get": { + "operationId": "retrieveCategory", + "summary": "Retrieves a 'Category' by Id", + "tags": [ + "category" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Category" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/Category" + }, + "type": "array" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "put": { + "operationId": "updateCategory", + "summary": "Updates a 'Category' by Id", + "tags": [ + "category" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Category" + }, + { + "schema": { + "$ref": "#/definitions/Category_Update" + }, + "required": true, + "in": "body", + "name": "category", + "description": "The Category to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/Category" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "patch": { + "operationId": "partialUpdateCategory", + "summary": "Updates partially a 'Category' by Id", + "tags": [ + "category" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Category" + }, + { + "schema": { + "$ref": "#/definitions/Category_Update" + }, + "required": true, + "in": "body", + "name": "category", + "description": "The Category to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/Category" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "/productSpecification": { - "get": { - "operationId": "listProductSpecification", - "summary": "List or find 'ProductSpecification' objects", - "tags": [ - "productSpecification" - ], - "parameters": [ - { - "type": "string", - "required": false, - "in": "query", - "name": "fields", - "description": "Comma separated properties to display in response" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "version", - "description": "For filtering: Product specification version" - }, - { - "name": "lastUpdate", - "format": "date-time", - "required": false, - "in": "query", - "type": "string", - "description": "For filtering: Date and time of the last update" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "name", - "description": "For filtering: Name of the product specification" - }, - { - "type": "boolean", - "required": false, - "in": "query", - "name": "isBundle", - "description": "For filtering: isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "brand", - "description": "For filtering: The manufacturer or trademark of the specification" - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "lifecycleStatus", - "description": "For filtering: Used to indicate the current lifecycle status" - }, - { - "name": "validFor.startDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, starting at the TimePeriod" - }, - { - "name": "validFor.endDateTime", - "format": "date-time", - "required": false, - "in": "path", - "type": "string", - "description": "For filtering: An instant of time, ending at the TimePeriod." - }, - { - "type": "string", - "required": false, - "in": "query", - "name": "productNumber", - "description": "For filtering: An identification number assigned to uniquely identity the specification" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "relatedParty.role", - "description": "For filtering: Role of the related party." - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "relatedParty.name", - "description": "For filtering: Name of the related party" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productSpecCharacteristic.name", - "description": "For filtering: Name of the productSpecCharacteristic" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productSpecCharacteristic.valueType", - "description": "For filtering: A kind of value that the characteristic can take on, such as numeric, text and so forth" - }, - { - "type": "boolean", - "required": false, - "in": "path", - "name": "productSpecCharacteristic.configurable", - "description": "For filtering: If true, the Boolean indicates that the productSpecCharacteristic is configurable" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "serviceSpecification.name", - "description": "For filtering: Name of the requiredServiceSpecification" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "serviceSpecification.version", - "description": "For filtering: Service specification version" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "productSpecificationRelationship.type", - "description": "For filtering: Type of relationship such as migration, substitution, dependency, exclusivity" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "resourceSpecification.name", - "description": "For filtering: Name of the requiredResourceSpecification" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "resourceSpecification.version", - "description": "For filtering: Resource specification version" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "attachment.type", - "description": "For filtering: Attachment type such as video, picture" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "attachment.url", - "description": "For filtering: Uniform Resource Locator, is a web page address (a subset of URI)" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "bundledProductSpecification.lifecycleStatus", - "description": "For filtering: Used to indicate the current lifecycle status" - }, - { - "type": "string", - "required": false, - "in": "path", - "name": "bundledProductSpecification.name", - "description": "For filtering: Name of the product specification" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/ProductSpecification" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "post": { - "operationId": "createProductSpecification", - "summary": "Creates a 'ProductSpecification'", - "tags": [ - "productSpecification" - ], - "parameters": [ - { - "schema": { - "$ref": "#/definitions/ProductSpecification_Create" - }, - "required": true, - "in": "body", - "name": "productSpecification", - "description": "The Product Specification to be created" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ProductSpecification" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + } + } + } + }, + "/productOffering": { + "get": { + "operationId": "listProductOffering", + "summary": "List or find 'ProductOffering' objects", + "tags": [ + "productOffering" + ], + "parameters": [ + { + "type": "string", + "required": false, + "in": "query", + "name": "fields", + "description": "Comma separated properties to display in response" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "version", + "description": "For filtering: ProductOffering version" + }, + { + "name": "lastUpdate", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: Date and time of the last update" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "name", + "description": "For filtering: Name of the productOffering" + }, + { + "type": "boolean", + "required": false, + "in": "query", + "name": "isBundle", + "description": "For filtering: isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "lifecycleStatus", + "description": "For filtering: Used to indicate the current lifecycle status" + }, + { + "name": "validFor.startDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, starting at the TimePeriod" + }, + { + "name": "validFor.endDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, ending at the TimePeriod." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "place.name", + "description": "For filtering: Name of the place" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "serviceLevelAgreement.name", + "description": "For filtering: Name of the service level agreement" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productSpecification.version", + "description": "For filtering: Version of the product specification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productSpecification.name", + "description": "For filtering: Name of the product specification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "channel.name", + "description": "For filtering: Name of the channel" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "serviceCandidate.version", + "description": "For filtering: Version of the service candidate" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "serviceCandidate.name", + "description": "For filtering: Name of the service candidate" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "category.version", + "description": "For filtering: Category version" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "category.name", + "description": "For filtering: Name of the category" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "resourceCandidate.version", + "description": "For filtering: Version of the resource candidate" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "resourceCandidate.name", + "description": "For filtering: Name of the resource candidate" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingPrice.name", + "description": "For filtering: Name of the productOfferingPrice" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingPrice.priceType", + "description": "For filtering: Indicates the price type: recurring, one time, usage" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingPrice.unitOfMeasure", + "description": "For filtering: Could be minutes, GB..." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingPrice.recurringChargePeriod", + "description": "For filtering: Could be month, week..." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingPrice.version", + "description": "For filtering: ProductOffering version" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "bundledProductOffering.lifecycleStatus", + "description": "For filtering: Used to indicate the current lifecycle status" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "bundledProductOffering.name", + "description": "For filtering: Name of the BundledProductOffering" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingTerm.name", + "description": "For filtering: Name of the productOfferingTerm" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productOfferingTerm.duration", + "description": "For filtering: Duration of the productOfferingTerm" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/ProductOffering" + }, + "type": "array" } - }, - "/productSpecification/{id}": { - "get": { - "operationId": "retrieveProductSpecification", - "summary": "Retrieves a 'ProductSpecification' by Id", - "tags": [ - "productSpecification" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Specification" - } - ], - "responses": { - "200": { - "description": "Ok", - "schema": { - "items": { - "$ref": "#/definitions/ProductSpecification" - }, - "type": "array" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "put": { - "operationId": "updateProductSpecification", - "summary": "Updates a 'ProductSpecification' by Id", - "tags": [ - "productSpecification" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Specification" - }, - { - "schema": { - "$ref": "#/definitions/ProductSpecification_Update" - }, - "required": true, - "in": "body", - "name": "productSpecification", - "description": "The Product Specification to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/ProductSpecification" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } - }, - "patch": { - "operationId": "updateProductSpecification", - "summary": "Updates partially a 'ProductSpecification' by Id", - "tags": [ - "productSpecification" - ], - "parameters": [ - { - "required": true, - "type": "string", - "name": "id", - "in": "path", - "description": "Identifier of the Product Specification" - }, - { - "schema": { - "$ref": "#/definitions/ProductSpecification_Update" - }, - "required": true, - "in": "body", - "name": "productSpecification", - "description": "The Product Specification to be updated" - } - ], - "responses": { - "201": { - "description": "Updated", - "schema": { - "$ref": "#/definitions/ProductSpecification" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + }, + "400": { + "description": "Bad Request", + "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" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "400": { - "description": "Bad Request", - "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": { - "201": { - "description": "Unsubscribed" - }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + } + } + }, + "post": { + "operationId": "createProductOffering", + "summary": "Creates a 'ProductOffering'", + "tags": [ + "productOffering" + ], + "parameters": [ + { + "schema": { + "$ref": "#/definitions/ProductOffering_Create" + }, + "required": true, + "in": "body", + "name": "productOffering", + "description": "The Product Offering to be created" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ProductOffering" } - }, - "/listener/catalogChangeBatchNotification": { - "post": { - "operationId": "publishCatalogChangeBatchNotification", - "summary": "Publishes a 'CatalogChangeBatchNotification'", - "tags": [ - "events publication" - ], - "parameters": [ - { - "schema": { - "$ref": "#/definitions/CatalogChangeBatchNotification" - }, - "required": true, - "in": "body", - "name": "catalogChangeBatchNotification", - "description": "The Catalog Change Batch Notification to be published" - } - ], - "responses": { - "201": { - "description": "Published" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "/listener/catalogChangeNotification": { - "post": { - "operationId": "publishCatalogChangeNotification", - "summary": "Publishes a 'CatalogChangeNotification'", - "tags": [ - "events publication" - ], - "parameters": [ - { - "schema": { - "$ref": "#/definitions/CatalogChangeNotification" - }, - "required": true, - "in": "body", - "name": "catalogChangeNotification", - "description": "The Catalog Change Notification to be published" - } - ], - "responses": { - "201": { - "description": "Published" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/Error" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/Error" - } - } - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } + } } - }, - "definitions": { - "Catalog": { - "type": "object", - "description": "Is a collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the Catalog" - }, - "href": { - "type": "string", - "description": "Unique reference of the catalog" - }, - "version": { - "type": "string", - "description": "Catalog version" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "type": { - "type": "string", - "description": "Indicates if the catalog is a product, service or resource catalog" - }, - "name": { - "type": "string", - "description": "Name of the catalog" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the catalog is valid" - }, - "relatedParty": { - "type": "array", - "items": { - "$ref": "#/definitions/RelatedPartyRef" - } - }, - "category": { - "type": "array", - "items": { - "$ref": "#/definitions/CategoryRef" - } - } + } + }, + "/productOffering/{id}": { + "get": { + "operationId": "retrieveProductOffering", + "summary": "Retrieves a 'ProductOffering' by Id", + "tags": [ + "productOffering" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Offering" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/ProductOffering" + }, + "type": "array" } - }, - "Category": { - "type": "object", - "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the category" - }, - "href": { - "type": "string", - "description": "Reference of the catalog" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "version": { - "type": "string", - "description": "Category version" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the category is valid" - }, - "parentId": { - "type": "string", - "description": "Unique identifier of the parent category" - }, - "isRoot": { - "type": "boolean", - "description": "If true, this Boolean indicates that the category is a root of categories" - }, - "name": { - "type": "string", - "description": "Name of the category" - }, - "description": { - "type": "string", - "description": "Description of the category" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "Category_Create": { - "type": "object", - "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.\nSkipped properties: id,href", - "required": [ - "name", - "parentId" - ], - "properties": { - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "version": { - "type": "string", - "description": "Category version" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the category is valid" - }, - "parentId": { - "type": "string", - "description": "Unique identifier of the parent category" - }, - "isRoot": { - "type": "boolean", - "description": "If true, this Boolean indicates that the category is a root of categories" - }, - "name": { - "type": "string", - "description": "Name of the category" - }, - "description": { - "type": "string", - "description": "Description of the category" - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "Category_Update": { - "type": "object", - "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.\nSkipped properties: id,href,id,lastUpdate", - "properties": { - "version": { - "type": "string", - "description": "Category version" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the category is valid" - }, - "parentId": { - "type": "string", - "description": "Unique identifier of the parent category" - }, - "isRoot": { - "type": "boolean", - "description": "If true, this Boolean indicates that the category is a root of categories" - }, - "name": { - "type": "string", - "description": "Name of the category" - }, - "description": { - "type": "string", - "description": "Description of the category" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductOffering": { - "type": "object", - "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the productOffering" - }, - "href": { - "type": "string", - "description": "Reference of the ProductOffering" - }, - "version": { - "type": "string", - "description": "ProductOffering version" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "name": { - "type": "string", - "description": "Name of the productOffering" - }, - "description": { - "type": "string", - "description": "Description of the productOffering" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productOffering is valid" - }, - "place": { - "type": "array", - "items": { - "$ref": "#/definitions/PlaceRef" - } - }, - "serviceLevelAgreement": { - "$ref": "#/definitions/ServiceLevelAgreementRef" - }, - "productSpecification": { - "$ref": "#/definitions/ProductSpecificationRef" - }, - "channel": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelRef" - } - }, - "serviceCandidate": { - "$ref": "#/definitions/ServiceCandidateRef" - }, - "category": { - "type": "array", - "items": { - "$ref": "#/definitions/CategoryRef" - } - }, - "resourceCandidate": { - "$ref": "#/definitions/ResourceCandidateRef" - }, - "productOfferingPrice": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingPrice" - } - }, - "bundledProductOffering": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductOffering" - } - }, - "productOfferingTerm": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingTerm" - } - } + } + } + }, + "put": { + "operationId": "updateProductOffering", + "summary": "Updates a 'ProductOffering' by Id", + "tags": [ + "productOffering" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Offering" + }, + { + "schema": { + "$ref": "#/definitions/ProductOffering_Update" + }, + "required": true, + "in": "body", + "name": "productOffering", + "description": "The Product Offering to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/ProductOffering" } - }, - "ProductOffering_Create": { - "type": "object", - "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.\nSkipped properties: id,href", - "required": [ - "name", - "bundledProductOffering", - "productSpecification", - "productOfferingPrice" - ], - "properties": { - "version": { - "type": "string", - "description": "ProductOffering version" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "name": { - "type": "string", - "description": "Name of the productOffering" - }, - "description": { - "type": "string", - "description": "Description of the productOffering" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productOffering is valid" - }, - "place": { - "type": "array", - "items": { - "$ref": "#/definitions/PlaceRef" - } - }, - "serviceLevelAgreement": { - "$ref": "#/definitions/ServiceLevelAgreementRef" - }, - "productSpecification": { - "$ref": "#/definitions/ProductSpecificationRef" - }, - "channel": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelRef" - } - }, - "serviceCandidate": { - "$ref": "#/definitions/ServiceCandidateRef" - }, - "category": { - "type": "array", - "items": { - "$ref": "#/definitions/CategoryRef" - } - }, - "resourceCandidate": { - "$ref": "#/definitions/ResourceCandidateRef" - }, - "productOfferingPrice": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingPrice" - } - }, - "bundledProductOffering": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductOffering" - } - }, - "productOfferingTerm": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingTerm" - } - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductOffering_Update": { - "type": "object", - "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.\nSkipped properties: id,href,id,lastUpdate", - "properties": { - "version": { - "type": "string", - "description": "ProductOffering version" - }, - "name": { - "type": "string", - "description": "Name of the productOffering" - }, - "description": { - "type": "string", - "description": "Description of the productOffering" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productOffering is valid" - }, - "place": { - "type": "array", - "items": { - "$ref": "#/definitions/PlaceRef" - } - }, - "serviceLevelAgreement": { - "$ref": "#/definitions/ServiceLevelAgreementRef" - }, - "productSpecification": { - "$ref": "#/definitions/ProductSpecificationRef" - }, - "channel": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelRef" - } - }, - "serviceCandidate": { - "$ref": "#/definitions/ServiceCandidateRef" - }, - "category": { - "type": "array", - "items": { - "$ref": "#/definitions/CategoryRef" - } - }, - "resourceCandidate": { - "$ref": "#/definitions/ResourceCandidateRef" - }, - "productOfferingPrice": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingPrice" - } - }, - "bundledProductOffering": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductOffering" - } - }, - "productOfferingTerm": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductOfferingTerm" - } - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductSpecification": { - "type": "object", - "description": "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 the product specification" - }, - "href": { - "type": "string", - "description": "Reference of the product specification" - }, - "version": { - "type": "string", - "description": "Product specification version" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "name": { - "type": "string", - "description": "Name of the product specification" - }, - "description": { - "type": "string", - "description": "A narrative that explains in detail what the product specification is" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." - }, - "brand": { - "type": "string", - "description": "The manufacturer or trademark of the specification" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the product specification is valid" - }, - "productNumber": { - "type": "string", - "description": "An identification number assigned to uniquely identity the specification" - }, - "relatedParty": { - "type": "array", - "items": { - "$ref": "#/definitions/RelatedPartyRef" - } - }, - "productSpecCharacteristic": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecCharacteristic" - } - }, - "serviceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ServiceSpecificationRef" - } - }, - "productSpecificationRelationship": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecificationRelationship" - } - }, - "resourceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceSpecificationRef" - } - }, - "attachment": { - "type": "array", - "items": { - "$ref": "#/definitions/Attachment" - } - }, - "bundledProductSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductSpecification" - } - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductSpecification_Create": { - "type": "object", - "description": "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.\nSkipped properties: id,href", - "required": [ - "name", - "bundledProductSpecification", - "productSpecCharacteristic" - ], - "properties": { - "version": { - "type": "string", - "description": "Product specification version" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "Date and time of the last update" - }, - "name": { - "type": "string", - "description": "Name of the product specification" - }, - "description": { - "type": "string", - "description": "A narrative that explains in detail what the product specification is" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." - }, - "brand": { - "type": "string", - "description": "The manufacturer or trademark of the specification" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the product specification is valid" - }, - "productNumber": { - "type": "string", - "description": "An identification number assigned to uniquely identity the specification" - }, - "relatedParty": { - "type": "array", - "items": { - "$ref": "#/definitions/RelatedPartyRef" - } - }, - "productSpecCharacteristic": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecCharacteristic" - } - }, - "serviceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ServiceSpecificationRef" - } - }, - "productSpecificationRelationship": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecificationRelationship" - } - }, - "resourceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceSpecificationRef" - } - }, - "attachment": { - "type": "array", - "items": { - "$ref": "#/definitions/Attachment" - } - }, - "bundledProductSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductSpecification" - } - } + } + } + }, + "patch": { + "operationId": "partialUpdateProductOffering", + "summary": "Updates partially a 'ProductOffering' by Id", + "tags": [ + "productOffering" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Offering" + }, + { + "schema": { + "$ref": "#/definitions/ProductOffering_Update" + }, + "required": true, + "in": "body", + "name": "productOffering", + "description": "The Product Offering to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/ProductOffering" } - }, - "ProductSpecification_Update": { - "type": "object", - "description": "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.\nSkipped properties: id,href,id,lastUpdate", - "properties": { - "version": { - "type": "string", - "description": "Product specification version" - }, - "name": { - "type": "string", - "description": "Name of the product specification" - }, - "description": { - "type": "string", - "description": "A narrative that explains in detail what the product specification is" - }, - "isBundle": { - "type": "boolean", - "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." - }, - "brand": { - "type": "string", - "description": "The manufacturer or trademark of the specification" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the product specification is valid" - }, - "productNumber": { - "type": "string", - "description": "An identification number assigned to uniquely identity the specification" - }, - "relatedParty": { - "type": "array", - "items": { - "$ref": "#/definitions/RelatedPartyRef" - } - }, - "productSpecCharacteristic": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecCharacteristic" - } - }, - "serviceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ServiceSpecificationRef" - } - }, - "productSpecificationRelationship": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecificationRelationship" - } - }, - "resourceSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceSpecificationRef" - } - }, - "attachment": { - "type": "array", - "items": { - "$ref": "#/definitions/Attachment" - } - }, - "bundledProductSpecification": { - "type": "array", - "items": { - "$ref": "#/definitions/BundledProductSpecification" - } - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "TimePeriod": { - "type": "object", - "description": "A base / value business entity used to represent a period of time between two timepoints.", - "properties": { - "startDateTime": { - "type": "string", - "format": "date-time", - "description": "An instant of time, starting at the TimePeriod" - }, - "endDateTime": { - "type": "string", - "format": "date-time", - "description": "An instant of time, ending at the TimePeriod." - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "RelatedPartyRef": { - "type": "object", - "description": "RelatedParty reference. RelatedParty defines party or party role linked to a specific entity.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of a related party" - }, - "href": { - "type": "string", - "description": "Reference of the related party, could be a party reference or a partyRole reference" - }, - "role": { - "type": "string", - "description": "Role of the related party." - }, - "name": { - "type": "string", - "description": "Name of the related party" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "Validity period of the related party" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "CategoryRef": { - "type": "object", - "description": "Category reference. The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.", - "properties": { - "id": { - "type": "string", - "description": "Unique reference of the category" - }, - "href": { - "type": "string", - "description": "Unique reference of the category" - }, - "version": { - "type": "string", - "description": "Category version" - }, - "name": { - "type": "string", - "description": "Name of the category" - } + } + } + } + }, + "/productSpecification": { + "get": { + "operationId": "listProductSpecification", + "summary": "List or find 'ProductSpecification' objects", + "tags": [ + "productSpecification" + ], + "parameters": [ + { + "type": "string", + "required": false, + "in": "query", + "name": "fields", + "description": "Comma separated properties to display in response" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "version", + "description": "For filtering: Product specification version" + }, + { + "name": "lastUpdate", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: Date and time of the last update" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "name", + "description": "For filtering: Name of the product specification" + }, + { + "type": "boolean", + "required": false, + "in": "query", + "name": "isBundle", + "description": "For filtering: isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "brand", + "description": "For filtering: The manufacturer or trademark of the specification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "lifecycleStatus", + "description": "For filtering: Used to indicate the current lifecycle status" + }, + { + "name": "validFor.startDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, starting at the TimePeriod" + }, + { + "name": "validFor.endDateTime", + "format": "date-time", + "required": false, + "in": "query", + "type": "string", + "description": "For filtering: An instant of time, ending at the TimePeriod." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productNumber", + "description": "For filtering: An identification number assigned to uniquely identity the specification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "relatedParty.role", + "description": "For filtering: Role of the related party." + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "relatedParty.name", + "description": "For filtering: Name of the related party" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productSpecCharacteristic.name", + "description": "For filtering: Name of the productSpecCharacteristic" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productSpecCharacteristic.valueType", + "description": "For filtering: A kind of value that the characteristic can take on, such as numeric, text and so forth" + }, + { + "type": "boolean", + "required": false, + "in": "query", + "name": "productSpecCharacteristic.configurable", + "description": "For filtering: If true, the Boolean indicates that the productSpecCharacteristic is configurable" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "serviceSpecification.name", + "description": "For filtering: Name of the requiredServiceSpecification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "serviceSpecification.version", + "description": "For filtering: Service specification version" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "productSpecificationRelationship.type", + "description": "For filtering: Type of relationship such as migration, substitution, dependency, exclusivity" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "resourceSpecification.name", + "description": "For filtering: Name of the requiredResourceSpecification" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "resourceSpecification.version", + "description": "For filtering: Resource specification version" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "attachment.type", + "description": "For filtering: Attachment type such as video, picture" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "attachment.url", + "description": "For filtering: Uniform Resource Locator, is a web page address (a subset of URI)" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "bundledProductSpecification.lifecycleStatus", + "description": "For filtering: Used to indicate the current lifecycle status" + }, + { + "type": "string", + "required": false, + "in": "query", + "name": "bundledProductSpecification.name", + "description": "For filtering: Name of the product specification" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/ProductSpecification" + }, + "type": "array" } - }, - "PlaceRef": { - "type": "object", - "description": "Place reference. Place defines the places where the product offerings are sold.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the place" - }, - "href": { - "type": "string", - "description": "Unique reference of the place" - }, - "name": { - "type": "string", - "description": "Name of the place" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ServiceLevelAgreementRef": { - "type": "object", - "description": "ServiceLevelAgreement reference: A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of service level agreement" - }, - "href": { - "type": "string", - "description": "Reference of the service level agreement" - }, - "name": { - "type": "string", - "description": "Name of the service level agreement" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "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 the product specification" - }, - "href": { - "type": "string", - "description": "Reference of the product specification" - }, - "version": { - "type": "string", - "description": "Version of the product specification" - }, - "name": { - "type": "string", - "description": "Name of the product specification" - } + } + } + }, + "post": { + "operationId": "createProductSpecification", + "summary": "Creates a 'ProductSpecification'", + "tags": [ + "productSpecification" + ], + "parameters": [ + { + "schema": { + "$ref": "#/definitions/ProductSpecification_Create" + }, + "required": true, + "in": "body", + "name": "productSpecification", + "description": "The Product Specification to be created" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ProductSpecification" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ChannelRef": { - "type": "object", - "description": "Channel reference. The channel defines the channel for selling product offerings.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the channel" - }, - "href": { - "type": "string", - "description": "Reference of the channel" - }, - "name": { - "type": "string", - "description": "Name of the channel" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ServiceCandidateRef": { - "type": "object", - "description": "ServiceCandidate reference. ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the service candidate" - }, - "href": { - "type": "string", - "description": "Unique reference of the service candidate" - }, - "version": { - "type": "string", - "description": "Version of the service candidate" - }, - "name": { - "type": "string", - "description": "Name of the service candidate" - } + } + } + } + }, + "/productSpecification/{id}": { + "get": { + "operationId": "retrieveProductSpecification", + "summary": "Retrieves a 'ProductSpecification' by Id", + "tags": [ + "productSpecification" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Specification" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "items": { + "$ref": "#/definitions/ProductSpecification" + }, + "type": "array" } - }, - "ResourceCandidateRef": { - "type": "object", - "description": "ResourceCandidate reference: A resource candidate is an entity that makes a ResourceSpecification available to a catalog.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the resource candidate" - }, - "href": { - "type": "string", - "description": "Reference of the resource candidate" - }, - "version": { - "type": "string", - "description": "Version of the resource candidate" - }, - "name": { - "type": "string", - "description": "Name of the resource candidate" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductOfferingPrice": { - "type": "object", - "description": "Is based on both the basic cost to develop and produce products and the enterprise's policy on revenue targets. This price may be further revised through discounting (prodOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected - e.g. a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment.", - "properties": { - "name": { - "type": "string", - "description": "Name of the productOfferingPrice" - }, - "description": { - "type": "string", - "description": "Description of the productOfferingPrice" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productOfferingPrice is valid" - }, - "priceType": { - "type": "string", - "description": "Indicates the price type: recurring, one time, usage" - }, - "unitOfMeasure": { - "type": "string", - "description": "Could be minutes, GB..." - }, - "recurringChargePeriod": { - "type": "string", - "description": "Could be month, week..." - }, - "version": { - "type": "string", - "description": "ProductOffering version" - }, - "price": { - "$ref": "#/definitions/Price" - }, - "productOfferPriceAlteration": { - "$ref": "#/definitions/ProductOfferPriceAlteration" - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "BundledProductOffering": { - "type": "object", - "description": "A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the BundledProductOffering" - }, - "href": { - "type": "string", - "description": "Unique reference of the BundledProductOffering" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "name": { - "type": "string", - "description": "Name of the BundledProductOffering" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductOfferingTerm": { - "type": "object", - "description": "A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.", - "properties": { - "name": { - "type": "string", - "description": "Name of the productOfferingTerm" - }, - "description": { - "type": "string", - "description": "Description of the productOfferingTerm" - }, - "duration": { - "type": "string", - "description": "Duration of the productOfferingTerm" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productOfferingterm is valid" - } + } + } + }, + "put": { + "operationId": "updateProductSpecification", + "summary": "Updates a 'ProductSpecification' by Id", + "tags": [ + "productSpecification" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Specification" + }, + { + "schema": { + "$ref": "#/definitions/ProductSpecification_Update" + }, + "required": true, + "in": "body", + "name": "productSpecification", + "description": "The Product Specification to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/ProductSpecification" } - }, - "Price": { - "type": "object", - "description": "Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for ProdOfferPriceAlteration.", - "properties": { - "taxIncludedAmount": { - "type": "float", - "description": "All taxes included amount (expressed in the given currency)" - }, - "dutyFreeAmount": { - "type": "float", - "description": "All taxes excluded amount (expressed in the given currency)" - }, - "taxRate": { - "type": "float", - "description": "Tax rate" - }, - "currencyCode": { - "type": "string", - "description": "A string used as a code for specifying the currency associated to the given amounts. The ISO4217 norm uses 3 letters to define the currency (for example USD for US dollar or EUR for Euro)" - }, - "percentage": { - "type": "float", - "description": "Percentage to apply for ProdOfferPriceAlteration" - }, - "priceType": { - "type": "string", - "description": "Indicates the price type: recurring, one time, usage" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductOfferPriceAlteration": { - "type": "object", - "description": "An amount, usually of money, that modifies a price charged for a productOffering.", - "properties": { - "name": { - "type": "string", - "description": "Name of the prodOfferPriceAlteration" - }, - "description": { - "type": "string", - "description": "Description of the prodOfferPriceAlteration" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the prodOfferPriceAlteration is valid" - }, - "priceType": { - "type": "string", - "description": "Indicates the price type: recurring, one time, usage" - }, - "unitOfMeasure": { - "type": "string", - "description": "Could be minutes, GB..." - }, - "recurringChargePeriod": { - "type": "string", - "description": "Could be month, week..." - }, - "applicationDuration": { - "type": "integer", - "description": "Duration during which the prodOfferPriceAlteration applies on the productOffering (for instance 2 months free of charge for the recurring charge)" - }, - "priceCondition": { - "type": "string", - "description": "Condition that triggers the price application" - }, - "price": { - "$ref": "#/definitions/Price" - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductSpecCharacteristic": { - "type": "object", - "description": "A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.", - "properties": { - "name": { - "type": "string", - "description": "Name of the productSpecCharacteristic" - }, - "description": { - "type": "string", - "description": "A narrative that explains in detail what the productSpecCharacteristic is" - }, - "valueType": { - "type": "string", - "description": "A kind of value that the characteristic can take on, such as numeric, text and so forth" - }, - "configurable": { - "type": "boolean", - "description": "If true, the Boolean indicates that the productSpecCharacteristic is configurable" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productSpecCharacteristic is valid" - }, - "productSpecCharRelationship": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecCharRelationship" - } - }, - "productSpecCharacteristicValue": { - "type": "array", - "items": { - "$ref": "#/definitions/ProductSpecCharacteristicValue" - } - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ServiceSpecificationRef": { - "type": "object", - "description": "Service specification reference: ServiceSpecification(s) required to realize a ProductSpecification.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the service specification" - }, - "href": { - "type": "string", - "description": "Reference of the serviceSpecification" - }, - "name": { - "type": "string", - "description": "Name of the requiredServiceSpecification" - }, - "version": { - "type": "string", - "description": "Service specification version" - } + } + } + }, + "patch": { + "operationId": "partialUpdateProductSpecification", + "summary": "Updates partially a 'ProductSpecification' by Id", + "tags": [ + "productSpecification" + ], + "parameters": [ + { + "required": true, + "type": "string", + "name": "id", + "in": "path", + "description": "Identifier of the Product Specification" + }, + { + "schema": { + "$ref": "#/definitions/ProductSpecification_Update" + }, + "required": true, + "in": "body", + "name": "productSpecification", + "description": "The Product Specification to be updated" + } + ], + "responses": { + "201": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/ProductSpecification" } - }, - "ProductSpecificationRelationship": { - "type": "object", - "description": "A migration, substitution, dependency or exclusivity relationship between/among product specifications.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the productSpecification" - }, - "href": { - "type": "string", - "description": "Reference of the productSpecification" - }, - "type": { - "type": "string", - "description": "Type of relationship such as migration, substitution, dependency, exclusivity" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productSpecificationRelationship is valid" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ResourceSpecificationRef": { - "type": "object", - "description": "Resource Specification reference: The ResourceSpecification is required to realize a ProductSpecification.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the resource specification" - }, - "href": { - "type": "string", - "description": "Reference of the resource specification" - }, - "name": { - "type": "string", - "description": "Name of the requiredResourceSpecification" - }, - "version": { - "type": "string", - "description": "Resource specification version" - } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "Attachment": { - "type": "object", - "description": "Describes a product through video, pictures...", - "properties": { - "href": { - "type": "string", - "description": "Reference of the attachment" - }, - "id": { - "type": "string", - "description": "Unique identifier of the attachment" - }, - "type": { - "type": "string", - "description": "Attachment type such as video, picture" - }, - "url": { - "type": "string", - "description": "Uniform Resource Locator, is a web page address (a subset of URI)" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "BundledProductSpecification": { - "type": "object", - "description": "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the product specification" - }, - "href": { - "type": "string", - "description": "Reference of the product specification" - }, - "lifecycleStatus": { - "type": "string", - "description": "Used to indicate the current lifecycle status" - }, - "name": { - "type": "string", - "description": "Name of the product specification" - } + } + } + } + }, + "/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" } - }, - "ProductSpecCharRelationship": { - "type": "object", - "description": "An aggregation, migration, substitution, dependency or exclusivity relationship between/among productSpecCharacteristics.", - "properties": { - "type": { - "type": "string", - "description": "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period for which the productSpecCharRelationship is valid" - } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "ProductSpecCharacteristicValue": { - "type": "object", - "description": "A number or text that can be assigned to a ProductSpecCharacteristic.", - "properties": { - "valueType": { - "type": "string", - "description": "A kind of value that the characteristic can take on, such as numeric, text, and so forth" - }, - "default": { - "type": "boolean", - "description": "Indicates if the value is the default value for a characteristic" - }, - "value": { - "type": "string", - "description": "A discrete value that the characteristic can take on" - }, - "unitOfMeasure": { - "type": "string", - "description": "Could be minutes, GB..." - }, - "valueFrom": { - "type": "string", - "description": "The low range value that a characteristic can take on" - }, - "valueTo": { - "type": "string", - "description": "The upper range value that a characteristic can take on" - }, - "validFor": { - "$ref": "#/definitions/TimePeriod", - "description": "The period of time for which a value is applicable" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "CatalogChangeBatchNotification": { - "type": "object", - "description": "TheCatalogChangeBatch notification is sent to each listener who has subscribed to receive it.", - "properties": { - "eventType": { - "type": "string", - "description": "Type of event" - }, - "eventTime": { - "type": "string", - "format": "date-time", - "description": "Creation date of the event" - }, - "eventId": { - "type": "string", - "description": "Identifier of the event" - }, - "resourcePath": { - "type": "string", - "description": "To indicate which entity is concerned" - }, - "fieldPath": { - "type": "string", - "description": "details which field is missing, its structure is quite similar to GET filter criteria" - }, - "event": { - "$ref": "#/definitions/CatalogEvent" - } + } + } + } + }, + "/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": { + "201": { + "description": "Unsubscribed" + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" } - }, - "CatalogChangeNotification": { - "type": "object", - "description": "TheCatalogChange notification is sent to each listener who has subscribed to receive it.", - "properties": { - "eventType": { - "type": "string", - "description": "Type of event" - }, - "eventTime": { - "type": "string", - "format": "date-time", - "description": "Creation date of the event" - }, - "eventId": { - "type": "string", - "description": "Identifier of the event" - }, - "resourcePath": { - "type": "string", - "description": "To indicate which entity is concerned" - }, - "fieldPath": { - "type": "string", - "description": "details which field is missing, its structure is quite similar to GET filter criteria" - }, - "event": { - "$ref": "#/definitions/CatalogEvent" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "CatalogEvent": { - "type": "object", - "description": "The Catalog event is generated each time a catalog is updated.", - "properties": { - "catalog": { - "$ref": "#/definitions/Catalog" - } + } + } + } + }, + "/listener/catalogChangeBatchNotification": { + "post": { + "operationId": "publishCatalogChangeBatchNotification", + "summary": "Publishes a 'CatalogChangeBatchNotification'", + "tags": [ + "events publication" + ], + "parameters": [ + { + "schema": { + "$ref": "#/definitions/CatalogChangeBatchNotification" + }, + "required": true, + "in": "body", + "name": "catalogChangeBatchNotification", + "description": "The Catalog Change Batch Notification to be published" + } + ], + "responses": { + "201": { + "description": "Published" + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "EventSubscription": { - "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" - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } - }, - "EventSubscriptionInput": { - "required": [ - "callback" - ], - "properties": { - "callback": { - "type": "string", - "description": "The callback being registered." - }, - "query": { - "type": "string", - "description": "additional data to be passed" - } + } + } + } + }, + "/listener/catalogChangeNotification": { + "post": { + "operationId": "publishCatalogChangeNotification", + "summary": "Publishes a 'CatalogChangeNotification'", + "tags": [ + "events publication" + ], + "parameters": [ + { + "schema": { + "$ref": "#/definitions/CatalogChangeNotification" + }, + "required": true, + "in": "body", + "name": "catalogChangeNotification", + "description": "The Catalog Change Notification to be published" + } + ], + "responses": { + "201": { + "description": "Published" + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" } - }, - "Error": { - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "type": "integer", - "description": "An integer coding the error type. This is given to caller so he can translate them if required." - }, - "message": { - "type": "string", - "description": "A short localized string that describes the error." - }, - "description": { - "type": "string", - "description": "(optional) A long localized error description if needed. It can contain precise information about which parameter is missing, or what are the identifier acceptable values." - }, - "infoURL": { - "type": "string", - "description": "(optional) A URL to online documentation that provides more information about the error." - } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/Error" } + } + } + } + } + }, + "definitions": { + "Catalog": { + "type": "object", + "description": "Is a collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the Catalog" + }, + "href": { + "type": "string", + "description": "Unique reference of the catalog" + }, + "version": { + "type": "string", + "description": "Catalog version" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "type": { + "type": "string", + "description": "Indicates if the catalog is a product, service or resource catalog" + }, + "name": { + "type": "string", + "description": "Name of the catalog" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the catalog is valid" + }, + "relatedParty": { + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + }, + "category": { + "type": "array", + "items": { + "$ref": "#/definitions/CategoryRef" + } + } + } + }, + "Category": { + "type": "object", + "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the category" + }, + "href": { + "type": "string", + "description": "Reference of the catalog" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "version": { + "type": "string", + "description": "Category version" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the category is valid" + }, + "parentId": { + "type": "string", + "description": "Unique identifier of the parent category" + }, + "isRoot": { + "type": "boolean", + "description": "If true, this Boolean indicates that the category is a root of categories" + }, + "name": { + "type": "string", + "description": "Name of the category" + }, + "description": { + "type": "string", + "description": "Description of the category" + } + } + }, + "Category_Create": { + "type": "object", + "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.\nSkipped properties: id,href", + "required": [ + "name", + "parentId" + ], + "properties": { + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "version": { + "type": "string", + "description": "Category version" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the category is valid" + }, + "parentId": { + "type": "string", + "description": "Unique identifier of the parent category" + }, + "isRoot": { + "type": "boolean", + "description": "If true, this Boolean indicates that the category is a root of categories" + }, + "name": { + "type": "string", + "description": "Name of the category" + }, + "description": { + "type": "string", + "description": "Description of the category" + } + } + }, + "Category_Update": { + "type": "object", + "description": "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.\nSkipped properties: id,href,id,lastUpdate", + "properties": { + "version": { + "type": "string", + "description": "Category version" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the category is valid" + }, + "parentId": { + "type": "string", + "description": "Unique identifier of the parent category" + }, + "isRoot": { + "type": "boolean", + "description": "If true, this Boolean indicates that the category is a root of categories" + }, + "name": { + "type": "string", + "description": "Name of the category" + }, + "description": { + "type": "string", + "description": "Description of the category" + } + } + }, + "ProductOffering": { + "type": "object", + "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the productOffering" + }, + "href": { + "type": "string", + "description": "Reference of the ProductOffering" + }, + "version": { + "type": "string", + "description": "ProductOffering version" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "name": { + "type": "string", + "description": "Name of the productOffering" + }, + "description": { + "type": "string", + "description": "Description of the productOffering" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productOffering is valid" + }, + "place": { + "type": "array", + "items": { + "$ref": "#/definitions/PlaceRef" + } + }, + "serviceLevelAgreement": { + "$ref": "#/definitions/ServiceLevelAgreementRef" + }, + "productSpecification": { + "$ref": "#/definitions/ProductSpecificationRef" + }, + "channel": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelRef" + } + }, + "serviceCandidate": { + "$ref": "#/definitions/ServiceCandidateRef" + }, + "category": { + "type": "array", + "items": { + "$ref": "#/definitions/CategoryRef" + } + }, + "resourceCandidate": { + "$ref": "#/definitions/ResourceCandidateRef" + }, + "productOfferingPrice": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingPrice" + } + }, + "bundledProductOffering": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductOffering" + } + }, + "productOfferingTerm": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingTerm" + } + } + } + }, + "ProductOffering_Create": { + "type": "object", + "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.\nSkipped properties: id,href", + "required": [ + "name", + "bundledProductOffering", + "productSpecification", + "productOfferingPrice" + ], + "properties": { + "version": { + "type": "string", + "description": "ProductOffering version" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "name": { + "type": "string", + "description": "Name of the productOffering" + }, + "description": { + "type": "string", + "description": "Description of the productOffering" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productOffering is valid" + }, + "place": { + "type": "array", + "items": { + "$ref": "#/definitions/PlaceRef" + } + }, + "serviceLevelAgreement": { + "$ref": "#/definitions/ServiceLevelAgreementRef" + }, + "productSpecification": { + "$ref": "#/definitions/ProductSpecificationRef" + }, + "channel": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelRef" + } + }, + "serviceCandidate": { + "$ref": "#/definitions/ServiceCandidateRef" + }, + "category": { + "type": "array", + "items": { + "$ref": "#/definitions/CategoryRef" + } + }, + "resourceCandidate": { + "$ref": "#/definitions/ResourceCandidateRef" + }, + "productOfferingPrice": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingPrice" + } + }, + "bundledProductOffering": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductOffering" + } + }, + "productOfferingTerm": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingTerm" + } + } + } + }, + "ProductOffering_Update": { + "type": "object", + "description": "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.\nSkipped properties: id,href,id,lastUpdate", + "properties": { + "version": { + "type": "string", + "description": "ProductOffering version" + }, + "name": { + "type": "string", + "description": "Name of the productOffering" + }, + "description": { + "type": "string", + "description": "Description of the productOffering" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true)." + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productOffering is valid" + }, + "place": { + "type": "array", + "items": { + "$ref": "#/definitions/PlaceRef" + } + }, + "serviceLevelAgreement": { + "$ref": "#/definitions/ServiceLevelAgreementRef" + }, + "productSpecification": { + "$ref": "#/definitions/ProductSpecificationRef" + }, + "channel": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelRef" + } + }, + "serviceCandidate": { + "$ref": "#/definitions/ServiceCandidateRef" + }, + "category": { + "type": "array", + "items": { + "$ref": "#/definitions/CategoryRef" + } + }, + "resourceCandidate": { + "$ref": "#/definitions/ResourceCandidateRef" + }, + "productOfferingPrice": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingPrice" + } + }, + "bundledProductOffering": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductOffering" + } + }, + "productOfferingTerm": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductOfferingTerm" + } + } + } + }, + "ProductSpecification": { + "type": "object", + "description": "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 the product specification" + }, + "href": { + "type": "string", + "description": "Reference of the product specification" + }, + "version": { + "type": "string", + "description": "Product specification version" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "name": { + "type": "string", + "description": "Name of the product specification" + }, + "description": { + "type": "string", + "description": "A narrative that explains in detail what the product specification is" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." + }, + "brand": { + "type": "string", + "description": "The manufacturer or trademark of the specification" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the product specification is valid" + }, + "productNumber": { + "type": "string", + "description": "An identification number assigned to uniquely identity the specification" + }, + "relatedParty": { + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + }, + "productSpecCharacteristic": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecCharacteristic" + } + }, + "serviceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecificationRef" + } + }, + "productSpecificationRelationship": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecificationRelationship" + } + }, + "resourceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceSpecificationRef" + } + }, + "attachment": { + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + } + }, + "bundledProductSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductSpecification" + } + } + } + }, + "ProductSpecification_Create": { + "type": "object", + "description": "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.\nSkipped properties: id,href", + "required": [ + "name", + "bundledProductSpecification", + "productSpecCharacteristic" + ], + "properties": { + "version": { + "type": "string", + "description": "Product specification version" + }, + "lastUpdate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the last update" + }, + "name": { + "type": "string", + "description": "Name of the product specification" + }, + "description": { + "type": "string", + "description": "A narrative that explains in detail what the product specification is" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." + }, + "brand": { + "type": "string", + "description": "The manufacturer or trademark of the specification" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the product specification is valid" + }, + "productNumber": { + "type": "string", + "description": "An identification number assigned to uniquely identity the specification" + }, + "relatedParty": { + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + }, + "productSpecCharacteristic": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecCharacteristic" + } + }, + "serviceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecificationRef" + } + }, + "productSpecificationRelationship": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecificationRelationship" + } + }, + "resourceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceSpecificationRef" + } + }, + "attachment": { + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + } + }, + "bundledProductSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductSpecification" + } + } + } + }, + "ProductSpecification_Update": { + "type": "object", + "description": "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.\nSkipped properties: id,href,id,lastUpdate", + "properties": { + "version": { + "type": "string", + "description": "Product specification version" + }, + "name": { + "type": "string", + "description": "Name of the product specification" + }, + "description": { + "type": "string", + "description": "A narrative that explains in detail what the product specification is" + }, + "isBundle": { + "type": "boolean", + "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)." + }, + "brand": { + "type": "string", + "description": "The manufacturer or trademark of the specification" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the product specification is valid" + }, + "productNumber": { + "type": "string", + "description": "An identification number assigned to uniquely identity the specification" + }, + "relatedParty": { + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + }, + "productSpecCharacteristic": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecCharacteristic" + } + }, + "serviceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecificationRef" + } + }, + "productSpecificationRelationship": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecificationRelationship" + } + }, + "resourceSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceSpecificationRef" + } + }, + "attachment": { + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + } + }, + "bundledProductSpecification": { + "type": "array", + "items": { + "$ref": "#/definitions/BundledProductSpecification" + } + } + } + }, + "TimePeriod": { + "type": "object", + "description": "A base / value business entity used to represent a period of time between two timepoints.", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time", + "description": "An instant of time, starting at the TimePeriod" + }, + "endDateTime": { + "type": "string", + "format": "date-time", + "description": "An instant of time, ending at the TimePeriod." + } + } + }, + "RelatedPartyRef": { + "type": "object", + "description": "RelatedParty reference. RelatedParty defines party or party role linked to a specific entity.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of a related party" + }, + "href": { + "type": "string", + "description": "Reference of the related party, could be a party reference or a partyRole reference" + }, + "role": { + "type": "string", + "description": "Role of the related party." + }, + "name": { + "type": "string", + "description": "Name of the related party" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "Validity period of the related party" + } + } + }, + "CategoryRef": { + "type": "object", + "description": "Category reference. The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.", + "properties": { + "id": { + "type": "string", + "description": "Unique reference of the category" + }, + "href": { + "type": "string", + "description": "Unique reference of the category" + }, + "version": { + "type": "string", + "description": "Category version" + }, + "name": { + "type": "string", + "description": "Name of the category" + } + } + }, + "PlaceRef": { + "type": "object", + "description": "Place reference. Place defines the places where the product offerings are sold.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the place" + }, + "href": { + "type": "string", + "description": "Unique reference of the place" + }, + "name": { + "type": "string", + "description": "Name of the place" + } + } + }, + "ServiceLevelAgreementRef": { + "type": "object", + "description": "ServiceLevelAgreement reference: A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of service level agreement" + }, + "href": { + "type": "string", + "description": "Reference of the service level agreement" + }, + "name": { + "type": "string", + "description": "Name of the service level agreement" + } + } + }, + "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 the product specification" + }, + "href": { + "type": "string", + "description": "Reference of the product specification" + }, + "version": { + "type": "string", + "description": "Version of the product specification" + }, + "name": { + "type": "string", + "description": "Name of the product specification" + } + } + }, + "ChannelRef": { + "type": "object", + "description": "Channel reference. The channel defines the channel for selling product offerings.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the channel" + }, + "href": { + "type": "string", + "description": "Reference of the channel" + }, + "name": { + "type": "string", + "description": "Name of the channel" + } + } + }, + "ServiceCandidateRef": { + "type": "object", + "description": "ServiceCandidate reference. ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the service candidate" + }, + "href": { + "type": "string", + "description": "Unique reference of the service candidate" + }, + "version": { + "type": "string", + "description": "Version of the service candidate" + }, + "name": { + "type": "string", + "description": "Name of the service candidate" + } + } + }, + "ResourceCandidateRef": { + "type": "object", + "description": "ResourceCandidate reference: A resource candidate is an entity that makes a ResourceSpecification available to a catalog.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the resource candidate" + }, + "href": { + "type": "string", + "description": "Reference of the resource candidate" + }, + "version": { + "type": "string", + "description": "Version of the resource candidate" + }, + "name": { + "type": "string", + "description": "Name of the resource candidate" + } + } + }, + "ProductOfferingPrice": { + "type": "object", + "description": "Is based on both the basic cost to develop and produce products and the enterprise's policy on revenue targets. This price may be further revised through discounting (prodOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected - e.g. a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment.", + "properties": { + "name": { + "type": "string", + "description": "Name of the productOfferingPrice" + }, + "description": { + "type": "string", + "description": "Description of the productOfferingPrice" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productOfferingPrice is valid" + }, + "priceType": { + "type": "string", + "description": "Indicates the price type: recurring, one time, usage" + }, + "unitOfMeasure": { + "type": "string", + "description": "Could be minutes, GB..." + }, + "recurringChargePeriod": { + "type": "string", + "description": "Could be month, week..." + }, + "version": { + "type": "string", + "description": "ProductOffering version" + }, + "price": { + "$ref": "#/definitions/Price" + }, + "productOfferPriceAlteration": { + "$ref": "#/definitions/ProductOfferPriceAlteration" + } + } + }, + "BundledProductOffering": { + "type": "object", + "description": "A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the BundledProductOffering" + }, + "href": { + "type": "string", + "description": "Unique reference of the BundledProductOffering" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "name": { + "type": "string", + "description": "Name of the BundledProductOffering" + } + } + }, + "ProductOfferingTerm": { + "type": "object", + "description": "A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.", + "properties": { + "name": { + "type": "string", + "description": "Name of the productOfferingTerm" + }, + "description": { + "type": "string", + "description": "Description of the productOfferingTerm" + }, + "duration": { + "type": "string", + "description": "Duration of the productOfferingTerm" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productOfferingterm is valid" + } + } + }, + "Price": { + "type": "object", + "description": "Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for ProdOfferPriceAlteration.", + "properties": { + "taxIncludedAmount": { + "type": "number", + "format": "float", + "description": "All taxes included amount (expressed in the given currency)" + }, + "dutyFreeAmount": { + "type": "number", + "format": "float", + "description": "All taxes excluded amount (expressed in the given currency)" + }, + "taxRate": { + "type": "number", + "format": "float", + "description": "Tax rate" + }, + "currencyCode": { + "type": "string", + "description": "A string used as a code for specifying the currency associated to the given amounts. The ISO4217 norm uses 3 letters to define the currency (for example USD for US dollar or EUR for Euro)" + }, + "percentage": { + "type": "number", + "format": "float", + "description": "Percentage to apply for ProdOfferPriceAlteration" + }, + "priceType": { + "type": "string", + "description": "Indicates the price type: recurring, one time, usage" + } + } + }, + "ProductOfferPriceAlteration": { + "type": "object", + "description": "An amount, usually of money, that modifies a price charged for a productOffering.", + "properties": { + "name": { + "type": "string", + "description": "Name of the prodOfferPriceAlteration" + }, + "description": { + "type": "string", + "description": "Description of the prodOfferPriceAlteration" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the prodOfferPriceAlteration is valid" + }, + "priceType": { + "type": "string", + "description": "Indicates the price type: recurring, one time, usage" + }, + "unitOfMeasure": { + "type": "string", + "description": "Could be minutes, GB..." + }, + "recurringChargePeriod": { + "type": "string", + "description": "Could be month, week..." + }, + "applicationDuration": { + "type": "integer", + "description": "Duration during which the prodOfferPriceAlteration applies on the productOffering (for instance 2 months free of charge for the recurring charge)" + }, + "priceCondition": { + "type": "string", + "description": "Condition that triggers the price application" + }, + "price": { + "$ref": "#/definitions/Price" + } + } + }, + "ProductSpecCharacteristic": { + "type": "object", + "description": "A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.", + "properties": { + "name": { + "type": "string", + "description": "Name of the productSpecCharacteristic" + }, + "description": { + "type": "string", + "description": "A narrative that explains in detail what the productSpecCharacteristic is" + }, + "valueType": { + "type": "string", + "description": "A kind of value that the characteristic can take on, such as numeric, text and so forth" + }, + "configurable": { + "type": "boolean", + "description": "If true, the Boolean indicates that the productSpecCharacteristic is configurable" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productSpecCharacteristic is valid" + }, + "productSpecCharRelationship": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecCharRelationship" + } + }, + "productSpecCharacteristicValue": { + "type": "array", + "items": { + "$ref": "#/definitions/ProductSpecCharacteristicValue" + } + } + } + }, + "ServiceSpecificationRef": { + "type": "object", + "description": "Service specification reference: ServiceSpecification(s) required to realize a ProductSpecification.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the service specification" + }, + "href": { + "type": "string", + "description": "Reference of the serviceSpecification" + }, + "name": { + "type": "string", + "description": "Name of the requiredServiceSpecification" + }, + "version": { + "type": "string", + "description": "Service specification version" + } + } + }, + "ProductSpecificationRelationship": { + "type": "object", + "description": "A migration, substitution, dependency or exclusivity relationship between/among product specifications.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the productSpecification" + }, + "href": { + "type": "string", + "description": "Reference of the productSpecification" + }, + "type": { + "type": "string", + "description": "Type of relationship such as migration, substitution, dependency, exclusivity" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productSpecificationRelationship is valid" + } + } + }, + "ResourceSpecificationRef": { + "type": "object", + "description": "Resource Specification reference: The ResourceSpecification is required to realize a ProductSpecification.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the resource specification" + }, + "href": { + "type": "string", + "description": "Reference of the resource specification" + }, + "name": { + "type": "string", + "description": "Name of the requiredResourceSpecification" + }, + "version": { + "type": "string", + "description": "Resource specification version" + } + } + }, + "Attachment": { + "type": "object", + "description": "Describes a product through video, pictures...", + "properties": { + "href": { + "type": "string", + "description": "Reference of the attachment" + }, + "id": { + "type": "string", + "description": "Unique identifier of the attachment" + }, + "type": { + "type": "string", + "description": "Attachment type such as video, picture" + }, + "url": { + "type": "string", + "description": "Uniform Resource Locator, is a web page address (a subset of URI)" + } + } + }, + "BundledProductSpecification": { + "type": "object", + "description": "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the product specification" + }, + "href": { + "type": "string", + "description": "Reference of the product specification" + }, + "lifecycleStatus": { + "type": "string", + "description": "Used to indicate the current lifecycle status" + }, + "name": { + "type": "string", + "description": "Name of the product specification" + } + } + }, + "ProductSpecCharRelationship": { + "type": "object", + "description": "An aggregation, migration, substitution, dependency or exclusivity relationship between/among productSpecCharacteristics.", + "properties": { + "type": { + "type": "string", + "description": "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period for which the productSpecCharRelationship is valid" + } + } + }, + "ProductSpecCharacteristicValue": { + "type": "object", + "description": "A number or text that can be assigned to a ProductSpecCharacteristic.", + "properties": { + "valueType": { + "type": "string", + "description": "A kind of value that the characteristic can take on, such as numeric, text, and so forth" + }, + "default": { + "type": "boolean", + "description": "Indicates if the value is the default value for a characteristic" + }, + "value": { + "type": "string", + "description": "A discrete value that the characteristic can take on" + }, + "unitOfMeasure": { + "type": "string", + "description": "Could be minutes, GB..." + }, + "valueFrom": { + "type": "string", + "description": "The low range value that a characteristic can take on" + }, + "valueTo": { + "type": "string", + "description": "The upper range value that a characteristic can take on" + }, + "validFor": { + "$ref": "#/definitions/TimePeriod", + "description": "The period of time for which a value is applicable" + } + } + }, + "CatalogChangeBatchNotification": { + "type": "object", + "description": "TheCatalogChangeBatch notification is sent to each listener who has subscribed to receive it.", + "properties": { + "eventType": { + "type": "string", + "description": "Type of event" + }, + "eventTime": { + "type": "string", + "format": "date-time", + "description": "Creation date of the event" + }, + "eventId": { + "type": "string", + "description": "Identifier of the event" + }, + "resourcePath": { + "type": "string", + "description": "To indicate which entity is concerned" + }, + "fieldPath": { + "type": "string", + "description": "details which field is missing, its structure is quite similar to GET filter criteria" + }, + "event": { + "$ref": "#/definitions/CatalogEvent" + } + } + }, + "CatalogChangeNotification": { + "type": "object", + "description": "TheCatalogChange notification is sent to each listener who has subscribed to receive it.", + "properties": { + "eventType": { + "type": "string", + "description": "Type of event" + }, + "eventTime": { + "type": "string", + "format": "date-time", + "description": "Creation date of the event" + }, + "eventId": { + "type": "string", + "description": "Identifier of the event" + }, + "resourcePath": { + "type": "string", + "description": "To indicate which entity is concerned" + }, + "fieldPath": { + "type": "string", + "description": "details which field is missing, its structure is quite similar to GET filter criteria" + }, + "event": { + "$ref": "#/definitions/CatalogEvent" + } + } + }, + "CatalogEvent": { + "type": "object", + "description": "The Catalog event is generated each time a catalog is updated.", + "properties": { + "catalog": { + "$ref": "#/definitions/Catalog" + } + } + }, + "EventSubscription": { + "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": { + "required": [ + "callback" + ], + "properties": { + "callback": { + "type": "string", + "description": "The callback being registered." + }, + "query": { + "type": "string", + "description": "additional data to be passed" + } + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "description": "An integer coding the error type. This is given to caller so he can translate them if required." + }, + "message": { + "type": "string", + "description": "A short localized string that describes the error." + }, + "description": { + "type": "string", + "description": "(optional) A long localized error description if needed. It can contain precise information about which parameter is missing, or what are the identifier acceptable values." + }, + "infoURL": { + "type": "string", + "description": "(optional) A URL to online documentation that provides more information about the error." } + } } + } } diff --git a/productInventory/v2/swagger2.json b/productInventory/v2/swagger2.json index 9574fa7..a06e191 100644 --- a/productInventory/v2/swagger2.json +++ b/productInventory/v2/swagger2.json @@ -6,7 +6,7 @@ "version": "2.0", "title": "API ProductInventory" }, - "host": "http://env-0693795.jelastic.servint.net", + "host": "env-0693795.jelastic.servint.net", "basePath": "/DSProductInventory/api/productInventory/v2", "schemes": [ "http" @@ -16,22 +16,22 @@ ], "produces": [ "application/json" - ], - "paths": { - "/product": { + ], + "paths": { + "/product": { "post": { "tags": [ "product" - ], + ], "operationId": "productCreate", "summary": "productCreate", - "description": "", + "description": "", "deprecated": false, "parameters": [ - - - - + + + + { "name": "product", "in": "body", @@ -39,7 +39,7 @@ "schema": { "$ref": "#/definitions/Product" } - } + } ], "responses": { "201": { @@ -54,28 +54,28 @@ "get": { "tags": [ "product" - ], + ], "operationId": "productFind", "summary": "productFind", - "description": "", + "description": "", "deprecated": false, - - "parameters": [ - - + "parameters": [ + + + { "name": "fields", "in": "query", - "required": false, + "required": false, "description": "", - - "type": "string" - } - + + "type": "string" + } + ], - + "responses": { "200": { "description": "List of Product", @@ -84,75 +84,75 @@ "items": { "$ref": "#/definitions/Product" } - } - } + } + } } } - - }, + + }, "/product/{productId}": { "delete": { "tags": [ "product" - ], + ], "operationId": "productDelete", "summary": "productDelete", "description": "", "deprecated": false, - + "parameters": [ - - - + + + { "name": "productId", "in": "path", - "required": true, + "required": true, "type": "string" } - - + + ], - + "responses": { "204": { "description": "Success" - } - } + } + } } , "get": { "tags": [ "product" - ], + ], "operationId": "productGet", "summary": "productGet", "description": "", "deprecated": false, - + "parameters": [ - - - + + + { "name": "productId", "in": "path", - "required": true, + "required": true, "type": "string" } , { "name": "fields", "in": "query", - "required": false, + "required": false, "description": "", - - "type": "string" - } - + + "type": "string" + } + ], - + "responses": { "200": { "description": "Product", @@ -160,29 +160,29 @@ "$ref": "#/definitions/Product" } } - } - } + } + } , "patch": { "tags": [ "product" - ], + ], "operationId": "productPatch", "summary": "productPatch", - "description": "", - "deprecated": false, + "description": "", + "deprecated": false, "parameters": [ - - - + + + { "name": "productId", "in": "path", - "required": true, + "required": true, "type": "string" } , - + { "name": "product", "in": "body", @@ -190,8 +190,8 @@ "schema": { "$ref": "#/definitions/Product" } - } - ], + } + ], "responses": { "200": { "description": "Success Product", @@ -199,29 +199,29 @@ "$ref": "#/definitions/Product" } } - } + } } , "put": { "tags": [ "product" - ], + ], "operationId": "productUpdate", "summary": "productUpdate", - "description": "", - "deprecated": false, + "description": "", + "deprecated": false, "parameters": [ - - - + + + { "name": "productId", "in": "path", - "required": true, + "required": true, "type": "string" } , - + { "name": "product", "in": "body", @@ -229,8 +229,8 @@ "schema": { "$ref": "#/definitions/Product" } - } - ], + } + ], "responses": { "201": { "description": "Success Product", @@ -238,24 +238,24 @@ "$ref": "#/definitions/Product" } } - } + } } - - }, - "/hub": { + + }, + "/hub": { "post": { "tags": [ "hub" - ], + ], "operationId": "hubCreate", "summary": "hubCreate", - "description": "", + "description": "", "deprecated": false, "parameters": [ - - - - + + + + { "name": "hub", "in": "body", @@ -263,7 +263,7 @@ "schema": { "$ref": "#/definitions/Hub" } - } + } ], "responses": { "201": { @@ -278,12 +278,12 @@ "get": { "tags": [ "hub" - ], + ], "operationId": "hubFind", "summary": "hubFind", - "description": "", + "description": "", "deprecated": false, - + "responses": { "200": { "description": "List of Hub", @@ -292,66 +292,66 @@ "items": { "$ref": "#/definitions/Hub" } - } - } + } + } } } - - }, + + }, "/hub/{hubId}": { "delete": { "tags": [ "hub" - ], + ], "operationId": "hubDelete", "summary": "hubDelete", "description": "", "deprecated": false, - + "parameters": [ - - - + + + { "name": "hubId", "in": "path", - "required": true, + "required": true, "type": "string" } - - + + ], - + "responses": { "204": { "description": "Success" - } - } + } + } } , "get": { "tags": [ "hub" - ], + ], "operationId": "hubGet", "summary": "hubGet", "description": "", "deprecated": false, - + "parameters": [ - - - + + + { "name": "hubId", "in": "path", - "required": true, + "required": true, "type": "string" } - + ], - + "responses": { "200": { "description": "Hub", @@ -359,49 +359,49 @@ "$ref": "#/definitions/Hub" } } - } - } - + } + } + } }, "definitions": { - + "Product": { - + "required": [ - + "status" ], "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "integer", "format": "int64" } , "href": { - + "type": "string" } , "name": { - + "type": "string" } , "description": { - + "type": "string" } , "status": { - - "type": "string", - "enum": [ - + + "type": "string", + "enum": [ + "Created", "Pending_active", "Aborted", @@ -411,491 +411,490 @@ "Terminated", "Suspended" ] - + } , "isCustomerVisible": { - + "type": "string" } , "isBundle": { - + "type": "string" } , "productSerialNumber": { - + "type": "string" } , "startDate": { - + "type": "string", "format": "date-time" } , "orderDate": { - + "type": "string", "format": "date-time" } , "terminationDate": { - + "type": "string", "format": "date-time" } , "place": { - + "type": "string" } , "productOffering": { - + "$ref": "#/definitions/ProductOffering" - + } , "productSpecification": { - + "$ref": "#/definitions/ProductSpecification" - + } , "productCharacteristic": { - + "type": "array", "items": { - + "$ref": "#/definitions/ProductCharacteristic" - + } - + } , "productRelationship": { - + "type": "array", "items": { - + "$ref": "#/definitions/ProductRelationship" - + } - + } , "billingAccount": { - + "type": "array", "items": { - + "$ref": "#/definitions/BillingAccount" - + } - + } , "relatedParty": { - + "type": "array", "items": { - + "$ref": "#/definitions/RelatedParty" - + } - + } , "realizingResource": { - + "type": "array", "items": { - + "$ref": "#/definitions/RealizingResource" - + } - + } , "realizingService": { - + "type": "array", "items": { - + "$ref": "#/definitions/RealizingService" - + } - + } , "productPrice": { - + "type": "array", "items": { - + "$ref": "#/definitions/ProductPrice" - + } - + } , "agreement": { - + "type": "array", "items": { - + "$ref": "#/definitions/Agreement" - + } - + } - + } } - + , "ProductSpecification": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } - + } } - + , "BillingAccount": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } , "name": { - + "type": "string" } - + } } - + , "RealizingService": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } - + } } - + , "RealizingResource": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } - + } } - + , "ProductOffering": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } , "name": { - + "type": "string" } - + } } - + , "Price": { - + "type": "object", - "properties": { - + "properties": { + "amount": { - + "type": "number", "format": "float" } , "currency": { - + "type": "string" } - + } } - + , "ProductPrice": { - + "required": [ - + "price", "validFor" ], "type": "object", - "properties": { - + "properties": { + "name": { - + "type": "string" } , "description": { - + "type": "string" } , "priceType": { - + "type": "string" } , "recurringChargePeriod": { - + "type": "string" } , "unitOfMeasure": { - + "type": "string" } , "price": { - + "$ref": "#/definitions/Price" - + } , "validFor": { - + "$ref": "#/definitions/TimePeriod" - + } - + } } - + , "ProductRelationship": { - + "required": [ - + "product" ], "type": "object", - "properties": { - + "properties": { + "type": { - + "type": "string" } , "product": { - + "$ref": "#/definitions/ProductRef" - + } - + } } - + , "ProductRef": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "href": { - + "type": "string" } - + } } - + , "ProductCharacteristic": { - + "type": "object", - "properties": { - + "properties": { + "name": { - + "type": "string" } , "value": { - + "type": "string" } - + } } - + , "Agreement": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "herf": { - + "type": "string" } - + } } - + , "RelatedParty": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "role": { - + "type": "string" } , "href": { - + "type": "string" } - + } } - + , "TimePeriod": { - + "type": "object", - "properties": { - + "properties": { + "startDateTime": { - + "type": "string", "format": "date-time" } , "endDateTime": { - + "type": "string", "format": "date-time" } - + } } - + , "Hub": { - + "type": "object", - "properties": { - + "properties": { + "id": { - + "type": "string" } , "callback": { - + "type": "string" } , "query": { - + "type": "string" } - + } } - - + + } } -