openapi: 3.0.1 info: title: Product Offering Qualification Management description: > **This file forms part of Mplify 87.1** This API implements Business Requirements described in Mplify 79.1 The Product Offering Qualification (POQ) Management API allows a Buyer to check whether the Seller can deliver a product or set of products from among their product offerings at the geographic address or a service site specified by the Buyer; or modify a previously purchased product. The following use cases are managed: - Create Product Offering Qualification - Retrieve POQ List - Retrieve POQ by Identifier - Register for POQ Notifications (note: Send POQ Notification is supported by productOfferingQualificationNotification.api.yaml) Copyright 2025 Mplify Alliance and its contributors This file includes content based on the TM Forum Product Offering Qualification API (TMF679 v4.0.0) available at https://github.com/tmforum-apis/TMF679_ProductOfferingQualification, 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: 8.0.0 servers: - url: 'https://{serverBase}/mefApi/sonata/productOfferingQualification/v8/' variables: serverBase: description: The base of Seller's URL. default: mplify.net tags: - name: productOfferingQualification description: Operations for managing the Product Offering Qualification request. - name: events subscription description: Operations for managing the subscription for events notification. paths: /hub: post: tags: - events subscription summary: Allows a Buyer to register to receive POQ state change notifications description: >- A request initiated by the Buyer to instruct the Seller to send notifications of POQ create, POQ and/or POQ Item state changes if the Buyer has registered for these notifications. The state change notifications are sent only in the Deferred response scenario as in the Immediate response scenario once the response to the POQ Request is provided (create notification), there will be no further state changes. operationId: registerListener parameters: - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer. MUST be specified in the request 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 when the responding entity represents more than one Seller. required: false schema: type: string requestBody: description: >- Data containing the callback endpoint to which to deliver the information. content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/EventSubscriptionInput' required: true responses: '201': description: 'Created. (https://tools.ietf.org/html/rfc7231#section-6.3.2)' 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': description: Unprocessable entity due to business validation problems content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/Error422' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: >- Method not implemented. Used in case Seller is not supporting Notification mechanism 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 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: | This operation is used to delete an event subscription. operationId: unregisterListener parameters: - name: id in: path description: Identifier of the EventSubscription required: true schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer. MUST be specified in the request 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 when the responding entity represents more than one Seller. required: false schema: type: string responses: '204': description: 'No Content. (https://tools.ietf.org/html/rfc7231#section-6.3.5)' '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' '422': description: Unprocessable entity due to business validation problems content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/Error422' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: >- Method not implemented. Used in case Seller is not supporting Notification mechanism content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' /productOfferingQualification: get: tags: - productOfferingQualification summary: >- Retrieve a list of ProductOfferingQualifications based on a set of criteria description: >- The Buyer requests a list of POQs from the Seller based on a set of POQ filter criteria. For each POQ returned, the Seller also provides a POQ Identifier that uniquely identifies this POQ within the Seller's system. The order of the elements returned to the Buyer is defined by the Seller (e.g. natural order) and does not change between the pages. If criteria for attribute X are provided, all returned items must match it. operationId: listProductOfferingQualification parameters: - name: state in: query description: >- State of the POQ to be retrieved. See `MEFPOQTaskStateType` definition for details required: false schema: type: string enum: - acknowledged - inProgress - done - rejected - terminatedWithError - name: creationDate.gt in: query description: Creation Date is on or after this date required: false schema: type: string format: date-time - name: creationDate.lt in: query description: Creation Date is on or before this date required: false schema: type: string format: date-time - name: requestedPOQCompletionDate.gt in: query description: POQ requested response date is on or after this date required: false schema: type: string format: date-time - name: requestedPOQCompletionDate.lt in: query description: POQ requested response date is on or before this date required: false schema: type: string format: date-time - name: externalId in: query description: >- ID given by the consumer and only understandable by him (to facilitate his searches afterward) required: false schema: type: string - name: projectId in: query description: Identifier of Buyer project associated with POQ required: false schema: type: string - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller required: false schema: type: string - name: offset in: query description: >- Requested index for the start of POQ 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 POQ 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 POQ. 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 POQ included in the response schema: type: integer content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/ProductOfferingQualification_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': description: Unprocessable entity due to business validation problems content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/Error422' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '501': description: >- Method not implemented. Used in case Seller is not supporting Notification mechanism content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' post: tags: - productOfferingQualification summary: Send a request to perform product offering qualification description: >- A request initiated by the Buyer to determine whether the Seller is able to deliver a product or set of products from among their product offerings, at the Buyer's location(s); or modify a previously purchased product. The Seller also provides estimated time intervals to complete these deliveries. operationId: createProductOfferingQualification parameters: - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer. MUST be specified in the request 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 when the responding entity represents more than one Seller. required: false schema: type: string requestBody: description: >- POQ content provided by the Buyer. See the definition's description for details. content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ProductOfferingQualification_Create' required: true responses: '201': description: 'Created. (https://tools.ietf.org/html/rfc7231#section-6.3.2)' content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ProductOfferingQualification' '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': description: Unprocessable entity due to business validation problems content: application/json;charset=utf-8: schema: type: array items: $ref: '#/components/schemas/Error422' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' '/productOfferingQualification/{id}': get: tags: - productOfferingQualification summary: Retrieves a ProductOfferingQualification by ID description: >- The Buyer requests the full details of a single Product Offering Qualification based on a POQ identifier returned from the POQ create (`createProductOfferingQualification`) or POQ find (`listProductOfferingQualification`) operationId: retrieveProductOfferingQualification parameters: - name: id in: path description: POQ identifier (matches `ProductOfferingQualification.id`) 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 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 when the 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/ProductOfferingQualification' '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. Used in case Seller is not supporting Notification mechanism content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error501' components: schemas: AlternateProductOfferingProposal: description: > If in request the Buyer has requested to have alternate product proposals, then this class represents a single proposal. All properties are assigned by the Seller. type: object properties: id: description: > A unique identifier for this Alternate Product Offering Proposal assigned by the Seller. type: string serviceabilityConfidence: description: >- The level of confidence of the Seller to be able to service the request with the Alternate Product Offering. Note that this response is only an evaluation of the technical feasibility of delivery independent of when the Product Offering can be delivered. When the item state is `done` the Seller **MUST** provide a value. It **MUST NOT** be populated for other states. $ref: '#/components/schemas/AlternateServiceabilityColor' serviceabilityConfidenceReason: description: The reason for the Serviceability Confidence Reason value. type: string installationInterval: description: > The estimated minimum interval that the Seller requires in their standard process to complete the delivery of this product from the time the order is placed and any precedents have been completed. $ref: '#/components/schemas/Duration' alternateProduct: description: Alternate product proposal $ref: '#/components/schemas/MEFAlternateProduct' guaranteedUntilDate: description: | Date until the Seller guarantees the qualification result. type: string format: date-time deliveryType: description: > The mechanism used to deliver the Product to the place of its installation. $ref: '#/components/schemas/DeliveryType' 3rdPartyProvider: description: > If the Delivery Type is `offNet*` it specifies what 3rd party provider is used to connect to that place of installation. type: string 3rdPartyProviderProductOffering: description: > If the Delivery Type is `offNet*`, it specifies the 3rd party provider's offering is used to connect to that place of installation. type: string required: - alternateProduct - deliveryType - id - installationInterval - serviceabilityConfidence AlternateServiceabilityColor: description: | A color that indicates confidence to service the request. | ServiceabilityColor | Description | |------------------------- | ----------------------------------------------------------------------------- | | green | The Seller is highly confident that they can deliver the Product Offering. It is not expected that the Seller will change this after an order is placed. | | yellow | The Seller is confident that they can deliver the Product Offering subject to a feasibility check. The delivery of the Product Offering is subject to checks that the Seller may not carry out until later in the pre-sales/fulfillment process. The Seller cannot be highly confident that they can deliver the Product Offering until those checks are performed. There is a possibility that the Seller may determine that they will not be able to deliver the Product Offering. | type: string enum: - green - yellow ContactInformation: description: >- Contact data for a person or organization that is involved in the product offering qualification. In a given context it is always specified by the Seller (e.g. Seller Contact Information) or by the Buyer. type: object properties: number: description: Phone number type: string emailAddress: description: Email address type: string postalAddress: description: >- Identifies the postal address of the person or office to be contacted. $ref: '#/components/schemas/FieldedAddressRepresentation' organization: description: The organization or company that the contact belongs to type: string name: description: Name of the contact type: string numberExtension: description: Phone number extension type: string required: - emailAddress - name - number DeliveryType: description: | The mechanism used to deliver the Product to the place of its installation. | Delivery Type | Description | | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | offNetWithBuild | A place does not have an existing connection to the Seller's network, but the Seller can connect via a partner who is willing to build out their network to connect to the place (refer to definition of Build). Some providers may refer to this as Near-Net. | | offNetWithoutBuild | A place that does not have an existing connection to the Seller's network, but the Seller can connect via a 3rd party's existing connection. This may require augmentation of additional equipment, but no Build is needed for the connection. | | onNetWithBuild | A place that does not have an existing connection to the Seller's network, but to which the Seller is willing to build out their network to connect to the place (refer to definition of Build). Some providers may refer to this as Near-Net. | | onNetWithoutBuild | A place that has an existing connection to the Seller's network. This may require the augmentation of additional equipment. | type: string enum: - offNetWithBuild - offNetWithoutBuild - onNetWithBuild - onNetWithoutBuild 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: allOf: - $ref: '#/components/schemas/Error' - 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 type: object description: 'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)' 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: description: >- Unprocessable entity due to a business validation problem. (https://tools.ietf.org/html/rfc4918#section-11.2) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: 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) $ref: '#/components/schemas/Error422Code' 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 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) type: string enum: - missingProperty - invalidValue - invalidFormat - referenceNotFound - unexpectedProperty - tooManyRecords - otherIssue 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 manage notification subscriptions. type: object properties: query: description: >- The value provided by the Buyer in `EventSubscriptionInput` during notification registration type: string 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 required: - callback - id EventSubscriptionInput: description: This class is used to register for Notifications. type: object properties: query: description: >- This attribute is used to define which type of events to register to. Example: "query":"eventType = poqStateChangeEvent". To subscribe for more than one event type, put the values separated by a comma: `eventType=poqStateChangeEvent,poqItemStateChangeEvent`. The possible values are enumerated by the 'POQEventType' in productOfferingQualificationNotification.api.yaml. An empty query is treated as specifying no filters - ending in subscription for all event types. type: string callback: description: >- This callback value must be set to *host* property from the Buyer ProductOfferingQualification Notification API (productOfferingQualificationNotification.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 the "callback": "https://buyer.mef.com/listenerEndpoint", the create event notification will be sent to: `https://buyer.mef.com/listenerEndpoint/mefApi/sonata/productOfferingQualificationNotification/v8/listener/poqStateChangeEvent` 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 FormattedAddressRepresentation: description: 'A freeform text representation agreed to by the Buyer and Seller. ' type: object properties: formattedAddress: description: >- A formatted Address Representation that contains a non-fielded address. type: string language: description: >- The language in which the address is expressed. Based on ISO 639:2023 type: string minLength: 2 maxLength: 2 required: - formattedAddress GeographicAddressRef: description: > A reference to a Geographic Address resource available through Address Validation API. type: object properties: href: description: > Hyperlink to the referenced Address. Hyperlink MAY be used by the Seller in responses. Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string id: description: >- Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Geographic Address Management API) type: string '@type': description: Used to unambiguously designate the class type when using `oneOf` type: string enum: - GeographicAddressRef required: - '@type' - id GeographicAddress_Query: description: >- A list of representations being a subset of Geographic Address entity. This is to be used when providing a list of representations to validate or search for a Geographic Address type: object properties: fieldedAddressRepresentation: description: A list of Fielded Address representations type: array items: $ref: '#/components/schemas/FieldedAddressRepresentation' formattedAddressRepresentation: description: A list of Formatted Address representations type: array items: $ref: '#/components/schemas/FormattedAddressRepresentation' geographicPointRepresentation: description: A list of Geographic Point Address representations type: array items: $ref: '#/components/schemas/GeographicPointRepresentation' labelRepresentation: description: A list of Label Address representations type: array items: $ref: '#/components/schemas/LabelRepresentation' '@type': description: Used to unambiguously designate the class type when using `oneOf` type: string enum: - GeographicAddress_Query minProperties: 2 required: - '@type' GeographicPointRepresentation: description: > A GeographicPointRepresentation defines a geographic point through coordinates. type: object properties: spatialRef: description: >- The spatial reference system used to determine the coordinates. The system used and the value of this field are to be agreed during the onboarding process. type: string latitude: description: The latitude expressed in the format specified by the `spacialRef` type: string longitude: description: The longitude expressed in the format specified by the `spacialRef` type: string elevation: description: The elevation expressed in the format specified by the `spacialRef` type: string required: - latitude - longitude - spatialRef GeographicSiteRef: description: > A reference to a Geographic Site resource available through Service Site API type: object properties: href: description: > Hyperlink to the referenced Site. Hyperlink MAY be used by the Seller in responses. Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string id: description: Identifier of the referenced Geographic Site. type: string '@type': description: Used to unambiguously designate the class type when using `oneOf` type: string enum: - GeographicSiteRef required: - '@type' - id LabelRepresentation: description: >- A unique identifier controlled by a generally accepted independent administrative authority that specifies a fixed geographical location. type: object properties: label: description: >- The unique reference to a Geographic Address assigned by the Administrative Authority. type: string administrativeAuthority: description: >- The organization or standard from the organization that administers this Geographic Address Label ensuring it is unique within the Administrative Authority. type: string language: description: 'The language in which the label is expressed. Based on ISO 639:2023' type: string minLength: 2 maxLength: 2 required: - administrativeAuthority - label MEFAlternateProduct: description: >- An alternative Product Offering that the Seller is proposing to the Buyer. type: object properties: productOffering: description: | A reference to the alternate product offering. $ref: '#/components/schemas/ProductOfferingRef' productConfiguration: description: >- MEFProductConfiguration is used to provide product-specific payload. The @type is used as a discriminator. $ref: '#/components/schemas/MEFProductConfiguration' required: - productConfiguration - productOffering MEFPOQItemStateChange: description: >- Holds the reached state, reasons, and associated date the POQ state changed, populated by the Seller. type: object properties: changeReason: description: Additional comment related to state change type: string changeDate: description: The date on when the state was reached type: string format: date-time state: description: The state reached at the change date $ref: '#/components/schemas/MEFPOQItemTaskStateType' required: - changeDate - state MEFPOQItemTaskStateType: description: | POQ item states - The specific states are managed by the Seller based on its processing and/or based on the Buyer's action. | MEFPOQItemTaskStateType | Mplify 79.1 | Description | | ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | acknowledged | ACKNOWLEDGED | A request has been received by the Seller and has passed basic validation. For an Immediate response, the POQ moves directly to `done` state and does not pass through `acknowledged`. | | inProgress | IN_PROGRESS | The Seller is working on a POQ item response and the answer is not ready yet | | done.abandoned | ABANDONED | Applied to a POQ Item in case the final state is not reached and POQ is moved to the final state other than `done` | | done | READY | The POQ Item has been internally approved by the Seller. This state does not imply that the Seller is able to deliver the requested item. It only means that the response for this POQ Item is complete. | | rejected | REJECTED | A POQ Item has failed the business validation checks the Seller performs after it reaches the `acknowledged` state. | | terminatedWithError | UNABLE_TO_MEET_TIME | The Seller is unable to provide a POQ Item response in the timeframe required by the Buyer (e.g. if an immediate response or a response date is set but cannot be met by the Seller). When a POQ Item goes to `terminatedWithError`, all POQ Items that are not `done` move to `done.abandoned`. | type: string enum: - acknowledged - inProgress - done.abandoned - done - rejected - terminatedWithError MEFPOQStateChange: description: >- Holds the reached state, reasons, and associated date the POQ state changed, populated by the Seller. type: object properties: changeReason: description: Additional comment related to state change type: string changeDate: description: The date on when the state was reached type: string format: date-time state: description: The state reached at the change date $ref: '#/components/schemas/MEFPOQTaskStateType' required: - changeDate - state MEFPOQTaskStateType: description: | These values represent the valid states through which the product offering qualification can transition. The following mapping has been used between `MEFPOQTaskStateType` and Mplify 79.1: | MEFPOQTaskStateType | Mplify 79.1 | Description | | ------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | acknowledged | ACKNOWLEDGED | A request has been received by the Seller, has passed basic validation, and the id was assigned. For an Immediate response, the POQ moves directly to the `done` state and does not pass through `acknowledged`. | | inProgress | IN_PROGRESS | The POQ is currently being worked by the Seller. | | done | READY | The POQ has been internally approved by the Seller. Reached when all items are in `done` state. It does not imply that the Seller can deliver all POQ Items in this POQ. It only means that the POQ has been completed. | | rejected | REJECTED | A POQ was submitted, and it has failed at least one of the business validation checks the Seller performs after it reached the `acknowledged` state. | | terminatedWithError | UNABLE_TO_MEET_TIME | The Seller is unable to provide a response in the timeframe required by the Buyer (e.g. if an immediate response or a response date is set but cannot be met by the Seller). | type: string enum: - acknowledged - inProgress - done - rejected - terminatedWithError MEFProductConfiguration: description: >- The extension point to provide product-specific payload. The @type is used as a discriminator. type: object properties: '@type': description: >- The name of the type that uniquely identifies the type of the product that is the subject of the POQ Request. In the case of Mplify product this is the URN provided in the Product Specification. type: string required: - '@type' discriminator: propertyName: '@type' MEFProductRefOrValue: description: >- Used by the Buyer to point to existing and/or describe the desired shape of the product. In the case of the `add` action - only `productConfiguration` MUST be specified. For `modify` action - both `id` and `productConfiguration` MUST be provided to point which product instance to update and to what state. type: object properties: id: description: > The unique identifier of an in-service Product that is the qualification's subject. This field MUST be populated if an item `action` is either `modify`. This field MUST NOT be populated if an item `action` is `add`. type: string href: description: > Hyperlink to the referenced Product. Hyperlinks may be used by the Seller in responses. Hyperlinks MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string productSpecification: description: >- The identifier of a Product Specification associated with this POQ Item. This identifier is specified by the Seller and is established between the Buyer and Seller prior to issuing any POQ requests. $ref: '#/components/schemas/ProductSpecificationRef' productOffering: description: >- The identifier for a Product Offering associated with this POQ Item. This identifier is specified by the Seller and is established between the Buyer and Seller prior to issuing any POQ requests. $ref: '#/components/schemas/ProductOfferingRef' productConfiguration: description: >- The technical attributes for the Product that would be delivered to fulfill this POQ Item. This essentially specifies the values for attributes defined in the Product Specification or Product Offering. MEFProductConfiguration is used to specify the product-specific payload. This field MUST be populated if an item `action` is `add` or `modify. $ref: '#/components/schemas/MEFProductConfiguration' productRelationship: description: >- A list of references to existing products that are related to the Product that would be delivered to fulfill the POQ Item. type: array items: $ref: '#/components/schemas/ProductRelationship' place: description: >- A list of locations that are related to the Product. For example an installation location type: array items: $ref: '#/components/schemas/RelatedPlaceRefOrQueryWithSubUnit' MEFServiceabilityColor: description: | A color that indicates confidence to service the request. When the item state is `done` the Seller **MUST** provide a value. It **MUST NOT** be populated for other states. | ServiceabilityColor | Description | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | green | The Seller is highly confident that they can deliver the Product Offering. It is not expected that the Seller will change this after an order is placed. | | yellow | The Seller is confident that they can deliver the Product Offering subject to a feasibility check. The delivery of the Product Offering is subject to checks that the Seller may not carry out until later in the pre-sales/fulfillment process. The Seller cannot be highly confident that they can deliver the Product Offering until those checks are performed. There is a possibility that the Seller may determine that they will not be able to deliver the Product Offering. | | red | The Seller cannot deliver the Product Offering as specified. The Seller may or may not have an alternate Product Offerings that could be substituted. | type: string enum: - green - yellow - red PlaceRefOrQuery: description: >- A place described by reference to a Geographic Address, Geographic Site or by Geographic Address Representations. type: object discriminator: propertyName: '@type' mapping: GeographicAddressRef: '#/components/schemas/GeographicAddressRef' GeographicSiteRef: '#/components/schemas/GeographicSiteRef' GeographicAddress_Query: '#/components/schemas/GeographicAddress_Query' oneOf: - $ref: '#/components/schemas/GeographicAddressRef' - $ref: '#/components/schemas/GeographicSiteRef' - $ref: '#/components/schemas/GeographicAddress_Query' PoqProductActionType: description: | Action to be performed on the Product Item. The following mapping has been used between `PoqProductActionType` and Mplify 79.1: | PoqProductActionType | Mplify 79.1 | |--------------------- | ----------- | | add | INSTALL | | modify | CHANGE | type: string enum: - add - modify ProductOfferingQualification: description: > Represents a response to the Buyer's POQ inquiry. This type defines a set of attributes that are assigned by the Seller while processing the request. A POQ response is a combination of attributes defined here with common attributes that are sent in the request. This type is used in response to an immediate request and POQ retrieval by an identifier. allOf: - $ref: '#/components/schemas/ProductOfferingQualification_Common' - type: object properties: id: description: >- The identifier of the Product Offering Qualification that is unique within this Seller. type: string href: description: > Hyperlink to this POQ. Hyperlink MAY be used by the Seller in responses. Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string state: description: The state of the qualification $ref: '#/components/schemas/MEFPOQTaskStateType' creationDate: description: Date when the POQ was created within the Seller's system type: string format: date-time expectedPOQCompletionDate: description: >- The date the Seller expects to provide qualification result. Set by the Seller in case of providing a deferred response when the POQ is in an acknowledged or inProgress state. type: string format: date-time productOfferingQualificationItem: description: >- One or more of Product Offering Qualification Items. It MUST contain exactly one entry for each item in the POQ request. type: array minItems: 1 items: $ref: '#/components/schemas/ProductOfferingQualificationItem' stateChange: description: > A log of all state transitions for the POQ. It must be in sync with the most recent POQ Request state. type: array items: $ref: '#/components/schemas/MEFPOQStateChange' minItems: 1 required: - creationDate - id - productOfferingQualificationItem - state - stateChange ProductOfferingQualificationItem: description: >- An individual article included in a POQ that describes a Product of a particular type (Product Offering) being delivered to a specific geographical location. The objective is to determine if it is feasible for the Seller to deliver this item as described and for the Seller to inform the Buyer of the estimated time interval to complete this delivery. allOf: - $ref: '#/components/schemas/ProductOfferingQualificationItem_Common' - type: object properties: state: description: Current state of an item $ref: '#/components/schemas/MEFPOQItemTaskStateType' stateChange: description: > A log of all state transitions for the POQ Item. It must be in sync with the most recent POQ Item's state. type: array items: $ref: '#/components/schemas/MEFPOQItemStateChange' minItems: 1 serviceabilityConfidence: description: >- The level of confidence of the Seller to be able to service the request. When the item state is `done` the Seller **MUST** provide a value. It **MUST NOT** be populated for other states. $ref: '#/components/schemas/MEFServiceabilityColor' serviceabilityConfidenceReason: description: >- A free text description of the reason a particular Serviceability Confidence is being provided. type: string installationInterval: description: > The estimated minimum interval that the Seller requires in their standard process to complete the delivery of this Product from the time the order is placed and any precedents have been completed. When attribute `serviceabilityConfidence` is set to `green` or `yellow` the Seller **MUST** populate this attribute. **MUST NOT** be specified if 'state' is 'terminatedWithError' or `done.abandoned`. $ref: '#/components/schemas/Duration' guaranteedUntilDate: description: > Date until the Seller guarantees the qualification result. **MUST NOT** be specified if 'state' is 'terminatedWithError' or 'done.abandoned'. type: string format: date-time alternateProductOfferingProposal: description: > A list of zero or more alternative Product Offerings that the Seller is proposing to the Buyer. The Seller MAY specifiy items if: 1) the Buyer has set `provideAlternate=true`; 2) the Seller has determined that the POQ Confidence Level for this item is `yellow` or `red`; and 3) The Seller has alternate Products (e.g. similar but lower bandwidth) that may be adequate. If the Buyer has requested to provide alternatives, but the Seller cannot find any, then the Seller **MUST** return `alternateProductOfferingProposal` array with 0 items. type: array items: $ref: '#/components/schemas/AlternateProductOfferingProposal' deliveryType: description: > The mechanism used to deliver the Product to the place of its installation. $ref: '#/components/schemas/DeliveryType' 3rdPartyProvider: description: > If the Delivery Type is `offNet*` it specifies what 3rd party provider is used to connect to that place of installation. type: string 3rdPartyProviderProductOffering: description: > If the Delivery Type is `offNet*`, it specifies the 3rd party provider's offering is used to connect to that place of installation. type: string terminationError: description: > A list of text-based reasons the Seller MUST provide when the request cannot be processed. When item state is `terminatedWithError` the Seller **MUST** provide at least one termination error. type: array items: $ref: '#/components/schemas/TerminationError' required: - state - stateChange ProductOfferingQualificationItem_Common: description: > Common attributes shared between a POQ request and response. These attributes are provided by the Buyer and must not be modified by the Seller. type: object properties: id: description: > Id of this POQ item which is unique within the POQ. Assigned by the Buyer. type: string action: description: >- The POQ Item Action associated with this POQ item. `add` means that this POQ Item being evaluated is a completely new deployment. `modify` means that this is a change to an exist-ing Product (e.g., to increase the bandwidth). $ref: '#/components/schemas/PoqProductActionType' product: description: > Used by the Buyer to point to existing and/or describe the desired shape of the product. In case of `add` action - only `productConfiguration` MUST be specified. For `modify` action - both `id` and `productConfiguration` to point which product instance to update and to what state. $ref: '#/components/schemas/MEFProductRefOrValue' qualificationItemRelationship: description: | A list of references to related POQ items in this POQ type: array items: $ref: '#/components/schemas/QualificationItemRelationship' endCustomerName: description: > The name of the End Customer. The actual user of the Product that contracts for the Product with the Buyer or the Buyer's representative. type: string required: - action - id - product ProductOfferingQualificationItem_Create: description: >- This structure serves as a request for a product offering qualification item. A product qualification item is an individual article included in a POQ that describes a Product of a particular type (Product Offering) being delivered to the geographic address or a service site specified by the Buyer. The objective is to determine if it is feasible for the Seller to deliver this item as described and for the Seller to inform the Buyer of the estimated time interval to complete this delivery. The modelling pattern introduces the `Common` supertype to aggregate attributes that are common to both `ProductOfferingQualificationItem` and `ProductOfferingQualificationItem_Create`. It happens that it is the Create type has a subset of attributes of the response type and does not introduce any new, thus the `Create` type has an empty definition. allOf: - $ref: '#/components/schemas/ProductOfferingQualificationItem_Common' - type: object ProductOfferingQualification_Common: description: > Defines a set of POQ attributes that might be used by the Buyer and cannot be modified by the Seller. The `relatedContactInformation` entries provided by the Buyer cannot be changed by the Seller, however the Seller might append related contact information to that list.` type: object properties: projectId: description: >- An identifier that is used to group Product Offering Qualifications that represent a unit of functionality that is important to a Buyer. A Project can be used to relate multiple Product Offering Qualifications together. type: string externalId: description: >- An identifier that is used to group things that represent a unit of functionality that is important to a Buyer (unique for the Buyer). A Project can be used to relate multiple requests together such as POQ requests, Product Orders, etc. type: string instantSyncQualification: description: >- If this flag is set to true, the Buyer requires an Immediate Response to this request. If the Seller is unable to provide an Immediate Response, the Seller is to reply with an appropriate error. type: boolean provideAlternative: description: >- If set to true it means that the wishes to receive alternative solutions. The Seller may provide Alternative Product Offering Configurations in the response such as a Product Offering with a lower bandwidth than requested. If "false" the Seller is to reply only with exact matches. type: boolean requestedPOQCompletionDate: description: >- The desired date by which the Buyer wants to receive a response to the Create Product Offering Qualification request. If the Seller cannot meet the expected date, the Seller may choose to reject the request using the `terminatedWithError` state. type: string format: date-time relatedContactInformation: description: |- Party playing a role for this qualification. Buyer Contact Information' **MUST** be provided in the request ('role=buyerContactInformation') and 'Seller Contact Information' **MUST** be provided in the response ('role=sellerContactInformation') type: array minItems: 1 items: $ref: '#/components/schemas/RelatedContactInformation' required: - instantSyncQualification - provideAlternative - relatedContactInformation ProductOfferingQualification_Create: description: > Represents a request formulated by the Buyer that is composed of product offering qualification items. allOf: - $ref: '#/components/schemas/ProductOfferingQualification_Common' - type: object properties: productOfferingQualificationItem: description: >- The Product Offering Qualification is composed of Product Offering Qualification Items. This is the list of associated Product Offering Qualification Items. type: array minItems: 1 items: $ref: '#/components/schemas/ProductOfferingQualificationItem_Create' required: - productOfferingQualificationItem ProductOfferingQualification_Find: description: > This class represent a single list item for the response of `listProductOfferingQualification` operation. type: object properties: id: description: The POQ Request's unique identifier. type: string state: description: Current state of the POQ $ref: '#/components/schemas/MEFPOQTaskStateType' creationDate: description: Date when the POQ was created within the Seller's system type: string format: date-time requestedPOQCompletionDate: description: > The latest date the POQ completion is expected by the Buyer, if specified by the Buyer. type: string format: date-time externalId: description: >- ID given by the consumer and only understandable by him (to facilitate his searches afterwards) type: string projectId: description: 'The project ID specified by the Buyer in the POQ Request, if any.' type: string required: - creationDate - id - state ProductOfferingRef: description: >- A reference to a Product Offering offered by the Seller to the Buyer. A Product Offering contains the commercial and technical details of a Product sold by a particular Seller. A Product Offering defines all of the commercial terms and, through association with a particular Product Specification, defines all the technical attributes and behaviors of the Product. A Product Offering may constrain the allowable set of configurable technical attributes and/or behaviors specified in the associated Product Specification. type: object properties: href: description: > Hyperlink to a Product Offering. The catalog is provided by the Seller to the Buyer during onboarding. Hyperlink MAY be used by the Seller in responses Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string id: description: >- id of a Product Offering. The Buyer and the Seller exchange information about offerings' ids during the onboarding process. type: string required: - id ProductRelationship: description: >- A relationship to an existing Product. The requirements for usage for given Product are described in the Product Specification. When the Buyer provides multiple ProductRelationships of the same relationshipType the Seller determines if a list is supported as defined in the Product Specification. type: object properties: href: description: >- Hyperlink to the product in Seller's inventory that is referenced Hyperlink MAY be used when providing a response by the Seller Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request type: string id: description: unique identifier of the related Product type: string relationshipType: description: > Specifies the type (nature) of the relationship to the related Product. The nature of required relationships varies for Products of different types. For example, a UNI or ENNI Product may not have any relationships, but an Access E-Line may have two mandatory relationships (related to the UNI on one end and the ENNI on the other). More complex Products such as multipoint IP or Firewall Products may have more complex relationships. As a result, the allowed and mandatory `relationshipType` values are defined in the Product Specification. type: string required: - id - relationshipType ProductSpecificationRef: description: >- A reference to a structured set of well-defined technical attributes and/or behaviors that are used to construct a Product Offering for sale to a market. type: object properties: href: description: > Hyperlink to a Product Specification in the Seller’s catalog. The catalog is provided by the Seller to the Buyer during onboarding. Hyperlink MAY be used by the Seller in responses. Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request. type: string id: description: Unique identifier of the product specification type: string required: - id QualificationItemRelationship: description: >- The relationship between product offering qualification items that can be used to validate business rules between POQ items. type: object properties: id: description: An identifier of the targeted POQ item within the same POQ request type: string relationshipType: description: > Specifies the type (nature) of the relationship to the related Product. The nature of required relationships varies for Products of different types. For example, a UNI or ENNI Product may not have any relationships, but an Access E-Line may have two mandatory relationships (related to the UNI on one end and the ENNI on the other). More complex Products such as multipoint IP or Firewall Products may have more complex relationships. As a result, the allowed and mandatory `relationshipType` values are defined in the Product Specification. type: string required: - id - relationshipType RelatedContactInformation: description: >- Contact data for a person or organization that is involved in the product offering qualification. In a given context it is always specified by the Seller (e.g. Seller Contact Information) or by the Buyer. type: object properties: role: description: The role of the particular contact in the request type: string number: description: Phone number type: string emailAddress: description: Email address type: string postalAddress: description: >- Identifies the postal address of the person or office to be contacted. $ref: '#/components/schemas/FieldedAddressRepresentation' organization: description: The organization or company that the contact belongs to type: string name: description: Name of the contact type: string numberExtension: description: Phone number extension type: string required: - emailAddress - name - number - role RelatedPlaceRefOrQueryWithSubUnit: description: >- Allows pointing to a place by referring to a GeographicAddress, GeographicSite, or providing GeographicAddress by value. It also provides additional information like the `role` the place plays for given Product, `subUnit` to provide more detailed information about the precise location of the installation and `contact` needed access to this place. type: object properties: place: $ref: '#/components/schemas/PlaceRefOrQuery' role: description: >- Role of this place. The values that can be specified here are described by Product Specification (e.g. "INSTALL_LOCATION"). type: string subUnit: description: >- A list of zero or more sub units included within the boundary of the `place` for this POQ Item. This is a list to allow complex sub-unit information such as SUITE 42 ROOM A type: array items: $ref: '#/components/schemas/SubUnit' contact: description: >- The person to call to get access to this place in case such access is required to complete the evaluation of this POQ Item. type: array items: $ref: '#/components/schemas/ContactInformation' required: - place - role 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 TerminationError: description: >- This indicates an error that caused an Item to be terminated. The code and propertyPath should be used like in Error422. type: object properties: code: 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) $ref: '#/components/schemas/Error422Code' 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 value: description: Text to describe the reason of the termination. type: string TimeUnit: description: | Represents a unit of time. type: string enum: - seconds - minutes - businessHours - calendarHours - businessDays - calendarDays - months - years