openapi: 3.0.1
info:
  description: >-
    Combined MEF billie gateway API
  title: Colt MEF Billie Gateway
  version: "1.0"
tags:
  - name: geographicAddressValidation
  - name: geographicAddress
  - name: geographicSite
  - name: productOfferingQualification
    description: Operations for managing the Product Offering Qualification request.
  - name: quote
  - name: productOrder
  - name: charge
paths:
  /geographicAddressValidation:
    post:
      description: This operation creates a AddressGeographicAddressValidation entity.
      operationId: createAddressGeographicAddressValidation
      parameters:
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: buyerId
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: sellerId
          schema:
            type: string
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: "#/components/schemas/AddressGeographicAddressValidation_Create"
        description: The AddressGeographicAddressValidation to be created
        required: true
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressGeographicAddressValidation"
          description: "OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)"
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError400"
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError401"
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError403"
          description: Forbidden
        "422":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: "#/components/schemas/AddressError422"
                type: array
          description:
            Unprocessable entity due to the business validation problems
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError500"
          description: Internal Server AddressError
      summary: Creates a AddressGeographicAddressValidation
      tags:
        - geographicAddressValidation
      x-codegen-request-body-name: geographicAddressValidation
  "/geographicAddress/{id}":
    get:
      description: >-
        This operation retrieves a AddressGeographicAddress entity. Attribute selection
        is enabled for all first level attributes.
      operationId: retrieveAddressGeographicAddress
      parameters:
        - description: Identifier of the AddressGeographicAddress
          in: path
          name: id
          required: true
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: buyerId
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: sellerId
          schema:
            type: string
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressGeographicAddress"
          description: OK
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError400"
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError401"
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError403"
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError404"
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/AddressError500"
          description: Internal Server AddressError
      summary: Retrieves a AddressGeographicAddress by ID
      tags:
        - geographicAddress
  /geographicSite:
    get:
      description: This operation list or find SiteGeographicSite entities
      operationId: listSiteGeographicSite
      parameters:
        - description: >-
            The name of the company that is the administrative authority (e.g.
            controls access) for this Geographic Site. (For example, the
            building owner)
          in: query
          name: companyName
          schema:
            type: string
        - description: >-
            The name of the company that is the administrative authority for the
            space within this Geographic Site. (For example, the company leasing
            space in a multi-tenant building).
          in: query
          name: customerName
          schema:
            type: string
        - description: A textual description of the Geographic Site.
          in: query
          name: description
          schema:
            type: string
        - description:
            This defines whether a Geographic Site is public or private.
          in: query
          name: siteType
          schema:
            enum:
              - public
              - private
            type: string
        - description:
            A name commonly used by people to refer to this Geographic Site.
          in: query
          name: name
          schema:
            type: string
        - description: >-
            Identifies the name of the person or organization at the specific
            site location that is the local contact. This contact will primarily
            be used for gaining access to the site. Filtering is done on the
            name of the relatedContactInformation which has the role
            "serviceSiteContactName" in the Site record.
          in: query
          name: serviceSiteContactName
          schema:
            type: string
        - description: >-
            Identifier of a geographic address (from the seller). It could be
            any type of address reference (Fielded, Formatted,
            SiteGeographicAddressLabel, SiteMEFGeographicPoint)
          in: query
          name: geographicAddress.id
          schema:
            type: string
        - description: Street Nr of the geographic site address
          in: query
          name: streetNr
          schema:
            type: string
        - description: Street Name of the geographic site address
          in: query
          name: streetName
          schema:
            type: string
        - description: Street Type of the geographic site address
          in: query
          name: streetType
          schema:
            type: string
        - description: City of the geographic site address
          in: query
          name: city
          schema:
            type: string
        - description: Postcode of the geographic site address
          in: query
          name: postcode
          schema:
            type: string
        - description: Country of the geographic site address
          in: query
          name: country
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: buyerId
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: sellerId
          schema:
            type: string
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: "#/components/schemas/SiteGeographicSite"
                type: array
          description: "OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)"
          headers:
            X-Pagination-Throttled:
              description: >
                Used to indicate that 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 records. E.g. if there are 50
                matching records 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 records included in the response
              schema:
                type: integer
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError400"
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError401"
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError403"
          description: Forbidden
        "422":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: "#/components/schemas/SiteError422"
                type: array
          description: Unprocessable entity due to business validation problems
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError500"
          description: Internal Server SiteError
      summary: List or find SiteGeographicSite objects
      tags:
        - geographicSite
  "/geographicSite/{id}":
    get:
      description: This operation retrieves a SiteGeographicSite entity.
      operationId: retrieveSiteGeographicSite
      parameters:
        - description: Identifier of the SiteGeographicSite
          in: path
          name: id
          required: true
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: buyerId
          schema:
            type: string
        - 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.

            Reference: MEF 79 (Sn 8.8)
          in: query
          name: sellerId
          schema:
            type: string
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteGeographicSite"
          description: "OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)"
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError400"
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError401"
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError403"
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError404"
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: "#/components/schemas/SiteError500"
          description: Internal Server SiteError
      summary: Retrieves a SiteGeographicSite by ID
      tags:
        - geographicSite
  /productOfferingQualification:
    get:
      description: "The Buyer requests a list of POQs from the Seller based on a set\
        \ of POQ filter criteria (as described in MEF79).  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: listPOQProductOfferingQualification
      parameters:
      - description: State of the POQ to be retrieved. See `POQMEFPOQTaskStateType` definition
          for details
        explode: true
        in: query
        name: state
        required: false
        schema:
          enum:
          - acknowledged
          - terminatedWithPOQError
          - inProgress
          - done.unableToProvide
          - done.ready
          type: string
        style: form
      - description: ID given by the consumer and only understandable by him (to facilitate
          his searches afterward)
        explode: true
        in: query
        name: externalId
        required: false
        schema:
          type: string
        style: form
      - description: Identifier of Buyer project associated with POQ
        explode: true
        in: query
        name: projectId
        required: false
        schema:
          type: string
        style: form
      - description: POQ expected response date is on or after this date
        explode: true
        in: query
        name: requestedPOQCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: POQ expected response date is on or before this date
        explode: true
        in: query
        name: requestedPOQCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: The unique identifier of the organization that is acting as the
          Buyer
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - description: The unique identifier of the organization that is acting as the
          Seller
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      - description: Requested index for the start of POQ to be provided in response
          requested by the client. Note that the index starts with "0".
        explode: true
        in: query
        name: offset
        required: false
        schema:
          format: int32
          type: integer
        style: form
      - description: Requested number of POQ to be provided in response requested
          by client
        explode: true
        in: query
        name: limit
        required: false
        schema:
          format: int32
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/POQProductOfferingQualification_Find'
                type: array
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
          headers:
            X-Pagination-Throttled:
              description: |
                Used to indicate that result page was throttled to maximum possible size  and there are additional results that can be fetched
              explode: false
              schema:
                type: boolean
              style: simple
            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.
              explode: false
              schema:
                type: integer
              style: simple
            X-Result-Count:
              description: The number of POQ included in the response
              explode: false
              schema:
                type: integer
              style: simple
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError403'
          description: Forbidden
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError500'
          description: Internal Server POQError
      summary: Retrieve a list of POQProductOfferingQualifications based on a set of
        criteria
      tags:
      - productOfferingQualification
    post:
      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. Reference: MEF 79 (Sn 8.4)."
      operationId: createPOQProductOfferingQualification
      parameters:
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/POQProductOfferingQualification_Create'
        description: POQ content provided by the Buyer. See definition's description
          for details.
        required: true
      responses:
        "201":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQProductOfferingQualification'
          description: Created. (https://tools.ietf.org/html/rfc7231#section-6.3.2)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError403'
          description: Forbidden
        "422":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/POQError422'
                type: array
          description: Unprocessable entity due to business validation problems
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError500'
          description: Internal Server POQError
      summary: Send a request to perform product offering qualification
      tags:
      - productOfferingQualification
      x-codegen-request-body-name: productOfferingQualification
  /productOfferingQualification/{id}:
    get:
      description: The Buyer requests the full details of a single Product Offering
        Qualification based on a POQ identifier returned from  the POQ create (`createPOQProductOfferingQualification`)
        or POQ find (`listPOQProductOfferingQualification`)
      operationId: retrievePOQProductOfferingQualification
      parameters:
      - description: POQ identifier (matches `POQProductOfferingQualification.id`)
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQProductOfferingQualification'
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError404'
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/POQError500'
          description: Internal Server POQError
      summary: Retrieves a POQProductOfferingQualification by ID
      tags:
      - productOfferingQualification
  /quote:
    get:
      description: "The Buyer requests a list of Quotes from the Seller based on a\
        \ set of filter criteria (as described in MEF 80).  For each Quote returned,\
        \ the Seller also provides a Quote Identifier that uniquely identifies this\
        \ Quote within the Seller. 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."
      operationId: listQuote
      parameters:
      - description: State of the Quote to be retrieved. See `QuoteMEFQuoteStateType` definition
          for details
        explode: true
        in: query
        name: state
        required: false
        schema:
          enum:
          - accepted
          - acknowledged
          - answered
          - approved.orderable
          - approved.orderableAlternate
          - cancelled
          - unableToProvide
          - declined
          - expired
          - inProgress
          - inProgress.draft
          - rejected
          type: string
        style: form
      - description: "Level of the quote - could be budgetary, firmSubjectToFeasibilityCheck,\
          \ firm"
        explode: true
        in: query
        name: quoteLevel
        required: false
        schema:
          enum:
          - budgetary
          - firmSubjectToFeasibilityCheck
          - firm
          type: string
        style: form
      - description: ID given by the consumer and only understandable by him (to facilitate
          his searches afterward)
        explode: true
        in: query
        name: externalId
        required: false
        schema:
          type: string
        style: form
      - description: An identifier that is used to group Quotes that represent a unit
          of functionality that is important to a Buyer. A Project can be used to
          relate multiple Quotes together
        explode: true
        in: query
        name: projectId
        required: false
        schema:
          type: string
        style: form
      - description: Date when the quote was created - greater than
        explode: true
        in: query
        name: quoteDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Date when the quote was created - lower than
        explode: true
        in: query
        name: quoteDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Requested Quote Completion Date - greater than
        explode: true
        in: query
        name: requestedQuoteCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Requested Quote Completion Date - lower than
        explode: true
        in: query
        name: requestedQuoteCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Expected Quote Completion Date - greater than
        explode: true
        in: query
        name: expectedQuoteCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Expected Quote Completion Date - lower than
        explode: true
        in: query
        name: expectedQuoteCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Date when the Quote State was set to one of the Completion States
          - greater than
        explode: true
        in: query
        name: effectiveQuoteCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Date when the Quote State was set to one of the Completion States
          - lower than
        explode: true
        in: query
        name: effectiveQuoteCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.

          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      - description: Requested index for start of resources to be provided in response
        explode: true
        in: query
        name: offset
        required: false
        schema:
          type: integer
        style: form
      - description: Requested number of resources to be provided in response
        explode: true
        in: query
        name: limit
        required: false
        schema:
          format: int32
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/QuoteQuote_Find'
                type: array
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
          headers:
            X-Pagination-Throttled:
              description: |
                Used to indicate that result page was throttled to maximum possible size  and there are additional results that can be fetched
              explode: false
              schema:
                type: boolean
              style: simple
            X-Total-Count:
              description: |
                The total number of matching records. E.g. if there are 50 matching records in total, but the request has offset=10 and limit=10, then the X-Total-Count is 50.
              explode: false
              schema:
                type: integer
              style: simple
            X-Result-Count:
              description: The number of records included in the response
              explode: false
              schema:
                type: integer
              style: simple
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError403'
          description: Forbidden
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError500'
          description: Internal Server QuoteError
      summary: List or find Quote objects
      tags:
      - quote
    post:
      description: This operation creates a Quote entity.
      operationId: createQuote
      parameters:
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.

          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/QuoteQuote_Create'
        description: The Quote to be created
        required: true
      responses:
        "201":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteQuote'
          description: Created  (https://tools.ietf.org/html/rfc7231#section-6.3.2)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError403'
          description: Forbidden
        "422":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/QuoteError422'
                type: array
          description: Unprocessable entity due to the business validation problems
            in the Quote or one of the Quote items
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError500'
          description: Internal Server QuoteError
      summary: Send request to perform a quotation
      tags:
      - quote
      x-codegen-request-body-name: quote
  /quote/{id}:
    get:
      description: This operation retrieves a Quote entity. Attribute selection is
        enabled for all first level attributes.
      operationId: retrieveQuote
      parameters:
      - description: Identifier of the Quote
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.

          Reference: MEF 79 (Sn 8.8)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteQuote'
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError404'
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteError500'
          description: Internal Server QuoteError
      summary: Retrieves a Quote by ID
      tags:
      - quote
  /productOrder:
    get:
      description: This operation list or find OrderProductOrder entities
      operationId: listOrderProductOrder
      parameters:
      - description: State of the Product Order
        explode: true
        in: query
        name: state
        required: false
        schema:
          enum:
          - acknowledged
          - assessingCancellation
          - cancelled
          - completed
          - failed
          - held.assessingCharge
          - inProgress
          - partial
          - pending.assessingModification
          - pendingCancellation
          - rejected
          type: string
        style: form
      - description: A number that uniquely identifies an order within the Buyer's
          enterprise.
        explode: true
        in: query
        name: externalId
        required: false
        schema:
          type: string
        style: form
      - description: An identifier that is used to group Orders that represent a unit
          of functionality that is important to a Buyer.
        explode: true
        in: query
        name: projectId
        required: false
        schema:
          type: string
        style: form
      - description: Date when the order was created greater than
        explode: true
        in: query
        name: orderDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Date when the order was created lesser than
        explode: true
        in: query
        name: orderDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Effective completion date greater than
        explode: true
        in: query
        name: completionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Effective completion date lesser than
        explode: true
        in: query
        name: completionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: This is requested date to get this Product Order completed greater
          than
        explode: true
        in: query
        name: requestedCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: This is requested date to get this Product Order completed lesser
          than
        explode: true
        in: query
        name: requestedCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Seller planned completion date greater than
        explode: true
        in: query
        name: expectedCompletionDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: Seller planned completion date lesser than
        explode: true
        in: query
        name: expectedCompletionDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: order cancellation date greater than
        explode: true
        in: query
        name: orderCancellationDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: order cancellation date lesser than
        explode: true
        in: query
        name: orderCancellationDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      - description: Requested index for start of item to be provided in response
          requested by the client. OrderNote that the index starts with "0".
        explode: true
        in: query
        name: offset
        required: false
        schema:
          format: int32
          type: integer
        style: form
      - description: Requested number of items to be provided in response requested
          by client
        explode: true
        in: query
        name: limit
        required: false
        schema:
          format: int32
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/OrderProductOrder_Find'
                type: array
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
          headers:
            X-Pagination-Throttled:
              description: |
                Used to indicate that result page was throttled to maximum possible size  and there are additional results that can be fetched
              explode: false
              schema:
                type: boolean
              style: simple
            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.
              explode: false
              schema:
                type: integer
              style: simple
            X-Result-Count:
              description: The number of items included in the response
              explode: false
              schema:
                type: integer
              style: simple
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
      summary: List or find OrderProductOrder objects
      tags:
      - productOrder
    post:
      description: This operation creates a OrderProductOrder entity.
      operationId: createOrderProductOrder
      parameters:
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/OrderProductOrder_Create'
        description: The OrderProductOrder to be created
        required: true
      responses:
        "201":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderProductOrder'
          description: Created (https://tools.ietf.org/html/rfc7231#section-6.3.2)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "422":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/OrderError422'
                type: array
          description: Unprocessable entity due to the business validation problems
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
      summary: Creates a OrderProductOrder
      tags:
      - productOrder
      x-codegen-request-body-name: productOrder
  /productOrder/{id}:
    get:
      description: This operation retrieves a OrderProductOrder entity. Attribute selection
        is enabled for all first level attributes.
      operationId: retrieveOrderProductOrder
      parameters:
      - description: Identifier of the OrderProductOrder
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderProductOrder'
          description: OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError404'
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
      summary: Retrieves a OrderProductOrder by ID
      tags:
      - productOrder
    patch:
      description: This operation updates partially a OrderProductOrder entity.
      operationId: patchOrderProductOrder
      parameters:
      - description: Identifier of the OrderProductOrder
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/OrderProductOrder_Update'
        description: The OrderProductOrder to be updated
        required: true
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderProductOrder'
          description: Updated (https://tools.ietf.org/html/rfc7231#section-6.3.1)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError404'
          description: Not Found
        "409":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError409'
          description: Conflict
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
        "501":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError501'
          description: Method not implemented.
      summary: Updates partially a OrderProductOrder
      tags:
      - productOrder
      x-codegen-request-body-name: productOrder
  /charge:
    get:
      description: This operation list or find Charge entities
      operationId: listCharge
      parameters:
      - description: id of the Product Order this Charge relates to.
        explode: true
        in: query
        name: productOrderId
        required: false
        schema:
          type: string
        style: form
      - description: id of the Product Order Item this Charge relates to.
        explode: true
        in: query
        name: productOrderItemId
        required: false
        schema:
          type: string
        style: form
      - description: The date that the Buyer must respond to the Seller's Charge.
          If there is no response received by the Due Date the Seller will treat all
          charges as declined (greater than)
        explode: true
        in: query
        name: responseDueDate.gt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: The date that the Buyer must respond to the Seller's Charge.
          If there is no response received by the Due Date the Seller will treat all
          charges as declined (greater than)
        explode: true
        in: query
        name: responseDueDate.lt
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      - description: Requested index for start of item to be provided in response
          requested by client. OrderNote that the index starts with "0".
        explode: true
        in: query
        name: offset
        required: false
        schema:
          format: int32
          type: integer
        style: form
      - description: Requested number of items to be provided in response requested
          by client
        explode: true
        in: query
        name: limit
        required: false
        schema:
          format: int32
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/OrderMEFCharge'
                type: array
          description: Success
          headers:
            X-Pagination-Throttled:
              description: |
                Used to indicate that result page was throttled to maximum possible size  and there are additional results that can be fetched
              explode: false
              schema:
                type: boolean
              style: simple
            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.
              explode: false
              schema:
                type: integer
              style: simple
            X-Result-Count:
              description: The number of items included in the response
              explode: false
              schema:
                type: integer
              style: simple
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
        "501":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError501'
          description: Method not implemented.
      summary: List or find Charge objects
      tags:
      - charge
  /charge/{id}:
    get:
      description: This operation retrieves a Charge entity.
      operationId: retrieveCharge
      parameters:
      - description: Identifier of the Charge
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderMEFCharge'
          description: Success
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError404'
          description: Not Found
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
        "501":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError501'
          description: Method not implemented.
      summary: Retrieves a Charge by ID
      tags:
      - charge
    patch:
      description: This operation updates partially a Charge entity.
      operationId: patchCharge
      parameters:
      - description: Identifier of the Charge
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: buyerId
        required: false
        schema:
          type: string
        style: form
      - 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.
          Reference: MEF 57.2 (Sn 9.18)
        explode: true
        in: query
        name: sellerId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/OrderMEFCharge_Update'
        description: The Charge to be updated
        required: true
      responses:
        "200":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderMEFCharge'
          description: Updated (https://tools.ietf.org/html/rfc7231#section-6.3.1)
        "400":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError400'
          description: Bad Request
        "401":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError401'
          description: Unauthorized
        "403":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError403'
          description: Forbidden
        "404":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError404'
          description: Not Found
        "409":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError409'
          description: Conflict
        "500":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError500'
          description: Internal Server OrderError
        "501":
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/OrderError501'
          description: Method not implemented.
      summary: Updates partially a Charge
      tags:
      - charge
      x-codegen-request-body-name: charge
components:
  schemas:
    AddressError400Code:
      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
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
      type: string
    AddressError:
      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.
      properties:
        reason:
          description: >-
            Text that explains the reason for error. This can be shown to a
            client user.
          maxLength: 255
          type: string
        message:
          description: >-
            Text that provides mode details and corrective actions related to
            the error. This can be shown to a client user.
          type: string
        referenceAddressError:
          description: URL pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    AddressError400:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              $ref: "#/components/schemas/AddressError400Code"
          required:
            - code
          type: object
      description:
        "Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)"
    AddressError401:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              $ref: "#/components/schemas/AddressError401Code"
          required:
            - code
          type: object
      description:
        "Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)"
    AddressError401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    AddressError403:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              $ref: "#/components/schemas/AddressError403Code"
          required:
            - code
          type: object
      description:
        "Forbidden. (https://tools.ietf.org/html/rfc7231#section-6.5.3)"
    AddressError403Code:
      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
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
      type: string
    AddressError404:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              description: >-
                The following error code:

                - notFound: A current representation for the target resource not
                found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description: >-
        Resource for the requested path not found.
        (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    AddressError422:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              $ref: "#/components/schemas/AddressError422Code"
            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)
    AddressError422Code:
      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
    AddressError500:
      allOf:
        - $ref: "#/components/schemas/AddressError"
        - properties:
            code:
              description: >-
                The following error code:

                - internalAddressError: Internal server error - the server encountered
                an unexpected condition that prevented it from fulfilling the
                request.
              enum:
                - internalAddressError
              type: string
          required:
            - code
          type: object
      description: >-
        Internal Server AddressError.
        (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    AddressFieldedAddress:
      allOf:
        - $ref: "#/components/schemas/AddressGeographicAddress"
        - properties:
            country:
              description: The country that the address is in
              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
            postcodeExtension:
              description: >-
                An extension of a postal code. E.g. the part following the dash
                in a US urban property address
              type: string
            city:
              description: The city that the address is in
              type: string
            streetNr:
              description: >-
                Number identifying a specific property on a public street. It
                may be combined with streetNrLast for ranged addresses. MEF 79
                defines it as required however as in certain countries it is not
                used we make it optional in API.
              type: string
            locality:
              description: The locality that the address is in
              type: string
            name:
              description: the building name
              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) MEF 79
                defines it as required however as in certain countries it is not
                used we make it optional in API.
              type: string
            streetNrLast:
              description:
                Last number in a range of street numbers allocated to a property
              type: string
            streetNrSuffix:
              description: The first street number suffix
              type: string
            streetName:
              description: Name of the street or other street type
              type: string
            stateOrProvince:
              description: The State or Province that the address is in
              type: string
            streetNrLastSuffix:
              description: Last street number suffix for a ranged address
              type: string
            geographicSubAddress:
              $ref: "#/components/schemas/AddressGeographicSubAddress"
              description:
                Additional fields used to specify an address, as detailed as
                possible.
            streetSuffix:
              description: A modifier denoting a relative direction
              type: string
          required:
            - city
            - country
            - streetName
          type: object
      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.
        Reference: MEF 79 (Sn 8.9.2)
    AddressGeographicAddress:
      description: >-
        Structured textual way of describing how to find a property in an urban
        area (country properties are often defined differently).

        Note: Address corresponds to SID UrbanPropertyAddress
      discriminator:
        mapping:
          FieldedAddress: "#/components/schemas/AddressFieldedAddress"
        propertyName: "@type"
      properties:
        id:
          description: Unique identifier of the place
          readOnly: true
          type: string
        hasPublicSite:
          description: >-
            This attribute specifies if that Address contains Service Sites that
            are public such as Meet-Me-Rooms at an interconnect location or a
            shared telecom room in the basement of a multi-tenant building
          readOnly: true
          type: boolean
        "@type":
          description: >
            This field is used as discriminator. The value is the name of one of
            the types that inherit from it using 'allOf', i.e. one of
            FieldedAddress, FormattedAddress, GeographicAddressLabel,
            MEFGeographicPoint. Moreover, it might discriminate for an
            additional related place as defined in '@schemaLocation'.
          type: string
        allowsNewSite:
          description: >-
            This attribute specifies if a Buyer must use one of the known
            existing Service Sites at this location for any Products delivered
            to this Address. For example, if a particular building owner
            mandated that all interconnects be done in a shared Public
            Meet-Me-Room, this attribute would be set to False for that Address.
          readOnly: true
          type: boolean
        associatedGeographicAddress:
          $ref: "#/components/schemas/AddressFieldedAddress"
          readOnly: true
          description:
            A Fielded Address that is associated with the Geographic Point or
            the Geographic Address Label.
      required:
        - "@type"
      type: object
    AddressGeographicAddressValidation:
      description: This resource is used to manage address validation response.
      properties:
        validationResult:
          $ref: "#/components/schemas/AddressMEFValidationResultType"
          description: Result of the address validation (success, partial, fail)
        alternateGeographicAddress:
          items:
            $ref: "#/components/schemas/AddressGeographicAddress"
          type: array
          description: |
            An array of zero or more Addresses known to the Seller that are
            considered by the Seller to match the submittedGeographicAddress.
            Not including the bestMatchAddress. MEF: Alternatives should be
            provided regardless of whether best match was found.
        provideAlternative:
          description: >
            Indicator provided by the requester to specify if alternate
            addresses must be provided in case of partial or fail result. MEF:
            The attribute is kept for TMF API compliance. MEF requires this
            attribute always to be set to 'true'. Alternatives should be
            provided regardless of whether best match was found. The Seller is
            allowed not to implement the support for 'false'
          type: boolean
        submittedGeographicAddress:
          $ref: "#/components/schemas/AddressGeographicAddress"
          description:
            "The address as submitted to validation. MEF: Structure used by the
            buyer to request geographic address validation"
        bestMatchGeographicAddress:
          $ref: "#/components/schemas/AddressGeographicAddress"
          description:
            Represents that the Seller is confident this is likely a direct
            match to the submittedGeographicAddress
      required:
        - provideAlternative
        - submittedGeographicAddress
      type: object
    AddressGeographicAddressValidation_Create:
      description: >-
        This resource is used to manage address validation request.


        Skipped properties: alternateGeographicAddress,
        bestMatchGeographicAddress, validationResult.
      properties:
        provideAlternative:
          description: >
            Indicator provided by the requester to specify if alternate
            addresses must be provided in case of partial or fail result. MEF:
            The attribute is kept for TMF API compliance. MEF requires this
            attribute always to be set to 'true'. Alternatives should be
            provided regardless of whether best match was found. The Seller is
            allowed not to implement the support for 'false'
          type: boolean
        submittedGeographicAddress:
          $ref: "#/components/schemas/AddressGeographicAddress"
          description:
            "The address as submitted to validation. MEF: Structure used by the
            buyer to request geographic address validation"
      required:
        - provideAlternative
        - submittedGeographicAddress
      type: object
    AddressGeographicSubAddress:
      description:
        "Additional fields used to specify an address, as detailed as possible."
      properties:
        buildingName:
          description: >
            Allows for identification of places that require building name  as
            part of addressing information
          type: string
        subUnit:
          description: >-
            Representation of a AddressMEFSubUnit It is used for describing subunit
            within a subAddress e.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT,
            WHARF.
          items:
            $ref: "#/components/schemas/AddressMEFSubUnit"
          type: array
        levelType:
          description: Describes level types within a building
          type: string
        levelNumber:
          description:
            "Used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2"
          type: string
        privateStreetNumber:
          description: Private streets numbers internal to a private street
          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
      type: object
    AddressMEFSubUnit:
      description: Allows for sub unit identification
      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
      type: object
    AddressMEFValidationResultType:
      description: |
        Result of the address validation:
        - success - best match found,
        - partial - no best match but alternatives available,
        - fail - neither best match nor alternatives provided
      enum:
        - success
        - partial
        - fail
      type: string
    OrderAccessEline:
      allOf:
        - $ref: '#/components/schemas/OrderMEFProductConfiguration'
        - properties:
            enniEp:
              $ref: '#/components/schemas/OrderAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the ENNI
            uniEp:
              $ref: '#/components/schemas/OrderAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the UNI
          required:
            - enniEp
            - uniEp
          type: object
      x-discriminator-value: urn:mef:lso:spec:sonata:access-eline:v2.0.0:order
    OrderAccessElineOvcEndPoint:
      allOf:
        - $ref: '#/components/schemas/OrderAccessElineOvcEpCommon'
      description: An OVC End Point is a logical entity at a given External Interface that is associated with a distinct set of frames passing over that External Interface. The OVC End Point schema is included in the definitions section of the OVC schema..
      required:
        - ingressBandwidthProfilePerClassOfServiceName
        - ovcEgressMap
      type: object
    OrderAccessElineOvcEpCommon:
      description: This class contains all of the Access E-Line OVC End Point Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Access Eline OVC End Point Service Attributes. This class is used to compose the AccessElineOvcEndPoint class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        ingressBandwidthProfilePerClassOfServiceName:
          description: MEF 26.2 sec. 16.12 - For each CoS Name listed, Bandwidth Profile Flow parameters for all ingress Service Frames mapped to that CoS Name at OVC End Point. This bandwidth profile flow is used to police at Ingress each CoS in an OVC individually. List of 2-tuples {cos, bwpf}.
          items:
            $ref: '#/components/schemas/OrderBandwidthProfilePerClassOfServiceName'
          minItems: 0
          type: array
          uniqueItems: true
        ovcEndPointMap:
          $ref: '#/components/schemas/OrderEndPointMapForm'
          description: MEF 26.2 sec. 16.5 - The information that determines which UNI/ENNI Frames are mapped to the OVC End Point. At the UNI and ENNI, the only allowable mapping is a LIST of VLAN IDs (CE-VLAN IDs at the UNI and S-VLAN IDs at the ENNI).
      type: object
    OrderBandwidthProfilePerClassOfServiceName:
      description: >-
        This Class is used for both the Ingress Bandwidth Profile per Class of Service Name (MEF 26.2 §16.12) and Egress Bandwidth Profile per Egress Equivalence Class Name (MEF 26.2 §16.13) . The value is a list of pairs of the form〈x, y〉 where x is a Class of Service Name that is in the value of the OVC List of Class of Service Names Service Attribute (Section 12.12) for the OVC that associates the OVC End Point for Ingress and an Egress Equvalence Class Name for Egress. And y, if specified, is a
        reference to a Bandwidth Profile Flow. There is at most one pair in the list for each CoS or EEC Name (Except Discard).
      properties:
        bwpFlow:
          $ref: '#/components/schemas/OrderBwpFlow'
        classOfServiceName:
          description: MEF 26.2 sec. 16.12 and 16.13 - For Ingress, this is the Name of the Class of Service that this bandwidth profile flow is applied to. This should be an item from ovc.listOfClassOfServiceNames. For Egress, this is the Egress Equivalence Class (EEC) Name.
          type: string
      required:
        - bwpFlow
        - classOfServiceName
      type: object
    OrderBwpFlow:
      description: The Bandwidth Profile Flow, BwpFlow, object class represents the Bandwidth Profile Flow which includes the bandwidth profile parameter CIR, CIRmax, CBS, EIR, EIRmax, EBS, Coupling Flag, Color Mode, Envelope and Rank, and Token Request Offset. The BwpFlow is used with Service Attributes for CarrierEthernetOperatorUni, CarrierEthernetSubscriberUni, CarrierEthernetVuni,, and ENNI as well as OVC and EVC End Points. Reference MEF 10.4 Section 12 and MEF 26.2 Section 17.
      properties:
        cir:
          $ref: '#/components/schemas/OrderInformationRate'
      required:
        - cir
      type: object
    OrderCarrierEthernetOperatorUni:
      allOf:
        - $ref: '#/components/schemas/OrderMEFProductConfiguration'
        - $ref: '#/components/schemas/OrderOperatorUniCommon'
        - required:
            - listofPhysicalLinks
          type: object
      x-discriminator-value: urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:order
    OrderCarrierEthernetPhysicalLink:
      description: A 2-tuple of the form <id, physicalLink>. The value of id is an identifier for the physical link. The value of physicalLink is the specific Ethernet physical layer type.
      properties:
        id:
          description: An identifier for the physical link.
          maxLength: 45
          minLength: 1
          pattern: "[ -\x7F]+"
          type: string
        physicalLink:
          $ref: '#/components/schemas/OrderPhysicalLink'
          description: An Ethernet physical layer
      required:
        - id
        - physicalLink
      type: object
    OrderDuration:
      description: A Duration in a given unit of time e.g. 3 hours, or 5 days.
      properties:
        amount:
          description: Duration (number of seconds, minutes, hours, etc.)
          type: integer
        units:
          $ref: '#/components/schemas/OrderTimeUnit'
      required:
        - amount
        - units
      type: object
    OrderEndPointMapForm:
      discriminator:
        mapping:
          FORM_E: '#/components/schemas/OrderEndPointMapFormE'
          FORM_U: '#/components/schemas/OrderEndPointMapFormU'
        propertyName: mapType
      properties:
        mapType:
          enum:
            - FORM_E
            - FORM_U
          type: string
      required:
        - mapType
      type: object
    OrderEndPointMapFormE:
      allOf:
        - $ref: '#/components/schemas/OrderEndPointMapForm'
        - description: The value of an End Point Map of Form E (E for ENNI) consists of a list of one or more SVLAN ID values. An S-Tagged ENNI Frame whose S-VLAN ID value matches an entry in the list maps to the OVC End Point.
          properties:
            EndPointMapFormE:
              items:
                maximum: 4094
                minimum: 1
                type: integer
              maxItems: 4094
              minItems: 1
              type: array
              uniqueItems: true
          required:
            - EndPointMapFormE
            - mapType
          type: object
      x-discriminator-value: FORM_E
    OrderEndPointMapFormU:
      allOf:
        - $ref: '#/components/schemas/OrderEndPointMapForm'
        - description: The EndPointMapFormU object class represents the EVC/OVC End Point  Map Form U (U for UNI). It is a list of one or more CE-VLAN IDs.
          properties:
            ovcEndPointMapFormU:
              items:
                maximum: 4094
                minimum: 1
                type: integer
              maxItems: 4094
              minItems: 1
              type: array
              uniqueItems: true
          required:
            - mapType
            - ovcEndPointMapFormU
          type: object
      x-discriminator-value: FORM_U
    OrderError:
      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.
      properties:
        message:
          description: Text that provides mode details and corrective actions related to the error. This can be shown to a client user.
          type: string
        reason:
          description: Text that explains the reason for the error. This can be shown to a client user.
          maxLength: 255
          type: string
        referenceError:
          description: URL pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    OrderError400:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              $ref: '#/components/schemas/OrderError400Code'
          required:
            - code
          type: object
      description: Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)
    OrderError400Code:
      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
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
      type: string
    OrderError401:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              $ref: '#/components/schemas/OrderError401Code'
          required:
            - code
          type: object
      description: Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)
    OrderError401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    OrderError403:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              $ref: '#/components/schemas/OrderError403Code'
          required:
            - code
          type: object
      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)
    OrderError403Code:
      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
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
      type: string
    OrderError404:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              description: |-
                The following error code:
                - notFound: A current representation for the target resource not found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description: Resource for the requested path not found. (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    OrderError409:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              description: |-
                The following error code:
                - conflict: The client has provided a value whose semantics are not appropriate for the property.
              enum:
                - conflict
              type: string
          required:
            - code
          type: object
      description: Conflict (https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.8)
    OrderError422:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              $ref: '#/components/schemas/OrderError422Code'
            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)
    OrderError422Code:
      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
    OrderError500:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              description: |-
                The following error code:
                - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request.
              enum:
                - internalError
              type: string
          required:
            - code
          type: object
      description: Internal Server Error. (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    OrderError501:
      allOf:
        - $ref: '#/components/schemas/OrderError'
        - properties:
            code:
              description: |-
                The following error code:
                - notImplemented: Method not supported by the server
              enum:
                - notImplemented
              type: string
          required:
            - code
          type: object
      description: Not Implemented. Used in case Seller is not supporting an optional operation (https://tools.ietf.org/html/rfc7231#section-6.6.2)
    OrderFieldedAddress:
      allOf:
        - $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
        - properties:
            city:
              description: The city that the address is in
              type: string
            country:
              description: Country that the address is in
              type: string
            geographicSubAddress:
              $ref: '#/components/schemas/OrderGeographicSubAddress'
            locality:
              description: The locality that the address is in
              type: string
            postcode:
              description: Descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also known as zip code)
              type: string
            postcodeExtension:
              description: An extension of a postal code. E.g. the part following the dash in a US urban property address
              type: string
            stateOrProvince:
              description: The State or Province that the address is in
              type: string
            streetName:
              description: Name of the street or other street type
              type: string
            streetNr:
              description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses. MEF 79 defines it as required however as in certain countries it is not used we make it optional in API.
              type: string
            streetNrLast:
              description: Last number in a range of street numbers allocated to a property
              type: string
            streetNrLastSuffix:
              description: Last street number suffix for a ranged address
              type: string
            streetNrSuffix:
              description: The first street number suffix
              type: string
            streetSuffix:
              description: A modifier denoting a relative direction
              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
          required:
            - city
            - country
            - streetName
          type: object
      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. Reference: MEF 79 (Sn 8.9.2)'
    OrderGeographicAddressRef:
      allOf:
        - $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Geographic Address Validation API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Address Validation API.
    OrderGeographicAddressRefWithSite:
      allOf:
        - $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
        - properties:
            geographicSubAddress:
              $ref: '#/components/schemas/OrderGeographicSubAddress'
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Sonata Geographic Address Management API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Sonata Address Validation API.
    OrderGeographicSiteRef:
      allOf:
        - $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Site.
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Site resource available through Service Site API
    OrderGeographicSubAddress:
      description: Additional fields used to specify an address, as detailed as possible.
      properties:
        buildingName:
          description: |
            Allows for identification of places that require building name  as part of addressing information
          type: string
        levelNumber:
          description: Used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2
          type: string
        levelType:
          description: Describes level types within a building
          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
        privateStreetNumber:
          description: Private streets numbers internal to a private street
          type: string
        subUnit:
          description: Representation of a MEFSubUnit It is used for describing subunit within a subAddress e.g. BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF.
          items:
            $ref: '#/components/schemas/OrderMEFSubUnit'
          type: array
      type: object
    OrderInformationRate:
      description: A value and a unit of measure that specifies an Information Rate.
      properties:
        irUnits:
          $ref: '#/components/schemas/OrderIrUnits'
          description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
        irValue:
          description: The value in the information rate. For example if the information rate is 70 kbps this element is 70.
          minimum: 0
          type: number
      required:
        - irUnits
        - irValue
      type: object
    OrderIrUnits:
      description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
      enum:
        - BPS
        - KBPS
        - MBPS
        - GBPS
        - TBPS
        - PBPS
        - EBPS
        - ZBPS
        - YBPS
      type: string
    OrderMEFAcceptedRejectedType:
      description: Indicator of acceptance
      enum:
        - accepted
        - rejected
      type: string
    OrderMEFBillingAccount:
      description: References the billing arrangement that a buyer has with a seller that provides products to the customer.
      properties:
        agreementName:
          description: The name of the Agreement which is referenced for the Product Order Item.
          type: string
        billingContact:
          $ref: '#/components/schemas/OrderRelatedContactInformation'
        id:
          description: Identifies the buyer's billing account to which the recurring and non-recurring charges for this order or order item will be billed. Required if the Buyer has more than one Billing Account with the Seller and for all new Product Orders.
          type: string
      required:
        - id
      type: object
    OrderMEFBuyerSellerType:
      description: Indicates if the note is from Buyer or Seller.
      enum:
        - buyer
        - seller
      type: string
    OrderMEFCancelProductOrderRef:
      description: A reference to a Cancel Product Order instance
      properties:
        href:
          description: Hyperlink to access the Cancel Product Order
          type: string
        id:
          description: A unique identifier of the Cancel Product Order
          type: string
      required:
        - id
      type: object
    OrderMEFCharge:
      description: >-
        When non-recurring or updated recurring charges are identified by the Seller during their processing of a Product Order, the Seller must communicate these charges to the Buyer and the Buyer must respond to the Seller informing the Seller if they accept or reject each charge. The Seller indicates for each charge, if the charge is Blocking or non-Blocking. If the Buyer rejects a Blocking Charge, the Seller will cancel that Product Order Item and any related Product  Order Items. If the Buyer
        rejects a non-blocking Charge, the Seller may proceed with fulfillment of the Product Order Item.
      properties:
        cancelProductOrder:
          $ref: '#/components/schemas/OrderMEFCancelProductOrderRef'
        chargeItem:
          items:
            $ref: '#/components/schemas/OrderMEFChargeItem'
          type: array
        creationDate:
          description: Date that the Charge was created by the Seller.
          format: date-time
          type: string
        id:
          description: A unique identifier of the Charge
          type: string
        productOrderItem:
          $ref: '#/components/schemas/OrderMEFProductOrderItemRef'
        responseDueDate:
          description: The date that the Buyer must respond to the Seller's Charge. If there is no response received by the Due Date the Seller will treat all charges as declined.
          format: date-time
          type: string
        state:
          $ref: '#/components/schemas/OrderMEFChargeStateType'
      required:
        - chargeItem
        - id
        - productOrderItem
        - responseDueDate
        - state
      type: object
    OrderMEFChargeActivityType:
      description: |
        Possible values for the state of the Charge Activity Type
      enum:
        - new
        - change
      type: string
    OrderMEFChargeItem:
      description: A single component part of the Charge
      properties:
        acceptanceIndicator:
          $ref: '#/components/schemas/OrderMEFAcceptedRejectedType'
        activityType:
          $ref: '#/components/schemas/OrderMEFChargeActivityType'
        blocking:
          description: Indicates if rejecting the charge will cause the Seller to cancel the Product Order Item, or close the Cancel Product Order or Modify Product Order Item Completion Date without action.
          type: boolean
        chargeType:
          $ref: '#/components/schemas/OrderMEFPriceType'
        description:
          description: A description of the Charge
          type: string
        id:
          description: An identifier that is unique among Charge
          type: string
        price:
          $ref: '#/components/schemas/OrderPrice'
        recurringChargePeriod:
          $ref: '#/components/schemas/OrderMEFChargePeriod'
        state:
          $ref: '#/components/schemas/OrderMEFChargeItemStateType'
        unitOfMeasure:
          description: Unit of Measure if price depending on it is usage based (Gb, SMS volume, etc..)
          type: string
      required:
        - id
      type: object
    OrderMEFChargeItemStateType:
      description: |
        Possible values for the state of the Charge Item
      enum:
        - awaitingResponse
        - acceptedByBuyer
        - declinedByBuyer
        - withdrawnBySeller
      type: string
    OrderMEFChargeItem_Update:
      description: A type used to perform Buyer's response to a Charge Item - to accept or reject it.
      properties:
        acceptanceIndicator:
          $ref: '#/components/schemas/OrderMEFAcceptedRejectedType'
        id:
          description: An identifier that is unique among Charge
          type: string
      required:
        - acceptanceIndicator
        - id
      type: object
    OrderMEFChargePeriod:
      description: Used for a recurring charge to indicate period.
      enum:
        - hour
        - day
        - week
        - month
        - year
      type: string
    OrderMEFChargeRef:
      description: a reference to a Charge instance
      properties:
        href:
          description: Hyperlink to access the Charge
          type: string
        id:
          description: A unique identifier of the Charge
          type: string
      required:
        - id
      type: object
    OrderMEFChargeStateType:
      description: |
        Possible values for the state of the Charge
      enum:
        - awaitingResponse
        - completed
        - withdrawnBySeller
      type: string
    OrderMEFCharge_Update:
      description: A subset of MEFCharge
      properties:
        chargeItem:
          items:
            $ref: '#/components/schemas/OrderMEFChargeItem_Update'
          minItems: 1
          type: array
      required:
        - chargeItem
      type: object
    OrderMEFEndOfTermAction:
      description: The action the Seller will take once the term expires.
      enum:
        - roll
        - autoDisconnect
        - autoRenew
      type: string
    OrderMEFGeographicPoint:
      allOf:
        - $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
        - properties:
            spatialRef:
              description: The spatial reference system used to determine the coordinates (e.g. "WGS84"). The system used and the value of this field are to be agreed during the onboarding process.
              type: string
            x:
              description: The latitude expressed in the format specified by the `spacialRef`
              type: string
            'y':
              description: The longitude expressed in the format specified by the `spacialRef`
              type: string
            z:
              description: The elevation expressed in the format specified by the `spacialRef`
              type: string
          required:
            - spatialRef
            - x
            - 'y'
          type: object
      description: |
        A MEFGeographicPoint defines a geographic point through coordinates. Reference: MEF 79 (Sn 8.9.5)
    OrderMEFItemTerm:
      description: The term of the Item
      properties:
        description:
          description: Description of the term
          type: string
        duration:
          $ref: '#/components/schemas/OrderDuration'
        endOfTermAction:
          $ref: '#/components/schemas/OrderMEFEndOfTermAction'
        name:
          description: Name of the term
          type: string
        rollInterval:
          $ref: '#/components/schemas/OrderDuration'
      type: object
    OrderMEFOrderItemCoordinatedAction:
      properties:
        coordinatedActionDelay:
          $ref: '#/components/schemas/OrderDuration'
        coordinationDependency:
          $ref: '#/components/schemas/OrderMEFOrderItemCoordinationDependencyType'
        itemId:
          description: Specifies Product Order Item that is to be coordinated with this Product Order Item.
          type: string
      required:
        - coordinatedActionDelay
        - coordinationDependency
        - itemId
      type: object
    OrderMEFOrderItemCoordinationDependencyType:
      description: |
        Possible values of the Order Item Coordination Dependency

        | OrderItemCoordinationDependencyType | MEF 57.2         |
        | ----------------------------------- | ---------------- |
        | startToStart                        | START_TO_START   |
        | startToFinish                       | START_TO_FINISH  |
        | finishToStart                       | FINISH_TO_START  |
        | finishToFinish                      | FINISH_TO_FINISH |
      enum:
        - startToStart
        - startToFinish
        - finishToStart
        - finishToFinish
      type: string
    OrderMEFPriceType:
      description: Indicates if the price is for recurring or non-recurring charges.
      enum:
        - recurring
        - nonRecurring
        - usageBased
      type: string
    OrderMEFProductActionType:
      description: |
        Action to be performed on the Product that the Order Item refers to.

        | ProductActionType | MEF 57.2   |
        | ----------------- | ---------- |
        | add               | INSTALL    |
        | modify            | CHANGE     |
        | delete            | DISCONNECT |
      enum:
        - add
        - modify
        - delete
      type: string
    OrderMEFProductConfiguration:
      description: MEFProductConfiguration is used as an extension point for MEF specific product/service payload.  The `@type` attribute is used as a discriminator
      discriminator:
        mapping:
          urn:mef:lso:spec:sonata:access-eline:v2.0.0:order: '#/components/schemas/OrderAccessEline'
          urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:order: '#/components/schemas/OrderCarrierEthernetOperatorUni'
        propertyName: '@type'
      properties:
        '@type':
          description: The name of the type, defined in the JSON schema specified  above, for the product that is the subject of the Product Order Request. The named type must be a subclass of MEFProductConfiguration.
          enum:
            - urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:order
            - urn:mef:lso:spec:sonata:access-eline:v2.0.0:order
          type: string
      required:
        - '@type'
      type: object
    OrderMEFProductOrderItemRef:
      description: It's a ProductOrder item
      properties:
        productOrderId:
          description: Unique identifier of a ProductOrder.
          type: string
        productOrderItemId:
          description: Id of an Item within the Product Order
          type: string
      required:
        - productOrderId
        - productOrderItemId
      type: object
    OrderMEFProductOrderItemStateChange:
      description: Holds the State notification reasons and associated date the State changed, populated by the server
      properties:
        changeDate:
          description: The date on when the state was reached
          format: date-time
          type: string
        changeReason:
          description: Additional comment related to state change.
          type: string
        state:
          $ref: '#/components/schemas/OrderMEFProductOrderItemStateType'
      type: object
    OrderMEFProductOrderItemStateType:
      description: |
        Possible values for the state of the Order Item

        The following mapping has been used between `MEFProductOrderItemStateType` and MEF
        57.2:

        | MEFProductOrderItemStateType | MEF 57.2                                |
        | ---------------------------- | --------------------------------------- |
        | acknowledged                 | ACKNOWLEDGED                            |
        | cancelled                    | CANCELLED                               |
        | completed                    | COMPLETED                               |
        | failed                       | FAILED                                  |
        | held                         | HELD                                    |
        | inProgress                   | IN_PROGRESS                             |
        | pending                      | PENDING                                 |
        | rejected                     | REJECTED                                |
        | rejected.validated           | VALIDATED                               |
        | rejected.unassessed          | UNASSESSED                              |
      enum:
        - acknowledged
        - cancelled
        - completed
        - failed
        - held
        - inProgress
        - pending
        - rejected
        - rejected.validated
        - rejected.unassessed
      type: string
    OrderMEFProductOrderItem_Common:
      description: |
        An identified part of the order. A product order is decomposed into one or more order items.
      properties:
        action:
          $ref: '#/components/schemas/OrderMEFProductActionType'
        billingAccount:
          $ref: '#/components/schemas/OrderMEFBillingAccount'
        coordinatedAction:
          description: The interval after the completion of one or more related Product Order Items that this Product Order Item can be started or completed
          items:
            $ref: '#/components/schemas/OrderMEFOrderItemCoordinatedAction'
          type: array
        endCustomerName:
          description: The name of the End Customer, either a business name or an individual name depending on the end customer.
          type: string
        expediteIndicator:
          default: false
          description: Indicates that expedited treatment is requested. Set by the Buyer. If this is set to TRUE, the Buyer sets the Requested Completion Date to the expedited date. See MEF 57.2 section 7.2 for a description of the interaction between the Buyer and the Seller.
          type: boolean
        id:
          description: |
            Identifier of the item (generally it is a sequence number 01, 02, 03, ...)  MEF: A Buyer provided identifier to identify Product Order Items and to be able to relate them to one another. This is set by the Buyer and is unique within the Product Order. Examples of Reference Identifier could be 1, 2, 3 or A, B, C. The Reference Identifier can be reused in multiple Product Orders to identify a Product Order Item within that Product Order.
          type: string
        note:
          items:
            $ref: '#/components/schemas/OrderNote'
          type: array
        product:
          $ref: '#/components/schemas/OrderMEFProductRefOrValueOrder'
        productOfferingQualificationItem:
          $ref: '#/components/schemas/OrderProductOfferingQualificationItemRef'
        productOrderItemRelationship:
          description: The relationship between Product Order Items in the Product Order.
          items:
            $ref: '#/components/schemas/OrderOrderItemRelationship'
          type: array
        quoteItem:
          $ref: '#/components/schemas/OrderMEFQuoteItemRef'
        relatedBuyerPON:
          description: Identifies the Buyer Purchase Product Order Number that is related to this Product Order.
          type: string
        relatedContactInformation:
          description: |-
            Contact information of an individual or organization playing a role for this Order Item.
            The rule for mapping a represented attribute
            value to a `role` is to use the _lowerCamelCase_ pattern e.g.
            - Buyer Product Order Item Contact: `role=buyerProductOrderItemContact`
            - Buyer Implementation Contact: `role=buyerImplementationContact`
            - Buyer Technical Contact : `role=buyerTechnicalContact`
          items:
            $ref: '#/components/schemas/OrderRelatedContactInformation'
          type: array
        requestedCompletionDate:
          description: Identifies the Buyer's desired due date (requested delivery date)
          format: date-time
          type: string
        requestedItemTerm:
          $ref: '#/components/schemas/OrderMEFItemTerm'
        tspRestorationPriority:
          description: |
            Within the United States, indicates the provisioning and restoration priority as defined under the TSP Service Vendor Handbook. The valid values are defined in ATIS OBF document: ATIS-0404001.
          type: string
      required:
        - action
        - id
      type: object
    OrderMEFProductOrderItem_Create:
      allOf:
        - $ref: '#/components/schemas/OrderMEFProductOrderItem_Common'
        - description: |
            An identified part of the order. A product order is decomposed into one or more order items.
          type: object
    OrderMEFProductOrderItem_Update:
      description: |
        An updatable representation of the Product Order Item.
      properties:
        endCustomerName:
          description: The name of the End Customer, either a business name or an individual name depending on the end customer.
          type: string
        id:
          description: |
            Identifier of the Item. This is to address the Item to be updated within the Product Order. The id itself cannot be updated.
          type: string
        note:
          items:
            $ref: '#/components/schemas/OrderNote'
          type: array
        relatedBuyerPON:
          description: Identifies the Buyer Purchase Product Order Number that is related to this Product Order.
          type: string
        relatedContactInformation:
          description: |-
            Contact information of an individual or organization playing a role for this Order Item.
            The rule for mapping a represented attribute
            value to a `role` is to use the _lowerCamelCase_ pattern e.g.
            - Buyer Product Order Item Contact: `role=buyerProductOrderItemContact`
            - Buyer Implementation Contact: `role=buyerImplementationContact`
            - Buyer Technical Contact : `role=buyerTechnicalContact`
          items:
            $ref: '#/components/schemas/OrderRelatedContactInformation'
          type: array
      required:
        - id
      type: object
    OrderMEFProductOrderRef:
      description: Holds the MEF Product Order reference
      properties:
        productOrderId:
          description: Unique (within the ordering domain) identifier for the order that is generated by the seller when the order is initially accepted.
          type: string
      type: object
    OrderMEFProductOrderStateChange:
      description: Holds the State notification reasons and associated date the State changed, populated by the server
      properties:
        changeDate:
          description: The date on when the state was reached
          format: date-time
          type: string
        changeReason:
          description: Additional comment related to state change
          type: string
        state:
          $ref: '#/components/schemas/OrderMEFProductOrderStateType'
      type: object
    OrderMEFProductOrderStateType:
      description: |
        Possible values for the state of the order
        The following mapping has been used between `MEFProductOrderStateType` and MEF
        57.2:

        | MEFProductOrderStateType      | MEF 57.2                                |
        | ----------------------------- | --------------------------------------- |
        | acknowledged                  | ACKNOWLEDGED                            |
        | assessingCancellation         | ASSESSING_CANCELLATION                  |
        | cancelled                     | CANCELLED                               |
        | completed                     | COMPLETE                                |
        | failed                        | FAILED                                  |
        | held.assessingCharge          | ASSESSING_CHARGE                        |
        | inProgress                    | IN_PROGRESS                             |
        | partial                       | PARTIAL                                 |
        | pending.assessingModification | ASSESSING_MODIFICATION                  |
        | pendingCancellation           | CANCELLING                              |
        | rejected                      | REJECTED                                |
      enum:
        - acknowledged
        - assessingCancellation
        - cancelled
        - completed
        - failed
        - held.assessingCharge
        - inProgress
        - partial
        - pending.assessingModification
        - pendingCancellation
        - rejected
      type: string
    OrderMEFProductRefOrValueOrder:
      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` MUST be provided to point which product instance to update and to what state. In `delete` only the `id` must be provided.
      properties:
        id:
          description: The unique identifier of an in-service Product that is the ordering subject. This field MUST be populated if an item `action` is either `modify` or `delete`. This field MUST NOT be populated if an item `action` is `add`.
          type: string
        place:
          description: The relationships between this Product Order Item and one or more Places as defined in the Product Specification.
          items:
            $ref: '#/components/schemas/OrderRelatedPlaceRefOrValue'
          type: array
        productConfiguration:
          $ref: '#/components/schemas/OrderMEFProductConfiguration'
        productOffering:
          $ref: '#/components/schemas/OrderProductOfferingRef'
        productRelationship:
          description: A list of references to existing products that are related to the orderedProduct.
          items:
            $ref: '#/components/schemas/OrderProductRelationship'
          type: array
      type: object
    OrderMEFQuoteItemRef:
      description: It's a Quote item that has been executed previously.
      properties:
        id:
          description: Id of an Item of a Quote
          type: string
        quoteId:
          description: Unique identifier of a Quote.
          type: string
      required:
        - id
        - quoteId
      type: object
    OrderMEFSubUnit:
      description: Allows for sub unit identification
      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
      type: object
    OrderMoney:
      description: A base / value business entity used to represent money
      properties:
        unit:
          description: Currency (ISO4217 norm uses 3 letters to define the currency)
          type: string
        value:
          description: A positive floating point number
          format: float
          type: number
      type: object
    OrderNote:
      description: Extra information about a given entity. Only useful in processes involving human interaction. Not applicable for the automated process.
      properties:
        author:
          description: Author of the note
          type: string
        date:
          description: Date the Note was created
          format: date-time
          type: string
        id:
          description: Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)
          type: string
        source:
          $ref: '#/components/schemas/OrderMEFBuyerSellerType'
        text:
          description: Text of the note
          type: string
      required:
        - author
        - date
        - id
        - source
        - text
      type: object
    OrderOperatorUniCommon:
      description: This class contains all of the Operator UNI Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Operator UNI Service Attributes. This class is used to compose the OperatorUNI class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        listofPhysicalLinks:
          description: >-
            MEF 26.2 sec. 14.2, 14.3 - This Service Attribute combines several of the MEF 26.2 Objects into a single n-tuple that is consistent with the way this information is described in MEF 10.4. The value of the Operator UNI List of Physical Links Service Attribute is a list of 6-tuples of the form ⟨id, physicalLink, synchronousEthernet, precisionTiming, uniConnectorType,uniConnectorGender⟩, with one list item for each physical link. The value of id is an identifier for the physical link. The
            value of physicalLink is the specific Ethernet physical layer type. synchronousEthernet indicates if synchronous Ethernet is used on the physical link and has the value Enabled or Disabled. The value of precisionTiming indicates if the Precision Time Protocol is used on the physical link and has the value Enabled or Disabled. The values of uniConnectorType and uniConnectorGender specify the type of connector used. Note that the id and the physicalLink come from the
            CarrierEthernetPhysicalLink class.
          items:
            $ref: '#/components/schemas/OrderUniPhysicalLink'
          minItems: 0
          type: array
          uniqueItems: true
      type: object
    OrderOrderItemRelationship:
      properties:
        id:
          description: Id of the related Order Item (must be in the same Order).
          type: string
        relationshipType:
          description: Specifies the nature of the relationship to the related Product Order Items. A string that is one of the relationship types specified in the Product Specification.
          type: string
      required:
        - id
        - relationshipType
      type: object
    OrderOrderedPair:
      description: Performance Metrics (except for Group Availability) are specified for a list of Ordered End Point Pairs. In other words a Frame Delay objective (for example) is specified from ⟨A to B⟩ and from ⟨C to D⟩. This class defines one Ordered End Point Pair.
      properties:
        fromCarrierEthernetServiceEndPoint:
          description: This is the EVC End Point ID for and EVC End Point in the service or OVC End Point ID for an OVC End Point in the service.
          type: string
        toCarrierEthernetServiceEndPoint:
          description: This is the EVC End Point ID for and EVC End Point in the service or OVC End Point ID for an OVC End Point in the service.
          type: string
      required:
        - fromCarrierEthernetServiceEndPoint
        - toCarrierEthernetServiceEndPoint
      type: object
    OrderPhysicalLink:
      description: An Ethernet physical layer
      enum:
        - 1BASE5
        - 2BASE_TL
        - 10BASE2
        - 10BASE5
        - 10BASE_F
        - 10BASE_FB
        - 10BASE_FL
        - 10BASE_FP
        - 10BASE_T
        - 10BASE_T1L
        - 10BASE_T1S
        - 10BASE_TE
        - 10BROAD36
        - 10PASS_TS
        - 100BASE_BX10
        - 100BASE_FX
        - 100BASE_LX10
        - 100BASE_T
        - 100BASE_T1
        - 100BASE_T2
        - 100BASE_T4
        - 100BASE_TX
        - 100BASE_X
        - 1000BASE_BX10
        - 1000BASE_CX
        - 1000BASE_KX
        - 1000BASE_LX
        - 1000BASE_LX10
        - 1000BASE_PX10
        - 1000BASE_PX20
        - 1000BASE_RHA
        - 1000BASE_RHB
        - 1000BASE_RHC
        - 1000BASE_SX
        - 1000BASE_T
        - 1000BASE_T1
        - 1000BASE_X
        - 2_5GBASE_KX
        - 2_5GBASE_T
        - 2_5GBASE_T1
        - 5GBASE_KR
        - 5GBASE_T
        - 5GBASE_T1
        - 10GBASE_CX4
        - 10GBASE_E
        - 10GBASE_ER
        - 10GBASE_EW
        - 10GBASE_KR
        - 10GBASE_KX4
        - 10GBASE_L
        - 10GBASE_LR
        - 10GBASE_LRM
        - 10GBASE_LW
        - 10GBASE_LX4
        - 10GBASE_R
        - 10GBASE_S
        - 10GBASE_SR
        - 10GBASE_SW
        - 10GBASE_T
        - 10GBASE_T1
        - 10GBASE_W
        - 10GBASE_X
        - 25GBASE_CR
        - 25GBASE_CR_S
        - 25GBASE_ER
        - 25GBASE_KR
        - 25GBASE_KR_S
        - 25GBASE_LR
        - 25GBASE_SR
        - 25GBASE_T
        - 40GBASE_CR4
        - 40GBASE_ER4
        - 40GBASE_FR
        - 40GBASE_KR4
        - 40GBASE_LR4
        - 40GBASE_R
        - 40GBASE_SR4
        - 40GBASE_T
        - 50GBASE_CR
        - 50GBASE_ER
        - 50GBASE_FR
        - 50GBASE_KR
        - 50GBASE_LR
        - 50GBASE_SR
        - 100GBASE_CR10
        - 100GBASE_CR2
        - 100GBASE_CR4
        - 100GBASE_DR
        - 100GBASE_ER4
        - 100GBASE_KP4
        - 100GBASE_KR2
        - 100GBASE_KR4
        - 100GBASE_LR4
        - 100GBASE_R
        - 100GBASE_SR10
        - 100GBASE_SR2
        - 100GBASE_SR4
        - 200GBASE_CR4
        - 200GBASE_DR4
        - 200GBASE_ER4
        - 200GBASE_FR4
        - 200GBASE_KR4
        - 200GBASE_LR4
        - 200GBASE_SR4
        - 400GBASE_DR4
        - 400GBASE_ER8
        - 400GBASE_FR8
        - 400GBASE_LR8
        - 400GBASE_SR16
        - 400GBASE_SR4_2
        - 400GBASE_SR8
        - OTHER
      type: string
    OrderPrice:
      description: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.
      properties:
        dutyFreeAmount:
          $ref: '#/components/schemas/OrderMoney'
        taxIncludedAmount:
          $ref: '#/components/schemas/OrderMoney'
        taxRate:
          description: 'Price Tax Rate. Unit: [%]. E.g. value 16 stand for 16% tax.'
          format: float
          type: number
      type: object
    OrderProductOfferingQualificationItemRef:
      description: It's a productOfferingQualification item that has been executed previously.
      properties:
        alternateProductOfferingProposalId:
          description: A unique identifier for this Alternate Product Proposal assigned by the Seller.
          type: string
        id:
          description: Id of an item of a product offering qualification
          type: string
        productOfferingQualificationId:
          description: Unique identifier of a related entity.
          type: string
      required:
        - id
        - productOfferingQualificationId
      type: object
    OrderProductOfferingRef:
      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.
      properties:
        id:
          description: id of a Product Offering. It is assigned by the Seller. The Buyer and the Seller exchange information about offerings' ids during the onboarding process.
          type: string
      required:
        - id
      type: object
    OrderProductOrder:
      allOf:
        - $ref: '#/components/schemas/OrderProductOrder_Common'
        - description: A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa
          properties:
            cancellationDate:
              description: Identifies the date the Seller cancelled the Order. Set by Seller when the Order is moved to the cancelled state.
              format: date-time
              type: string
            cancellationReason:
              description: An optional free-form text field for the Seller to provide additional information regarding the reason for the cancellation.
              type: string
            completionDate:
              description: Identifies the date that all Product Order Items within the Order have reached a terminal state. No further action is permitted on the Product Order.
              format: date-time
              type: string
            expectedCompletionDate:
              description: |
                Expected delivery date amended by the provider. MEF: Identifies the date
                the Seller expects to complete the Product Order.
              format: date-time
              type: string
            id:
              description: Unique identifier for the Product Order that is generated by the Seller when the Product Order is initially accepted via an API.
              type: string
            orderDate:
              description: Date when the order was created in the Seller's system
              format: date-time
              type: string
            orderVersion:
              description: The version of the Product Order, set by the Seller
              type: string
            productOrderItem:
              items:
                $ref: '#/components/schemas/OrderProductOrderItem'
              minItems: 1
              type: array
            state:
              $ref: '#/components/schemas/OrderMEFProductOrderStateType'
            stateChange:
              description: State change for the Product Order
              items:
                $ref: '#/components/schemas/OrderMEFProductOrderStateChange'
              type: array
          required:
            - id
            - orderDate
            - productOrderItem
            - state
          type: object
    OrderProductOrderItem:
      allOf:
        - $ref: '#/components/schemas/OrderMEFProductOrderItem_Common'
        - description: |
            An identified part of the order. A product order is decomposed into one or more order items.
          properties:
            charge:
              description: The Charges associated to this Product Order Item
              items:
                $ref: '#/components/schemas/OrderMEFChargeRef'
              type: array
            completionDate:
              description: Identifies the date the Seller completed the Product Order Item.
              format: date-time
              type: string
            expectedCompletionDate:
              description: |
                Expected delivery date amended by the provider. MEF: Identifies the date the Seller expects to complete the Product Order Item.
              format: date-time
              type: string
            expediteAcceptedIndicator:
              default: false
              description: Indicates if the Seller has accepted the Buyer's Expedite request. See MEF 57.2 section 7.2 for a description of the interaction between the Buyer and Seller. If this is set to true, the Seller provides the costs to expedite the Product Order in the charge attribute
              type: boolean
            itemTerm:
              items:
                $ref: '#/components/schemas/OrderMEFItemTerm'
              maxItems: 1
              type: array
            sellerItemIdentifier:
              description: A Seller provided identifier to identify the Product Order Items within a Product Order. This is only used when required for discussion between the Buyer and Seller.
              type: string
            state:
              $ref: '#/components/schemas/OrderMEFProductOrderItemStateType'
            stateChange:
              description: State change for the Product Order Item
              items:
                $ref: '#/components/schemas/OrderMEFProductOrderItemStateChange'
              type: array
            terminationError:
              description: When the Seller cannot process the request, the Seller returns a text-based list of reasons here.
              items:
                $ref: '#/components/schemas/OrderTerminationError'
              type: array
          type: object
    OrderProductOrder_Common:
      description: A Product Order is a type of order which  can  be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa,
      properties:
        description:
          description: Description of the product order. It is a free text for Buyer purpose. The Seller is not obliged to read it.
          type: string
        externalId:
          description: An identifier for this order within the Buyer's enterprise.
          type: string
        note:
          items:
            $ref: '#/components/schemas/OrderNote'
          type: array
        projectId:
          description: An identifier that is used to group Orders that is important to the Buyer. A ProjectId can be used to relate multiple Orders together.
          type: string
        relatedContactInformation:
          description: |-
            Contact information of an individual or organization playing a role in this context.
            (e.g. Product Order Contact: role=productOrderContact;
            Seller Contact: role=sellerContact)
            Providing the Product Order Contact in the request is mandatory.
          items:
            $ref: '#/components/schemas/OrderRelatedContactInformation'
          minItems: 1
          type: array
        requestedCompletionDate:
          description: This is requested date to get this Product Order completed
          format: date-time
          type: string
      required:
        - relatedContactInformation
      type: object
    OrderProductOrder_Create:
      allOf:
        - $ref: '#/components/schemas/OrderProductOrder_Common'
        - description: |
            A Product Order is a type of order which  can  be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, Skipped properties: id,href,completionDate,orderDate,state,stateChange,cancellationDate,cancellationReason
          properties:
            productOrderItem:
              description: |
                Items contained in the Product Order.
              items:
                $ref: '#/components/schemas/OrderMEFProductOrderItem_Create'
              minItems: 1
              type: array
          required:
            - productOrderItem
          type: object
    OrderProductOrder_Find:
      description: Structure to define GET without id response. A list of productOrder matching request criteria. Provides Product order summary view.
      properties:
        cancellationDate:
          description: Identifies the date the Seller cancelled the Order. Set by Seller when the Order is moved to the cancelled state.
          format: date-time
          type: string
        completionDate:
          description: Identifies the date that all Product Order Items within the Order have reached a terminal state. No further action is permitted on the Product Order after this notification.
          format: date-time
          type: string
        externalId:
          description: |-
            ID given by the consumer and only understandable by him (to facilitate his searches afterward).
            MEF: Buyer Purchase Order Number
          type: string
        id:
          description: Unique identifier for the order that is generated by the Seller when the order is initially accepted via an API.
          type: string
        orderDate:
          description: Date when the order was created
          format: date-time
          type: string
        orderVersion:
          description: The version of the Product Order, assigned by the Seller
          type: string
        projectId:
          description: An identifier that is used to group Orders that is important to the Buyer. A ProjectId can be used to relate multiple Orders together.
          type: string
        requestedCompletionDate:
          description: This is requested date to get this Product Order completed
          format: date-time
          type: string
        state:
          $ref: '#/components/schemas/OrderMEFProductOrderStateType'
      required:
        - id
        - orderDate
        - orderVersion
        - state
      type: object
    OrderProductOrder_Update:
      description: A request initiated by the Buyer to update Product Order and/or Product
      properties:
        description:
          description: Description of the product order. It is a free text for Buyer purpose. The Seller is not obliged to read it.
          type: string
        externalId:
          description: An identifier for this order within the Buyer's enterprise.
          type: string
        note:
          items:
            $ref: '#/components/schemas/OrderNote'
          type: array
        orderVersion:
          description: The version of the Product Order. The `orderVersion` attribute cannot be updated. It is used only to identify the version of the Product Order that the Buyer wants to update. If there is a mismatch with the Seller's system, the Seller will reject the request with an error response.
          type: string
        productOrderItem:
          description: |
            Order Item attributes that may be updated
          items:
            $ref: '#/components/schemas/OrderMEFProductOrderItem_Update'
          type: array
        projectId:
          description: An identifier that is used to group Orders that is important to the Buyer. A ProjectId can be used to relate multiple Orders together.
          type: string
        relatedContactInformation:
          description: |
            Contact information of an individual or organization playing a role in this context. The Buyer is allowed to update the Product Order Contact: role=productOrderContact;
          items:
            $ref: '#/components/schemas/OrderRelatedContactInformation'
          minItems: 1
          type: array
      required:
        - orderVersion
      type: object
    OrderProductRelationship:
      description: A relationship to an existing Product. The requirements for usage for given Product are described in the Product Specification.
      properties:
        id:
          description: unique identifier
          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
      type: object
    OrderRelatedContactInformation:
      description: |
        Contact information of an individual or organization playing a role for
        this Order Item. The rule for mapping a represented attribute value to a
        `role` is to use the _lowerCamelCase_ pattern e.g. 
        - Buyer Order Item Contact: `role=buyerOrderItemContact` 
        - Buyer Implementation Contact: `role=buyerImplementationContact` 
        - Buyer Technical Contact: `role=buyerTechnicalContact`
      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/OrderFieldedAddress'
        role:
          description: A role the party plays in a given context.
          type: string
      required:
        - emailAddress
        - name
        - number
        - role
      type: object
    OrderRelatedPlaceRefOrValue:
      description: Place defines the places where the product order must be done.
      discriminator:
        mapping:
          FieldedAddress: '#/components/schemas/OrderFieldedAddress'
          GeographicAddressRef: '#/components/schemas/OrderGeographicAddressRef'
          GeographicAddressRefWithSite: '#/components/schemas/OrderGeographicAddressRefWithSite'
          GeographicSiteRef: '#/components/schemas/OrderGeographicSiteRef'
        propertyName: '@type'
      properties:
        '@type':
          description: |
            This field is used as a discriminator and is used between different place representations. This type might discriminate for additional related place as defined in '@schemaLocation'.
          enum:
            - FieldedAddress
            - GeographicAddressRef
            - GeographicAddressRefWithSite
            - GeographicSiteRef
          type: string
        role:
          description: Role of this place
          type: string
      required:
        - '@type'
        - role
      type: object
    OrderTerminationError:
      description: This indicates an error that caused an Item to be terminated. The code and propertyPath should be used like in Error422.
      properties:
        code:
          $ref: '#/components/schemas/OrderError422Code'
        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
      type: object
    OrderTimeUnit:
      description: |
        Represents a unit of time.
        Reference: MEF 57.2 (Sn 9.22)
      enum:
        - calendarMonths
        - calendarDays
        - calendarHours
        - calendarMinutes
        - businessDays
        - businessHours
        - businessMinutes
      type: string
    OrderUniConnectorType:
      description: This indicates the type of connector that is presented to the Subscriber.
      enum:
        - SC
        - LC
        - RJ45
        - FC
        - D4
        - OTHER
      type: string
    OrderUniPhysicalLink:
      allOf:
        - $ref: '#/components/schemas/OrderCarrierEthernetPhysicalLink'
        - $ref: '#/components/schemas/OrderUniSpecifcAttributes'
      description: This class describes the Physical Link attributes at a UNI. It is a 4-tuple {carrierEthernet, frequency sync enable, PTP enable, connector}. carrierEthernet is a 2-tuple containing an id and physical link type.
    OrderUniSpecifcAttributes:
      properties:
        uniConnectorType:
          $ref: '#/components/schemas/OrderUniConnectorType'
          description: This indicates the type of connector that is presented to the Subscriber.
      required:
        - uniConnectorType
      type: object
    POQAccessEline:
      allOf:
        - $ref: '#/components/schemas/POQMEFProductConfiguration'
        - properties:
            enniEp:
              $ref: '#/components/schemas/POQAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the ENNI
            uniEp:
              $ref: '#/components/schemas/POQAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the UNI
          type: object
      x-discriminator-value: urn:mef:lso:spec:sonata:access-eline:v2.0.0:poq
    POQAccessElineOvcEndPoint:
      allOf:
        - $ref: '#/components/schemas/POQAccessElineOvcEpCommon'
      description: An OVC End Point is a logical entity at a given External Interface that is associated with a distinct set of frames passing over that External Interface. The OVC End Point schema is included in the definitions section of the OVC schema..
      type: object
    POQAccessElineOvcEpCommon:
      description: This class contains all of the Access E-Line OVC End Point Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Access Eline OVC End Point Service Attributes. This class is used to compose the AccessElineOvcEndPoint class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        ingressBandwidthProfilePerClassOfServiceName:
          description: MEF 26.2 sec. 16.12 - For each CoS Name listed, Bandwidth Profile Flow parameters for all ingress Service Frames mapped to that CoS Name at OVC End Point. This bandwidth profile flow is used to police at Ingress each CoS in an OVC individually. List of 2-tuples {cos, bwpf}.
          items:
            $ref: '#/components/schemas/POQBandwidthProfilePerClassOfServiceName'
          minItems: 0
          type: array
          uniqueItems: true
      type: object
    POQAlternateProductOfferingProposal:
      description: |
        If in the request the Buyer has requested to have alternate product proposals, then this class represents a single proposal. All properties are assigned by the Seller.
        Reference: MEF 79 (Sn 8.4.3.2)
      properties:
        alternateProduct:
          $ref: '#/components/schemas/POQMEFAlternateProduct'
        id:
          description: |
            Identifier of the Product Offering Qualification alternate proposal. Assigned by the Seller.
          type: string
        installationInterval:
          $ref: '#/components/schemas/POQDuration'
      required:
        - alternateProduct
        - id
        - installationInterval
      type: object
    POQBandwidthProfilePerClassOfServiceName:
      description: >-
        This Class is used for both the Ingress Bandwidth Profile per Class of Service Name (MEF 26.2 §16.12) and Egress Bandwidth Profile per Egress Equivalence Class Name (MEF 26.2 §16.13) . The value is a list of pairs of the form〈x, y〉 where x is a Class of Service Name that is in the value of the OVC List of Class of Service Names Service Attribute (Section 12.12) for the OVC that associates the OVC End Point for Ingress and an Egress Equvalence Class Name for Egress. And y, if specified, is a
        reference to a Bandwidth Profile Flow. There is at most one pair in the list for each CoS or EEC Name (Except Discard).
      properties:
        bwpFlow:
          $ref: '#/components/schemas/POQBwpFlow'
        classOfServiceName:
          description: MEF 26.2 sec. 16.12 and 16.13 - For Ingress, this is the Name of the Class of Service that this bandwidth profile flow is applied to. This should be an item from ovc.listOfClassOfServiceNames. For Egress, this is the Egress Equivalence Class (EEC) Name.
          type: string
      required:
        - bwpFlow
        - classOfServiceName
      type: object
    POQBwpFlow:
      description: The Bandwidth Profile Flow, BwpFlow, object class represents the Bandwidth Profile Flow which includes the bandwidth profile parameter CIR, CIRmax, CBS, EIR, EIRmax, EBS, Coupling Flag, Color Mode, Envelope and Rank, and Token Request Offset. The BwpFlow is used with Service Attributes for CarrierEthernetOperatorUni, CarrierEthernetSubscriberUni, CarrierEthernetVuni,, and ENNI as well as OVC and EVC End Points. Reference MEF 10.4 Section 12 and MEF 26.2 Section 17.
      properties:
        cir:
          $ref: '#/components/schemas/POQInformationRate'
      required:
        - cir
      type: object
    POQCarrierEthernetOperatorUni:
      allOf:
        - $ref: '#/components/schemas/POQMEFProductConfiguration'
        - $ref: '#/components/schemas/POQOperatorUniCommon'
      x-discriminator-value: urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:poq
    POQCarrierEthernetPhysicalLink:
      description: A 2-tuple of the form <id, physicalLink>. The value of id is an identifier for the physical link. The value of physicalLink is the specific Ethernet physical layer type.
      properties:
        id:
          description: An identifier for the physical link.
          maxLength: 45
          minLength: 1
          pattern: "[ -\x7F]+"
          type: string
        physicalLink:
          $ref: '#/components/schemas/POQPhysicalLink'
          description: An Ethernet physical layer
      required:
        - id
        - physicalLink
      type: object
    POQDuration:
      description: A Duration in a given unit of time e.g. 3 hours, or 5 days.
      properties:
        amount:
          description: Duration (number of seconds, minutes, hours, etc.)
          type: integer
        units:
          $ref: '#/components/schemas/POQTimeUnit'
      required:
        - amount
        - units
      type: object
    POQError:
      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.
      properties:
        message:
          description: Text that provides mode details and corrective actions related to the error. This can be shown to a client user.
          type: string
        reason:
          description: Text that explains the reason for the error. This can be shown to a client user.
          maxLength: 255
          type: string
        referenceError:
          description: URL pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    POQError400:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              $ref: '#/components/schemas/POQError400Code'
          required:
            - code
          type: object
      description: Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)
    POQError400Code:
      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
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
      type: string
    POQError401:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              $ref: '#/components/schemas/POQError401Code'
          required:
            - code
          type: object
      description: Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)
    POQError401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    POQError403:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              $ref: '#/components/schemas/POQError403Code'
          required:
            - code
          type: object
      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)
    POQError403Code:
      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
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
      type: string
    POQError404:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              description: |-
                The following error code:
                - notFound: A current representation for the target resource not found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description: Resource for the requested path not found. (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    POQError422:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              $ref: '#/components/schemas/POQError422Code'
            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)
    POQError422Code:
      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
    POQError500:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              description: |-
                The following error code:
                - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request.
              enum:
                - internalError
              type: string
          required:
            - code
          type: object
      description: Internal Server Error. (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    POQError501:
      allOf:
        - $ref: '#/components/schemas/POQError'
        - properties:
            code:
              description: |-
                The following error code::
                - notImplemented: Method not supported by the server
              enum:
                - notImplemented
              type: string
          required:
            - code
          type: object
      description: Not Implemented. (https://tools.ietf.org/html/rfc7231#section-6.6.2)
    POQFieldedAddress:
      allOf:
        - $ref: '#/components/schemas/POQRelatedPlaceRefOrValue'
        - properties:
            city:
              description: The city that the address is in
              type: string
            country:
              description: Country that the address is in
              type: string
            geographicSubAddress:
              $ref: '#/components/schemas/POQGeographicSubAddress'
            locality:
              description: The locality that the address is in
              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) MEF 79 defines it as required however as in certain countries it is not used we make it optional in API.
              type: string
            postcodeExtension:
              description: An extension of a postal code. E.g. the part following the dash in a US urban property address
              type: string
            stateOrProvince:
              description: The State or Province that the address is in
              type: string
            streetName:
              description: Name of the street or other street type
              type: string
            streetNr:
              description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses. MEF 79 defines it as required for the Seller response, however in certain countries it is not used, so it's optional in API.
              type: string
            streetNrLast:
              description: Last number in a range of street numbers allocated to a property
              type: string
            streetNrLastSuffix:
              description: Last street number suffix for a ranged address
              type: string
            streetNrSuffix:
              description: The first street number suffix
              type: string
            streetSuffix:
              description: A modifier denoting a relative direction
              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
          required:
            - city
            - country
            - streetName
          type: object
      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. Reference: MEF 79 (Sn 8.9.2)'
    POQGeographicAddressRef:
      allOf:
        - $ref: '#/components/schemas/POQRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Sonata Geographic Address Management API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Sonata Address Validation API.
    POQGeographicAddressRefWithSite:
      allOf:
        - $ref: '#/components/schemas/POQRelatedPlaceRefOrValue'
        - properties:
            geographicSubAddress:
              $ref: '#/components/schemas/POQGeographicSubAddress'
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Sonata Geographic Address Management API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Sonata Address Validation API.
    POQGeographicSiteRef:
      allOf:
        - $ref: '#/components/schemas/POQRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Site.
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Site resource available through Sonata Service Site API
    POQGeographicSubAddress:
      description: Additional fields used to specify an address, as detailed as possible.
      properties:
        buildingName:
          description: |
            Allows for identification of places that require building name  as part of addressing information
          type: string
        levelNumber:
          description: Used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2
          type: string
        levelType:
          description: Describes level types within a building
          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
        privateStreetNumber:
          description: Private streets numbers internal to a private street
          type: string
        subUnit:
          description: Representation of a MEFSubUnit It is used for describing subunit within a subAddress e.g. BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF.
          items:
            $ref: '#/components/schemas/POQMEFSubUnit'
          type: array
      type: object
    POQInformationRate:
      description: A value and a unit of measure that specifies an Information Rate.
      properties:
        irUnits:
          $ref: '#/components/schemas/POQIrUnits'
          description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
        irValue:
          description: The value in the information rate. For example if the information rate is 70 kbps this element is 70.
          minimum: 0
          type: number
      required:
        - irUnits
        - irValue
      type: object
    POQIrUnits:
      description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
      enum:
        - BPS
        - KBPS
        - MBPS
        - GBPS
        - TBPS
        - PBPS
        - EBPS
        - ZBPS
        - YBPS
      type: string
    POQMEFAlternateProduct:
      description: An alternative Product Offering that the Seller is proposing to the Buyer. 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.
      properties:
        productConfiguration:
          $ref: '#/components/schemas/POQMEFProductConfiguration'
        productOffering:
          $ref: '#/components/schemas/POQProductOfferingRef'
        productSpecification:
          $ref: '#/components/schemas/POQProductSpecificationRef'
      required:
        - productConfiguration
        - productOffering
      type: object
    POQMEFPOQItemStateChange:
      description: Holds the reached state, reasons, and associated date the POQ state changed, populated by the Seller.
      properties:
        changeDate:
          description: The date on when the state was reached
          format: date-time
          type: string
        changeReason:
          description: Additional comment related to state change
          type: string
        state:
          $ref: '#/components/schemas/POQMEFPOQItemTaskStateType'
      required:
        - changeDate
        - state
      type: object
    POQMEFPOQItemTaskStateType:
      description: |
        POQ item states - The specific states are managed by the Seller based on
        its processing and/or based on the Buyer's action. The following mapping
        has been used between `MEFPOQItemTaskStateType` and MEF 79 (Sn 9.2):

        | MEFPOQItemTaskStateType | MEF79                             | Description                                                                                                                  |
        | ----------------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
        | acknowledged            | N/A                               | A request has been received by the Seller and has passed basic validation.                                                   |
        | done.ready              | READY                             | POQ Item response is complete. This state does not imply that Seller is able to deliver requested item                       |
        | done.abandoned          | ABANDONED                         | Applied to a POQ Item in case the final state is not reached and any other POQ Item moved to the final state other than done |
        | terminatedWithError     | INSUFFICIENT_INFORMATION_PROVIDED | The information provided by the Buyer is insufficient for the Seller to provide POQ Item response                            |
        | inProgress              | IN_PROGRESS                       | The Seller is working on a POQ item response and the answer is not ready yet                                                 |
      enum:
        - acknowledged
        - terminatedWithError
        - inProgress
        - done.abandoned
        - done.ready
      type: string
    POQMEFPOQStateChange:
      description: Holds the reached state, reasons, and associated date the POQ state changed, populated by the Seller.
      properties:
        changeDate:
          description: The date on when the state was reached
          format: date-time
          type: string
        changeReason:
          description: Additional comment related to state change
          type: string
        state:
          $ref: '#/components/schemas/POQMEFPOQTaskStateType'
      required:
        - changeDate
        - state
      type: object
    POQMEFPOQTaskStateType:
      description: |
        These values represent the valid states through which the product
        offering qualification can transition.

        The following mapping has been used between `MEFPOQTaskStateType` and
        MEF 79 (Sn 9.1):

        | MEFPOQTaskStateType  | MEF 79                            | Description                                                                                                                         |
        | -------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------|
        | acknowledged         | N/A                               | A request has been received by the Seller, has passed basic validation and the id was assigned.                                     |
        | done.ready           | READY                             | Reached when all items are in `done` state                                                                                          |
        | done.unableToProvide | UNABLE_TO_PROVIDE                 | This state is set when the Seller is unable to provide a Product Offering Qualification in the timeframe required by the Buyer.     |
        | terminatedWithError  | INSUFFICIENT_INFORMATION_PROVIDED | This state is achieved when a well-formed POQ request has been received, but there is insufficient information to complete the POQ. |
        | inProgress           | IN_PROGRESS                       | There is at least one POQ Item in `inProgress` state                                                                                |
      enum:
        - acknowledged
        - terminatedWithError
        - inProgress
        - done.unableToProvide
        - done.ready
      type: string
    POQMEFProductConfiguration:
      description: MEFProductConfiguration is used as an extension point for MEF specific product/service payload. The `@type` attribute is used as a discriminator
      discriminator:
        mapping:
          urn:mef:lso:spec:sonata:access-eline:v2.0.0:poq: '#/components/schemas/POQAccessEline'
          urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:poq: '#/components/schemas/POQCarrierEthernetOperatorUni'
        propertyName: '@type'
      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 case of MEF product this is the URN provided in the Product Specification.
          enum:
            - urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:poq
            - urn:mef:lso:spec:sonata:access-eline:v2.0.0:poq
          type: string
      required:
        - '@type'
      type: object
    POQMEFProductRefOrValue:
      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` MUST be provided to point which product instance to update and to what state. In `delete` only the `id` must be provided.
      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` or `delete`. This field MUST NOT be populated if an item `action` is `add`.
          type: string
        place:
          description: A list of locations that are related to the Product. For example an installation location
          items:
            $ref: '#/components/schemas/POQRelatedPlaceRefOrValue'
          type: array
        productConfiguration:
          $ref: '#/components/schemas/POQMEFProductConfiguration'
        productOffering:
          $ref: '#/components/schemas/POQProductOfferingRef'
        productRelationship:
          description: A list of references to existing products that are related to the Product that would be delivered to fulfill the POQ Item.
          items:
            $ref: '#/components/schemas/POQProductRelationshipWithGrouping'
          type: array
        productSpecification:
          $ref: '#/components/schemas/POQProductSpecificationRef'
      type: object
    POQMEFServiceabilityColor:
      description: |
        A color that indicates confidence to service the request. When the item
        state is `done.ready` the Seller **MUST** provide a value. It **MUST
        NOT** be populated for other states.


        Mapping between `ServiceabilityColor` and POQ Confidence Level:


        | ServiceabilityColor      | MEF 79       | MEF 79 semantics                                                              |
        |------------------------- | ------------ | ----------------------------------------------------------------------------- |
        | green                    | GREEN        |  The Seller has high confidence that this Product can be delivered            |
        | yellow                   | YELLOW       |  The Seller believes they can deliver the Product but is not highly confident |
        | red                      | RED          |  The Seller cannot deliver the Product as specified                           |

        Reference: MEF 79 (Sn 8.4.3.1)
      enum:
        - green
        - yellow
        - red
      type: string
    POQMEFSubUnit:
      description: Allows for sub unit identification
      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
      type: object
    POQOperatorUniCommon:
      description: This class contains all of the Operator UNI Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Operator UNI Service Attributes. This class is used to compose the OperatorUNI class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        listofPhysicalLinks:
          description: >-
            MEF 26.2 sec. 14.2, 14.3 - This Service Attribute combines several of the MEF 26.2 Objects into a single n-tuple that is consistent with the way this information is described in MEF 10.4. The value of the Operator UNI List of Physical Links Service Attribute is a list of 6-tuples of the form ⟨id, physicalLink, synchronousEthernet, precisionTiming, uniConnectorType,uniConnectorGender⟩, with one list item for each physical link. The value of id is an identifier for the physical link. The
            value of physicalLink is the specific Ethernet physical layer type. synchronousEthernet indicates if synchronous Ethernet is used on the physical link and has the value Enabled or Disabled. The value of precisionTiming indicates if the Precision Time Protocol is used on the physical link and has the value Enabled or Disabled. The values of uniConnectorType and uniConnectorGender specify the type of connector used. Note that the id and the physicalLink come from the
            CarrierEthernetPhysicalLink class.
          items:
            $ref: '#/components/schemas/POQUniPhysicalLink'
          minItems: 0
          type: array
          uniqueItems: true
      type: object
    POQPhysicalLink:
      description: An Ethernet physical layer
      enum:
        - 1BASE5
        - 2BASE_TL
        - 10BASE2
        - 10BASE5
        - 10BASE_F
        - 10BASE_FB
        - 10BASE_FL
        - 10BASE_FP
        - 10BASE_T
        - 10BASE_T1L
        - 10BASE_T1S
        - 10BASE_TE
        - 10BROAD36
        - 10PASS_TS
        - 100BASE_BX10
        - 100BASE_FX
        - 100BASE_LX10
        - 100BASE_T
        - 100BASE_T1
        - 100BASE_T2
        - 100BASE_T4
        - 100BASE_TX
        - 100BASE_X
        - 1000BASE_BX10
        - 1000BASE_CX
        - 1000BASE_KX
        - 1000BASE_LX
        - 1000BASE_LX10
        - 1000BASE_PX10
        - 1000BASE_PX20
        - 1000BASE_RHA
        - 1000BASE_RHB
        - 1000BASE_RHC
        - 1000BASE_SX
        - 1000BASE_T
        - 1000BASE_T1
        - 1000BASE_X
        - 2_5GBASE_KX
        - 2_5GBASE_T
        - 2_5GBASE_T1
        - 5GBASE_KR
        - 5GBASE_T
        - 5GBASE_T1
        - 10GBASE_CX4
        - 10GBASE_E
        - 10GBASE_ER
        - 10GBASE_EW
        - 10GBASE_KR
        - 10GBASE_KX4
        - 10GBASE_L
        - 10GBASE_LR
        - 10GBASE_LRM
        - 10GBASE_LW
        - 10GBASE_LX4
        - 10GBASE_R
        - 10GBASE_S
        - 10GBASE_SR
        - 10GBASE_SW
        - 10GBASE_T
        - 10GBASE_T1
        - 10GBASE_W
        - 10GBASE_X
        - 25GBASE_CR
        - 25GBASE_CR_S
        - 25GBASE_ER
        - 25GBASE_KR
        - 25GBASE_KR_S
        - 25GBASE_LR
        - 25GBASE_SR
        - 25GBASE_T
        - 40GBASE_CR4
        - 40GBASE_ER4
        - 40GBASE_FR
        - 40GBASE_KR4
        - 40GBASE_LR4
        - 40GBASE_R
        - 40GBASE_SR4
        - 40GBASE_T
        - 50GBASE_CR
        - 50GBASE_ER
        - 50GBASE_FR
        - 50GBASE_KR
        - 50GBASE_LR
        - 50GBASE_SR
        - 100GBASE_CR10
        - 100GBASE_CR2
        - 100GBASE_CR4
        - 100GBASE_DR
        - 100GBASE_ER4
        - 100GBASE_KP4
        - 100GBASE_KR2
        - 100GBASE_KR4
        - 100GBASE_LR4
        - 100GBASE_R
        - 100GBASE_SR10
        - 100GBASE_SR2
        - 100GBASE_SR4
        - 200GBASE_CR4
        - 200GBASE_DR4
        - 200GBASE_ER4
        - 200GBASE_FR4
        - 200GBASE_KR4
        - 200GBASE_LR4
        - 200GBASE_SR4
        - 400GBASE_DR4
        - 400GBASE_ER8
        - 400GBASE_FR8
        - 400GBASE_LR8
        - 400GBASE_SR16
        - 400GBASE_SR4_2
        - 400GBASE_SR8
        - OTHER
      type: string
    POQProductActionType:
      description: |
        Action to be performed on the Product Item. The action types are
        described in MEF 79 (Sn 8.4.1.1).

        The following mapping has been used between `ProductActionType` and MEF
        79:

        | ProductActionType | MEF 79     |
        |------------------ | ---------- |
        | add               | INSTALL    |
        | modify            | CHANGE     |
        | delete            | DISCONNECT |
      enum:
        - add
        - modify
        - delete
      type: string
    POQProductOfferingQualification:
      allOf:
        - $ref: '#/components/schemas/POQProductOfferingQualification_Common'
        - properties:
            effectiveQualificationDate:
              description: Date and time (set by the Seller) when the POQ state was set to one of the completion states (done.ready, done.unable_to_provide, terminated_with_error). The Seller MUST NOT provide this attribute until mentioned states are achieved.
              format: date-time
              type: string
            expiryDate:
              description: Expiration date of the POQ provided by the Seller. Backward compatibility.
              format: date-time
              type: string
            id:
              description: The Serviceability Request's unique identifier assigned by the Seller.
              type: string
            productOfferingQualificationItem:
              description: One or more of Product Offering Qualification Items. It MUST contain exactly one entry for each item in the POQ request.
              items:
                $ref: '#/components/schemas/POQProductOfferingQualificationItem'
              minItems: 1
              type: array
            state:
              $ref: '#/components/schemas/POQMEFPOQTaskStateType'
          required:
            - id
            - productOfferingQualificationItem
            - state
          type: object
      description: |
        Represents a response to the Buyer 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. Reference MEF 79 (Sn 8.7 and 8.4.3).
    POQProductOfferingQualificationItem:
      allOf:
        - $ref: '#/components/schemas/POQProductOfferingQualificationItem_Common'
        - properties:
            alternateProductOfferingProposal:
              description: |
                A list of one or more alternative Product Offerings that the Seller is proposing to the Buyer. 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.
                **MUST NOT** be specified if 'state' is 'terminatedWithError' or 'done.abandoned'.
              items:
                $ref: '#/components/schemas/POQAlternateProductOfferingProposal'
              type: array
            guaranteedUntilDate:
              description: |
                Date until the Seller guarantees the qualification result. **MUST NOT** be specified if 'state' is 'terminatedWithError' or 'done.abandoned'.
              format: date-time
              type: string
            installationInterval:
              $ref: '#/components/schemas/POQDuration'
            serviceabilityConfidence:
              $ref: '#/components/schemas/POQMEFServiceabilityColor'
            serviceabilityConfidenceReason:
              description: A free text description of the reason a particular color is being provided.
              type: string
            state:
              $ref: '#/components/schemas/POQMEFPOQItemTaskStateType'
            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.
              items:
                $ref: '#/components/schemas/POQMEFPOQItemStateChange'
              type: array
            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.
              items:
                $ref: '#/components/schemas/POQTerminationError'
              type: array
          required:
            - state
          type: object
      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.
        Reference: MEF 79 (Sn 8.4.3.1)
    POQProductOfferingQualificationItem_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.
      properties:
        action:
          $ref: '#/components/schemas/POQProductActionType'
        id:
          description: |
            Id of this POQ item which is unique within the POQ. Assigned by the Buyer.
          type: string
        product:
          $ref: '#/components/schemas/POQMEFProductRefOrValue'
        qualificationItemRelationship:
          description: |
            A list of references to related POQ items in this POQ
          items:
            $ref: '#/components/schemas/POQQualificationItemRelationship'
          type: array
        relatedContactInformation:
          description: |-
            Contact information of an individual or organization playing a role for this POQ Item
            (e.g. for MEF 79: POQ Item Location Contact, role=locationContact)
          items:
            $ref: '#/components/schemas/POQRelatedContactInformation'
          type: array
      required:
        - action
        - id
        - product
      type: object
    POQProductOfferingQualificationItem_Create:
      allOf:
        - $ref: '#/components/schemas/POQProductOfferingQualificationItem_Common'
        - type: object
      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.
        Reference: MEF 79 (Sn 8.4.1.1)
    POQProductOfferingQualification_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.`
      properties:
        externalId:
          description: ID given by the consumer and only understandable by him (to facilitate his searches afterwards)
          type: string
        instantSyncQualification:
          default: false
          description: If this flag is set to Yes, Buyer requests to have an instant qualification to be provided in operation POST response
          type: boolean
        projectId:
          description: This value MAY be assigned by the Buyer to identify a project the serviceability request is associated with.
          type: string
        provideAlternative:
          default: false
          description: Allows the Buyer to indicate if he is willing to get an alternate proposal if requested product not available.
          type: boolean
        relatedContactInformation:
          description: |-
            Party playing a role for this qualification. MEF 79 mandates
            providing 'Buyer Contact Information' in the request
            ('role=buyerContactInformation') and 'Seller Contact Information'
            in the response ('role=sellerContactInformation')
          items:
            $ref: '#/components/schemas/POQRelatedContactInformation'
          minItems: 1
          type: array
        requestedPOQCompletionDate:
          description: The latest date a the POQ completion is expected. This attribute is required when `instantSyncQualification=false`
          format: date-time
          type: string
      required:
        - relatedContactInformation
      type: object
    POQProductOfferingQualification_Create:
      allOf:
        - $ref: '#/components/schemas/POQProductOfferingQualification_Common'
        - properties:
            productOfferingQualificationItem:
              description: A non-empty list of POQ items
              items:
                $ref: '#/components/schemas/POQProductOfferingQualificationItem_Create'
              minItems: 1
              type: array
          required:
            - productOfferingQualificationItem
          type: object
      description: |
        Represents a request formulated by the Buyer that is composed of product offering qualification items.
        Reference: MEF 79 (Sn 8.4)
    POQProductOfferingQualification_Find:
      description: |
        This class represent a single list item for the response of `listProductOfferingQualification` operation. 
        Reference: MEF 79 (Sn 8.6)
      properties:
        externalId:
          description: ID given by the consumer and only understandable by him (to facilitate his searches afterwards)
          type: string
        id:
          description: The POQ Request's unique identifier.
          type: string
        projectId:
          description: The project ID specified by the Buyer in the POQ Request, if any.
          type: string
        requestedPOQCompletionDate:
          description: |
            The latest date the POQ completion is expected by the Buyer, if specified by the Buyer.
          format: date
          type: string
        state:
          $ref: '#/components/schemas/POQMEFPOQTaskStateType'
      required:
        - id
        - state
      type: object
    POQProductOfferingRef:
      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. Defined in MEF 79 Section 8.4.1.1
      properties:
        id:
          description: id of a Product Offering. It is assigned by the Seller. The Buyer and the Seller exchange information about offerings' ids during the onboarding process.
          type: string
      required:
        - id
      type: object
    POQProductRelationshipWithGrouping:
      description: >-
        A relationship to existing Product. The requirements for usage for given Product are described in the Product Specification. The "WithGrouping" flavour of the Product Relationship allows for providing a list of related product identifiers within a single Product Relationship. This can be later used while processing the request as defined in the Product Specification. The `groupingKey` attribute is used to achieve this behavior in the API by marking the list of
        `ProductRelationshipWithGroupings` within a `product` with a common key.
      properties:
        id:
          description: unique identifier of a Product that is referenced
          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
      type: object
    POQProductSpecificationRef:
      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.
      properties:
        id:
          description: Unique identifier of the product specification
          type: string
      required:
        - id
      type: object
    POQQualificationItemRelationship:
      description: |-
        The relationship between product offering qualification items that can be used to validate business rules between POQ items.
        Reference: MEF 79.0.1 (Sn 6)
      properties:
        id:
          description: An identifier of the targeted POQ item within the same POQ request
          type: string
        relationshipType:
          description: |
            One of the relationship types defined in the Product Specification. For example: "relies on".
          type: string
      required:
        - id
        - relationshipType
      type: object
    POQRelatedContactInformation:
      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. 
        Reference: MEF 79 (Sn 8.11)
      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/POQFieldedAddress'
        role:
          description: A role of the particular contact in the request
          type: string
      required:
        - emailAddress
        - name
        - number
        - role
      type: object
    POQRelatedPlaceRefOrValue:
      description: Place defines the places where the product order must be done.
      discriminator:
        mapping:
          FieldedAddress: '#/components/schemas/POQFieldedAddress'
          GeographicAddressRef: '#/components/schemas/POQGeographicAddressRef'
          GeographicAddressRefWithSite: '#/components/schemas/POQGeographicAddressRefWithSite'
          GeographicSiteRef: '#/components/schemas/POQGeographicSiteRef'
        propertyName: '@type'
      properties:
        '@type':
          description: |
            This field is used as a discriminator and is used between different place representations. This type might discriminate for additional related place as defined in '@schemaLocation'.
          enum:
            - FieldedAddress
            - GeographicAddressRef
            - GeographicAddressRefWithSite
            - GeographicSiteRef
          type: string
        role:
          description: Role of this place
          type: string
      required:
        - '@type'
        - role
      type: object
    POQTerminationError:
      description: This indicates an error that caused an Item to be terminated. The code and propertyPath should be used like in Error422.
      properties:
        code:
          $ref: '#/components/schemas/POQError422Code'
        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
      type: object
    POQTimeUnit:
      description: |
        Represents a unit of time.
        Reference: MEF 79 (Sn 8.4.3.1/8.4.3.2)
      enum:
        - calendarMonths
        - calendarDays
        - calendarHours
        - calendarMinutes
        - businessDays
        - businessHours
        - businessMinutes
      type: string
    POQUniConnectorType:
      description: This indicates the type of connector that is presented to the Subscriber.
      enum:
        - SC
        - LC
        - RJ45
        - FC
        - D4
        - OTHER
      type: string
    POQUniPhysicalLink:
      allOf:
        - $ref: '#/components/schemas/POQCarrierEthernetPhysicalLink'
        - $ref: '#/components/schemas/POQUniSpecifcAttributes'
      description: This class describes the Physical Link attributes at a UNI. It is a 4-tuple {carrierEthernet, frequency sync enable, PTP enable, connector}. carrierEthernet is a 2-tuple containing an id and physical link type.
    POQUniSpecifcAttributes:
      properties:
        uniConnectorType:
          $ref: '#/components/schemas/POQUniConnectorType'
          description: This indicates the type of connector that is presented to the Subscriber.
      type: object
    QuoteAccessEline:
      allOf:
        - $ref: '#/components/schemas/QuoteMEFProductConfiguration'
        - properties:
            enniEp:
              $ref: '#/components/schemas/QuoteAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the ENNI
            uniEp:
              $ref: '#/components/schemas/QuoteAccessElineOvcEndPoint'
              description: MEF 26.2 sec. 16 - The OVC EP object for the OVC EP at the UNI
          type: object
      x-discriminator-value: urn:mef:lso:spec:sonata:access-eline:v2.0.0:quote
    QuoteAccessElineOvcEndPoint:
      allOf:
        - $ref: '#/components/schemas/QuoteAccessElineOvcEpCommon'
      description: An OVC End Point is a logical entity at a given External Interface that is associated with a distinct set of frames passing over that External Interface. The OVC End Point schema is included in the definitions section of the OVC schema..
      type: object
    QuoteAccessElineOvcEpCommon:
      description: This class contains all of the Access E-Line OVC End Point Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Access Eline OVC End Point Service Attributes. This class is used to compose the AccessElineOvcEndPoint class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        ingressBandwidthProfilePerClassOfServiceName:
          description: MEF 26.2 sec. 16.12 - For each CoS Name listed, Bandwidth Profile Flow parameters for all ingress Service Frames mapped to that CoS Name at OVC End Point. This bandwidth profile flow is used to police at Ingress each CoS in an OVC individually. List of 2-tuples {cos, bwpf}.
          items:
            $ref: '#/components/schemas/QuoteBandwidthProfilePerClassOfServiceName'
          minItems: 0
          type: array
          uniqueItems: true
      type: object
    QuoteBandwidthProfilePerClassOfServiceName:
      description: >-
        This Class is used for both the Ingress Bandwidth Profile per Class of Service Name (MEF 26.2 §16.12) and Egress Bandwidth Profile per Egress Equivalence Class Name (MEF 26.2 §16.13) . The value is a list of pairs of the form〈x, y〉 where x is a Class of Service Name that is in the value of the OVC List of Class of Service Names Service Attribute (Section 12.12) for the OVC that associates the OVC End Point for Ingress and an Egress Equvalence Class Name for Egress. And y, if specified, is a
        reference to a Bandwidth Profile Flow. There is at most one pair in the list for each CoS or EEC Name (Except Discard).
      properties:
        bwpFlow:
          $ref: '#/components/schemas/QuoteBwpFlow'
        classOfServiceName:
          description: MEF 26.2 sec. 16.12 and 16.13 - For Ingress, this is the Name of the Class of Service that this bandwidth profile flow is applied to. This should be an item from ovc.listOfClassOfServiceNames. For Egress, this is the Egress Equivalence Class (EEC) Name.
          type: string
      required:
        - bwpFlow
        - classOfServiceName
      type: object
    QuoteBwpFlow:
      description: The Bandwidth Profile Flow, BwpFlow, object class represents the Bandwidth Profile Flow which includes the bandwidth profile parameter CIR, CIRmax, CBS, EIR, EIRmax, EBS, Coupling Flag, Color Mode, Envelope and Rank, and Token Request Offset. The BwpFlow is used with Service Attributes for CarrierEthernetOperatorUni, CarrierEthernetSubscriberUni, CarrierEthernetVuni,, and ENNI as well as OVC and EVC End Points. Reference MEF 10.4 Section 12 and MEF 26.2 Section 17.
      properties:
        cir:
          $ref: '#/components/schemas/QuoteInformationRate'
      required:
        - cir
      type: object
    QuoteCarrierEthernetOperatorUni:
      allOf:
        - $ref: '#/components/schemas/QuoteMEFProductConfiguration'
        - $ref: '#/components/schemas/QuoteOperatorUniCommon'
      x-discriminator-value: urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:quote
    QuoteCarrierEthernetPhysicalLink:
      description: A 2-tuple of the form <id, physicalLink>. The value of id is an identifier for the physical link. The value of physicalLink is the specific Ethernet physical layer type.
      properties:
        id:
          description: An identifier for the physical link.
          maxLength: 45
          minLength: 1
          pattern: "[ -\x7F]+"
          type: string
        physicalLink:
          $ref: '#/components/schemas/QuotePhysicalLink'
          description: An Ethernet physical layer
      required:
        - id
        - physicalLink
      type: object
    QuoteDuration:
      description: A Duration in a given unit of time e.g. 3 hours, or 5 days.
      properties:
        amount:
          description: Duration (number of seconds, minutes, hours, etc.)
          type: integer
        units:
          $ref: '#/components/schemas/QuoteTimeUnit'
      required:
        - amount
        - units
      type: object
    QuoteError:
      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.
      properties:
        message:
          description: Text that provides mode details and corrective actions related to the error. This can be shown to a client user.
          type: string
        reason:
          description: Text that explains the reason for the error. This can be shown to a client user.
          maxLength: 255
          type: string
        referenceError:
          description: URL pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    QuoteError400:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              $ref: '#/components/schemas/QuoteError400Code'
          required:
            - code
          type: object
      description: Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)
    QuoteError400Code:
      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
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
      type: string
    QuoteError401:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              $ref: '#/components/schemas/QuoteError401Code'
          required:
            - code
          type: object
      description: Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)
    QuoteError401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    QuoteError403:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              $ref: '#/components/schemas/QuoteError403Code'
          required:
            - code
          type: object
      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)
    QuoteError403Code:
      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
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
      type: string
    QuoteError404:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              description: |-
                The following error code:
                - notFound: A current representation for the target resource not found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description: Resource for the requested path not found. (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    QuoteError422:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              $ref: '#/components/schemas/QuoteError422Code'
            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)
    QuoteError422Code:
      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
    QuoteError500:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              description: |-
                The following error code:
                - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request.
              enum:
                - internalError
              type: string
          required:
            - code
          type: object
      description: Internal Server Error. (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    QuoteError501:
      allOf:
        - $ref: '#/components/schemas/QuoteError'
        - properties:
            code:
              description: |-
                The following error code:
                - notImplemented: Method not supported by the server
              enum:
                - notImplemented
              type: string
          required:
            - code
          type: object
      description: Not Implemented. (https://tools.ietf.org/html/rfc7231#section-6.6.2)
    QuoteFieldedAddress:
      allOf:
        - $ref: '#/components/schemas/QuoteRelatedPlaceRefOrValue'
        - properties:
            city:
              description: The city that the address is in
              type: string
            country:
              description: Country that the address is in
              type: string
            geographicSubAddress:
              $ref: '#/components/schemas/QuoteGeographicSubAddress'
            locality:
              description: The locality that the address is in
              type: string
            postcode:
              description: Descriptor for a postal delivery area used to speed and simplify the delivery of mail (also known as zip code)
              type: string
            postcodeExtension:
              description: An extension of a postal code. E.g. the part following the dash in an american urban property address
              type: string
            stateOrProvince:
              description: The State or Province that the address is in
              type: string
            streetName:
              description: Name of the street or other street type
              type: string
            streetNr:
              description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses.
              type: string
            streetNrLast:
              description: Last number in a range of street numbers allocated to a property
              type: string
            streetNrLastSuffix:
              description: Last street number suffix for a ranged address
              type: string
            streetNrSuffix:
              description: The first street number suffix
              type: string
            streetSuffix:
              description: A modifier denoting a relative direction
              type: string
            streetType:
              description: Alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf
              type: string
          required:
            - city
            - country
            - streetName
          type: object
      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.
    QuoteGeographicAddressRef:
      allOf:
        - $ref: '#/components/schemas/QuoteRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Geographic Address Validation API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Address Validation API.
    QuoteGeographicAddressRefWithSite:
      allOf:
        - $ref: '#/components/schemas/QuoteRelatedPlaceRefOrValue'
        - properties:
            geographicSubAddress:
              $ref: '#/components/schemas/QuoteGeographicSubAddress'
            id:
              description: Identifier of the referenced Geographic Address. This identifier is assigned during a successful address validation request (Sonata Geographic Address Management API)
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Address resource available through Sonata Address Validation API.
    QuoteGeographicSiteRef:
      allOf:
        - $ref: '#/components/schemas/QuoteRelatedPlaceRefOrValue'
        - properties:
            id:
              description: Identifier of the referenced Geographic Site.
              type: string
          required:
            - id
          type: object
      description: |
        A reference to a Geographic Site resource available through Service Site API
    QuoteGeographicSubAddress:
      description: Additional fields used to specify an address, as detailed as possible.
      properties:
        buildingName:
          description: |
            Allows for identification of places that require building name as part of addressing information
          type: string
        id:
          description: Unique Identifier of the subAddress
          type: string
        levelNumber:
          description: Used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2
          type: string
        levelType:
          description: Describes level types within a building
          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
        privateStreetNumber:
          description: Private streets numbers internal to a private street
          type: string
        subUnit:
          description: Representation of a MEFSubUnit It is used for describing subunit within a subaddress  e.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF.
          items:
            $ref: '#/components/schemas/QuoteMEFSubUnit'
          type: array
      type: object
    QuoteInformationRate:
      description: A value and a unit of measure that specifies an Information Rate.
      properties:
        irUnits:
          $ref: '#/components/schemas/QuoteIrUnits'
          description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
        irValue:
          description: The value in the information rate. For example if the information rate is 70 kbps this element is 70.
          minimum: 0
          type: number
      required:
        - irUnits
        - irValue
      type: object
    QuoteIrUnits:
      description: The unit of measure for the Information Rate. For example if the Information Rate is 70 kbps this element is kbps.
      enum:
        - BPS
        - KBPS
        - MBPS
        - GBPS
        - TBPS
        - PBPS
        - EBPS
        - ZBPS
        - YBPS
      type: string
    QuoteMEFBuyerQuoteLevel:
      description: 'An indication of whether the Buyer''s Quote Request is for a Budgetary or Firm Quote Level. Set by the Buyer. Buyer Requested Quote Level contains the possible values and may be set by the Buyer on the Request. All Quote Items in a Quote have the same Quote Level. '
      enum:
        - budgetary
        - firm
      type: string
    QuoteMEFBuyerSellerType:
      description: Indicates if the note is from Buyer or Seller.
      enum:
        - buyer
        - seller
      type: string
    QuoteMEFChargePeriod:
      description: Used for a recurring charge to indicate period.
      enum:
        - hour
        - day
        - week
        - month
        - year
      type: string
    QuoteMEFEndOfTermAction:
      description: The action that needs to be taken by the Seller once the term expires.
      enum:
        - roll
        - autoDisconnect
        - autoRenew
      type: string
    QuoteMEFItemTerm:
      description: The terms of the Quote Item. Used to describe a term (also known as commitment) for a Quote Item. Each Quote Item in a Quote Request could have a different Requested Quote Item Term. The Buyer specifies the longest term that they would accept. The Buyer may be willing to accept a shorter term. If the Seller responds with a term longer than the Buyer's request, it is treated as an alternate response.
      properties:
        description:
          description: Description of the term
          type: string
        duration:
          $ref: '#/components/schemas/QuoteDuration'
        endOfTermAction:
          $ref: '#/components/schemas/QuoteMEFEndOfTermAction'
        name:
          description: Name of the term
          type: string
        rollInterval:
          $ref: '#/components/schemas/QuoteDuration'
      type: object
    QuoteMEFPriceType:
      description: Indicates if the price is for recurring or non-recurring charges.
      enum:
        - recurring
        - nonRecurring
        - usageBased
      type: string
    QuoteMEFProductActionType:
      description: |
        Product action to be applied to the Quote Item. This corresponds to the
        Order Item Action when an associated product is ordered.

        | MEFProductActionType | MEF 80     |
        |--------------------- | ---------- |
        | add                  | INSTALL    |
        | modify               | CHANGE     |
        | delete               | DISCONNECT |
      enum:
        - add
        - modify
        - delete
      type: string
    QuoteMEFProductConfiguration:
      description: MEFProductConfiguration is used as an extension point for MEF specific product/service payload. The `@type` attribute is used as a discriminator
      discriminator:
        mapping:
          urn:mef:lso:spec:sonata:access-eline:v2.0.0:quote: '#/components/schemas/QuoteAccessEline'
          urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:quote: '#/components/schemas/QuoteCarrierEthernetOperatorUni'
        propertyName: '@type'
      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 the MEF product, this is the URN provided in the Product Specification.
          enum:
            - urn:mef:lso:spec:sonata:access-eline:v2.0.0:quote
            - urn:mef:lso:spec:sonata:carrier-ethernet-operator-uni:v2.0.0:quote
          type: string
      required:
        - '@type'
      type: object
    QuoteMEFProductRefOrValueQuote:
      description: One or more services sold to a Buyer by a Seller. A particular Product Offering defines the technical and commercial attributes and behaviors of a Product.
      properties:
        id:
          description: |
            The unique identifier of an in-service Product that is the quotation's subject.  This field MUST be populated if an item `action` is either `modify` or `delete`.  This field MUST NOT be populated if an item `action` is `add`.
          type: string
        place:
          description: A list of places that are related to the Product. For example an installation location
          items:
            $ref: '#/components/schemas/QuoteRelatedPlaceRefOrValue'
          type: array
        productConfiguration:
          $ref: '#/components/schemas/QuoteMEFProductConfiguration'
        productOffering:
          $ref: '#/components/schemas/QuoteProductOfferingRef'
        productRelationship:
          description: A list of references to existing products that are related to the Product that would be delivered to fulfill the Quote Item
          items:
            $ref: '#/components/schemas/QuoteProductRelationshipWithGrouping'
          type: array
      type: object
    QuoteMEFQuoteItemStateType:
      description: |
        Possible values for the status of a QuoteItem.
        Following mapping has been used between `MEFQuoteItemStateType` and MEF 80:

        | MEFQuoteItemStateType       | MEF 80                            |
        | ----------------------------| --------------------------------- |
        | answered                    | ANSWERED                          |
        | acknowledged                | ACKNOWLEDGED                      |
        | approved.orderable          | ORDERABLE                         |
        | approved.orderableAlternate | ORDERABLE_ALTERNATE               |
        | inProgress                  | IN_PROGRESS                       |
        | inProgress.draft            | IN_PROGRESS_DRAFT                 |
        | abandoned                   | ABANDONED                         |
        | rejected                    | REJECTED                          |
        | unableToProvide             | UNABLE_TO_PROVIDE                 |
      enum:
        - answered
        - acknowledged
        - approved.orderable
        - approved.orderableAlternate
        - inProgress
        - inProgress.draft
        - rejected
        - abandoned
        - unableToProvide
      type: string
    QuoteMEFQuoteItem_Common:
      description: Quote items describe an action to be performed on a productOffering or a product in order to get pricing elements and conditions.
      properties:
        action:
          $ref: '#/components/schemas/QuoteMEFProductActionType'
        agreementName:
          description: Name of the agreement. The name is unique between the Buyer and the Seller.
          type: string
        dealReference:
          description: A pre-agreed pricing modifier reference that the Seller is offering to the Buyer which will impact the price.
          type: string
        id:
          description: Identifier of the quote item (generally it is a sequence number 01, 02, 03, ...)
          type: string
        note:
          description: Free form text associated with the quote item. Only useful in processes involving human interaction. Not applicable for the automated process.
          items:
            $ref: '#/components/schemas/QuoteNote'
          type: array
        product:
          $ref: '#/components/schemas/QuoteMEFProductRefOrValueQuote'
        productOfferingQualificationItem:
          $ref: '#/components/schemas/QuoteProductOfferingQualificationItemRef'
        quoteItemRelationship:
          description: A relationship from item within a quote
          items:
            $ref: '#/components/schemas/QuoteQuoteItemRelationship'
          type: array
        relatedContactInformation:
          description: |
            Contact information of an individual or organization playing a role for this Quote. If `instantSyncQuote` equals `false`  then 'Quote Item Technical Contact' must be specified (`role: quoteItemTechnicalContact`). If `instantSyncQuote` equals `false` and the Quote Item requires a location,  the Buyer MUST provide the Quote Item Location Contact Information `role: quoteItemLocationContact`.
          items:
            $ref: '#/components/schemas/QuoteRelatedContactInformation'
          type: array
        requestedQuoteItemInstallationInterval:
          $ref: '#/components/schemas/QuoteDuration'
        requestedQuoteItemTerm:
          $ref: '#/components/schemas/QuoteMEFItemTerm'
      required:
        - action
        - id
      type: object
    QuoteMEFQuoteItem_Create:
      allOf:
        - $ref: '#/components/schemas/QuoteMEFQuoteItem_Common'
        - description: A quote item describes an action to be performed on a productOffering or a product in order to get pricing elements and condition. The modeling pattern introduces the `MEFQuoteItem_Common` supertype to aggregate attributes that are common to both `QuoteItem` and `MEFQuoteItem_Create`. In this case the create type has a subset of attributes of the response type and does not introduce any new, thus the `MEFQuoteItem_Create` type has an empty definition.
          type: object
    QuoteMEFQuoteStateChange:
      description: Holds the reached state, reasons, and associated date the Quote state changed, populated by the Seller.
      properties:
        changeDate:
          description: The date on when the state was reached
          format: date-time
          type: string
        changeReason:
          description: Additional comment related to state change
          type: string
        state:
          $ref: '#/components/schemas/QuoteMEFQuoteStateType'
      required:
        - changeDate
        - state
      type: object
    QuoteMEFQuoteStateType:
      description: |
        Possible values for the status of a Quote.
        Following mapping has been used between `MEFQuoteStateType` and MEF 80:

        | QuoteStateType                            | MEF 80                            |
        | ----------------------------------------- | --------------------------------- |
        | accepted                                  | ACCEPTED                          |
        | acknowledged                              | ACKNOWLEDGED                      |
        | answered                                  | ANSWERED                          |
        | approved.orderable                        | ORDERABLE                         |
        | approved.orderableAlternate               | ORDERABLE_ALTERNATE               |
        | declined                                  | DECLINED                          |
        | expired                                   | EXPIRED                           |
        | cancelled                                 | CANCELLED                         |
        | unableToProvide                           | UNABLE_TO_PROVIDE                 |
        | inProgress                                | IN_PROGRESS                       |
        | inProgress.draft                          | IN_PROGRESS_DRAFT                 |
        | rejected                                  | REJECTED                          |
      enum:
        - accepted
        - acknowledged
        - answered
        - approved.orderable
        - approved.orderableAlternate
        - cancelled
        - unableToProvide
        - declined
        - expired
        - inProgress
        - inProgress.draft
        - rejected
      type: string
    QuoteMEFSellerQuoteLevel:
      description: An indication of whether the Seller's Quote Response is Budgetary, Firm - Subject to Feasibility Check, or Firm. The Seller Quote Level is provided by the Seller when responding to a Quote request.  This represents the lowest Quote Item Level of all Quote Items included in the Quote.
      enum:
        - budgetary
        - firmSubjectToFeasibilityCheck
        - firm
      type: string
    QuoteMEFSubUnit:
      description: Allows for subunit identification
      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
      type: object
    QuoteMoney:
      description: A base/value business entity used to represent money
      properties:
        unit:
          description: Currency (ISO4217 norm uses 3 letters to define the currency)
          type: string
        value:
          description: A positive floating point number
          format: float
          type: number
      type: object
    QuoteNote:
      description: Extra information about a given entity. Only useful in processes involving human interaction. Not applicable for the automated process.
      properties:
        author:
          description: Author of the note
          type: string
        date:
          description: Date of the note
          format: date-time
          type: string
        id:
          description: Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)
          type: string
        source:
          $ref: '#/components/schemas/QuoteMEFBuyerSellerType'
        text:
          description: Text of the note
          type: string
      required:
        - author
        - date
        - id
        - source
        - text
      type: object
    QuoteOperatorUniCommon:
      description: This class contains all of the Operator UNI Services Attributes that are used in all four Business Functions (POQ, Quote, Order, Inventory). At this time, this includes all of the Operator UNI Service Attributes. This class is used to compose the OperatorUNI class which has one file for each Business Function that differ in terms of the Service Attributes that are "Required" for the Business Function (rather than "Optional").
      properties:
        listofPhysicalLinks:
          description: >-
            MEF 26.2 sec. 14.2, 14.3 - This Service Attribute combines several of the MEF 26.2 Objects into a single n-tuple that is consistent with the way this information is described in MEF 10.4. The value of the Operator UNI List of Physical Links Service Attribute is a list of 6-tuples of the form ⟨id, physicalLink, synchronousEthernet, precisionTiming, uniConnectorType,uniConnectorGender⟩, with one list item for each physical link. The value of id is an identifier for the physical link. The
            value of physicalLink is the specific Ethernet physical layer type. synchronousEthernet indicates if synchronous Ethernet is used on the physical link and has the value Enabled or Disabled. The value of precisionTiming indicates if the Precision Time Protocol is used on the physical link and has the value Enabled or Disabled. The values of uniConnectorType and uniConnectorGender specify the type of connector used. Note that the id and the physicalLink come from the
            CarrierEthernetPhysicalLink class.
          items:
            $ref: '#/components/schemas/QuoteUniPhysicalLink'
          minItems: 0
          type: array
          uniqueItems: true
      type: object
    QuotePhysicalLink:
      description: An Ethernet physical layer
      enum:
        - 1BASE5
        - 2BASE_TL
        - 10BASE2
        - 10BASE5
        - 10BASE_F
        - 10BASE_FB
        - 10BASE_FL
        - 10BASE_FP
        - 10BASE_T
        - 10BASE_T1L
        - 10BASE_T1S
        - 10BASE_TE
        - 10BROAD36
        - 10PASS_TS
        - 100BASE_BX10
        - 100BASE_FX
        - 100BASE_LX10
        - 100BASE_T
        - 100BASE_T1
        - 100BASE_T2
        - 100BASE_T4
        - 100BASE_TX
        - 100BASE_X
        - 1000BASE_BX10
        - 1000BASE_CX
        - 1000BASE_KX
        - 1000BASE_LX
        - 1000BASE_LX10
        - 1000BASE_PX10
        - 1000BASE_PX20
        - 1000BASE_RHA
        - 1000BASE_RHB
        - 1000BASE_RHC
        - 1000BASE_SX
        - 1000BASE_T
        - 1000BASE_T1
        - 1000BASE_X
        - 2_5GBASE_KX
        - 2_5GBASE_T
        - 2_5GBASE_T1
        - 5GBASE_KR
        - 5GBASE_T
        - 5GBASE_T1
        - 10GBASE_CX4
        - 10GBASE_E
        - 10GBASE_ER
        - 10GBASE_EW
        - 10GBASE_KR
        - 10GBASE_KX4
        - 10GBASE_L
        - 10GBASE_LR
        - 10GBASE_LRM
        - 10GBASE_LW
        - 10GBASE_LX4
        - 10GBASE_R
        - 10GBASE_S
        - 10GBASE_SR
        - 10GBASE_SW
        - 10GBASE_T
        - 10GBASE_T1
        - 10GBASE_W
        - 10GBASE_X
        - 25GBASE_CR
        - 25GBASE_CR_S
        - 25GBASE_ER
        - 25GBASE_KR
        - 25GBASE_KR_S
        - 25GBASE_LR
        - 25GBASE_SR
        - 25GBASE_T
        - 40GBASE_CR4
        - 40GBASE_ER4
        - 40GBASE_FR
        - 40GBASE_KR4
        - 40GBASE_LR4
        - 40GBASE_R
        - 40GBASE_SR4
        - 40GBASE_T
        - 50GBASE_CR
        - 50GBASE_ER
        - 50GBASE_FR
        - 50GBASE_KR
        - 50GBASE_LR
        - 50GBASE_SR
        - 100GBASE_CR10
        - 100GBASE_CR2
        - 100GBASE_CR4
        - 100GBASE_DR
        - 100GBASE_ER4
        - 100GBASE_KP4
        - 100GBASE_KR2
        - 100GBASE_KR4
        - 100GBASE_LR4
        - 100GBASE_R
        - 100GBASE_SR10
        - 100GBASE_SR2
        - 100GBASE_SR4
        - 200GBASE_CR4
        - 200GBASE_DR4
        - 200GBASE_ER4
        - 200GBASE_FR4
        - 200GBASE_KR4
        - 200GBASE_LR4
        - 200GBASE_SR4
        - 400GBASE_DR4
        - 400GBASE_ER8
        - 400GBASE_FR8
        - 400GBASE_LR8
        - 400GBASE_SR16
        - 400GBASE_SR4_2
        - 400GBASE_SR8
        - OTHER
      type: string
    QuotePrice:
      description: Provides all amounts (tax included, duty-free, tax rate), used currency and percentage to apply for Price Alteration.
      properties:
        dutyFreeAmount:
          $ref: '#/components/schemas/QuoteMoney'
        taxIncludedAmount:
          $ref: '#/components/schemas/QuoteMoney'
        taxRate:
          description: 'Price Tax Rate. Unit: [%]. E.g. value 16 stand for 16% tax.'
          format: float
          type: number
      type: object
    QuoteProductOfferingQualificationItemRef:
      description: It's a productOfferingQualification item that has been executed previously.
      properties:
        alternateProductProposalId:
          description: A unique identifier for the Alternate Product Proposal assigned by the Seller, if the referenced qualification comes from an alternate product proposal.
          type: string
        id:
          description: Id of an item of a product offering qualification
          type: string
        productOfferingQualificationId:
          description: Unique identifier of related Product Offering Qualification.
          type: string
      required:
        - id
        - productOfferingQualificationId
      type: object
    QuoteProductOfferingRef:
      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.

        The id of the Product offering is assigned by the Seller. The Buyer and the Seller exchange information about offerings' ids during the onboarding process.
      properties:
        id:
          description: unique identifier of the Product Offering.
          type: string
      required:
        - id
      type: object
    QuoteProductRelationshipWithGrouping:
      description: >-
        A relationship to an existing Product. The requirements for usage for given Product are described in the Product Specification. The "WithGrouping" flavor of the Product Relationship allows for providing a list of related product identifiers within a single Product Relationship. This can be later used while processing the request as defined in the Product Specification. The `groupingKey` attribute is used to achieve this behavior in the API by marking the list of
        `ProductRelationshipWithGroupings` within a `product` with a common key.
      properties:
        id:
          description: unique identifier of a Product that is referenced.
          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
      type: object
    QuoteQuote:
      allOf:
        - $ref: '#/components/schemas/QuoteQuote_Common'
        - description: Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contains a list of quote items, a reference to a customer, a list of productOfferings, and attached prices and conditions.
          properties:
            effectiveQuoteCompletionDate:
              description: Date when the Quote State was set to one of the Completion States.
              format: date-time
              type: string
            expectedQuoteCompletionDate:
              description: This is the date provided by the Seller to indicate the date by which the Quote is expected to reach a Quote Completion State
              format: date-time
              type: string
            expiryDate:
              description: This is the date provided by the Seller to indicate the date by which the Quote will expire
              format: date-time
              type: string
            id:
              description: Unique identifier - attributed by quoting system
              type: string
            quoteDate:
              description: Date and time when the quote was created
              format: date-time
              type: string
            quoteItem:
              description: An item of the quote - it is used to describe an operation on a product to be quoted
              items:
                $ref: '#/components/schemas/QuoteQuoteItem'
              minItems: 1
              type: array
            quoteLevel:
              $ref: '#/components/schemas/QuoteMEFSellerQuoteLevel'
            state:
              $ref: '#/components/schemas/QuoteMEFQuoteStateType'
            stateChange:
              description: State change for the Quote
              items:
                $ref: '#/components/schemas/QuoteMEFQuoteStateChange'
              type: array
            validFor:
              $ref: '#/components/schemas/QuoteTimePeriod'
          required:
            - id
            - quoteDate
            - quoteItem
          type: object
    QuoteQuoteItem:
      allOf:
        - $ref: '#/components/schemas/QuoteMEFQuoteItem_Common'
        - description: Quote items describe an action to be performed on a productOffering or a product in order to get pricing elements and conditions.
          properties:
            quoteItemInstallationInterval:
              $ref: '#/components/schemas/QuoteDuration'
            quoteItemPrice:
              description: Price for this quote item
              items:
                $ref: '#/components/schemas/QuoteQuotePrice'
              type: array
            quoteItemTerm:
              description: Quote Item Term as defined by the Seller and part of the Quote for the Quote Item.
              items:
                $ref: '#/components/schemas/QuoteMEFItemTerm'
              maxItems: 1
              type: array
            state:
              $ref: '#/components/schemas/QuoteMEFQuoteItemStateType'
            subjectToFeasibilityCheck:
              description: For a Firm Quote Level indicates if the pricing requires a Feasibility Check. The Seller indicates if the Quote Item requires a Feasibility Check. This is not used for a Budgetary Quote Level.
              type: boolean
            terminationError:
              description: When the Seller cannot process the Quote Item Request, the Seller returns a text-based list of reasons here.
              items:
                $ref: '#/components/schemas/QuoteTerminationError'
              type: array
          required:
            - state
          type: object
    QuoteQuoteItemRelationship:
      description: Used to describe the relationship between quote items. These relationships could have an impact on pricing and conditions
      properties:
        id:
          description: ID of the related quote item (must be in the same quote)
          type: string
        relationshipType:
          description: >-
            Relationship type as relies on, bundles, etc... MEF: Specifies the nature of the relationship to the related Quote Items. 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 Relationship Nature values are defined in the Product Specification.
          type: string
      required:
        - id
        - relationshipType
      type: object
    QuoteQuotePrice:
      description: Description of price and discount awarded
      properties:
        description:
          description: Description of the quote/quote item price
          type: string
        name:
          description: Name of the quote/quote item price
          type: string
        price:
          $ref: '#/components/schemas/QuotePrice'
        priceType:
          $ref: '#/components/schemas/QuoteMEFPriceType'
        recurringChargePeriod:
          $ref: '#/components/schemas/QuoteMEFChargePeriod'
        unitOfMeasure:
          description: 'Unit of Measure if price depending on it (Gb, SMS volume, etc..) MEF: if Quote Item Price Type equals usageBased'
          type: string
      type: object
    QuoteQuote_Common:
      description: Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contains a list of quote items, a reference to a customer, a list of productOfferings, and attached prices and conditions.
      properties:
        buyerRequestedQuoteLevel:
          $ref: '#/components/schemas/QuoteMEFBuyerQuoteLevel'
        description:
          description: Description of the quote
          type: string
        externalId:
          description: ID given by the consumer and only understandable by him (to facilitate his searches afterwards)
          type: string
        instantSyncQuote:
          description: If this flag is set to true, the Buyer requests an immediate Quote to be provided in the response to the creation of a Quote.
          type: boolean
        note:
          description: Free form text associated with the quote. Only useful in processes involving human interaction. Not applicable for the automated process.
          items:
            $ref: '#/components/schemas/QuoteNote'
          type: array
        projectId:
          description: An identifier that is used to group Quotes that represent a unit of functionality that is important to a Buyer. A Project can be used to relate multiple Quotes together.
          type: string
        relatedContactInformation:
          description: |-
            Party playing a role for this quote. If `instantSyncQuote` equals `false` 
            then the Buyer MUST specify Buyer Contact Information ('role: buyerContactInformation') 
            and the Seller MUST specify Seller Contact Information ('role: sellerContactInformation')
          items:
            $ref: '#/components/schemas/QuoteRelatedContactInformation'
          type: array
        requestedQuoteCompletionDate:
          description: This is requested date - from quote requester - to get a complete response for this quote
          format: date-time
          type: string
      required:
        - buyerRequestedQuoteLevel
        - instantSyncQuote
      type: object
    QuoteQuote_Create:
      allOf:
        - $ref: '#/components/schemas/QuoteQuote_Common'
        - description: |
            Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contains a list of quote items, a reference to a customer, a list of productOfferings, and attached prices and conditions.
          properties:
            quoteItem:
              description: An item of the quote - used to describe an operation on a product to be quoted
              items:
                $ref: '#/components/schemas/QuoteMEFQuoteItem_Create'
              minItems: 1
              type: array
          required:
            - quoteItem
          type: object
    QuoteQuote_Find:
      description: |
        This class represents a single list item for the response of `listQuote` operation.
      properties:
        effectiveQuoteCompletionDate:
          description: Date when the Quote State was set to one of the Completion States
          format: date-time
          type: string
        expectedQuoteCompletionDate:
          description: This is the date provided by the Seller to indicate expected Quote completion date
          format: date-time
          type: string
        externalId:
          description: ID given by the consumer and only understandable by him (to facilitate his searches afterward)
          type: string
        id:
          description: Unique identifier - attributed by quoting system
          type: string
        projectId:
          description: An identifier that is used to group Quotes that represent a unit of functionality that is important to a Buyer. A Project can be used to relate multiple Quotes together.
          type: string
        quoteDate:
          description: Date and time when the quote was created
          format: date-time
          type: string
        quoteLevel:
          $ref: '#/components/schemas/QuoteMEFSellerQuoteLevel'
        requestedQuoteCompletionDate:
          description: This is requested date - from quote requester - to get a complete response for this quote
          format: date-time
          type: string
        state:
          $ref: '#/components/schemas/QuoteMEFQuoteStateType'
      required:
        - state
      type: object
    QuoteRelatedContactInformation:
      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. 
        Reference: MEF 80 (Sn 8.1.9)
      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/QuoteFieldedAddress'
        role:
          description: The role of the particular contact in a given context.
          type: string
      required:
        - emailAddress
        - name
        - number
        - role
      type: object
    QuoteRelatedPlaceRefOrValue:
      description: Place defines the places where the product order must be done.
      discriminator:
        mapping:
          FieldedAddress: '#/components/schemas/QuoteFieldedAddress'
          GeographicAddressRef: '#/components/schemas/QuoteGeographicAddressRef'
          GeographicAddressRefWithSite: '#/components/schemas/QuoteGeographicAddressRefWithSite'
          GeographicSiteRef: '#/components/schemas/QuoteGeographicSiteRef'
        propertyName: '@type'
      properties:
        '@type':
          description: |
            This field is used as a discriminator and is used between different place representations. This type might discriminate for additional related place as defined in '@schemaLocation'.
          enum:
            - FieldedAddress
            - GeographicAddressRef
            - GeographicAddressRefWithSite
            - GeographicSiteRef
          type: string
        role:
          description: Role of this place
          type: string
      required:
        - '@type'
        - role
      type: object
    QuoteTerminationError:
      description: This indicates an error that caused an Item to be terminated. The code and propertyPath should be used like in Error422.
      properties:
        code:
          $ref: '#/components/schemas/QuoteError422Code'
        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
      type: object
    QuoteTimePeriod:
      description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both.
      properties:
        endDateTime:
          description: End of the time period, using IETC-RFC-3339 format
          example: 1985-04-12T23:20:50.520Z
          format: date-time
          type: string
        startDateTime:
          description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end
          example: 1985-04-12T23:20:50.520Z
          format: date-time
          type: string
      type: object
    QuoteTimeUnit:
      description: |
        Represents a unit of time.
        Reference: MEF 79 (Sn 8.4.3.1/8.4.3.2)
      enum:
        - calendarMonths
        - calendarDays
        - calendarHours
        - calendarMinutes
        - businessDays
        - businessHours
        - businessMinutes
      type: string
    QuoteUniConnectorType:
      description: This indicates the type of connector that is presented to the Subscriber.
      enum:
        - SC
        - LC
        - RJ45
        - FC
        - D4
        - OTHER
      type: string
    QuoteUniPhysicalLink:
      allOf:
        - $ref: '#/components/schemas/QuoteCarrierEthernetPhysicalLink'
        - $ref: '#/components/schemas/QuoteUniSpecifcAttributes'
      description: This class describes the Physical Link attributes at a UNI. It is a 4-tuple {carrierEthernet, frequency sync enable, PTP enable, connector}. carrierEthernet is a 2-tuple containing an id and physical link type.
    QuoteUniSpecifcAttributes:
      properties:
        uniConnectorType:
          $ref: '#/components/schemas/QuoteUniConnectorType'
          description: This indicates the type of connector that is presented to the Subscriber.
      type: object            
    SiteError400Code:
      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
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
      type: string
    SiteError:
      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.
      properties:
        reason:
          description: >-
            Text that explains the reason for the error. This can be shown to a
            client user.
          maxLength: 255
          type: string
        message:
          description: >-
            Text that provides mode details and corrective actions related to
            the error. This can be shown to a client user.
          type: string
        referenceSiteError:
          description: url pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    SiteError400:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              $ref: "#/components/schemas/SiteError400Code"
          required:
            - code
          type: object
      description:
        "Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)"
    SiteError401:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              $ref: "#/components/schemas/SiteError401Code"
          required:
            - code
          type: object
      description:
        "Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)"
    SiteError401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    SiteError403:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              $ref: "#/components/schemas/SiteError403Code"
          required:
            - code
          type: object
      description:
        "Forbidden. (https://tools.ietf.org/html/rfc7231#section-6.5.3)"
    SiteError403Code:
      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
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
      type: string
    SiteError404:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              description: >-
                The following error code:

                - notFound: A current representation for the target resource not
                found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description: >-
        Resource for the requested path not found.
        (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    SiteError422:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              $ref: "#/components/schemas/SiteError422Code"
            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)
    SiteError422Code:
      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
    SiteError500:
      allOf:
        - $ref: "#/components/schemas/SiteError"
        - properties:
            code:
              description: >-
                The following error code:

                - internalSiteError: Internal server error - the server encountered
                an unexpected condition that prevented it from fulfilling the
                request.
              enum:
                - internalSiteError
              type: string
          required:
            - code
          type: object
      description: >-
        Internal Server SiteError.
        (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    SiteFieldedAddress:
      allOf:
        - $ref: "#/components/schemas/SiteGeographicAddressRefOrValue"
        - properties:
            country:
              description: The country that the address is in
              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
            postcodeExtension:
              description: >-
                An extension of a postal code. E.g. the part following the dash
                in a US urban property address
              type: string
            city:
              description: The city that the address is in
              type: string
            streetNr:
              description: >-
                Number identifying a specific property on a public street. It
                may be combined with streetNrLast for ranged addresses. MEF 79
                defines it as required however as in certain countries it is not
                used we make it optional in API.
              type: string
            locality:
              description: >-
                An area of defined or undefined Present boundaries within a
                local authority or other legislatively defined area, usually
                rural or semirural in nature.
              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) MEF 79
                defines it as required however as in certain countries it is not
                used we make it optional in API.
              type: string
            streetNrLast:
              description:
                Last number in a range of street numbers allocated to a property
              type: string
            streetNrSuffix:
              description: The first street number suffix
              type: string
            streetName:
              description: Name of the street or other street type
              type: string
            stateOrProvince:
              description: The State or Province that the address is in
              type: string
            streetNrLastSuffix:
              description: Last street number suffix for a ranged address
              type: string
            geographicSubAddress:
              $ref: "#/components/schemas/SiteGeographicSubAddress"
              description:
                Additional fields used to specify an address, as detailed as
                possible.
            streetSuffix:
              description: A modifier denoting a relative direction
              type: string
          required:
            - city
            - country
            - streetName
          type: object
      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.
        Reference: MEF 79 (Sn 8.9.2)
    SiteGeographicAddressRef:
      allOf:
        - $ref: "#/components/schemas/SiteGeographicAddressRefOrValue"
        - properties:
            id:
              description: >-
                Identifier of the referenced Geographic Address. This identifier
                is assigned during a successful address validation request
                (Geographic Address Management API)
              type: string
          required:
            - id
          type: object
      description: >
        A reference to a GeographicAddress resource available through Addressing
        Validation API
    SiteGeographicAddressRefOrValue:
      description: >
        Defines a GeographicAddress link by reference or by value. The
        polymorphic attributes @type is related to the
        GeographicAddress entity and not the SiteGeographicAddressRefOrValue class
        itself
      discriminator:
        mapping:
          SiteFieldedAddress: "#/components/schemas/SiteFieldedAddress"
          SiteGeographicAddressRef: "#/components/schemas/SiteGeographicAddressRef"
        propertyName: "@type"
      properties:
        "@type":
          description: >
            This field is used as a discriminator and is used between different
            geographicAddress representations.
          type: string
      required:
        - "@type"
      type: object
    SiteGeographicSite:
      description: >-
        A fixed physical location at which a Product can be installed. Its
        location can be described either with geographic point (Lat/Long
        information) or by association with an Address or Geographic Address
        Label. This association may include a Sub-address describing where
        within that Address or Geographic Address Label this particular
        Geographic Site is located.
      properties:
        relatedContactInformation:
          description: >-
            An entity or organization that is involved to the geographical site,
            such as the Site Contact or Site Alternate Contact.
          items:
            $ref: "#/components/schemas/SiteRelatedContactInformation"
          type: array
        "@type":
          description:
            "When sub-classing, this defines the sub-class entity name"
          type: string
        companyName:
          description: >-
            The name of the company that is the administrative authority (e.g.
            controls access) for this Geographic Site. (For example, the
            building owner.)
          type: string
        name:
          description: >-
            A user-friendly name for the place, such as [Paris Store], [London
            Store], [Main Home]
          type: string
        description:
          description: A textual description of the Geographic Site.
          type: string
        id:
          description:
            Identifier of the Geographic Site unique within the Seller.
          type: string
        place:
          description: >
            A set of location descriptions, each of which describes where this
            SiteGeographicSite is located. It is important to note that this is a
            set because a particular Geographic Site might be described with
            multiple locations. For example, one Geographic Site might have two
            Fielded Addresses (for a building on the corner of two streets), two
            Formatted Addresses, and a Geographic Point.
          items:
            $ref: "#/components/schemas/SiteGeographicAddressRefOrValue"
          type: array
        customerName:
          description: >-
            The name of the company that is the administrative authority for the
            space within this Geographic Site (For example, the company leasing
            space in a multi-tenant building).
          type: string
        siteType:
          $ref: "#/components/schemas/SiteMEFSiteType"
          description: |
            This defines whether a Geographic Site is public or private.

            public - means that the existence of this Geographic Site is public
            information. A meet-me-room in a hosted data center facility (where
            all interconnects between parties take place) is an example of a
            public Geographic Site. A shared facility in the basement of a
            multi-tenant business building where all interconnects between
            parties take place is another example of a public Geographic Site.

            private - means that the existence of this Geographic Site is on a
            need-to-know basis. A wiring closet set up inside a customer facility
            just to connect two parties is an example of a private Geographic
            Site. For private sites, the Seller does not return any information
            regarding the existence of this Geographic Site unless it has been
            established that this Buyer is authorized to obtain this information.
      required:
        - id
      type: object
    SiteGeographicSubAddress:
      description:
        "Additional fields used to specify an address, as detailed as possible."
      properties:
        buildingName:
          description: >
            The well-known name of a building that is located at this Geographic
            Address (e.g. where there is one Address for a campus).
          type: string
        subUnit:
          description: >-
            Representation of a SiteMEFSubUnit It is used for describing subunit
            within a subAddress  e.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER,
            UNIT, WHARF.
          items:
            $ref: "#/components/schemas/SiteMEFSubUnit"
          type: array
        levelType:
          description: Describes level types within a building
          type: string
        levelNumber:
          description:
            "Used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2"
          type: string
        privateStreetNumber:
          description: Private streets numbers internal to a private street
          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
      type: object
    SiteMEFSiteType:
      description: >-
        This defines whether a Geographic Site is public or private. public
        means that the existence of this Geographic Site is public information.
        A meet-me-room in a hosted data center facility (where all interconnects
        between parties take place) is an example of a public Geographic Site. A
        shared facility in the basement of a multi-tenant business building
        where all interconnects between parties take place is another example of
        a public Geographic Site. private means that the existence of this
        Geographic Site is on a need-to-know basis. A wiring closet set up
        inside a customer facility just to connect two parties is an example of
        a private Geographic Site. For private sites, the Seller does not return
        any information regarding the existence of this Geographic Site unless
        it has been established that this Buyer is authorized to obtain this
        information.
      enum:
        - public
        - private
      type: string
    SiteMEFSubUnit:
      description: |
        Allows for sub unit identification
        Reference: MEF 79 (Sn 8.9.2)
      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
      type: object
    SiteRelatedContactInformation:
      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.

        Reference: MEF 79 (Sn 8.11)
      properties:
        number:
          description: Phone number
          type: string
        emailAddress:
          description: Email address
          type: string
        role:
          description: The role of the particular contact in a given context.
          type: string
        postalAddress:
          $ref: "#/components/schemas/SiteFieldedAddress"
          description:
            Identifies the postal address of the person or office to be
            contacted.
        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
      type: object
  securitySchemes:
    apiSig:
      type: apiKey
      in: header
      name: X-MEF-SIG
    appId:
      type: apiKey
      in: header
      name: X-MEF-APPID
security: 
  - apiSig: []
    appId: []
