openapi: 3.0.1 info: title: Product Catalog description: > **This file forms part of Mplify 142** This API implements the Business Requirements described in Mplify 127.1. Supported use cases: - Retrieve List of Product Categories - Retrieve Product Category by Product Category Identifier - Retrieve List of Product Offerings - Retrieve Product Offering by Product Offering Identifier - Retrieve List of Product Specifications - Retrieve Product Specification by Product Specification Identifier - Register for Notifications - Unregister Notifications - Retrieve Notification Hub Registry Copyright 2025 Mplify Alliance and its contributors. This file includes content based on the TM Forum Product Catalog API (TMF620 v4.1.0) available at https://github.com/tmforum-apis/TMF620_ProductCatalog, which is licensed by the TM Forum under the Apache License version 2.0. Such content has been modified by the Mplify Alliance and its contributors. version: 4.0.1 servers: - url: 'http://{serverBase}/mefApi/cantata/productCatalog/v4/' variables: serverBase: description: The base of Buyer's URL. default: mplify.net tags: - name: category - name: productOffering - name: productSpecification paths: /category: get: tags: - category summary: Lists or finds Category objects description: This operation lists or finds Category entities operationId: listCategory parameters: - name: parentCategory.id in: query description: Id of the Parent of this Product Category. required: false schema: type: string - name: lastUpdate.gt in: query description: >- The date and time the Product Category was created or most recently updated, greater than required: false schema: type: string format: date-time - name: lastUpdate.lt in: query description: >- The date and time the Product Category was created or most recently updated, less than required: false schema: type: string format: date-time - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. It MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. It MUST be specified in the request only when the responding entity represents more than one Seller. required: false schema: type: string - name: offset in: query description: >- Requested index for the start of item to be provided in response requested by the client. Note that the index starts with "0". required: false schema: type: integer format: int32 - name: limit in: query description: >- Requested number of items to be provided in response requested by client required: false schema: type: integer format: int32 responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' headers: X-Pagination-Throttled: description: > Used to indicate that the result page was throttled to maximum possible size and there are additional results that can be fetched schema: type: boolean X-Total-Count: description: > The total number of matching items. E.g. if there are 50 matching items in total, but the request has offset=10 and limit=10, then the X-Total-Count is 50. schema: type: integer X-Result-Count: description: The number of items included in the response schema: type: integer content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/ProductCategory' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '422': content: application/json;charset=utf-8: schema: items: $ref: '#/components/schemas/Error422' type: array description: Unprocessable entity due to the business validation problems '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '/category/{id}': get: tags: - category summary: Retrieves a Category by ID description: This operation retrieves a Category entity. operationId: retrieveCategory parameters: - name: id in: path description: Identifier of the Category required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ProductCategory' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error404' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' /productOffering: get: tags: - productOffering summary: List or find Product Offering objects description: This operation list or find ProductOffering entities operationId: listProductOffering parameters: - name: name in: query description: The commercial name of the Product Offering required: false schema: type: string - name: lastUpdate.gt in: query description: >- The date and time the Product Offering was created or most recently updated, greater than required: false schema: type: string format: date-time - name: lastUpdate.lt in: query description: >- The date and time the Product Offering was created or most recently updated, less than required: false schema: type: string format: date-time - name: lifecycleStatus in: query description: Lifecycle Status of the Product Offering required: false schema: $ref: '#/components/schemas/ProductOfferingLifecycleStatusType' - name: agreement in: query description: >- The name of the Seller's offer arrangement (such as a framework agreement). **Note:** The list of allowable values for agreements should be negotiated between the Buyer and the Seller, during the integration phase. Ultimately it will be the enumerated set of values (it's problematic to define the enumerated values globally for any operator). required: false schema: type: string - name: channel in: query description: >- The names of the sales channels through which the Product Offering is made available to the Buyer to order. **Note:** The list of allowable values for selling channels should be negotiated between the Buyer and the Seller, during the integration phase. Ultimately it will be the enumerated set of values (it's problematic to define the enumerated values globally for any operator). required: false schema: type: string - name: marketSegment in: query description: >- The names of the market segments targeted for the Product Offering. **Note:** The list of allowable values for selling market segments should be negotiated between the Buyer and the Seller, during the integration phase. Ultimately it will be the enumerated set of values (it's problematic to define the enumerated values globally for any operator). required: false schema: type: string - name: region.countryCode in: query description: >- Country where the products are offered by the Seller to potential Buyers. required: false schema: type: string - name: isBundle in: query description: >- Determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true). required: false schema: type: boolean - name: isSellable in: query description: >- A flag indicating if this product offer can be sold stand-alone for sale or not. If this flag is false it indicates that the offer can only be sold within a bundle. required: false schema: type: boolean - name: category.id in: query description: >- Identifier of the Category that Product Offering is the direct or transitive member of. Direct member - there is a direct relation between Category and Product Offering. Transitive member - there is a relation between one of the sub-categories and Product Offering. required: false schema: type: string - name: productSpecification.id in: query description: >- A Product Specification Reference to the detailed description of the specifications and attributes defining all of the Product Offering characteristics. required: false schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when the responding entity represents more than one Seller. required: false schema: type: string - name: offset in: query description: >- Requested index for the start of an item to be provided in response requested by the client. Note that the index starts with "0". required: false schema: type: integer format: int32 - name: limit in: query description: >- Requested number of items to be provided in response requested by client required: false schema: type: integer format: int32 responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' headers: X-Pagination-Throttled: description: > Used to indicate that the result page was throttled to maximum possible size and there are additional results that can be fetched schema: type: boolean X-Total-Count: description: > The total number of matching items. E.g. if there are 50 matching items in total, but the request has offset=10 and limit=10, then the X-Total-Count is 50. schema: type: integer X-Result-Count: description: The number of items included in the response schema: type: integer content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/ProductOffering_Find' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '422': content: application/json;charset=utf-8: schema: items: $ref: '#/components/schemas/Error422' type: array description: Unprocessable entity due to the business validation problems '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '/productOffering/{id}': get: tags: - productOffering summary: Retrieves a ProductOffering by ID description: >- This operation retrieves a ProductOffering entity. Attribute selection is enabled for all first level attributes. operationId: retrieveProductOffering parameters: - name: id in: path description: Identifier of the ProductOffering required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ProductOffering' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error404' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' /productSpecification: get: tags: - productSpecification summary: List or find ProductSpecification objects description: This operation list or find ProductSpecification entities operationId: listProductSpecification parameters: - name: name in: query description: The name of the Product Specification (may not be unique) required: false schema: type: string - name: lifecycleStatus in: query description: Lifecycle Status of the Product Specification required: false schema: type: string enum: - obsolete - published - name: lastUpdate.gt in: query description: >- The date and time the Product Specification was created or most recently updated, greater than required: false schema: type: string format: date-time - name: lastUpdate.lt in: query description: >- The date and time the Product Specification was created or most recently updated, less than required: false schema: type: string format: date-time - name: agreement in: query description: >- The name of the Seller's standard offer arrangement (such as a framework agreement). The name is unique within the Seller domain. This should be the name of the Seller's standard offer arrangement or framework agreement for the Product Specification. required: false schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when the responding entity represents more than one Seller. required: false schema: type: string - name: offset in: query description: >- Requested index for the start of an item to be provided in response requested by the client. Note that the index starts with "0". required: false schema: type: integer format: int32 - name: limit in: query description: >- Requested number of items to be provided in response requested by client required: false schema: type: integer format: int32 responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' headers: X-Pagination-Throttled: description: > Used to indicate that the result page was throttled to maximum possible size and there are additional results that can be fetched schema: type: boolean X-Total-Count: description: > The total number of matching items. E.g. if there are 50 matching items in total, but the request has offset=10 and limit=10, then the X-Total-Count is 50. schema: type: integer X-Result-Count: description: The number of items included in the response schema: type: integer content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/ProductSpecification_Find' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '422': content: application/json;charset=utf-8: schema: items: $ref: '#/components/schemas/Error422' type: array description: Unprocessable entity due to the business validation problems '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '/productSpecification/{id}': get: tags: - productSpecification summary: Retrieves a ProductSpecification by ID description: >- This operation retrieves a ProductSpecification entity. Attribute selection is enabled for all first level attributes. operationId: retrieveProductSpecification parameters: - name: id in: path description: Identifier of the ProductSpecification required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string responses: '200': description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)' content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ProductSpecification' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error404' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' /hub: post: tags: - events subscription summary: Register a listener description: >- Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics. operationId: registerListener parameters: - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string requestBody: description: Data containing the callback endpoint to deliver the information content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/EventSubscriptionInput' required: true responses: '201': description: Subscribed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/EventSubscription' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '422': content: application/json;charset=utf-8: schema: items: $ref: '#/components/schemas/Error422' type: array description: Unprocessable entity due to the business validation problems '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: Method not implemented. content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' '/hub/{id}': get: tags: - events subscription summary: Retrieves a Hub by ID description: This operation retrieves a hub entity. operationId: retrieveHub parameters: - name: id in: path description: Identifier of the Hub required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string responses: '200': description: Success content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/EventSubscription' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error404' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: Method not implemented. content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' delete: tags: - events subscription summary: Unregister a listener description: >- Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics. operationId: unregisterListener parameters: - name: id in: path description: The id of the registered listener required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as a Buyer. MUST be specified in the request only when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request only when responding entity represents more than one Seller. required: false schema: type: string responses: '204': description: Deleted '400': description: Bad request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error404' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: Method not implemented. content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' components: schemas: AttachmentValue: description: >- Complements the description of an element (for instance a product) through video, pictures... type: object properties: author: description: The name of the person or organization who added the Attachment. type: string creationDate: description: The date the Attachment was added. type: string format: date-time description: description: A narrative text describing the content of the attachment type: string mimeType: description: >- Attachment mime type such as extension file for video, picture and document type: string name: description: The name of the attachment type: string size: description: The size of the attachment. $ref: '#/components/schemas/MEFByteSize' source: description: Indicates if the attachment was added by the Buyer or the Seller. $ref: '#/components/schemas/MEFBuyerSellerType' url: description: URL where the attachment is located. type: string required: - author - creationDate - name - source - url BusinessFunctionMask: description: >- Business Function that could be executed for the given Product accordingly to LSO Cantata/Sonata IRPs. Value 'all' is the wildcard - stands for any action. type: string enum: - poq - quote - productOrder - productInventory - all Context: description: >- Context that is defined as a two-dimensional vector of Business Function and Product Action. type: object properties: productAction: description: Defines Product Action to which the given context applies. `all` Applies for all supported Product Action for a given Product Offering. This attribute does not apply for `businessFunction=productInventory`. `remove` does not apply here, since this Product Action only includes a Product Identifier. $ref: '#/components/schemas/ProductActionMask' businessFunction: description: Defines Business Function to which the given context applies. `all` Applies for all supported Business Functions for a given Product Offering. $ref: '#/components/schemas/BusinessFunctionMask' required: - businessFunction DataSizeUnit: description: The unit of measure in the data size. type: string enum: - BYTES - KBYTES - MBYTES - GBYTES - TBYTES - PBYTES - EBYTES - ZBYTES - YBYTES Duration: description: 'A Duration in a given unit of time e.g. 3 hours, or 5 days.' type: object properties: amount: description: 'Duration (number of seconds, minutes, hours, etc.)' type: integer minimum: 0 units: description: Time unit enumerated $ref: '#/components/schemas/TimeUnit' required: - amount - units Error: description: > Standard Class used to describe API response error Not intended to be used directly. The `code` in the HTTP header is used as a discriminator for the type of error returned in runtime. type: object properties: reason: description: >- Text that explains the reason for the error. This can be shown to a client user. type: string maxLength: 255 message: description: >- Text that provides mode details and corrective actions related to the error. This can be shown to a client user. type: string referenceError: description: URL pointing to documentation describing the error type: string format: uri required: - reason Error400: description: 'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)' allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: >- One of the following error codes: - missingQueryParameter: The URI is missing a required query-string parameter - missingQueryValue: The URI is missing a required query-string parameter value - invalidQuery: The query section of the URI is invalid. - invalidBody: The request has an invalid body $ref: '#/components/schemas/Error400Code' required: - code Error400Code: description: >- One of the following error codes: - missingQueryParameter: The URI is missing a required query-string parameter - missingQueryValue: The URI is missing a required query-string parameter value - invalidQuery: The query section of the URI is invalid. - invalidBody: The request has an invalid body type: string enum: - missingQueryParameter - missingQueryValue - invalidQuery - invalidBody Error401: description: 'Unauthorized. (https://tools.ietf.org/html/rfc7235#section-3.1)' allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: >- One of the following error codes: - missingCredentials: No credentials provided. - invalidCredentials: Provided credentials are invalid or expired $ref: '#/components/schemas/Error401Code' required: - code Error401Code: description: |- One of the following error codes: - missingCredentials: No credentials provided. - invalidCredentials: Provided credentials are invalid or expired type: string enum: - missingCredentials - invalidCredentials Error403: description: >- Forbidden. This code indicates that the server understood the request but refuses to authorize it. (https://tools.ietf.org/html/rfc7231#section-6.5.3) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: |- This code indicates that the server understood the request but refuses to authorize it because of one of the following error codes: - accessDenied: Access denied - forbiddenRequester: Forbidden requester - tooManyUsers: Too many users $ref: '#/components/schemas/Error403Code' required: - code Error403Code: description: |- This code indicates that the server understood the request but refuses to authorize it because of one of the following error codes: - accessDenied: Access denied - forbiddenRequester: Forbidden requester - tooManyUsers: Too many users type: string enum: - accessDenied - forbiddenRequester - tooManyUsers Error404: description: >- Resource for the requested path not found. (https://tools.ietf.org/html/rfc7231#section-6.5.4) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: >- The following error code: - notFound: A current representation for the target resource not found type: string enum: - notFound required: - code Error422: allOf: - $ref: '#/components/schemas/Error' - properties: code: $ref: '#/components/schemas/Error422Code' description: | One of the following error codes: - missingProperty: The property the Seller has expected is not present in the payload - invalidValue: The property has an incorrect value - invalidFormat: The property value does not comply with the expected value format - referenceNotFound: The object referenced by the property cannot be identified in the Seller system - unexpectedProperty: Additional property, not expected by the Seller has been provided - tooManyRecords: the number of records to be provided in the response exceeds the Seller's threshold. - otherIssue: Other problem was identified (detailed information provided in a reason) propertyPath: description: > A pointer to a particular property of the payload that caused the validation issue. It is highly recommended that this property should be used. Defined using JavaScript Object Notation (JSON) Pointer (https://tools.ietf.org/html/rfc6901). type: string required: - code type: object description: >- Unprocessable entity due to a business validation problem. (https://tools.ietf.org/html/rfc4918#section-11.2) Error422Code: description: | One of the following error codes: - missingProperty: The property the Seller has expected is not present in the payload - invalidValue: The property has an incorrect value - invalidFormat: The property value does not comply with the expected value format - referenceNotFound: The object referenced by the property cannot be identified in the Seller system - unexpectedProperty: Additional property, not expected by the Seller has been provided - tooManyRecords: the number of records to be provided in the response exceeds the Seller's threshold. - otherIssue: Other problem was identified (detailed information provided in a reason) enum: - missingProperty - invalidValue - invalidFormat - referenceNotFound - unexpectedProperty - tooManyRecords - otherIssue type: string Error500: description: >- Internal Server Error. (https://tools.ietf.org/html/rfc7231#section-6.6.1) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: >- The following error code: - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request. type: string enum: - internalError required: - code Error501: description: >- Not Implemented. Used in case Seller is not supporting an optional operation (https://tools.ietf.org/html/rfc7231#section-6.6.2) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: |- The following error code: - notImplemented: Method not supported by the server type: string enum: - notImplemented required: - code EventSubscription: description: | This resource is used to respond to notification subscriptions. type: object properties: callback: description: >- The value provided by the Buyer in `EventSubscriptionInput` during notification registration type: string id: description: >- An identifier of this Event Subscription assigned by the Seller when a resource is created. type: string query: description: >- The value provided by the Buyer in `EventSubscriptionInput` during notification registration type: string required: - callback - id EventSubscriptionInput: description: This class is used to register for Notifications. type: object properties: callback: description: >- This callback value must be set to *host* property from the Buyer Product Catalog Notification API (productCatalogNotification.api.yaml). This property is appended with the base path and notification resource path specified in that API to construct a URL to which notification is sent. E.g. for "callback": "https://buyer.mef.com/listenerEndpoint", the Product Specification state change event notification will be sent to: `https://buyer.mef.com/listenerEndpoint/mefApi/cantata/productCatalogNotifications/v4/listener/productCatalogStateChange` type: string query: description: >- This attribute is used to define which type of events to register to. See the `ProductCategoryEventType`, `ProductSpecificationEventType`, `ProductOfferingEventType` in (productCatalogNotification.api.yaml to check what kind of events are supported. To subscribe for more than one event type, put the values separated by a comma: `eventType=productOfferingCreateEvent,productOfferingAttributeValueChangeEvent` or repeat the same attribute: `eventType=productOfferingCreateEvent&eventType=productOfferingAttributeValueChangeEvent` An empty query is treated as specifying no filters - ending in subscription for all event types. type: string required: - callback FieldedAddressRepresentation: description: >- A type of Address that has a discrete field and value for each type of boundary or identifier down to the lowest level of detail. For example "street number" is one field, "street name" is another field, etc. type: object properties: streetNr: description: >- Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses. type: string streetNrSuffix: description: >- The first street number suffix (in a street number range) or the suffix for the street number if there is no range type: string streetNrLast: description: Last number in a range of street numbers allocated to an Address type: string streetNrLastSuffix: description: Last street number suffix for a ranged Address type: string streetPreDirection: description: The direction of the street that appears before the Street Name type: string streetName: description: Name of the street or other street type type: string streetType: description: >- The type of street (e.g., alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf) type: string streetPostDirection: description: >- A modifier denoting a relative direction that appears after the Street Name. type: string poBox: description: Number identifying a specific location in a post office. type: string locality: description: >- An area of defined or undefined boundaries within a local authority or other legislatively defined area. type: string city: description: City in which the Address is located. type: string postcode: description: >- A descriptor for a postal delivery area used to speed and simplify the delivery of mail (also known as zip code) type: string postcodeExtension: description: >- The extension used on a postal code. Note: there are different use codes for this attribute depending upon the country. type: string stateOrProvince: description: The State or Province in which the Address is located. type: string countryCode: description: >- Country in which the Address is located, defined using two characters as defined in ISO 3166 type: string minLength: 2 maxLength: 2 subUnit: description: >- The Sub Unit represented as a list. This is a list to allow complex sub-unit information such as SUITE 42 ROOM A type: array items: $ref: '#/components/schemas/SubUnit' buildingName: description: > The well-known name of a building that is located at this Address (e.g., where there is one Address for a campus). type: string privateStreetNumber: description: Street number on a private street within the Address. type: string privateStreetName: description: >- Private streets internal to a property (e.g., a university) may have internal names that are not recorded by the land title office. type: string language: description: >- The language in which the address is expressed. It MUST use the ISO 639:2023 two letter code 639:2023 type: string minLength: 2 maxLength: 2 MEFBuyerSellerType: description: An enumeration with buyer and seller values. type: string enum: - buyer - seller MEFByteSize: description: A size represented by value and Byte units type: object properties: amount: description: Numeric value in a given unit type: number format: float units: description: Byte Unit $ref: '#/components/schemas/DataSizeUnit' required: - amount - units MEFEndOfTermAction: description: >- The action the Seller will take once the term expires. Roll indicates that the Product's contract will continue on a rolling basis for the duration of the Roll Interval at the end of the Term. Auto-disconnect indicates that the Product will be disconnected at the end of the Term. Auto-renew indicates that the Product's contract will be automatically renewed for the Term Duration at the end of the Term. type: string enum: - roll - autoDisconnect - autoRenew MEFItemTerm: description: The definition of the Term. type: object properties: name: description: Name of the term type: string description: description: Description of the term type: string duration: description: Duration of the term $ref: '#/components/schemas/Duration' endOfTermAction: description: >- The action that needs to be taken by the Seller once the term expires $ref: '#/components/schemas/MEFEndOfTermAction' rollInterval: description: >- The recurring period that the Buyer is willing to pay for the Product after the original term has expired. $ref: '#/components/schemas/Duration' required: - name - duration - endOfTermAction MEFPriceType: description: Indicates if the price is for recurring or non-recurring charges. type: string enum: - recurring - nonRecurring - usageBased Money: description: A base/value business entity used to represent money type: object properties: unit: description: Currency (ISO4217 norm uses 3 letters to define the currency) type: string value: description: A positive floating point number type: number format: float required: - unit - value Note: description: >- Extra information about a given entity. Only useful in processes involving human interaction. Not applicable for the automated process. type: object properties: author: description: Author of the note type: string date: description: Date the Note was created type: string format: date-time id: description: >- Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation) type: string source: description: Indicates if the note is from Buyer or Seller $ref: '#/components/schemas/MEFBuyerSellerType' text: description: Text of the note type: string required: - author - date - id - source - text PlaceRelationshipConstraint: description: >- Allows definition and constraining of PlaceRelationship that can be specified for the ordered Product. type: object properties: relationshipRole: description: >- Specifies the nature of the relationship between the Product Offering and Place. This must be one of the roles as defined in the related Product Specification. For example, `INSTALL_LOCATION`. type: string isModifiable: description: Specifies if the Place Relationship can be modified on an active Product. type: boolean minCardinality: description: >- The minimum required number of PlaceRelationships of given relationshipRole that must configured for ordered Product. For example, as specified in the 'Relationship Between Entities' Section of MEF 106. `0` means the relation is optional. type: integer minimum: 0 maxCardinality: description: >- The maximum required number of PlaceRelationships of given relationshipRole that must configured for ordered Product. For example, as specified in the 'Relationship Between Entities' Section of MEF 106. `-1` stands for infinity i.e. any number of instances of the given type could be related to the considered instance. type: integer minimum: -1 required: - isModifiable - maxCardinality - minCardinality - relationshipRole Price: description: >- Provides all amounts (tax included, duty-free, tax rate) and used currency of a Price type: object properties: taxRate: description: 'Price Tax Rate. Unit: [%]. E.g. value 16 stand for 16% tax.' type: number format: float taxIncludedAmount: description: All taxes included amount (expressed in the given currency) $ref: '#/components/schemas/Money' dutyFreeAmount: description: All taxes excluded amount (expressed in the given currency) $ref: '#/components/schemas/Money' required: - dutyFreeAmount PriceModifier: description: >- The Price Modifier allows specifying promotional (via Price Modifier Deal Reference) and/or volume based pricing discounts. For example, if only Minimum Quantity is specified, then the Price Modifier is a volume based discount, and if only Price Modifier Deal Reference is set then the Price Modifier is a form of promo code, and if both are set then the Pricer Modifier is a form of promo code with a minimum purchase requirement. type: object properties: description: type: string description: Description of the Price Modifier lastUpdate: type: string format: date-time description: The last update time of this Price Modifier validFor: description: The date range that the Price Modifier is applicable $ref: '#/components/schemas/TimePeriod' region: description: > Allows constraining the Regions where the Price Modifier is applicable. Only the Regions that need to be constraint should be included (since this is inherited from the Product Offering Price). type: array items: $ref: '#/components/schemas/Region' minimumQuantity: type: integer minimum: 1 description: The minimum quantity of the associated Product Offering required to receive the price reduction. reductionPercentage: description: The amount of price discount, expressed as a percentage. A value of 5 represents a 5% price reduction. This attribute may only be set if the discountedPrice is not set. type: number minimum: 0 maximum: 100 discountedPrice: description: The associated discounted price. This attribute may only be set if the reductionPercentage is not set. $ref: '#/components/schemas/Price' dealReference: type: string description: >- A pre-agreed pricing modifier reference that the Seller is offering which may impact the pricing (for example, a Promo Code). This Price Modifier is applicable when the fulfillment of the associated Product Offering satisfies this pre-agreed Deal Reference. required: - description - lastUpdate - validFor ProductActionMask: description: >- Action that could be applied to the Product (or future product) during the execution of the Business Function. Value 'all' is the wildcard - stands for any action. type: string enum: - add - modify - all ProductCategory: description: >- The Product Category is a grouping of Product Offerings in logical containers defined by the Seller. A Product Category may contain other (sub)Product Categories and/or Product Offerings. type: object properties: id: description: >- Unique identifier (within the Seller domain) for the Product Category. type: string href: description: Reference of the Product Category type: string format: uri name: description: The name (unique within the Seller domain) of the Product Category type: string description: description: Description of the Product Category type: string lastUpdate: description: >- The date and time the Product Category was created or most recently updated. type: string format: date-time parentCategory: description: >- Identifier referencing the parent Product Category of this Product Category. $ref: '#/components/schemas/ProductCategoryRef' subCategory: description: >- A list of references to the Product Category, to which this Product Category is a parent of. type: array items: $ref: '#/components/schemas/ProductCategoryRef' productOffering: description: >- A list of references to Product Offering grouped within this Category type: array items: $ref: '#/components/schemas/ProductOfferingRef' required: - id - name - description - lastUpdate ProductCategoryRef: description: Represents the reference to Category type: object properties: id: description: Unique (within the Seller domain) identifier for the Category type: string href: description: Hyperlink to access the Category type: string format: uri required: - id ProductMilestoneDefinition: description: >- Allows specifying the different stages of the Product provisioning process. type: object properties: name: description: >- The unique identifier of the milestone (as specified e.g. in the corresponding MEF Product Specification). type: string description: description: The explanation of what the milestone represents and when it occurs. type: string required: - description - name ProductOffering: allOf: - $ref: '#/components/schemas/ProductOffering_Common' - description: >- Represents entities that are launched from the provider of the catalog, this resource included all available information of Product Offering properties: statusTransition: description: >- The list of Product Offering Status transitions, including the date they are expected to occur or have occurred type: array items: $ref: '#/components/schemas/ProductOfferingLifecycleStatusTransition' statusReason: description: >- Provides complementary information on the reason why the `lifecycleStatus` is set to a particular value. type: string attachment: description: >- Complements the Product Offering description with presentation, video, pictures, etc. type: array items: $ref: '#/components/schemas/AttachmentValue' relatedContactInformation: description: >- Defines the contact info and role for the related contact of a Product Offering. $ref: '#/components/schemas/RelatedContactInformation' productOfferingTerm: description: >- Commitment durations under which a Product Offering is available to Buyers. For instance, a Product Offering can be made available with multiple commitment periods of 1, 2 or 3 year terms. type: array items: $ref: '#/components/schemas/ProductOfferingTerm' milestone: description: Allows constraining the Product Specification Milestones for the Product Offering. This list must be a subset of the Product Specification Milestones and if defined, it will override the entire set of Product Specification Milestones type: array items: $ref: '#/components/schemas/ProductMilestoneDefinition' bundledProductOffering: description: >- Defines the set of Product Offerings that comprise the Product Offering Bundle, along with how they are related. This list may only be defined if 'isBundle' attribute is TRUE. type: array items: $ref: '#/components/schemas/ProductOfferingBundleRelationship' note: description: | A set of comments for additional information. type: array items: $ref: '#/components/schemas/Note' productOfferingSpecificationSchema: description: >- A reference to or value of a subschema of the Source Product Specification Schema that restricts the possible values of the Product-Specific Attributes, relationships, and milestones to define the Product Offering. $ref: '#/components/schemas/SchemaRefOrValue' productOfferingContextualInfo: description: >- Defines additional constraints on the Product Offering Specification for the Product-Specific Attributes of a Product Offering for each Business Function and Product Action. type: array items: $ref: '#/components/schemas/ProductOfferingContextualInfo' productRelationshipConstraint: description: >- Allows constraining the relationships between related Product Specifications. As an example, an Access E-Line OVC references Operator UNI and ENNI Product Offerings. Note: this constrains the relationship between related Product Offerings (since the relationship is inherited from the Product Specification). type: array items: $ref: '#/components/schemas/ProductRelationshipConstraint' placeRelationshipConstraint: description: >- Allows constraining the Place relationships for the Product Offering. Only the Place relationships that need to be constraint should be included. type: array items: $ref: '#/components/schemas/PlaceRelationshipConstraint' required: - id - name - description - lastUpdate - lifecycleStatus - statusTransition - isBundle - isSellable - productSpecification ProductOfferingBundleRelationship: description: > The Product Offering Bundle Relationship defines the set of Product Offerings that comprise a Product Offering Bundle, along with the ability to specify the minimum and maximum number of instances of a Product Offering (e.g. fixed, optional or variable component) that are supported for the Bundle. The Product Offering Bundle Relationship may only be specified within a Product Offering Bundle. type: object properties: productOffering: description: >- Identifier of the Product Offering being grouped in this Product Offering Bundle Relation. $ref: '#/components/schemas/ProductOfferingRef' isModifiable: type: boolean description: >- Indicates if the ProductOfferingBundleRelationship for given ProductOffering can be added, modified or deleted after the Product Bundle has been activated. minCardinality: description: >- The minimum required number of instances of the Bundled Product Offerings type: integer minimum: 0 maxCardinality: description: >- The maximum required number of instances of the Bundled Product Offerings. -1 defines no restriction (unlimited) type: integer minimum: -1 required: - productOffering - isModifiable - maxCardinality - minCardinality ProductOfferingContextualInfo: description: >- Used for the cases when the schema must be differentiated per the defined Context, where Context is built as a pair - a Business Function (e.g. Quote) and Product Action (e.g. add). Those product schemas are created by applying the constraints to Product Schemas defined in the Product Specification. If provided, Contextual info MUST cover every possible combination of Product Actions and Business Functions (if there are no differences per function or per action then use wildcard - 'all' - and reuse the value of Product Offering Specification attribute). type: object properties: contextSchema: description: >- Product Schema that is defined for the given Context. Schema MUST be compliant with JSON scheme standard. $ref: '#/components/schemas/SchemaRefOrValue' context: description: >- Context that is defined as a two-dimensional vector of Business Function and Product Action. $ref: '#/components/schemas/Context' required: - context - contextSchema ProductOfferingLifecycleStatusTransition: description: >- The Date and Time that the next Product Offering Status transition is planned to occur, or have occurred. type: object properties: transitionDate: description: >- The Date and Time that the Transition Product Offering State is planned to occur or has occurred. type: string format: date-time lifecycleStatus: description: The status of the Product Offering on the Transition Date. $ref: '#/components/schemas/ProductOfferingLifecycleStatusType' statusReason: description: >- Provides complementary information on the reason why the Product Offering State is planned to occur or was set to a particular value. For example, a description of "Supply Constraint" as why a Product Offering is on ON_HOLD. type: string required: - transitionDate - lifecycleStatus ProductOfferingLifecycleStatusType: description: | | Name | Mplify 127.1 Name | Description | | ------------ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | active | ANNOUNCED | A Product Offering has been defined in the Product Catalog for marketing purposes, but is not yet available for ordering. | | endOfSale | END_OF_SALE | A new Product based on the Product Offering cannot be ordered by any Buyers, but Products may still be in use and may be changed or disconnected, and receive support | | endOfSupport | END_OF_SUPPORT | When a Product Offering is in the `endOfSupport` state, it is no longer possible to `add` new, nor `modify` any existing Products based on the Product Offering. The Buyer can still use Products based on the Product Offering as is without any support from the Seller (the only allowed action is `delete`). | | inTest | PILOT_BETA | When a Product Offering or Product Specification starts Pilot/Beta testing, it starts in the `inTest` state . | | obsolete | OBSOLETE | The Product Offering is only available in the Product Catalog for historical documentation reasons. No actions are allowed on Products based on these Product Offering. A Product Offering that is `obsolete` may be removed at the Seller's discretion from the Product Catalog. This is a final state. | | onHold | ON_HOLD | A Product Offering is `onHold` when the Seller decides to stop Buyers from ordering new Products based on the Product Offering (for example, due to supply constraints, product recall, legal reasons, etc.). The Product Offering can transition to either `launched` when the constraints are lifted and the Buyer can order new Products again, or to `endOfSale`, if the Seller decides to stop offering Products based on the Product Offering. | | launched | ORDERABLE | When a Product Offering is in the `launched` state, a Buyer can `add` new Products, and `modify` or `delete` any active Products based on the Product Offering | | rejected | REJECTED | When the pilot testing period is ended by the Seller, they may decide whether the Product Offering becomes available for ordering; otherwise, the Product Offering transitions to the `rejected` state. This is a final state. | type: string enum: - active - endOfSale - endOfSupport - inTest - obsolete - onHold - launched - rejected ProductOfferingPrice: type: object description: >- Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a Product Offering Price that reflects an alteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: 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: description: type: string description: Description of the productOfferingPrice lastUpdate: type: string format: date-time description: the last update time of this ProductOfferingPrice validFor: description: The date range that the ProductOfferingPrice is applicable $ref: '#/components/schemas/TimePeriod' bundledProductOffering: description: >- The identifier of a Product Offering within the Bundle to which this Product Offering Price applies. This indicates that this is the unit price per one instance of the Bundled Product Offering. $ref: '#/components/schemas/ProductOfferingRef' region: description: > The areas where the Price is applicable. If region is an empty list, it implies that the Price is not region-restricted type: array items: $ref: '#/components/schemas/Region' note: description: A set of comments for additional information. type: array items: $ref: '#/components/schemas/Note' priceType: description: >- Indicates if the price is for recurring, non-recurring, or usage based charges $ref: '#/components/schemas/MEFPriceType' recurringChargePeriod: description: Used for a recurring charge to indicate a period $ref: '#/components/schemas/Duration' unitOfMeasure: description: >- Unit of Measure if price depending on it (Gb, SMS volume, etc..) MEF: if Quote Item Price Type equals usageBased type: string price: description: The value the List Price for the Product Offering. $ref: '#/components/schemas/Price' priceModifier: description: Related price discounts. type: array items: $ref: '#/components/schemas/PriceModifier' required: - description - lastUpdate - validFor - priceType - price ProductOfferingTerm: allOf: - $ref: '#/components/schemas/MEFItemTerm' - description: >- The commitment duration under which a Product Offering is available to Buyers. A Product Offering can have multiple Product Offering Terms, each with a different commitment period, for instance with a 1, 2 or 3 year duration. properties: productOfferingPrice: description: A list of prices for which a Product Offering is available for the Term Duration. type: array items: $ref: '#/components/schemas/ProductOfferingPrice' ProductOfferingRef: description: >- ProductOffering reference. A product offering represents entities that are launched from the provider of the catalog. type: object properties: id: description: >- Unique (within the Seller domain) identifier for the Product Offering. type: string href: description: Hyperlink to access the Product Offering type: string required: - id ProductOffering_Common: description: >- The Product Offering represents the Products launched from a Seller's Product Catalog. type: object properties: id: description: >- Unique identifier (within the Seller domain) for the Product Offering. Note - The Seller must create a new Product Offering Identifier for every new version of a Product Offering. The Seller may choose to incorporate the version information as part of the Offering Identifier. type: string href: description: Hyperlink reference to the Product Offering type: string format: uri name: description: The commercial name of the Product Offering type: string description: description: Description of the Product Offering type: string lastUpdate: description: >- The date and time the Product Offering was created or most recently updated. type: string format: date-time lifecycleStatus: description: The current lifecycle status of the Product Offering. $ref: '#/components/schemas/ProductOfferingLifecycleStatusType' agreement: description: >- The name of the Seller's standard offer arrangement (such as a framework agreement). The name is unique within the Seller domain. This should be the name of the Seller's standard offer arrangement or framework agreement for this category of Product Offering (e.g., Commercial, Federal or Regulated) as used by the Seller in their official communication of the Product. type: string isBundle: type: boolean description: >- Determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true). isSellable: type: boolean description: >- A flag indicating if this product offer can be ordered or not. If this flag is false it indicates that the offer can only be sold within a bundle. channel: description: > A list of names defined by the Seller which identify the different methods by which the Product Offering is made available to the Buyer for ordering. The different Sales Channels should be specified in the Standard Framework Agreement or provided during the onboarding process. For example: Reseller, Distribution, Direct Sales. Note: If Sales Channels is an empty list, it implies that the Product Offering is available in all Seller-supported Sales Channels. type: array items: type: string marketSegment: description: | The names of the market segments targeted for the Product Offering. The set of market segment names should be specified in the Agreement or provided during the onboarding process. For example: wholesale, federal, financial. Note: If marketSegment is an empty list, it implies that the Product Offering is available in all Seller supported market segments type: array items: type: string region: description: > Areas where the products are offered by the Seller to potential Buyers. Note: If region is an empty list, it implies that the Product Offering is available in all Seller-supported Regions. type: array items: $ref: '#/components/schemas/Region' category: description: >- A list of 0 or more Product Category Identifiers, with each referring to a Product Category in which this Product Offering is grouped together with other Product Offerings. type: array items: $ref: '#/components/schemas/ProductCategoryRef' productSpecification: description: >- A Product Specification Reference to the detailed description of the specifications and attributes defining all of the Product Offering characteristics. $ref: '#/components/schemas/ProductSpecificationRef' ProductOffering_Find: allOf: - $ref: '#/components/schemas/ProductOffering_Common' - description: >- Represents entities that are launched from the provider of the catalog, this resource includes pricing information. required: - category - channel - id - isBundle - isSellable - lastUpdate - lifecycleStatus - marketSegment - name - productSpecification - region ProductRelationshipConstraint: description: >- Allows definition and constraining of Product Relationship that can be specified for the ordered Product. type: object properties: productSpecification: description: >- The identifier of the associated Product Specification to define the allowable target Product types type: string relationshipType: description: >- Specifies the nature of productRelationship between Products. This must be one of the relationshipTypes as defined by the main product specification. type: string isModifiable: description: Specifies if the Product Relationship can be modified on an active Product. type: boolean minCardinality: description: >- The minimum required number of ProductRelationships (of given relationshipType and target productSpecification) that must configured for ordered Product. For example, as specified in the 'Relationship Between Entities' Section of MEF 106. `0` means the relation is optional. type: integer minimum: 0 maxCardinality: description: >- The maximum required number of ProductRelationships (of given relationshipType and target productSpecification) that must configured for ordered Product. `-1` stands for infinity i.e. any number of instances of the given type could be related to the considered instance. type: integer minimum: -1 required: - productSpecification - relationshipType - isModifiable - minCardinality - maxCardinality ProductSpecification: allOf: - $ref: '#/components/schemas/ProductSpecification_Common' - 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: description: description: Description of the Product Specification. type: string attachment: description: >- Complements the Product Offering description with presentation, video, pictures, etc. Note: The Seller should include all documents describing the Standard Framework Agreement as an Attachment. type: array items: $ref: '#/components/schemas/AttachmentValue' productRelationship: description: >- Specifies the relationships with their names between Products described by related Product Specifications. As an example, an Access E-Line OVC references an Operator UNI and an ENNI Product Specification. type: array items: $ref: '#/components/schemas/ProductRelationshipConstraint' placeRelationship: description: >- Specifies the relationships with their names between Product described by this Product Specifications and Place(s). type: array items: $ref: '#/components/schemas/PlaceRelationshipConstraint' milestone: description: Specifies the different milestones during the fulfillment process type: array items: $ref: '#/components/schemas/ProductMilestoneDefinition' note: description: | A set of comments for additional information. type: array items: $ref: '#/components/schemas/Note' sourceSchema: description: >- A reference to or value of the schemaProduct Schema as included in the Product Specification. $ref: '#/components/schemas/SchemaRefOrValue' required: - id - lastUpdate - lifecycleStatus - name - sourceSchema - description ProductSpecificationLifecycleStatusType: description: | | Name | Mplify 127.1 Name | Description | | ------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | obsolete | OBSOLETE | The Product Specification is only available in the Product Catalog for historical documentation reasons. There are no active Products on the Seller's Network based on the Product Specification. A Product Specification that is no longer available transitions to `obsolete` and may be removed at the Seller's discretion from the Product Catalog. This is a final state. | | published | PUBLISHED | A Product Specification has been defined in the Product Catalog. Product Offerings based on the Product Specification may be available for ordering. | type: string enum: - obsolete - published ProductSpecificationRef: description: Product Specification reference. type: object properties: id: description: >- Unique (within the Seller domain) identifier for the Product Specification. type: string href: description: Hyperlink to access the Product Specification type: string required: - id ProductSpecification_Common: description: Is the basis for all Production Specification representations. type: object properties: id: description: >- Unique identifier for the Product Specification. For Mplify standardized products, this should be the Mplify assigned URN. type: string href: description: Reference of the Product Specification type: string format: uri name: description: Name of the Product Specification type: string lifecycleStatus: description: The current lifecycle status of the Product Specification. $ref: '#/components/schemas/ProductSpecificationLifecycleStatusType' lastUpdate: description: >- The date and time of an attribute within this Product Specification was created or most recently updated. type: string format: date-time agreement: description: >- The name of the Seller's standard offer arrangement (such as a framework agreement). The name is unique within the Seller domain. This should be the name of the Seller's standard offer arrangement or framework agreement for the Product Specification. type: string ProductSpecification_Find: allOf: - $ref: '#/components/schemas/ProductSpecification_Common' - description: >- Is a lightweight version of the Product Specification object used in Get List use case. required: - id - lastUpdate - lifecycleStatus - name Region: description: Specifies a region type: object properties: city: description: City in which the Product can be provided type: string locality: description: >- An area of defined or undefined present boundaries within a local authority or other legislatively defined area, usually rural or semi-rural in nature. Should only be specified by a Seller for a Product Offering that is not available Country wide type: string stateOrProvince: description: >- The State or Province in the region is located. Should only be specified by a Seller for a Product Offering that is not available Country wide. type: string countryCode: description: >- Country in which the Address is located, defined using two characters as defined in ISO 3166 type: string minLength: 2 maxLength: 2 required: - countryCode RelatedContactInformation: description: | Contact data for a person or organization that is involved in a given context. It is specified by the Seller (e.g. Seller Contact Information) or by the Buyer. properties: emailAddress: description: Email address type: string name: description: Name of the contact type: string number: description: Phone number type: string numberExtension: description: Phone number extension type: string organization: description: The organization or company that the contact belongs to type: string postalAddress: $ref: '#/components/schemas/FieldedAddressRepresentation' description: >- Identifies the postal address of the person or office to be contacted. role: description: A role the party plays in a given context. type: string required: - emailAddress - name - number - role type: object SchemaRefOrValue: description: >- Reference to the JSON schema location or the exact value of the JSON schema. **Note:** One of the properties must be provided i.e. schemaLocation or schema. type: object properties: schema: description: Raw JSON schema value. type: string schemaLocation: description: >- This field provides a link to the schema describing the target product type: string format: uri SubUnit: description: Allows for sub unit identification type: object properties: subUnitNumber: description: >- The discriminator used for the subunit, often just a simple number but may also be a range. type: string subUnitType: description: >- The type of subunit e.g. BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF. type: string required: - subUnitNumber - subUnitType TimePeriod: description: >- A period of time, either as a deadline (endDateTime only) a startDateTime only, or both. properties: startDateTime: description: >- Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end format: date-time type: string endDateTime: description: 'End of the time period, using IETC-RFC-3339 format' format: date-time type: string type: object TimeUnit: description: | Represents a unit of time. type: string enum: - seconds - minutes - businessHours - calendarHours - businessDays - calendarDays - months - years