{
  "openapi": "3.0.1",
  "info": {
    "title": "Unified Shopping Cart and Purchase Services",
    "description": "The Unified checkout, is a streamlined solution for product ordering.",
    "version": "v1",
    "contact": {}
  },
  "paths": {
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/payment": {
      "patch": {
        "operationId": "patchPayment",
        "description": "This API  is responsible for updating payment information & provide valid cart response back which is need for every commerce operation.",
        "summary": "Payment to Cart",
        "tags": [
          "Purchase Services"
        ],
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentInfoRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/err500"
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/terms": {
      "patch": {
        "operationId": "patchTerms",
        "description": "This API  updates the terms and acceptance in product order.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Terms and Conditions to Cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermsInputRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/err500"
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/billing-info": {
      "patch": {
        "operationId": "patchBillingInfo",
        "description": "This API  is responsible for updating billing info & provide valid cart response back which is needed for every commerce operation.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Update Billing Info of the cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingInfoRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/billing-info-spi": {
      "patch": {
        "operationId": "patchSecurityInfo",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Update security information related to the account",
        "description": "This endpoint takes in the billing account Id and updates security information related to the account (security questions, etc.)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingInfoSpiRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while saving spi data {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/accounts": {
      "patch": {
        "operationId": "patchAccounts",
        "description": "Updating user account billing preferences for both autopay and paperless.",
        "summary": "Update billing preference for both autopay & paperless ",
        "tags": [
          "Purchase Services"
        ],
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountPreferenceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while saving spi data {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/related-party": {
      "patch": {
        "operationId": "patchRelatedParty",
        "description": "This API is responsible for updating related party of the cart.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Update Related Party of the cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRelatedParty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/validate": {
      "get": {
        "operationId": "validateCart",
        "description": "Validate Shopping Cart and returns product configuration validation results",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Validate Cart with a cart Id",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResponse"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/checkout": {
      "post": {
        "operationId": "checkout",
        "description": "Checkout while adding optional checkout entities",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Checkout while adding optional checkout entities",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/fulfillment-options": {
      "get": {
        "tags": [
          "Fulfillment Operations"
        ],
        "summary": "Cart Shipping Options",
        "description": "his API is responsible for returning the fulfillment options & providing valid cart response back which is needed for every commerce operation.",
        "operationId": "getFulfillmentInfo",
        "parameters": [
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the ProductOrder i.e cart id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "postCode",
            "in": "query",
            "description": "To fetch fulfillment details based on postCode",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CartFulfillmentOptionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "patchFullfillment",
        "description": "This API  is responsible for updating fulfillment options & provide valid cart response back which is need for every commerce operation.",
        "summary": "Fulfillment to Cart",
        "tags": [
          "Fulfillment Operations"
        ],
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentOptionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/err500"
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/risk-assessment": {
      "post": {
        "operationId": "updateRiskAssessment",
        "description": "This API  is responsible for updating risk assessment info & provide valid cart response back which is need for every commerce operation.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Update Risk Assessment of the cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskAssessmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskAssessmentResponse"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{cartId}/submit": {
      "post": {
        "operationId": "submitOrder",
        "description": "This API is responsible for submitting  shopping cart & provide valid cart response back which is needed for every commerce operation.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Submit Order",
        "parameters": [
          {
            "name": "cartId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitOrderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Succcess",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitOrderResponse"
                },
                "examples": {
                  "OCE_StepContext_Response": {
                    "$ref": "#/components/examples/OCE_StepContext_Response"
                  },
                  "OCE_Milestone_Failed": {
                    "$ref": "#/components/examples/OCE_Milestone_Failed"
                  },
                  "OCE_Milestone_Conflict": {
                    "$ref": "#/components/examples/OCE_Milestone_Conflict"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResponse"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {cartId}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                },
                "examples": {
                  "OCE_Realtime_Activation_Failure_Eg1": {
                    "$ref": "#/components/examples/OCE_Realtime_Activation_Failure_Eg1"
                  },
                  "OCE_Realtime_Activation_Failure_Eg2": {
                    "$ref": "#/components/examples/OCE_Realtime_Activation_Failure_Eg2"
                  },
                  "OCE_Realtime_Activation_Failure_Eg3": {
                    "$ref": "#/components/examples/OCE_Realtime_Activation_Failure_Eg3"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/orders/summary": {
      "get": {
        "operationId": "getOrderSummary",
        "description": "This API will return productOrder along with details of various referred entities in productOrder. It is useful for rendering cart review page prior to order submit or for generating order confirmation page or an order receipt. cartId query parameter to be used prior to order submit.\n",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Order Summary",
        "parameters": [
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          },
          {
            "name": "cartId",
            "description": "Shopping CartId",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Shopping CartId",
              "example": "004b9s50-d0f5-12df-a139-dbb73e83dd0f",
              "type": "string"
            }
          },
          {
            "name": "orderSummaryAccessToken",
            "description": "OrderSummaryAccessToken is valid only for 30mins of a successful order submit `Conditionally required`",
            "in": "query",
            "schema": {
              "description": "OrderSummaryAccessToken is valid only for 30mins of a successful order submit",
              "type": "string"
            }
          },
          {
            "name": "customerOrderId",
            "description": "Customer Order Number `Conditionally required`",
            "in": "query",
            "schema": {
              "description": "Customer Order Number",
              "example": "23-291050565591758",
              "type": "string"
            }
          },
          {
            "name": "resend",
            "description": "Resend `Conditionally required`",
            "in": "query",
            "schema": {
              "description": "Resend",
              "example": "yes or no",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderSummaryResponse"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {cartId}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/userinfo/accounts/{billingAccountId}": {
      "get": {
        "operationId": "getAccountInfo",
        "description": "Get BillingAccount SPI information selected by customer. Sensitive data is voltage encrypted at rest as well as in this API response.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Get BillingAccount SPI information",
        "parameters": [
          {
            "name": "billingAccountId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserinfoBillingAccountResponse"
                }
              }
            }
          },
          "204": {
            "description": "no content",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/intents:reprice": {
      "post": {
        "operationId": "reprice",
        "description": "This API updates intents to the Product Order to support intent based repricing & provide valid cart response back which is need for every commerce operation.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Reprice Cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntentsInputRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/msapi/sales/shopping-cart-api/v1/carts/{id}/number-selection": {
      "patch": {
        "operationId": "patchSelectedNumber",
        "description": "This API updates customer selected number to product order after validating with DTAP so that downstream system will get the valid reference ID.",
        "tags": [
          "Purchase Services"
        ],
        "summary": "Number Selection to Cart",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idpctxuuid"
          },
          {
            "$ref": "#/components/parameters/idpctxSessionId"
          },
          {
            "$ref": "#/components/parameters/idpctxUserType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NumberSelectionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrder"
                }
              }
            }
          },
          "500": {
            "description": "internal system error while fetching {id}",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "status": "Failure"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Purchase Services",
      "description": "APIs that aid in purchase related operations."
    },
    {
      "name": "Fulfillment Operations",
      "description": "APIs that aid in fulfillment related operations."
    }
  ],
  "components": {
    "schemas": {
      "FulfillmentOptionsRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "items": {
            "$ref": "#/components/schemas/items"
          }
        }
      },
      "CartFulfillmentOptionsResponse": {
        "title": "CartFulfillmentOptionsResponse",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CartItemFulfillmentOption"
            }
          }
        },
        "description": "ATT++::CartFulfillmentOptionsResponse "
      },
      "CartItemFulfillmentOption": {
        "title": "CartItemFulfillmentOption",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Terms id"
          },
          "selectedFulfillmentOption": {
            "$ref": "#/components/schemas/ProductOrderItem"
          },
          "fulfillmentOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "characteristic": {
            "type": "array",
            "description": "a structure used to describe a characteristics of fulfillmentoptions when not applicable",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          }
        },
        "description": "ATT++::CartFulfillmentOptionsResponse "
      },
      "PaymentInfoRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "payment"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "payment": {
            "$ref": "#/components/schemas/payment"
          }
        }
      },
      "err500": {
        "example": {
          "status": "Failure"
        }
      },
      "IntentsInputRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "required": [
          "intent"
        ],
        "properties": {
          "intent": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "value",
                "resource"
              ],
              "additionalProperties": false,
              "properties": {
                "value": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "NO_AUTO_PAY",
                      "E_BILL",
                      "PAPER_BILL",
                      "AUTO_PAY_WITH_BANK_DRAFT",
                      "AUTO_PAY_WITH_CREDIT_CARD",
                      "AUTO_PAY_WITH_DEBIT_CARD",
                      "ORDER_WIRELESS",
                      "ORDER_BROADBAND",
                      "WITHOUT_WIRELESS",
                      "WITHOUT_BROADBAND"
                    ]
                  }
                },
                "resource": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelatedResource"
                  }
                }
              }
            }
          }
        }
      },
      "TermsInputRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "required": [
          "agreement"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "agreement": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "resource"
              ],
              "properties": {
                "id": {
                  "description": "Terms id",
                  "type": "string"
                },
                "name": {
                  "description": "Terms name",
                  "type": "string"
                },
                "extensions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KeyValueObject"
                  }
                },
                "resource": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelatedResource"
                  }
                }
              }
            }
          }
        }
      },
      "BillingInfoRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "required": [
          "billingAccount"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "billingAccount": {
            "$ref": "#/components/schemas/billingAccount"
          }
        }
      },
      "BillingInfoSpiRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "required": [
          "billingAccountSpi"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "billingAccountSpi": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "billingAccount",
              "userinfo"
            ],
            "properties": {
              "billingAccount": {
                "$ref": "#/components/schemas/BillingAccountRef"
              },
              "userinfo": {
                "$ref": "#/components/schemas/Userinfo"
              }
            }
          }
        }
      },
      "AccountPreferenceRequest": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "billingAccount"
          ],
          "properties": {
            "billingAccount": {
              "$ref": "#/components/schemas/BillingAccountRef"
            },
            "billStructure": {
              "$ref": "#/components/schemas/BillStructure"
            },
            "defaultPaymentMethod": {
              "description": "PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@referredType": {
                  "description": "The actual type of the target instance when needed for disambiguation.",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "characteristic": {
                  "type": "array",
                  "items": {
                    "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "value"
                    ],
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the characteristic",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the characteristic",
                        "type": "string"
                      },
                      "valueType": {
                        "description": "Data type of the value of the characteristic",
                        "type": "string"
                      }
                    }
                  }
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the related entity.",
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "UpdateRelatedParty": {
        "type": "object",
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedPartyCommerce"
            }
          }
        }
      },
      "ValidationResponse": {
        "description": "TMF++::Validation result that is associated with the product order\n",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@referredType": {
            "description": "The actual type of the target instance when needed for disambiguation.",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "configuration": {
            "description": "Configuration Components\n",
            "type": "array",
            "items": {
              "description": "ATT++::Message associated with the validation failure",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "postOrderConfigurable": {
                  "description": "Component Post Order Product Order Configuration\n",
                  "type": "boolean"
                },
                "properties": {
                  "description": "Name/value pair\n",
                  "type": "array",
                  "items": {
                    "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "value"
                    ],
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the characteristic",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the characteristic",
                        "type": "string"
                      },
                      "valueType": {
                        "description": "Data type of the value of the characteristic",
                        "type": "string"
                      }
                    }
                  }
                },
                "readOnly": {
                  "description": "Component allowed for configuration or not.\n",
                  "type": "boolean"
                },
                "required": {
                  "description": "Component required for Product Order Configuration\n",
                  "type": "boolean"
                },
                "resource": {
                  "description": "Resource that is associated with the message\n",
                  "type": "array",
                  "items": {
                    "description": "TMF++::Resource that is associated with the validation message (that is, triggered the validation failure)\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "containedResource": {
                        "description": "Other resources, specs, or offers that are linked to the message but did not trigger the validation message\n",
                        "type": "array",
                        "items": {
                          "description": "TMF++::Resources that are contained in the validation message\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the resource\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the resource\n",
                              "type": "string"
                            },
                            "variable": {
                              "description": "Variables that are related to the resource\n",
                              "type": "array",
                              "items": {
                                "description": "Variable that is associated with a resource\n",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "description": "Unique identifier of the variable\n",
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Type of the variable\n",
                                    "type": "string"
                                  },
                                  "value": {
                                    "description": "Value(s) of the variable\n",
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "id": {
                        "description": "Unique identifier of the resource\n",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of the resource\n",
                        "type": "string"
                      },
                      "variable": {
                        "description": "Variables related to the resource\n",
                        "type": "array",
                        "items": {
                          "description": "Variable that is associated with a resource\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the variable\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the variable\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value(s) of the variable\n",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "status": {
                  "description": "Type of the component\n",
                  "type": "string"
                },
                "subtype": {
                  "description": "Sub Type of the Component\n",
                  "type": "string"
                },
                "type": {
                  "description": "Type of the component\n",
                  "type": "string"
                }
              }
            }
          },
          "configurationChange": {
            "description": "Configuration change\n",
            "type": "array",
            "items": {
              "description": "TMF++::Configuration change recommended for a validated resource\n",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "configurationChangeSource": {
                  "description": "Holds a list of the impacting components that are involved in action rule\n- enablmentRelation - The action rule has impacting enablment relation functionality or was created by this functionality.\n- commertialRelation - The action rule has impacting commertial relation functionality or was created by this functionality.\n- subscriptionRelation - The action rule has impacting subscription relation or was created by this functionality. functionality\n- catalog - The action rule was created by catalog.\n",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "id": {
                  "description": "Unique identifier of the configuration change\n",
                  "type": "string"
                },
                "parameter": {
                  "type": "array",
                  "items": {
                    "description": "TMF++::Name/value pair of the configuration change parameters\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the parameter\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value(s) of the parameter\n",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "valueType": {
                        "description": "Types of each Value in the parameter array\nAs a default - when empty - the type is string.\nAlso will be supported-\n** HashMap - a jason format representation of key value <string,string> map.\n",
                        "type": "string"
                      }
                    }
                  }
                },
                "patchElement": {
                  "type": "array",
                  "items": {
                    "description": "TMF++::Patched resource part\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the related entity.",
                        "type": "string"
                      },
                      "op": {
                        "description": "Operation that is associated with the patched resource part. Valid values are *add*, *remove*, or *replace*.\n",
                        "type": "string"
                      },
                      "path": {
                        "description": "Path of this resource part within the patched resource, for example, */note*, */name*, or */orderItem/quantity*\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the patched resource part\n",
                        "type": "object"
                      }
                    }
                  }
                },
                "path": {
                  "description": "Path to the configuration change in the resource model\n",
                  "type": "string"
                },
                "severity": {
                  "description": "Severity of the configuration change\n",
                  "type": "string"
                },
                "skipRevalidation": {
                  "description": "Indicates whether revalidation of the configuration change is required\n",
                  "type": "boolean"
                },
                "text": {
                  "description": "Localized descriptive configuration change message\n",
                  "type": "string"
                },
                "type": {
                  "description": "Implementation discriminator of the configuration change\n",
                  "type": "string"
                }
              }
            }
          },
          "error": {
            "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "reason"
            ],
            "properties": {
              "@baseType": {
                "description": "When sub-classing, this defines the super-class",
                "type": "string"
              },
              "@schemaLocation": {
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                "type": "string",
                "format": "uri"
              },
              "@type": {
                "description": "When sub-classing, this defines the sub-class Extensible name",
                "type": "string"
              },
              "code": {
                "description": "Application relevant detail, defined in the API or a common list",
                "type": "string"
              },
              "message": {
                "description": "More details and corrective actions related to the error which can be shown to a client user",
                "type": "string"
              },
              "reason": {
                "description": "Explanation of the reason for the error which can be shown to a client user",
                "type": "string"
              },
              "referenceError": {
                "description": "URI of documentation describing the error",
                "type": "string",
                "format": "uri"
              },
              "status": {
                "description": "HTTP Error code extension",
                "type": "string"
              }
            }
          },
          "extensions": {
            "description": "TMF++::Extensions",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "@baseType": {
                "description": "When sub-classing, this defines the super-class",
                "type": "string"
              },
              "@referredType": {
                "description": "The actual type of the target instance when needed for disambiguation.",
                "type": "string"
              },
              "@schemaLocation": {
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                "type": "string",
                "format": "uri"
              },
              "@type": {
                "description": "When sub-classing, this defines the sub-class Extensible name",
                "type": "string"
              },
              "BillingCycleCode": {
                "type": "string"
              },
              "CCSOfferID": {
                "type": "string"
              },
              "CycleCloseDay": {
                "type": "string"
              },
              "ModifyAction": {
                "type": "string"
              },
              "ModifyReason": {
                "type": "string"
              },
              "href": {
                "description": "Hyperlink reference",
                "type": "string",
                "format": "uri"
              },
              "id": {
                "description": "unique identifier",
                "type": "string"
              },
              "initDeliveryByFromDate": {
                "type": "string",
                "format": "date-time"
              },
              "initDeliveryByToDate": {
                "type": "string",
                "format": "date-time"
              },
              "initPromiseFromDate": {
                "type": "string",
                "format": "date-time"
              },
              "initPromiseToDate": {
                "type": "string",
                "format": "date-time"
              },
              "lineSalesRep": {
                "type": "string"
              },
              "substitutionAction": {
                "type": "string"
              },
              "name": {
                "description": "Name of the related entity.",
                "type": "string"
              },
              "resumeCommonOrderId": {
                "type": "string"
              }
            }
          },
          "href": {
            "description": "Hyperlink reference",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "name": {
            "description": "Name of the related entity.",
            "type": "string"
          },
          "readyToCheckout": {
            "description": "Ready To Checkout\n",
            "type": "boolean"
          },
          "readyToSubmit": {
            "description": "Ready to Submit\n",
            "type": "boolean"
          },
          "status": {
            "description": "Validation status\n",
            "type": "string"
          },
          "validationMessage": {
            "description": "Validation message\n",
            "type": "array",
            "items": {
              "description": "TMF++::Message associated with the validation failure\n",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Non-localized name identifier of the validation message\n",
                  "type": "string"
                },
                "parameter": {
                  "description": "Name/value pair of the validation message\n",
                  "type": "array",
                  "items": {
                    "description": "TMF++::Name/value pair of the validation message parameter\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the parameter\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the parameter\n",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "path": {
                  "description": "Path to the resource part to which the validation message is related\n",
                  "type": "string"
                },
                "resource": {
                  "description": "Resource that is associated with the message\n",
                  "type": "array",
                  "items": {
                    "description": "TMF++::Resource that is associated with the validation message (that is, triggered the validation failure)\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "containedResource": {
                        "description": "Other resources, specs, or offers that are linked to the message but did not trigger the validation message\n",
                        "type": "array",
                        "items": {
                          "description": "TMF++::Resources that are contained in the validation message\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the resource\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the resource\n",
                              "type": "string"
                            },
                            "variable": {
                              "description": "Variables that are related to the resource\n",
                              "type": "array",
                              "items": {
                                "description": "Variable that is associated with a resource\n",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "description": "Unique identifier of the variable\n",
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Type of the variable\n",
                                    "type": "string"
                                  },
                                  "value": {
                                    "description": "Value(s) of the variable\n",
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "id": {
                        "description": "Unique identifier of the resource\n",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of the resource\n",
                        "type": "string"
                      },
                      "variable": {
                        "description": "Variables related to the resource\n",
                        "type": "array",
                        "items": {
                          "description": "Variable that is associated with a resource\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the variable\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the variable\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value(s) of the variable\n",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "severity": {
                  "description": "Severity of the validation message\n",
                  "type": "string"
                },
                "subtype": {
                  "description": "Distinct code which represents the issue\n",
                  "type": "string"
                },
                "text": {
                  "description": "Localized descriptive validation message\n",
                  "type": "string"
                },
                "type": {
                  "description": "Type of the validation message\n",
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "CheckoutRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "extensions"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "billingAccount": {
            "$ref": "#/components/schemas/billingAccount"
          },
          "fulfillment": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "items": {
                "$ref": "#/components/schemas/items"
              }
            }
          },
          "payment": {
            "$ref": "#/components/schemas/payment"
          }
        }
      },
      "RiskAssessmentRequest": {
        "description": "ATT++::An identified part of the order. A product order is decomposed into one or more order items.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "autoApplyRiskAssesmentPolicyToCart",
          "applicationDetails"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "autoApplyRiskAssesmentPolicyToCart": {
            "type": "boolean"
          },
          "applicationDetails": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "unifiedCreditTransactionId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "unifiedCreditTransactionId": {
                "type": "string"
              },
              "debtPaymentComplete": {
                "type": "boolean"
              }
            }
          }
        }
      },
      "RiskAssessmentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "description": "Policy Status",
            "type": "string"
          },
          "policyImpactToCart": {
            "description": "Policy impacts to Cart",
            "type": "boolean"
          },
          "policyAppliedToCart": {
            "description": "Policy applied to Cart",
            "type": "boolean"
          },
          "applicationDetails": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "unifiedCreditTransactionId": {
                "type": "string"
              },
              "unifiedPolicyTransactionId": {
                "type": "string"
              }
            }
          },
          "productOrder": {
            "$ref": "#/components/schemas/ProductOrder"
          },
          "riskAssessmentResult": {
            "type": "array",
            "items": {
              "description": "This resource reflects the risk assessment",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "overallScore": {
                  "description": "An overall assessment of the risk, composed from the individual scores",
                  "type": "number",
                  "format": "float"
                },
                "productType": {
                  "type": "string"
                },
                "resource": {
                  "type": "array",
                  "items": {
                    "description": "TMF++::Resource that is associated with the validation message (that is, triggered the validation failure)\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "containedResource": {
                        "description": "Other resources, specs, or offers that are linked to the message but did not trigger the validation message\n",
                        "type": "array",
                        "items": {
                          "description": "TMF++::Resources that are contained in the validation message\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the resource\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the resource\n",
                              "type": "string"
                            },
                            "variable": {
                              "description": "Variables that are related to the resource\n",
                              "type": "array",
                              "items": {
                                "description": "Variable that is associated with a resource\n",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "description": "Unique identifier of the variable\n",
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Type of the variable\n",
                                    "type": "string"
                                  },
                                  "value": {
                                    "description": "Value(s) of the variable\n",
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "id": {
                        "description": "Unique identifier of the resource\n",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of the resource\n",
                        "type": "string"
                      },
                      "variable": {
                        "description": "Variables related to the resource\n",
                        "type": "array",
                        "items": {
                          "description": "Variable that is associated with a resource\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "description": "Unique identifier of the variable\n",
                              "type": "string"
                            },
                            "type": {
                              "description": "Type of the variable\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value(s) of the variable\n",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "score": {
                  "description": "Additional characteristics for which the risk might be assessed, optional input to the task",
                  "type": "array",
                  "items": {
                    "description": "This resource reflects a score for a specific risk",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "riskName": {
                        "description": "The name of the risk",
                        "enum": [
                          "FraudRisk",
                          "BadPaymentRisk",
                          "CreditGamingRisk",
                          "IDConfidenceRisk",
                          "PaymentMethodRisk",
                          "AbusiveRisk"
                        ],
                        "type": "string"
                      },
                      "score": {
                        "description": "The risk score",
                        "type": "number",
                        "format": "float"
                      }
                    }
                  }
                },
                "securityAmount": {
                  "type": "number"
                },
                "securityDescription": {
                  "type": "string"
                },
                "securityType": {
                  "type": "string"
                },
                "validFor": {
                  "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "SubmitOrderRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "extensions"
        ],
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "quote": {
            "$ref": "#/components/schemas/QuoteRef"
          }
        }
      },
      "SubmitOrderResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "description": "Possible values for the state of the order",
            "enum": [
              "Acknowledged",
              "Amended",
              "Cancelled",
              "Completed",
              "Draft",
              "Failed",
              "Fallout",
              "Held",
              "InProgress",
              "Partial",
              "PendingAmend",
              "PendingCancel",
              "Submitted"
            ],
            "type": "string"
          },
          "customerOrderId": {
            "type": "string"
          },
          "completionDate": {
            "type": "string"
          },
          "orderSummaryAccessToken": {
            "type": "string"
          },
          "validation": {
            "$ref": "#/components/schemas/ValidationResponse"
          }
        }
      },
      "OrderSummaryResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "productOrder": {
            "$ref": "#/components/schemas/ProductOrder"
          },
          "customerInfo": {
            "$ref": "#/components/schemas/installationDayContact"
          },
          "accountInfo": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "accounts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@type": {
                      "type": "string"
                    },
                    "accountSubType": {
                      "type": "string"
                    },
                    "accountType": {
                      "type": "string"
                    },
                    "amountDue": {
                      "type": "number"
                    },
                    "autoBillPayIndicator": {
                      "enum": [
                        "N",
                        "Y"
                      ],
                      "type": "string"
                    },
                    "billDueDate": {
                      "type": "string"
                    },
                    "billStructure": {
                      "$ref": "#/components/schemas/BillStructure"
                    },
                    "billingMarket": {
                      "type": "string"
                    },
                    "contact": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Contact"
                      }
                    },
                    "createdOn": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "creditRisk": {
                      "type": "string"
                    },
                    "currencyCode": {
                      "type": "string"
                    },
                    "customerSubType": {
                      "type": "string"
                    },
                    "defaultPaymentMethod": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      }
                    },
                    "dslDryLoopInd": {
                      "type": "string"
                    },
                    "familyName": {
                      "type": "string"
                    },
                    "financialAccount": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      }
                    },
                    "givenName": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "isEmployee": {
                      "type": "string"
                    },
                    "languagePreference": {
                      "type": "string"
                    },
                    "lastModified": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "name": {
                      "type": "string"
                    },
                    "openDate": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "pastDue": {
                      "type": "number"
                    },
                    "potsBillingId": {
                      "type": "string"
                    },
                    "potsCustCode": {
                      "type": "string"
                    },
                    "profileType": {
                      "type": "string"
                    },
                    "ratingType": {
                      "type": "string"
                    },
                    "relatedParty": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/RelatedPartyCommerce"
                      }
                    },
                    "serviceNbr": {
                      "type": "string"
                    },
                    "serviceType": {
                      "type": "array",
                      "items": {
                        "enum": [
                          "fiber",
                          "wirelessbroadband",
                          "wirelessprepaid",
                          "uverse"
                        ],
                        "type": "string"
                      }
                    },
                    "state": {
                      "type": "string"
                    },
                    "stateDate": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "stateReason": {
                      "type": "string"
                    },
                    "systemOfRecord": {
                      "type": "string"
                    },
                    "relatedPartyRef": {
                      "description": "RelatedParty reference. A related party defines party or party role linked to a specific entity.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@referredType": {
                          "description": "The actual type of the target instance when needed for disambiguation.",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "href": {
                          "description": "Reference of the related party, could be a party reference or a party role reference",
                          "type": "string",
                          "format": "uri"
                        },
                        "id": {
                          "description": "Unique identifier of a related party",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the related party",
                          "type": "string"
                        },
                        "role": {
                          "description": "Role of the related party.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "numberInfo": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "numberInfos": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "cartId": {
                      "type": "string"
                    },
                    "ban": {
                      "type": "string"
                    },
                    "marketCode": {
                      "type": "string"
                    },
                    "subMarketCode": {
                      "type": "string"
                    },
                    "compCode": {
                      "type": "string"
                    },
                    "portType": {
                      "enum": [
                        "NL",
                        "LNP"
                      ],
                      "type": "string"
                    },
                    "customerType": {
                      "type": "string"
                    },
                    "numberPortingDetails": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "ctn": {
                          "type": "string"
                        },
                        "formerCarrier": {
                          "type": "string"
                        },
                        "formerCarrierAccount": {
                          "type": "string"
                        },
                        "formerCarrierPassword": {
                          "type": "string"
                        },
                        "formerCarrierPersonalDetails": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "firstName": {
                              "type": "string"
                            },
                            "lastName": {
                              "type": "string"
                            },
                            "middleInit": {
                              "type": "string"
                            },
                            "namePrefix": {
                              "type": "string"
                            },
                            "nameSuffix": {
                              "type": "string"
                            },
                            "streetNumber": {
                              "type": "string"
                            },
                            "streetName": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "state": {
                              "type": "string"
                            },
                            "zipCode": {
                              "type": "string"
                            },
                            "contactNumber": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "newNumberDetails": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "areaCode": {
                          "type": "string"
                        },
                        "serviceArea": {
                          "type": "string"
                        },
                        "zip": {
                          "type": "string"
                        },
                        "location": {
                          "type": "string"
                        }
                      }
                    },
                    "errorMessage": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "accountSecurity": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "billingAccount",
                "userinfo"
              ],
              "properties": {
                "billingAccount": {
                  "$ref": "#/components/schemas/BillingAccountRef"
                },
                "userinfo": {
                  "$ref": "#/components/schemas/Userinfo"
                }
              }
            }
          },
          "addresses": {
            "type": "array",
            "items": {
              "description": "Structured textual way of describing how to find a Property in an urban area (country properties are often defined differently).\nNote : Address corresponds to SID UrbanPropertyAddress",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "addressCharacteristic": {
                  "type": "array",
                  "items": {
                    "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "characteristicRelationship": {
                        "type": "array",
                        "items": {
                          "description": "Another Characteristic that is related to the current Characteristic;",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "@baseType": {
                              "description": "When sub-classing, this defines the super-class",
                              "type": "string"
                            },
                            "@schemaLocation": {
                              "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                              "type": "string",
                              "format": "uri"
                            },
                            "@type": {
                              "description": "When sub-classing, this defines the sub-class Extensible name",
                              "type": "string"
                            },
                            "href": {
                              "description": "Hyperlink reference",
                              "type": "string",
                              "format": "uri"
                            },
                            "id": {
                              "description": "Unique identifier of the characteristic",
                              "type": "string"
                            },
                            "relationshipType": {
                              "description": "The type of relationship",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "id": {
                        "description": "Unique identifier of the characteristic",
                        "type": "string"
                      },
                      "metadata": {
                        "description": "Metadata of the characteristic\n",
                        "type": "array",
                        "items": {
                          "description": "Metadata\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "metadataType": {
                              "description": "Type of the metadata\n",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the metadata\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value of the metadata\n",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "description": "Name of the characteristic",
                        "type": "string"
                      },
                      "value": {
                        "description": "The value of the characteristic",
                        "type": "string"
                      },
                      "valueMetadata": {
                        "description": "Metadata of the characteristic value\n",
                        "type": "array",
                        "items": {
                          "description": "Catalog and operational metadata\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "metadataType": {
                              "description": "Type of the metadata\n",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the metadata\n",
                              "type": "string"
                            },
                            "sourceValue": {
                              "description": "Value of the metadata source\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value of the metadata\n",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "valueType": {
                        "description": "Data type of the value of the characteristic",
                        "type": "string"
                      }
                    }
                  }
                },
                "characteristic": {
                  "type": "array",
                  "items": {
                    "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "characteristicRelationship": {
                        "type": "array",
                        "items": {
                          "description": "Another Characteristic that is related to the current Characteristic;",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "@baseType": {
                              "description": "When sub-classing, this defines the super-class",
                              "type": "string"
                            },
                            "@schemaLocation": {
                              "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                              "type": "string",
                              "format": "uri"
                            },
                            "@type": {
                              "description": "When sub-classing, this defines the sub-class Extensible name",
                              "type": "string"
                            },
                            "href": {
                              "description": "Hyperlink reference",
                              "type": "string",
                              "format": "uri"
                            },
                            "id": {
                              "description": "Unique identifier of the characteristic",
                              "type": "string"
                            },
                            "relationshipType": {
                              "description": "The type of relationship",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "id": {
                        "description": "Unique identifier of the characteristic",
                        "type": "string"
                      },
                      "metadata": {
                        "description": "Metadata of the characteristic\n",
                        "type": "array",
                        "items": {
                          "description": "Metadata\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "metadataType": {
                              "description": "Type of the metadata\n",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the metadata\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value of the metadata\n",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "description": "Name of the characteristic",
                        "type": "string"
                      },
                      "value": {
                        "description": "The value of the characteristic",
                        "type": "string"
                      },
                      "valueMetadata": {
                        "description": "Metadata of the characteristic value\n",
                        "type": "array",
                        "items": {
                          "description": "Catalog and operational metadata\n",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "metadataType": {
                              "description": "Type of the metadata\n",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the metadata\n",
                              "type": "string"
                            },
                            "sourceValue": {
                              "description": "Value of the metadata source\n",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value of the metadata\n",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "valueType": {
                        "description": "Data type of the value of the characteristic",
                        "type": "string"
                      }
                    }
                  }
                },
                "city": {
                  "description": "City that the address is in",
                  "type": "string"
                },
                "country": {
                  "description": "Country that the address is in",
                  "type": "string"
                },
                "geographicLocation": {
                  "description": "A GeographicLocation is a pure-virtual super-class to the GeoJSON-aligned geometries of Point (addresses and locations), MultiPoint, LineString (streets, highways and boundaries), MultiLineString and Polygon (countries, provinces, tracts of land). Use the @type attribute to specify which of these is being specified by the geometry attribute.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "@type"
                  ],
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@referredType": {
                      "description": "The actual type of the target instance when needed for disambiguation.",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "enum": [
                        "GeoJsonPoint",
                        "GeoJsonMultiPoint",
                        "GeoJsonLineString",
                        "GeoJsonMultiLineString",
                        "GeoJsonPolygon"
                      ],
                      "type": "string"
                    },
                    "bbox": {
                      "description": "A bounding box array that contains the geometry. The axes order follows the axes order of the geometry",
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    "characteristic": {
                      "type": "array",
                      "items": {
                        "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "characteristicRelationship": {
                            "type": "array",
                            "items": {
                              "description": "Another Characteristic that is related to the current Characteristic;",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "@baseType": {
                                  "description": "When sub-classing, this defines the super-class",
                                  "type": "string"
                                },
                                "@schemaLocation": {
                                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                  "type": "string",
                                  "format": "uri"
                                },
                                "@type": {
                                  "description": "When sub-classing, this defines the sub-class Extensible name",
                                  "type": "string"
                                },
                                "href": {
                                  "description": "Hyperlink reference",
                                  "type": "string",
                                  "format": "uri"
                                },
                                "id": {
                                  "description": "Unique identifier of the characteristic",
                                  "type": "string"
                                },
                                "relationshipType": {
                                  "description": "The type of relationship",
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "id": {
                            "description": "Unique identifier of the characteristic",
                            "type": "string"
                          },
                          "metadata": {
                            "description": "Metadata of the characteristic\n",
                            "type": "array",
                            "items": {
                              "description": "Metadata\n",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "metadataType": {
                                  "description": "Type of the metadata\n",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the metadata\n",
                                  "type": "string"
                                },
                                "value": {
                                  "description": "Value of the metadata\n",
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "name": {
                            "description": "Name of the characteristic",
                            "type": "string"
                          },
                          "value": {
                            "description": "The value of the characteristic",
                            "type": "string"
                          },
                          "valueMetadata": {
                            "description": "Metadata of the characteristic value\n",
                            "type": "array",
                            "items": {
                              "description": "Catalog and operational metadata\n",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "metadataType": {
                                  "description": "Type of the metadata\n",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the metadata\n",
                                  "type": "string"
                                },
                                "sourceValue": {
                                  "description": "Value of the metadata source\n",
                                  "type": "string"
                                },
                                "value": {
                                  "description": "Value of the metadata\n",
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "valueType": {
                            "description": "Data type of the value of the characteristic",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "href": {
                      "description": "Hyperlink reference",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "unique identifier",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the related entity.",
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    },
                    "validated": {
                      "type": "boolean"
                    }
                  }
                },
                "geographicSubAddress": {
                  "type": "array",
                  "items": {
                    "description": "Representation of a GeographicSubAddress \nIt is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "buildingName": {
                        "description": "allows for buildings that have well-known names",
                        "type": "string"
                      },
                      "href": {
                        "description": "Link to the subAddress",
                        "type": "string",
                        "format": "uri"
                      },
                      "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"
                      },
                      "name": {
                        "description": "Name of the subAddress to identify it with a meaningful identification",
                        "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"
                      },
                      "subAddressType": {
                        "description": "Type of subAddress : it can be a subunit or a private street",
                        "type": "string"
                      },
                      "subUnitNumber": {
                        "description": "the discriminator used for the subunit\noften just a simple number e.g. FLAT 5, may also be a range",
                        "type": "string"
                      },
                      "subUnitType": {
                        "description": "the type of subunit\ne.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF",
                        "type": "string"
                      }
                    }
                  }
                },
                "href": {
                  "description": "Unique reference of the place",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "Unique identifier of the place",
                  "type": "string"
                },
                "locality": {
                  "description": "An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET]",
                  "type": "string"
                },
                "name": {
                  "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
                  "type": "string"
                },
                "postcode": {
                  "description": "descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode)",
                  "type": "string"
                },
                "postcodeExtension": {
                  "type": "string"
                },
                "role": {
                  "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"
                },
                "validated": {
                  "type": "boolean"
                }
              }
            }
          },
          "appointment": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "selected": {
                  "description": "An Appointment is an arrangement to do something or meet someone at a particular time, at a place (for face to face appointment) or in a contact medium (for phone appointment).",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "attachment": {
                      "type": "array",
                      "items": {
                        "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@referredType": {
                            "description": "The actual type of the target instance when needed for disambiguation.",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "attachmentType": {
                            "description": "Attachment type such as video, picture",
                            "type": "string"
                          },
                          "content": {
                            "description": "The actual contents of the attachment object, if embedded, encoded as base64",
                            "type": "string",
                            "format": "base64"
                          },
                          "description": {
                            "description": "A narrative text describing the content of the attachment",
                            "type": "string"
                          },
                          "href": {
                            "description": "URL serving as reference for the attachment resource",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "Unique-Identifier for this attachment",
                            "type": "string"
                          },
                          "mimeType": {
                            "description": "Attachment mime type such as extension file for video, picture and document",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the related entity.",
                            "type": "string"
                          },
                          "size": {
                            "description": "The size of the attachment.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "amount": {
                                "description": "Numeric value in a given unit",
                                "default": 1,
                                "type": "number",
                                "format": "double"
                              },
                              "units": {
                                "description": "Unit",
                                "type": "string"
                              }
                            }
                          },
                          "url": {
                            "description": "Link to the attachment media/content",
                            "type": "string",
                            "format": "uri"
                          },
                          "validFor": {
                            "description": "The period of time for which the attachment is valid",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "endDateTime": {
                                "description": "End of the time period, using IETC-RFC-3339 format",
                                "type": "string",
                                "format": "date-time"
                              },
                              "startDateTime": {
                                "description": "Start of the time period, using IETC-RFC-3339 format",
                                "type": "string",
                                "format": "date-time"
                              }
                            }
                          }
                        }
                      }
                    },
                    "calendarEvent": {
                      "description": "A calendar event reference (CalendarEventRef). The appointment is associated with a calendar event (an happening at a point of time) associated to a calendar entry.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@referredType": {
                          "description": "The actual type of the target instance when needed for disambiguation.",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "href": {
                          "description": "Hyperlink reference",
                          "type": "string",
                          "format": "uri"
                        },
                        "id": {
                          "description": "unique identifier",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the related entity.",
                          "type": "string"
                        }
                      }
                    },
                    "category": {
                      "description": "Business category : intervention for example or to be more precise after SalesIntervention, orderDeliveryIntervention,...",
                      "type": "string"
                    },
                    "contactMedium": {
                      "type": "array",
                      "items": {
                        "description": "Indicates the contact medium that could be used to contact the party.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "characteristic": {
                            "description": "Any additional characteristic(s) of this contact medium",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "@baseType": {
                                "description": "When sub-classing, this defines the super-class",
                                "type": "string"
                              },
                              "@schemaLocation": {
                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                "type": "string",
                                "format": "uri"
                              },
                              "@type": {
                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                "type": "string"
                              },
                              "city": {
                                "description": "The city",
                                "type": "string"
                              },
                              "contactType": {
                                "description": "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…",
                                "type": "string"
                              },
                              "country": {
                                "description": "The country",
                                "type": "string"
                              },
                              "emailAddress": {
                                "description": "Full email address in standard format",
                                "type": "string"
                              },
                              "faxNumber": {
                                "description": "The fax number of the contact",
                                "type": "string"
                              },
                              "href": {
                                "description": "Hyperlink reference",
                                "type": "string",
                                "format": "uri"
                              },
                              "id": {
                                "description": "unique identifier",
                                "type": "string"
                              },
                              "phoneNumber": {
                                "description": "The primary phone number of the contact",
                                "type": "string"
                              },
                              "place": {
                                "description": "Place reference. Place defines the places where the products are sold or delivered.",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "@baseType": {
                                    "description": "When sub-classing, this defines the super-class",
                                    "type": "string"
                                  },
                                  "@schemaLocation": {
                                    "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                    "type": "string",
                                    "format": "uri"
                                  },
                                  "@type": {
                                    "description": "When sub-classing, this defines the sub-class Extensible name",
                                    "type": "string"
                                  },
                                  "characteristic": {
                                    "type": "array",
                                    "items": {
                                      "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                                      "type": "object",
                                      "additionalProperties": false,
                                      "required": [
                                        "name"
                                      ],
                                      "properties": {
                                        "@baseType": {
                                          "description": "When sub-classing, this defines the super-class",
                                          "type": "string"
                                        },
                                        "@schemaLocation": {
                                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                          "type": "string",
                                          "format": "uri"
                                        },
                                        "@type": {
                                          "description": "When sub-classing, this defines the sub-class Extensible name",
                                          "type": "string"
                                        },
                                        "characteristicRelationship": {
                                          "type": "array",
                                          "items": {
                                            "description": "Another Characteristic that is related to the current Characteristic;",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "@baseType": {
                                                "description": "When sub-classing, this defines the super-class",
                                                "type": "string"
                                              },
                                              "@schemaLocation": {
                                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                                "type": "string",
                                                "format": "uri"
                                              },
                                              "@type": {
                                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                                "type": "string"
                                              },
                                              "href": {
                                                "description": "Hyperlink reference",
                                                "type": "string",
                                                "format": "uri"
                                              },
                                              "id": {
                                                "description": "Unique identifier of the characteristic",
                                                "type": "string"
                                              },
                                              "relationshipType": {
                                                "description": "The type of relationship",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        },
                                        "id": {
                                          "description": "Unique identifier of the characteristic",
                                          "type": "string"
                                        },
                                        "metadata": {
                                          "description": "Metadata of the characteristic\n",
                                          "type": "array",
                                          "items": {
                                            "description": "Metadata\n",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "metadataType": {
                                                "description": "Type of the metadata\n",
                                                "type": "string"
                                              },
                                              "name": {
                                                "description": "Name of the metadata\n",
                                                "type": "string"
                                              },
                                              "value": {
                                                "description": "Value of the metadata\n",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        },
                                        "name": {
                                          "description": "Name of the characteristic",
                                          "type": "string"
                                        },
                                        "value": {
                                          "description": "The value of the characteristic",
                                          "type": "string"
                                        },
                                        "valueMetadata": {
                                          "description": "Metadata of the characteristic value\n",
                                          "type": "array",
                                          "items": {
                                            "description": "Catalog and operational metadata\n",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "metadataType": {
                                                "description": "Type of the metadata\n",
                                                "type": "string"
                                              },
                                              "name": {
                                                "description": "Name of the metadata\n",
                                                "type": "string"
                                              },
                                              "sourceValue": {
                                                "description": "Value of the metadata source\n",
                                                "type": "string"
                                              },
                                              "value": {
                                                "description": "Value of the metadata\n",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        },
                                        "valueType": {
                                          "description": "Data type of the value of the characteristic",
                                          "type": "string"
                                        }
                                      }
                                    }
                                  },
                                  "href": {
                                    "description": "Unique reference of the place",
                                    "type": "string",
                                    "format": "uri"
                                  },
                                  "id": {
                                    "description": "Unique identifier of the place",
                                    "type": "string"
                                  },
                                  "name": {
                                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
                                    "type": "string"
                                  },
                                  "role": {
                                    "type": "string"
                                  },
                                  "validated": {
                                    "type": "boolean"
                                  }
                                }
                              },
                              "postCode": {
                                "description": "Postcode",
                                "type": "string"
                              },
                              "socialNetworkId": {
                                "description": "Identifier as a member of a social network",
                                "type": "string"
                              },
                              "stateOrProvince": {
                                "description": "State or province",
                                "type": "string"
                              },
                              "street1": {
                                "description": "Describes the street",
                                "type": "string"
                              },
                              "street2": {
                                "description": "Complementary street description",
                                "type": "string"
                              },
                              "verified": {
                                "type": "boolean"
                              }
                            }
                          },
                          "href": {
                            "description": "Hyperlink reference",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "unique identifier",
                            "type": "string"
                          },
                          "mediumType": {
                            "description": "Type of the contact medium, such as: email address, telephone number, postal address",
                            "type": "string"
                          },
                          "preferred": {
                            "description": "If true, indicates that is the preferred contact medium",
                            "type": "boolean"
                          },
                          "validFor": {
                            "description": "The time period that the contact medium is valid for",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "endDateTime": {
                                "description": "End of the time period, using IETC-RFC-3339 format",
                                "type": "string",
                                "format": "date-time"
                              },
                              "startDateTime": {
                                "description": "Start of the time period, using IETC-RFC-3339 format",
                                "type": "string",
                                "format": "date-time"
                              }
                            }
                          }
                        }
                      }
                    },
                    "creationDate": {
                      "description": "Appointment creation date",
                      "type": "string",
                      "format": "date-time"
                    },
                    "description": {
                      "description": "Short free text describing the appointment",
                      "type": "string"
                    },
                    "externalId": {
                      "description": "External reference known by the customer",
                      "type": "string"
                    },
                    "href": {
                      "description": "Unique URI used to access to the appointment resource",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "Unique identifier of the appointment",
                      "type": "string"
                    },
                    "lastUpdate": {
                      "description": "Date of last appointment update",
                      "type": "string",
                      "format": "date-time"
                    },
                    "note": {
                      "type": "array",
                      "items": {
                        "description": "Extra information about a given entity",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "author": {
                            "description": "Author of the note",
                            "type": "string"
                          },
                          "date": {
                            "description": "Date of the note",
                            "type": "string",
                            "format": "date-time"
                          },
                          "id": {
                            "description": "Identifier of the note within its containing entity",
                            "type": "string"
                          },
                          "text": {
                            "description": "Text of the note",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "relatedEntity": {
                      "type": "array",
                      "items": {
                        "description": "A reference to an entity, where the type of the entity is not known in advance.",
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "@referredType",
                          "id",
                          "role"
                        ],
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@referredType": {
                            "description": "The actual type of the target instance when needed for disambiguation.",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "href": {
                            "description": "Hyperlink reference",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "unique identifier",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the related entity.",
                            "type": "string"
                          },
                          "role": {
                            "description": "The role of an entity.",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "relatedParty": {
                      "type": "array",
                      "items": {
                        "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.",
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "id",
                          "role"
                        ],
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@referredType": {
                            "description": "The actual type of the target instance when needed for disambiguation.",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "extensions": {
                            "type": "array",
                            "items": {
                              "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "name",
                                "value"
                              ],
                              "properties": {
                                "@baseType": {
                                  "description": "When sub-classing, this defines the super-class",
                                  "type": "string"
                                },
                                "@referredType": {
                                  "description": "The actual type of the target instance when needed for disambiguation.",
                                  "type": "string"
                                },
                                "@schemaLocation": {
                                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                  "type": "string",
                                  "format": "uri"
                                },
                                "@type": {
                                  "description": "When sub-classing, this defines the sub-class Extensible name",
                                  "type": "string"
                                },
                                "href": {
                                  "description": "Hyperlink reference",
                                  "type": "string",
                                  "format": "uri"
                                },
                                "id": {
                                  "description": "unique identifier",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the characteristic",
                                  "type": "string"
                                },
                                "value": {
                                  "description": "Value of the characteristic",
                                  "type": "string"
                                },
                                "valueType": {
                                  "description": "Data type of the value of the characteristic",
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "href": {
                            "description": "Hyperlink reference",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "unique identifier",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the related entity.",
                            "type": "string"
                          },
                          "partyType": {
                            "type": "string"
                          },
                          "role": {
                            "description": "Role played by the related party",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "relatedPlace": {
                      "description": "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself",
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "role"
                      ],
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@referredType": {
                          "description": "The actual type of the target instance when needed for disambiguation.",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "characteristic": {
                          "type": "array",
                          "items": {
                            "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "@baseType": {
                                "description": "When sub-classing, this defines the super-class",
                                "type": "string"
                              },
                              "@schemaLocation": {
                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                "type": "string",
                                "format": "uri"
                              },
                              "@type": {
                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                "type": "string"
                              },
                              "characteristicRelationship": {
                                "type": "array",
                                "items": {
                                  "description": "Another Characteristic that is related to the current Characteristic;",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "@baseType": {
                                      "description": "When sub-classing, this defines the super-class",
                                      "type": "string"
                                    },
                                    "@schemaLocation": {
                                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "@type": {
                                      "description": "When sub-classing, this defines the sub-class Extensible name",
                                      "type": "string"
                                    },
                                    "href": {
                                      "description": "Hyperlink reference",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "id": {
                                      "description": "Unique identifier of the characteristic",
                                      "type": "string"
                                    },
                                    "relationshipType": {
                                      "description": "The type of relationship",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "id": {
                                "description": "Unique identifier of the characteristic",
                                "type": "string"
                              },
                              "metadata": {
                                "description": "Metadata of the characteristic\n",
                                "type": "array",
                                "items": {
                                  "description": "Metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "name": {
                                "description": "Name of the characteristic",
                                "type": "string"
                              },
                              "value": {
                                "description": "The value of the characteristic",
                                "type": "string"
                              },
                              "valueMetadata": {
                                "description": "Metadata of the characteristic value\n",
                                "type": "array",
                                "items": {
                                  "description": "Catalog and operational metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "sourceValue": {
                                      "description": "Value of the metadata source\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "valueType": {
                                "description": "Data type of the value of the characteristic",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "href": {
                          "description": "Hyperlink reference",
                          "type": "string",
                          "format": "uri"
                        },
                        "id": {
                          "description": "unique identifier",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the related entity.",
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "validated": {
                          "type": "boolean"
                        }
                      }
                    },
                    "status": {
                      "description": "Valid values for the lifecycle state of the appointment",
                      "enum": [
                        "initialized",
                        "confirmed",
                        "cancelled",
                        "completed",
                        "failed"
                      ],
                      "type": "string"
                    },
                    "validFor": {
                      "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "endDateTime": {
                          "description": "End of the time period, using IETC-RFC-3339 format",
                          "type": "string",
                          "format": "date-time"
                        },
                        "startDateTime": {
                          "description": "Start of the time period, using IETC-RFC-3339 format",
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  }
                },
                "calendarEventInfo": {
                  "type": "array",
                  "items": {
                    "description": "Base entity schema for use in TMForum Open-APIs",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "day": {
                        "description": "Day where the calendar status applies (e.g.: monday, mon-to-fri, weekdays, weekend, all week, ...)",
                        "type": "string"
                      },
                      "hourPeriod": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "endHour": {
                              "description": "The time when the status ends applying",
                              "type": "string"
                            },
                            "startHour": {
                              "description": "The time when the status starts applying",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "status": {
                        "description": "Indication of the availability of the site (e.g.: open)",
                        "type": "string"
                      },
                      "timeZone": {
                        "description": "Indication of the timezone applicable to the calendar information (e.g.: Paris, GMT+1)",
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "payment": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "details"
              ],
              "properties": {
                "id": {
                  "description": "Unique id of the payment method in the server",
                  "type": "string"
                },
                "href": {
                  "description": "URI where to perform actions on the payment method",
                  "type": "string"
                },
                "role": {
                  "description": "URI where to perform actions on the payment method",
                  "type": "string"
                },
                "name": {
                  "description": "Screen name of the payment method",
                  "type": "string"
                },
                "description": {
                  "description": "Description of the payment method",
                  "type": "string"
                },
                "amount": {
                  "$ref": "#/components/schemas/Money"
                },
                "taxAmount": {
                  "$ref": "#/components/schemas/Money"
                },
                "totalAmount": {
                  "$ref": "#/components/schemas/Money"
                },
                "validFor": {
                  "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                },
                "account": {
                  "description": "Account that owns or can use the payment method",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingAccountRef"
                  }
                },
                "preferred": {
                  "description": "Defines whether this particular method is the preferred one",
                  "type": "boolean"
                },
                "relatedParty": {
                  "description": "Account that owns the payment method",
                  "type": "array",
                  "items": {
                    "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "role"
                    ],
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "extensions": {
                        "type": "array",
                        "items": {
                          "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name",
                            "value"
                          ],
                          "properties": {
                            "@baseType": {
                              "description": "When sub-classing, this defines the super-class",
                              "type": "string"
                            },
                            "@referredType": {
                              "description": "The actual type of the target instance when needed for disambiguation.",
                              "type": "string"
                            },
                            "@schemaLocation": {
                              "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                              "type": "string",
                              "format": "uri"
                            },
                            "@type": {
                              "description": "When sub-classing, this defines the sub-class Extensible name",
                              "type": "string"
                            },
                            "href": {
                              "description": "Hyperlink reference",
                              "type": "string",
                              "format": "uri"
                            },
                            "id": {
                              "description": "unique identifier",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the characteristic",
                              "type": "string"
                            },
                            "value": {
                              "description": "Value of the characteristic",
                              "type": "string"
                            },
                            "valueType": {
                              "description": "Data type of the value of the characteristic",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the related entity.",
                        "type": "string"
                      },
                      "partyType": {
                        "type": "string"
                      },
                      "role": {
                        "description": "Role played by the related party",
                        "type": "string"
                      }
                    }
                  }
                },
                "paymentItem": {
                  "description": "Payment order item reference id",
                  "type": "array",
                  "items": {
                    "description": "Entity reference schema to be use for all entityRef class.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@referredType": {
                        "description": "The actual type of the target instance when needed for disambiguation.",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "unique identifier",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the related entity.",
                        "type": "string"
                      }
                    }
                  }
                },
                "@type": {
                  "description": "Payment method type. The content of the details field depends on the value of this one",
                  "enum": [
                    "cash",
                    "digitalWallet",
                    "tokenizedCard",
                    "bankAccountTransfer",
                    "bankAccountDebit",
                    "bankCard",
                    "account",
                    "bucket",
                    "voucher",
                    "check",
                    "loyaltyAccount"
                  ],
                  "type": "string"
                },
                "authorizationCode": {
                  "description": "Authorization code provided by a financial institution. Typically this would be populated for recurring payments using the method, as payments have an authorization code of their own.",
                  "type": "string"
                },
                "status": {
                  "description": "Current status of the payment method",
                  "type": "string"
                },
                "statusDate": {
                  "description": "Last time the status changed",
                  "type": "string",
                  "format": "date-time"
                },
                "details": {
                  "description": "Details of the payment method. This object's type depends on the value of the type field above",
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      },
      "UserinfoBillingAccountResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "userinfo": {
            "$ref": "#/components/schemas/Userinfo"
          }
        }
      },
      "NumberSelectionRequest": {
        "description": "ToDo: Update the description here.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "number"
        ],
        "properties": {
          "number": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "resource"
              ],
              "properties": {
                "id": {
                  "description": "Number Id",
                  "type": "string"
                },
                "role": {
                  "description": "Number Role",
                  "type": "string"
                },
                "resource": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelatedResource"
                  }
                }
              }
            }
          }
        }
      },
      "ServiceAddressRequest": {
        "description": "Service Address Request. It handles PPU for Wireless as well.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "resource"
              ],
              "properties": {
                "id": {
                  "description": "Service Place Id",
                  "type": "string"
                },
                "resource": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelatedResource"
                  }
                }
              }
            }
          }
        }
      },
      "payment": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "role",
            "resource"
          ],
          "properties": {
            "account": {
              "description": "Account reference. A account may be a party account or a financial account.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@referredType": {
                  "description": "The actual type of the target instance when needed for disambiguation.",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "description": {
                  "description": "Detailed description of the account",
                  "type": "string"
                },
                "href": {
                  "description": "Reference of the account",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "Unique identifier of the account",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the account",
                  "type": "string"
                }
              }
            },
            "id": {
              "description": "Payment Id",
              "type": "string"
            },
            "role": {
              "description": "Payment Role",
              "type": "string"
            },
            "amount": {
              "description": "Payment Amount",
              "type": "number"
            },
            "saveForFuture": {
              "description": "is saveForFuture",
              "type": "boolean"
            },
            "characteristic": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/KeyValueObject"
              }
            },
            "place": {
              "$ref": "#/components/schemas/Place"
            },
            "paymentDate": {
              "type": "string",
              "format": "date-time"
            },
            "authorizationCode": {
              "type": "string"
            },
            "taxAmount": {
              "description": "Tax Amount",
              "type": "number"
            },
            "paymentType": {
              "description": "Payment Type",
              "type": "string"
            },
            "resource": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RelatedResource"
              }
            }
          }
        }
      },
      "KeyValueObject": {
        "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@referredType": {
            "description": "The actual type of the target instance when needed for disambiguation.",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "href": {
            "description": "Hyperlink reference",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "name": {
            "description": "Name of the characteristic",
            "type": "string"
          },
          "value": {
            "description": "Value of the characteristic",
            "type": "string"
          },
          "valueType": {
            "description": "Data type of the value of the characteristic",
            "type": "string"
          }
        }
      },
      "items": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "selectedFulfillmentOption"
          ],
          "properties": {
            "id": {
              "description": "Identifier of the product offer",
              "type": "string"
            },
            "quantity": {
              "description": "Quantity ordered",
              "type": "integer"
            },
            "selectedFulfillmentOption": {
              "$ref": "#/components/schemas/ProductOrderItem"
            }
          }
        }
      },
      "billingAccount": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "place",
            "resource"
          ],
          "properties": {
            "id": {
              "description": "Billing Account Id",
              "type": "string"
            },
            "billStructure": {
              "$ref": "#/components/schemas/BillStructure"
            },
            "characteristic": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/KeyValueObject"
              }
            },
            "place": {
              "$ref": "#/components/schemas/Place"
            },
            "ratingType": {
              "type": "string"
            },
            "resource": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RelatedResource"
              }
            }
          }
        }
      },
      "Userinfo": {
        "description": "Base entity schema for use in TMForum Open-APIs",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "address": {
            "description": "Structured textual way of describing how to find a Property in an urban area (country properties are often defined differently).\nNote : Address corresponds to SID UrbanPropertyAddress",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "@baseType": {
                "description": "When sub-classing, this defines the super-class",
                "type": "string"
              },
              "@schemaLocation": {
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                "type": "string",
                "format": "uri"
              },
              "@type": {
                "description": "When sub-classing, this defines the sub-class Extensible name",
                "type": "string"
              },
              "addressCharacteristic": {
                "type": "array",
                "items": {
                  "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "characteristicRelationship": {
                      "type": "array",
                      "items": {
                        "description": "Another Characteristic that is related to the current Characteristic;",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "href": {
                            "description": "Hyperlink reference",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "Unique identifier of the characteristic",
                            "type": "string"
                          },
                          "relationshipType": {
                            "description": "The type of relationship",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "id": {
                      "description": "Unique identifier of the characteristic",
                      "type": "string"
                    },
                    "metadata": {
                      "description": "Metadata of the characteristic\n",
                      "type": "array",
                      "items": {
                        "description": "Metadata\n",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "metadataType": {
                            "description": "Type of the metadata\n",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the metadata\n",
                            "type": "string"
                          },
                          "value": {
                            "description": "Value of the metadata\n",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "name": {
                      "description": "Name of the characteristic",
                      "type": "string"
                    },
                    "value": {
                      "description": "The value of the characteristic",
                      "type": "string"
                    },
                    "valueMetadata": {
                      "description": "Metadata of the characteristic value\n",
                      "type": "array",
                      "items": {
                        "description": "Catalog and operational metadata\n",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "metadataType": {
                            "description": "Type of the metadata\n",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the metadata\n",
                            "type": "string"
                          },
                          "sourceValue": {
                            "description": "Value of the metadata source\n",
                            "type": "string"
                          },
                          "value": {
                            "description": "Value of the metadata\n",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "valueType": {
                      "description": "Data type of the value of the characteristic",
                      "type": "string"
                    }
                  }
                }
              },
              "characteristic": {
                "type": "array",
                "items": {
                  "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "characteristicRelationship": {
                      "type": "array",
                      "items": {
                        "description": "Another Characteristic that is related to the current Characteristic;",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "@baseType": {
                            "description": "When sub-classing, this defines the super-class",
                            "type": "string"
                          },
                          "@schemaLocation": {
                            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                            "type": "string",
                            "format": "uri"
                          },
                          "@type": {
                            "description": "When sub-classing, this defines the sub-class Extensible name",
                            "type": "string"
                          },
                          "href": {
                            "description": "Hyperlink reference",
                            "type": "string",
                            "format": "uri"
                          },
                          "id": {
                            "description": "Unique identifier of the characteristic",
                            "type": "string"
                          },
                          "relationshipType": {
                            "description": "The type of relationship",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "id": {
                      "description": "Unique identifier of the characteristic",
                      "type": "string"
                    },
                    "metadata": {
                      "description": "Metadata of the characteristic\n",
                      "type": "array",
                      "items": {
                        "description": "Metadata\n",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "metadataType": {
                            "description": "Type of the metadata\n",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the metadata\n",
                            "type": "string"
                          },
                          "value": {
                            "description": "Value of the metadata\n",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "name": {
                      "description": "Name of the characteristic",
                      "type": "string"
                    },
                    "value": {
                      "description": "The value of the characteristic",
                      "type": "string"
                    },
                    "valueMetadata": {
                      "description": "Metadata of the characteristic value\n",
                      "type": "array",
                      "items": {
                        "description": "Catalog and operational metadata\n",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "metadataType": {
                            "description": "Type of the metadata\n",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the metadata\n",
                            "type": "string"
                          },
                          "sourceValue": {
                            "description": "Value of the metadata source\n",
                            "type": "string"
                          },
                          "value": {
                            "description": "Value of the metadata\n",
                            "type": "string"
                          }
                        }
                      }
                    },
                    "valueType": {
                      "description": "Data type of the value of the characteristic",
                      "type": "string"
                    }
                  }
                }
              },
              "city": {
                "description": "City that the address is in",
                "type": "string"
              },
              "country": {
                "description": "Country that the address is in",
                "type": "string"
              },
              "geographicLocation": {
                "description": "A GeographicLocation is a pure-virtual super-class to the GeoJSON-aligned geometries of Point (addresses and locations), MultiPoint, LineString (streets, highways and boundaries), MultiLineString and Polygon (countries, provinces, tracts of land). Use the @type attribute to specify which of these is being specified by the geometry attribute.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "@type"
                ],
                "properties": {
                  "@baseType": {
                    "description": "When sub-classing, this defines the super-class",
                    "type": "string"
                  },
                  "@referredType": {
                    "description": "The actual type of the target instance when needed for disambiguation.",
                    "type": "string"
                  },
                  "@schemaLocation": {
                    "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                    "type": "string",
                    "format": "uri"
                  },
                  "@type": {
                    "description": "When sub-classing, this defines the sub-class Extensible name",
                    "enum": [
                      "GeoJsonPoint",
                      "GeoJsonMultiPoint",
                      "GeoJsonLineString",
                      "GeoJsonMultiLineString",
                      "GeoJsonPolygon"
                    ],
                    "type": "string"
                  },
                  "bbox": {
                    "description": "A bounding box array that contains the geometry. The axes order follows the axes order of the geometry",
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "characteristic": {
                    "type": "array",
                    "items": {
                      "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "name"
                      ],
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "characteristicRelationship": {
                          "type": "array",
                          "items": {
                            "description": "Another Characteristic that is related to the current Characteristic;",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "@baseType": {
                                "description": "When sub-classing, this defines the super-class",
                                "type": "string"
                              },
                              "@schemaLocation": {
                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                "type": "string",
                                "format": "uri"
                              },
                              "@type": {
                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                "type": "string"
                              },
                              "href": {
                                "description": "Hyperlink reference",
                                "type": "string",
                                "format": "uri"
                              },
                              "id": {
                                "description": "Unique identifier of the characteristic",
                                "type": "string"
                              },
                              "relationshipType": {
                                "description": "The type of relationship",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "id": {
                          "description": "Unique identifier of the characteristic",
                          "type": "string"
                        },
                        "metadata": {
                          "description": "Metadata of the characteristic\n",
                          "type": "array",
                          "items": {
                            "description": "Metadata\n",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "metadataType": {
                                "description": "Type of the metadata\n",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the metadata\n",
                                "type": "string"
                              },
                              "value": {
                                "description": "Value of the metadata\n",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "name": {
                          "description": "Name of the characteristic",
                          "type": "string"
                        },
                        "value": {
                          "description": "The value of the characteristic",
                          "type": "string"
                        },
                        "valueMetadata": {
                          "description": "Metadata of the characteristic value\n",
                          "type": "array",
                          "items": {
                            "description": "Catalog and operational metadata\n",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "metadataType": {
                                "description": "Type of the metadata\n",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the metadata\n",
                                "type": "string"
                              },
                              "sourceValue": {
                                "description": "Value of the metadata source\n",
                                "type": "string"
                              },
                              "value": {
                                "description": "Value of the metadata\n",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "valueType": {
                          "description": "Data type of the value of the characteristic",
                          "type": "string"
                        }
                      }
                    }
                  },
                  "href": {
                    "description": "Hyperlink reference",
                    "type": "string",
                    "format": "uri"
                  },
                  "id": {
                    "description": "unique identifier",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name of the related entity.",
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "validated": {
                    "type": "boolean"
                  }
                }
              },
              "geographicSubAddress": {
                "type": "array",
                "items": {
                  "description": "Representation of a GeographicSubAddress \nIt is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "buildingName": {
                      "description": "allows for buildings that have well-known names",
                      "type": "string"
                    },
                    "href": {
                      "description": "Link to the subAddress",
                      "type": "string",
                      "format": "uri"
                    },
                    "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"
                    },
                    "name": {
                      "description": "Name of the subAddress to identify it with a meaningful identification",
                      "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"
                    },
                    "subAddressType": {
                      "description": "Type of subAddress : it can be a subunit or a private street",
                      "type": "string"
                    },
                    "subUnitNumber": {
                      "description": "the discriminator used for the subunit\noften just a simple number e.g. FLAT 5, may also be a range",
                      "type": "string"
                    },
                    "subUnitType": {
                      "description": "the type of subunit\ne.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF",
                      "type": "string"
                    }
                  }
                }
              },
              "href": {
                "description": "Unique reference of the place",
                "type": "string",
                "format": "uri"
              },
              "id": {
                "description": "Unique identifier of the place",
                "type": "string"
              },
              "locality": {
                "description": "An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET]",
                "type": "string"
              },
              "name": {
                "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
                "type": "string"
              },
              "postcode": {
                "description": "descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode)",
                "type": "string"
              },
              "postcodeExtension": {
                "type": "string"
              },
              "role": {
                "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"
              },
              "validated": {
                "type": "boolean"
              }
            }
          },
          "birthdate": {
            "description": "End-User's birthday, represented as an [ISO8601-2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY format is allowed. Note that depending on the underlying platform's date related function, providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process the dates",
            "type": "string"
          },
          "email": {
            "description": "End-User's preferred e-mail address. Its value MUST conform to the [RFC5322] addr-spec syntax",
            "type": "string"
          },
          "email_verified": {
            "description": "True if the user's email has been verified.",
            "default": false,
            "type": "boolean"
          },
          "family_name": {
            "description": "Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can be present, with the names being separated by space characters",
            "type": "string"
          },
          "gender": {
            "description": "End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values are applicable",
            "type": "string"
          },
          "given_name": {
            "description": "Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with the names being separated by space characters",
            "type": "string"
          },
          "href": {
            "description": "Hyperlink reference",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "legalId": {
            "description": "Identification documentation of the contact",
            "type": "array",
            "items": {
              "description": "Represents our registration of information used as proof of identity by an individual (passport, national identity card, drivers license, social security number, birth certificate)",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "identificationId"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "attachment": {
                  "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@referredType": {
                      "description": "The actual type of the target instance when needed for disambiguation.",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "attachmentType": {
                      "description": "Attachment type such as video, picture",
                      "type": "string"
                    },
                    "content": {
                      "description": "The actual contents of the attachment object, if embedded, encoded as base64",
                      "type": "string",
                      "format": "base64"
                    },
                    "description": {
                      "description": "A narrative text describing the content of the attachment",
                      "type": "string"
                    },
                    "href": {
                      "description": "URL serving as reference for the attachment resource",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "Unique-Identifier for this attachment",
                      "type": "string"
                    },
                    "mimeType": {
                      "description": "Attachment mime type such as extension file for video, picture and document",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the related entity.",
                      "type": "string"
                    },
                    "size": {
                      "description": "The size of the attachment.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "description": "Numeric value in a given unit",
                          "default": 1,
                          "type": "number",
                          "format": "double"
                        },
                        "units": {
                          "description": "Unit",
                          "type": "string"
                        }
                      }
                    },
                    "url": {
                      "description": "Link to the attachment media/content",
                      "type": "string",
                      "format": "uri"
                    },
                    "validFor": {
                      "description": "The period of time for which the attachment is valid",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "endDateTime": {
                          "description": "End of the time period, using IETC-RFC-3339 format",
                          "type": "string",
                          "format": "date-time"
                        },
                        "startDateTime": {
                          "description": "Start of the time period, using IETC-RFC-3339 format",
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  }
                },
                "expirationDate": {
                  "description": "ATT++::Date at which the identifier will be expired",
                  "type": "string"
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "identificationId": {
                  "description": "Identifier",
                  "type": "string"
                },
                "identificationType": {
                  "description": "Identification type (passport, national identity card, drivers license, social security number, birth certificate)",
                  "type": "string"
                },
                "issuingAuthority": {
                  "description": "Authority which has issued the identifier, such as: social security, town hall",
                  "type": "string"
                },
                "issuingDate": {
                  "description": "Date at which the identifier was issued",
                  "type": "string",
                  "format": "date-time"
                },
                "validFor": {
                  "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "locale": {
            "description": "End-User's locale, represented as a [RFC5646] language tag. This is typically an [ISO639-1] language code in lowercase and an [ISO3166-1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US",
            "type": "string"
          },
          "middle_name": {
            "description": "Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names being separated by space characters. Also note that in some cultures, middle names are not used",
            "type": "string"
          },
          "name": {
            "description": "End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences",
            "type": "string"
          },
          "nickname": {
            "description": "Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned alongside a given_name value of Michael",
            "type": "string"
          },
          "phone_number": {
            "description": "End-User's preferred telephone number. [E.164] is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or +56 82) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678",
            "type": "string"
          },
          "phone_number_verified": {
            "description": "True if the user's phone number has been verified.",
            "default": false,
            "type": "boolean"
          },
          "picture": {
            "description": "URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the End-User, rather than an arbitrary photo taken by the End-User",
            "type": "string"
          },
          "preferred_username": {
            "description": "Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string including special characters such as @, /, or whitespace",
            "type": "string"
          },
          "profile": {
            "description": "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User",
            "type": "string"
          },
          "sub": {
            "description": "Subject - Unique Identifier for the End-User",
            "type": "string"
          },
          "userAssets": {
            "description": "List of additional profile information",
            "type": "array",
            "items": {
              "description": "Base entity schema for use in TMForum Open-APIs",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "entityType",
                "id"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "assetType": {
                  "description": "Second level to define the type of managed element for product/service/resource managed entities (e.g.: mobile line subscription, video platform license, mobile equipment, etc). Allows identifying the specific asset within the server referenced. Supported values are implementation and application specific. Other values can be added if those listed are not enough",
                  "enum": [
                    "mobile",
                    "landline",
                    "iptv",
                    "broadband",
                    "email",
                    "invoicing"
                  ],
                  "type": "string"
                },
                "entitlement": {
                  "description": "information about individual entitlements to define access levels to operate over different functions that can be defined in an asset",
                  "type": "array",
                  "items": {
                    "description": "An Entitlement defines access levels to operate over a given function that can be included in an asset.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "action": {
                        "description": "Level of access granted as part of the permission.",
                        "type": "string"
                      },
                      "function": {
                        "description": "Specific function that can be managed over a given asset.",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "Identifier of the entitlement.",
                        "type": "string"
                      }
                    }
                  }
                },
                "entityType": {
                  "description": "Type of managed entity (e.g.: product, resource, service, customer, account)",
                  "enum": [
                    "customer",
                    "account",
                    "product",
                    "service",
                    "resource"
                  ],
                  "type": "string"
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "Unique identifier of referenced entity within the entity/asset pair (customerId, accountId, mobile line number, ...)",
                  "type": "string"
                },
                "role": {
                  "description": "Represents the part played by an individual in relation to being granted a set of entitlements for manageable assets (e.g.: owner, user, viewer, ...)",
                  "type": "string"
                }
              }
            }
          },
          "website": {
            "description": "URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the End-User is affiliated with",
            "type": "string"
          },
          "zoneinfo": {
            "description": "String from zoneinfo time zone database representing the End-User's time zone. For example, Europe/Paris or America/Los_Angeles",
            "type": "string"
          }
        }
      },
      "RelatedPartyCommerce": {
        "description": "Party or party role that is linked to a specific entity.\n",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "role"
        ],
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@referredType": {
            "description": "The actual type of the target instance when needed for disambiguation.",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "extensions": {
            "type": "array",
            "items": {
              "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "value"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@referredType": {
                  "description": "The actual type of the target instance when needed for disambiguation.",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the characteristic",
                  "type": "string"
                },
                "value": {
                  "description": "Value of the characteristic",
                  "type": "string"
                },
                "valueType": {
                  "description": "Data type of the value of the characteristic",
                  "type": "string"
                }
              }
            }
          },
          "href": {
            "description": "Hyperlink reference",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "name": {
            "description": "Name of the related entity.",
            "type": "string"
          },
          "partyType": {
            "type": "string"
          },
          "role": {
            "description": "Role played by the related party",
            "type": "string"
          },
          "segment": {
            "description": "Segment of the related party. Applicable when role=Customer.\n",
            "type": "string"
          }
        }
      },
      "Contact": {
        "description": "An individual or an organization used as a contact point for a given account and accessed via some contact medium.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "contactType"
        ],
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "contactMedium": {
            "type": "array",
            "items": {
              "description": "Indicates the contact medium that could be used to contact the party.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "characteristic": {
                  "description": "Any additional characteristic(s) of this contact medium",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "city": {
                      "description": "The city",
                      "type": "string"
                    },
                    "contactType": {
                      "description": "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…",
                      "type": "string"
                    },
                    "country": {
                      "description": "The country",
                      "type": "string"
                    },
                    "emailAddress": {
                      "description": "Full email address in standard format",
                      "type": "string"
                    },
                    "faxNumber": {
                      "description": "The fax number of the contact",
                      "type": "string"
                    },
                    "href": {
                      "description": "Hyperlink reference",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "unique identifier",
                      "type": "string"
                    },
                    "phoneNumber": {
                      "description": "The primary phone number of the contact",
                      "type": "string"
                    },
                    "place": {
                      "description": "Place reference. Place defines the places where the products are sold or delivered.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "characteristic": {
                          "type": "array",
                          "items": {
                            "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "@baseType": {
                                "description": "When sub-classing, this defines the super-class",
                                "type": "string"
                              },
                              "@schemaLocation": {
                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                "type": "string",
                                "format": "uri"
                              },
                              "@type": {
                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                "type": "string"
                              },
                              "characteristicRelationship": {
                                "type": "array",
                                "items": {
                                  "description": "Another Characteristic that is related to the current Characteristic;",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "@baseType": {
                                      "description": "When sub-classing, this defines the super-class",
                                      "type": "string"
                                    },
                                    "@schemaLocation": {
                                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "@type": {
                                      "description": "When sub-classing, this defines the sub-class Extensible name",
                                      "type": "string"
                                    },
                                    "href": {
                                      "description": "Hyperlink reference",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "id": {
                                      "description": "Unique identifier of the characteristic",
                                      "type": "string"
                                    },
                                    "relationshipType": {
                                      "description": "The type of relationship",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "id": {
                                "description": "Unique identifier of the characteristic",
                                "type": "string"
                              },
                              "metadata": {
                                "description": "Metadata of the characteristic\n",
                                "type": "array",
                                "items": {
                                  "description": "Metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "name": {
                                "description": "Name of the characteristic",
                                "type": "string"
                              },
                              "value": {
                                "description": "The value of the characteristic",
                                "type": "string"
                              },
                              "valueMetadata": {
                                "description": "Metadata of the characteristic value\n",
                                "type": "array",
                                "items": {
                                  "description": "Catalog and operational metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "sourceValue": {
                                      "description": "Value of the metadata source\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "valueType": {
                                "description": "Data type of the value of the characteristic",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "href": {
                          "description": "Unique reference of the place",
                          "type": "string",
                          "format": "uri"
                        },
                        "id": {
                          "description": "Unique identifier of the place",
                          "type": "string"
                        },
                        "name": {
                          "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "validated": {
                          "type": "boolean"
                        }
                      }
                    },
                    "postCode": {
                      "description": "Postcode",
                      "type": "string"
                    },
                    "socialNetworkId": {
                      "description": "Identifier as a member of a social network",
                      "type": "string"
                    },
                    "stateOrProvince": {
                      "description": "State or province",
                      "type": "string"
                    },
                    "street1": {
                      "description": "Describes the street",
                      "type": "string"
                    },
                    "street2": {
                      "description": "Complementary street description",
                      "type": "string"
                    },
                    "verified": {
                      "type": "boolean"
                    }
                  }
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "mediumType": {
                  "description": "Type of the contact medium, such as: email address, telephone number, postal address",
                  "type": "string"
                },
                "preferred": {
                  "description": "If true, indicates that is the preferred contact medium",
                  "type": "boolean"
                },
                "validFor": {
                  "description": "The time period that the contact medium is valid for",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "contactName": {
            "description": "A displayable name for that contact",
            "type": "string"
          },
          "contactType": {
            "description": "Type of contact (primary, secondary...)",
            "type": "string"
          },
          "href": {
            "description": "Hyperlink reference",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "partyRoleType": {
            "description": "Identifies what kind of party role type is linked to the contact (a account manager...)",
            "type": "string"
          },
          "relatedParty": {
            "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "role"
            ],
            "properties": {
              "@baseType": {
                "description": "When sub-classing, this defines the super-class",
                "type": "string"
              },
              "@referredType": {
                "description": "The actual type of the target instance when needed for disambiguation.",
                "type": "string"
              },
              "@schemaLocation": {
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                "type": "string",
                "format": "uri"
              },
              "@type": {
                "description": "When sub-classing, this defines the sub-class Extensible name",
                "type": "string"
              },
              "extensions": {
                "type": "array",
                "items": {
                  "description": "ATT++::Describes a given characteristic of an object or entity through a name/value pair.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name",
                    "value"
                  ],
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@referredType": {
                      "description": "The actual type of the target instance when needed for disambiguation.",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "href": {
                      "description": "Hyperlink reference",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "unique identifier",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the characteristic",
                      "type": "string"
                    },
                    "value": {
                      "description": "Value of the characteristic",
                      "type": "string"
                    },
                    "valueType": {
                      "description": "Data type of the value of the characteristic",
                      "type": "string"
                    }
                  }
                }
              },
              "href": {
                "description": "Hyperlink reference",
                "type": "string",
                "format": "uri"
              },
              "id": {
                "description": "unique identifier",
                "type": "string"
              },
              "name": {
                "description": "Name of the related entity.",
                "type": "string"
              },
              "partyType": {
                "type": "string"
              },
              "role": {
                "description": "Role played by the related party",
                "type": "string"
              }
            }
          },
          "validFor": {
            "description": "Validity period of that contact",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "endDateTime": {
                "description": "End of the time period, using IETC-RFC-3339 format",
                "type": "string",
                "format": "date-time"
              },
              "startDateTime": {
                "description": "Start of the time period, using IETC-RFC-3339 format",
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "Money": {
        "description": "A base / value business entity used to represent money",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "unit": {
            "description": "Currency (ISO4217 norm uses 3 letters to define the currency)",
            "type": "string"
          },
          "value": {
            "description": "A signed floating point number, the meaning of the sign is according to the context of the API that uses this Data type",
            "type": "number",
            "format": "float"
          }
        }
      },
      "Place": {
        "description": "Place reference. Place defines the places where the products are sold or delivered.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "type": "string",
            "format": "uri"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "description": "Describes a given characteristic of an object or entity through a name/value pair.",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "characteristicRelationship": {
                  "type": "array",
                  "items": {
                    "description": "Another Characteristic that is related to the current Characteristic;",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "Unique identifier of the characteristic",
                        "type": "string"
                      },
                      "relationshipType": {
                        "description": "The type of relationship",
                        "type": "string"
                      }
                    }
                  }
                },
                "id": {
                  "description": "Unique identifier of the characteristic",
                  "type": "string"
                },
                "metadata": {
                  "description": "Metadata of the characteristic\n",
                  "type": "array",
                  "items": {
                    "description": "Metadata\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "metadataType": {
                        "description": "Type of the metadata\n",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the metadata\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the metadata\n",
                        "type": "string"
                      }
                    }
                  }
                },
                "name": {
                  "description": "Name of the characteristic",
                  "type": "string"
                },
                "value": {
                  "description": "The value of the characteristic",
                  "type": "string"
                },
                "valueMetadata": {
                  "description": "Metadata of the characteristic value\n",
                  "type": "array",
                  "items": {
                    "description": "Catalog and operational metadata\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "metadataType": {
                        "description": "Type of the metadata\n",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the metadata\n",
                        "type": "string"
                      },
                      "sourceValue": {
                        "description": "Value of the metadata source\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the metadata\n",
                        "type": "string"
                      }
                    }
                  }
                },
                "valueType": {
                  "description": "Data type of the value of the characteristic",
                  "type": "string"
                }
              }
            }
          },
          "href": {
            "description": "Unique reference of the place",
            "type": "string",
            "format": "uri"
          },
          "id": {
            "description": "Unique identifier of the place",
            "type": "string"
          },
          "name": {
            "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "validated": {
            "type": "boolean"
          }
        }
      },
      "PromotionAction": {
        "required": [
          "actionType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the promotion action\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the promotion action\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the promotion action\n"
          },
          "actionType": {
            "type": "string",
            "description": "Type of the action. A valid value is *Price Alteration*, *Product Offering*.\n"
          },
          "actionValue": {
            "type": "integer",
            "description": "Value of the action. If the *actionType* is Price Alteration, the action value is '1'.\n"
          },
          "promotionPriceAlteration": {
            "$ref": "#/components/schemas/ProductOfferingPriceRef"
          },
          "productOfferingBenefit": {
            "type": "array",
            "description": "Reference to a product offering usaed as a free offer benefit by the promotion\n",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingBenefit"
            }
          },
          "durationPolicy": {
            "$ref": "#/components/schemas/DurationPolicy"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "actionTerminationPolicy": {
            "type": "string",
            "description": "Defines the termination policy upon duration end date\n"
          },
          "relatedTriggerItem": {
            "type": "array",
            "description": "An optional relation from a specific promotion action to a specific trigger item.  \n",
            "items": {
              "$ref": "#/components/schemas/RelatedTriggerItem"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Action of the promotion. Customers can receive benefits associated with the action if the conditions in the promotion pattern are fulfilled.\n"
      },
      "DurationPolicy": {
        "type": "object",
        "properties": {
          "duration": {
            "$ref": "#/components/schemas/Quantity"
          },
          "startDatePolicy": {
            "type": "string",
            "description": "Start date of the policy, from which the duration is calculated\n"
          },
          "endDatePolicy": {
            "type": "string",
            "description": "End date of the policy, until which the duration is calculated\n"
          },
          "effectiveFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "terminationPolicy": {
            "type": "string",
            "description": "Defines the termination policy upon duration end date\n"
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Policy for calculting a limited duration for any entity\n"
      },
      "RelatedTriggerItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID of the related trigger item\n"
          },
          "role": {
            "type": "string",
            "description": "The role of the related trigger item\n"
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::A relation to a specific trigger item. For example, for promotion action with actionType = productOffering, this relation indicates a relevant trigger item to which the action should be related. The type of the relation is specified in 'role' field\n"
      },
      "ProductOfferingBenefit": {
        "type": "object",
        "properties": {
          "productOfferingId": {
            "type": "string",
            "description": "the id of the product offering granted as a benefit\n"
          },
          "promotionPriceAlteration": {
            "type": "array",
            "description": "referecne to price entity representing the actual monetary discount\n",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingPriceRef"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Reference to a product offering used as a free offer benefit by the promotion"
      },
      "Configuration": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Type of the component\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the component\n"
          },
          "subtype": {
            "type": "string",
            "description": "Sub Type of the Component\n"
          },
          "properties": {
            "type": "array",
            "description": "Name/value pair\n",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "required": {
            "type": "boolean",
            "description": "Component required for Product Order Configuration\n"
          },
          "postOrderConfigurable": {
            "type": "boolean",
            "description": "Component Post Order Product Order Configuration\n"
          },
          "readOnly": {
            "type": "boolean",
            "description": "Component allowed for configuration or not.\n"
          },
          "resource": {
            "type": "array",
            "description": "Resource that is associated with the message\n",
            "items": {
              "$ref": "#/components/schemas/RelatedResource"
            }
          }
        },
        "description": "ATT++::Message associated with the validation failure\n"
      },
      "ProductConfiguration": {
        "title": "ProductConfiguration",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Product Id"
          }
        }
      },
      "ProductOrderItem_Extensions": {
        "title": "Extensions for ProductOrderItem",
        "type": "object",
        "properties": {
          "@baseType": {
            "description": "When sub-classing, this defines the super-class",
            "type": "string"
          },
          "@referredType": {
            "description": "The actual type of the target instance when needed for disambiguation.",
            "type": "string"
          },
          "@schemaLocation": {
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri",
            "type": "string"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "href": {
            "description": "Hyperlink reference",
            "format": "uri",
            "type": "string"
          },
          "id": {
            "description": "unique identifier",
            "type": "string"
          },
          "initDeliveryByFromDate": {
            "format": "date-time",
            "type": "string"
          },
          "initDeliveryByToDate": {
            "format": "date-time",
            "type": "string"
          },
          "initPromiseFromDate": {
            "format": "date-time",
            "type": "string"
          },
          "initPromiseToDate": {
            "format": "date-time",
            "type": "string"
          },
          "lineSalesRep": {
            "type": "string"
          },
          "substitutionAction": {
            "type": "string"
          },
          "name": {
            "description": "Name of the related entity.",
            "type": "string"
          }
        }
      },
      "AgreementItemRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "agreementItemId": {
            "type": "string",
            "description": "Identifier of the agreement"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications."
      },
      "AgreementRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the agreement"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          }
        },
        "description": "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.",
        "title": ""
      },
      "AppointmentRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the referred appointment"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "The reference of the appointment"
          },
          "description": {
            "type": "string",
            "description": "An explanatory text regarding the appointment made with a party"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation"
          }
        },
        "description": "Refers an appointment, such as a Customer presentation or internal meeting or site visit"
      },
      "BillingAccountRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the billing account"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the billing account"
          },
          "name": {
            "type": "string",
            "description": "Name of the billing account"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "characteristic": {
            "type": "array",
            "description": "a strucuture used to describe a characteristics of billing account",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "ratingType": {
            "type": "string",
            "description": "Indicates whether the account follows a specific payment option such as prepaid or postpaid"
          }
        },
        "description": "BillingAccount reference. A BillingAccount is a detailed description of a bill structure."
      },
      "BillStructure": {
        "type": "object",
        "properties": {
          "presentationMedia": {
            "type": "array",
            "description": "The structure of the bill for party accounts (billing or settlement).",
            "items": {
              "$ref": "#/components/schemas/BillPresentationMediaRefOrValue"
            }
          }
        },
        "description": "The structure of the bill for party accounts (billing or settlement)."
      },
      "BillPresentationMediaRefOrValue": {
        "type": "object",
        "properties": {
          "presentationMedia": {
            "type": "array",
            "description": "An attachment by value or by reference.",
            "items": {
              "$ref": "#/components/schemas/BillPresentationMediaRef"
            }
          }
        },
        "description": "An attachment by value or by reference.."
      },
      "BillPresentationMediaRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the bill presentation media"
          },
          "name": {
            "type": "string",
            "description": "A short descriptive name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "PresentationMedia reference. A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page."
      },
      "Characteristic": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the characteristic"
          },
          "valueType": {
            "type": "string",
            "description": "Data type of the value of the characteristic"
          },
          "value": {
            "type": "string",
            "description": "Value of the characteristic"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "Describes a given characteristic of an object or entity through a name/value pair."
      },
      "installationDayContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "contactMedium": {
            "type": "array",
            "items": {
              "description": "Indicates the contact medium that could be used to contact the party.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "characteristic": {
                  "description": "Any additional characteristic(s) of this contact medium",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "city": {
                      "description": "The city",
                      "type": "string"
                    },
                    "contactType": {
                      "description": "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…",
                      "type": "string"
                    },
                    "country": {
                      "description": "The country",
                      "type": "string"
                    },
                    "emailAddress": {
                      "description": "Full email address in standard format",
                      "type": "string"
                    },
                    "faxNumber": {
                      "description": "The fax number of the contact",
                      "type": "string"
                    },
                    "href": {
                      "description": "Hyperlink reference",
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "unique identifier",
                      "type": "string"
                    },
                    "phoneNumber": {
                      "description": "The primary phone number of the contact",
                      "type": "string"
                    },
                    "place": {
                      "description": "Place reference. Place defines the places where the products are sold or delivered.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "@baseType": {
                          "description": "When sub-classing, this defines the super-class",
                          "type": "string"
                        },
                        "@schemaLocation": {
                          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                          "type": "string",
                          "format": "uri"
                        },
                        "@type": {
                          "description": "When sub-classing, this defines the sub-class Extensible name",
                          "type": "string"
                        },
                        "characteristic": {
                          "type": "array",
                          "items": {
                            "description": "Describes a given characteristic of an object or entity through a name/value pair.",
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "@baseType": {
                                "description": "When sub-classing, this defines the super-class",
                                "type": "string"
                              },
                              "@schemaLocation": {
                                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                "type": "string",
                                "format": "uri"
                              },
                              "@type": {
                                "description": "When sub-classing, this defines the sub-class Extensible name",
                                "type": "string"
                              },
                              "characteristicRelationship": {
                                "type": "array",
                                "items": {
                                  "description": "Another Characteristic that is related to the current Characteristic;",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "@baseType": {
                                      "description": "When sub-classing, this defines the super-class",
                                      "type": "string"
                                    },
                                    "@schemaLocation": {
                                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "@type": {
                                      "description": "When sub-classing, this defines the sub-class Extensible name",
                                      "type": "string"
                                    },
                                    "href": {
                                      "description": "Hyperlink reference",
                                      "type": "string",
                                      "format": "uri"
                                    },
                                    "id": {
                                      "description": "Unique identifier of the characteristic",
                                      "type": "string"
                                    },
                                    "relationshipType": {
                                      "description": "The type of relationship",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "id": {
                                "description": "Unique identifier of the characteristic",
                                "type": "string"
                              },
                              "metadata": {
                                "description": "Metadata of the characteristic\n",
                                "type": "array",
                                "items": {
                                  "description": "Metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "name": {
                                "description": "Name of the characteristic",
                                "type": "string"
                              },
                              "value": {
                                "description": "The value of the characteristic",
                                "type": "string"
                              },
                              "valueMetadata": {
                                "description": "Metadata of the characteristic value\n",
                                "type": "array",
                                "items": {
                                  "description": "Catalog and operational metadata\n",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "metadataType": {
                                      "description": "Type of the metadata\n",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the metadata\n",
                                      "type": "string"
                                    },
                                    "sourceValue": {
                                      "description": "Value of the metadata source\n",
                                      "type": "string"
                                    },
                                    "value": {
                                      "description": "Value of the metadata\n",
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "valueType": {
                                "description": "Data type of the value of the characteristic",
                                "type": "string"
                              }
                            }
                          }
                        },
                        "href": {
                          "description": "Unique reference of the place",
                          "type": "string",
                          "format": "uri"
                        },
                        "id": {
                          "description": "Unique identifier of the place",
                          "type": "string"
                        },
                        "name": {
                          "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]",
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "validated": {
                          "type": "boolean"
                        }
                      }
                    },
                    "postCode": {
                      "description": "Postcode",
                      "type": "string"
                    },
                    "socialNetworkId": {
                      "description": "Identifier as a member of a social network",
                      "type": "string"
                    },
                    "stateOrProvince": {
                      "description": "State or province",
                      "type": "string"
                    },
                    "street1": {
                      "description": "Describes the street",
                      "type": "string"
                    },
                    "street2": {
                      "description": "Complementary street description",
                      "type": "string"
                    },
                    "verified": {
                      "type": "boolean"
                    }
                  }
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "mediumType": {
                  "description": "Type of the contact medium, such as: email address, telephone number, postal address",
                  "type": "string"
                },
                "preferred": {
                  "description": "If true, indicates that is the preferred contact medium",
                  "type": "boolean"
                },
                "validFor": {
                  "description": "The time period that the contact medium is valid for",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "x-amf-examples": {
                        "default-example_1": "1985-04-12T23:20:50.52Z",
                        "default-example_2": "2018-09-21T09:13:16-07:00"
                      },
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "x-amf-examples": {
                        "default-example_1": "1985-04-12T23:20:50.52Z",
                        "default-example_2": "2018-09-21T09:13:16-07:00"
                      },
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "individualIdentification": {
            "type": "array",
            "items": {
              "description": "Represents our registration of information used as proof of identity by an individual (passport, national identity card, drivers license, social security number, birth certificate)",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "identificationId"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "attachment": {
                  "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "@baseType": {
                      "description": "When sub-classing, this defines the super-class",
                      "type": "string"
                    },
                    "@referredType": {
                      "description": "The actual type of the target instance when needed for disambiguation.",
                      "type": "string"
                    },
                    "@schemaLocation": {
                      "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                      "type": "string",
                      "format": "uri"
                    },
                    "@type": {
                      "description": "When sub-classing, this defines the sub-class Extensible name",
                      "type": "string"
                    },
                    "attachmentType": {
                      "description": "Attachment type such as video, picture",
                      "x-amf-examples": {
                        "default-example_1": "video",
                        "default-example_2": "picture"
                      },
                      "type": "string"
                    },
                    "content": {
                      "description": "The actual contents of the attachment object, if embedded, encoded as base64",
                      "type": "string",
                      "format": "base64"
                    },
                    "description": {
                      "description": "A narrative text describing the content of the attachment",
                      "x-amf-examples": {
                        "default-example_1": "Photograph of the Product",
                        "default-example_2": "Explanation Video"
                      },
                      "type": "string"
                    },
                    "href": {
                      "description": "URL serving as reference for the attachment resource",
                      "x-amf-examples": {
                        "default-example_1": "http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f"
                      },
                      "type": "string",
                      "format": "uri"
                    },
                    "id": {
                      "description": "Unique-Identifier for this attachment",
                      "x-amf-examples": {
                        "default-example_1": "4aafacbd-11ff-4dc8-b445-305f2215715f",
                        "default-example_2": "2334bc59-726e-4d34-ab96-f50e0561412f"
                      },
                      "type": "string"
                    },
                    "mimeType": {
                      "description": "Attachment mime type such as extension file for video, picture and document",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the related entity.",
                      "type": "string"
                    },
                    "size": {
                      "description": "The size of the attachment.",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "description": "Numeric value in a given unit",
                          "default": 1,
                          "type": "number",
                          "format": "double"
                        },
                        "units": {
                          "description": "Unit",
                          "type": "string"
                        }
                      }
                    },
                    "url": {
                      "description": "Link to the attachment media/content",
                      "x-amf-examples": {
                        "default-example_1": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f"
                      },
                      "type": "string",
                      "format": "uri"
                    },
                    "validFor": {
                      "description": "The period of time for which the attachment is valid",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "endDateTime": {
                          "description": "End of the time period, using IETC-RFC-3339 format",
                          "x-amf-examples": {
                            "default-example_1": "1985-04-12T23:20:50.52Z",
                            "default-example_2": "2018-09-21T09:13:16-07:00"
                          },
                          "type": "string",
                          "format": "date-time"
                        },
                        "startDateTime": {
                          "description": "Start of the time period, using IETC-RFC-3339 format",
                          "x-amf-examples": {
                            "default-example_1": "1985-04-12T23:20:50.52Z",
                            "default-example_2": "2018-09-21T09:13:16-07:00"
                          },
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  }
                },
                "expirationDate": {
                  "description": "ATT++::Date at which the identifier will be expired",
                  "type": "string"
                },
                "href": {
                  "description": "Hyperlink reference",
                  "type": "string",
                  "format": "uri"
                },
                "id": {
                  "description": "unique identifier",
                  "type": "string"
                },
                "identificationId": {
                  "description": "Identifier",
                  "type": "string"
                },
                "identificationType": {
                  "description": "Identification type (passport, national identity card, drivers license, social security number, birth certificate)",
                  "type": "string"
                },
                "issuingAuthority": {
                  "description": "Authority which has issued the identifier, such as: social security, town hall",
                  "type": "string"
                },
                "issuingDate": {
                  "description": "Date at which the identifier was issued",
                  "type": "string",
                  "format": "date-time"
                },
                "validFor": {
                  "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endDateTime": {
                      "description": "End of the time period, using IETC-RFC-3339 format",
                      "x-amf-examples": {
                        "default-example_1": "1985-04-12T23:20:50.52Z",
                        "default-example_2": "2018-09-21T09:13:16-07:00"
                      },
                      "type": "string",
                      "format": "date-time"
                    },
                    "startDateTime": {
                      "description": "Start of the time period, using IETC-RFC-3339 format",
                      "x-amf-examples": {
                        "default-example_1": "1985-04-12T23:20:50.52Z",
                        "default-example_2": "2018-09-21T09:13:16-07:00"
                      },
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "partyCharacteristic": {
            "type": "array",
            "items": {
              "description": "Describes a given characteristic of an object or entity through a name/value pair.",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name"
              ],
              "properties": {
                "@baseType": {
                  "description": "When sub-classing, this defines the super-class",
                  "type": "string"
                },
                "@schemaLocation": {
                  "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                  "type": "string",
                  "format": "uri"
                },
                "@type": {
                  "description": "When sub-classing, this defines the sub-class Extensible name",
                  "type": "string"
                },
                "characteristicRelationship": {
                  "type": "array",
                  "items": {
                    "description": "Another Characteristic that is related to the current Characteristic;",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "@baseType": {
                        "description": "When sub-classing, this defines the super-class",
                        "type": "string"
                      },
                      "@schemaLocation": {
                        "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                        "type": "string",
                        "format": "uri"
                      },
                      "@type": {
                        "description": "When sub-classing, this defines the sub-class Extensible name",
                        "type": "string"
                      },
                      "href": {
                        "description": "Hyperlink reference",
                        "type": "string",
                        "format": "uri"
                      },
                      "id": {
                        "description": "Unique identifier of the characteristic",
                        "type": "string"
                      },
                      "relationshipType": {
                        "description": "The type of relationship",
                        "type": "string"
                      }
                    }
                  }
                },
                "id": {
                  "description": "Unique identifier of the characteristic",
                  "type": "string"
                },
                "metadata": {
                  "description": "Metadata of the characteristic\n",
                  "type": "array",
                  "items": {
                    "description": "Metadata\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "metadataType": {
                        "description": "Type of the metadata\n",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the metadata\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the metadata\n",
                        "type": "string"
                      }
                    }
                  }
                },
                "name": {
                  "description": "Name of the characteristic",
                  "type": "string"
                },
                "value": {
                  "description": "The value of the characteristic",
                  "type": "string"
                },
                "valueMetadata": {
                  "description": "Metadata of the characteristic value\n",
                  "type": "array",
                  "items": {
                    "description": "Catalog and operational metadata\n",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "metadataType": {
                        "description": "Type of the metadata\n",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the metadata\n",
                        "type": "string"
                      },
                      "sourceValue": {
                        "description": "Value of the metadata source\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the metadata\n",
                        "type": "string"
                      }
                    }
                  }
                },
                "valueType": {
                  "description": "Data type of the value of the characteristic",
                  "type": "string"
                }
              }
            }
          },
          "givenName": {
            "type": "string"
          },
          "familyName": {
            "type": "string"
          }
        }
      },
      "Note": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)"
          },
          "author": {
            "type": "string",
            "description": "Author of the note"
          },
          "date": {
            "type": "string",
            "description": "Date of the note",
            "format": "date-time"
          },
          "text": {
            "type": "string",
            "description": "Text of the note"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "Extra information about a given entity"
      },
      "OrderItemActionType": {
        "type": "string",
        "description": "action to be performed on the product",
        "enum": [
          "Metadata Change",
          "activate",
          "add",
          "add;port in",
          "add;swap",
          "agreement change",
          "amend",
          "backdated next item",
          "backdated previous item",
          "bundle",
          "bundle;relation change",
          "bundle;relation change;suspend",
          "bundle;unbundle",
          "bundle;unbundle;relation change",
          "cancel",
          "change",
          "change billing account",
          "change billing account;change",
          "change hierarchy",
          "change own",
          "change ownership from",
          "change ownership to",
          "change ownership to;bundle;relation change",
          "change ownership to;change",
          "change ownership to;change billing account",
          "change ownership to;change billing account;change related party",
          "change ownership to;change related party",
          "change ownership to;change;change billing account",
          "change ownership to;relation change",
          "change ownership to;relation change;replace offer from",
          "change ownership to;replace offer from",
          "change ownership to;terminate",
          "change ownership to;unbundle;relation change",
          "change place",
          "change related party",
          "change resource",
          "change resource;change",
          "change term",
          "change term;change",
          "change;agreement change",
          "change;bundle",
          "change;bundle;unbundle;relation change",
          "change;change resource",
          "change;related change",
          "change;relation change",
          "change;suspend",
          "child change",
          "child change;suspend",
          "child change;terminate",
          "contract change",
          "contract change;Metadata Change",
          "contract change;change",
          "contract change;change place",
          "contract change;change related party",
          "contract change;change term",
          "contract change;price change",
          "contract change;price change;terminate",
          "contract change;promotion change",
          "contract change;relation change",
          "contract change;terminate",
          "delete",
          "modify",
          "move from",
          "move from;terminate",
          "move to",
          "noChange",
          "port in",
          "port out",
          "port out;terminate",
          "preActivate",
          "price change",
          "promotion change",
          "promotion change;child change",
          "promotion change;child change;suspend",
          "promotion change;child change;terminate",
          "promotion change;terminate",
          "promotion change;unbundle;relation change",
          "reestablish",
          "reestablish;change",
          "reestablish;change place",
          "register",
          "related change",
          "related change;relation change",
          "relation change",
          "relation change;change",
          "relation change;price change",
          "remove",
          "replace",
          "replace offer from",
          "replace offer from;agreement change",
          "replace offer from;child change",
          "replace offer from;contract change",
          "replace offer from;reestablish",
          "replace offer keep from",
          "replace offer to",
          "replace offer to;agreement change",
          "replace offer to;change",
          "replace offer to;change billing account",
          "replace offer to;change related party",
          "replace offer to;change related party;change",
          "replace offer to;change term",
          "replace offer to;contract change",
          "replace offer to;contract change;change term",
          "replace offer to;contract change;price change",
          "replace offer to;contract change;relation change",
          "replace offer to;relation change",
          "resume",
          "resume from cancel",
          "resume;change",
          "resume;change billing account",
          "root virtual move",
          "suspend",
          "suspend-obsolete",
          "suspend;change",
          "suspend;change;change resource",
          "suspend;child change",
          "suspend;related change",
          "suspend;relation change",
          "suspend;unbundle;relation change",
          "swap",
          "swap;add",
          "terminate",
          "terminate;agreement change",
          "terminate;change",
          "terminate;change related party",
          "unbundle",
          "unbundle;bundle;relation change",
          "unbundle;relation change",
          "unbundle;relation change;suspend",
          "unify"
        ]
      },
      "OrderItemRelationship": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "relationshipType": {
            "type": "string",
            "description": "The type of order item relationship"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        }
      },
      "OrderPrice": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A narrative that explains in detail the semantics of this order item price."
          },
          "name": {
            "type": "string",
            "description": "A short descriptive name such as \"Subscription price\"."
          },
          "priceType": {
            "type": "string",
            "description": "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth"
          },
          "recurringChargePeriod": {
            "type": "string",
            "description": "Could be month, week..."
          },
          "unitOfMeasure": {
            "type": "string",
            "description": "Could be minutes, GB..."
          },
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "priceAlteration": {
            "type": "array",
            "description": "a strucuture used to describe a price alteration",
            "items": {
              "$ref": "#/components/schemas/PriceAlteration"
            }
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/ProductOfferingPriceRef"
          },
          "recurringChargePeriodLength": {
            "type": "integer",
            "description": "TMF++::The period length of the recurring charge\n"
          },
          "finalPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "standalonePrice": {
            "$ref": "#/components/schemas/Price"
          },
          "immediatePayOption": {
            "$ref": "#/components/schemas/ImmediatePayOption"
          },
          "installmentOption": {
            "$ref": "#/components/schemas/InstallmentOption"
          },
          "orderPriceRelationship": {
            "$ref": "#/components/schemas/OrderPriceRelationship"
          },
          "taxIncluded": {
            "type": "string",
            "description": "TMF++::Indicates whether the price is defined in CatalogONE as including tax or excluding tax. Valid values are Excluded and Included.\n"
          },
          "priceOverrideOption": {
            "$ref": "#/components/schemas/PriceOverrideOption"
          },
          "role": {
            "type": "string",
            "description": "TMF++::The role of the price, for example, price, bundle price alteration, and so on\n"
          },
          "payment": {
            "type": "array",
            "description": "TMF++::Payment performed for a specific order price\n",
            "items": {
              "$ref": "#/components/schemas/PaymentRef"
            }
          },
          "prorationFactor": {
            "type": "number",
            "description": "TMF++::Proration factor used to prorate this amount\n",
            "format": "double"
          },
          "periodCoverage": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "relatedAppliedBillingRate": {
            "$ref": "#/components/schemas/RelatedAppliedBillingRateRef"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "An amount, usually of money, that represents the actual price paid by the Customer for this item or this order"
      },
      "ImmediatePayOption": {
        "type": "object",
        "properties": {
          "payOption": {
            "type": "string",
            "description": "The immediate pay option:\n<ul>\n<li> *MUST* - The price must be paid immediately\n<li> *MAY* - The price might be paid immediately\n</ul>\n"
          },
          "payAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "minPayAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "payImmediately": {
            "type": "boolean",
            "description": "Indicates whether the prcie included in the immediate payment.\nIf the pay option is set to MUST, this indication is set to true.\nIf the pay option is set to MAY, this indication is set to either true or false based on a customer decission.\n"
          }
        },
        "description": "TMF++::The payment options for the product offering price payment. The payment options can indicate whether the price must or might be paid immediatelly.\nIn addition, the payment options include an indication whether the price should be included in the immediate payment or not.\nIf the payment option is set to must, this indication is set to true. Otherwise, if the payment option is set to might, the indication is set to either\ntrue or false based on a customer decission.\n"
      },
      "RelatedAppliedBillingRateRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the applied billing rate\n"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Hypertext reference to the applied billing rate\n"
          },
          "@referredType": {
            "type": "string",
            "description": "Type of the applied billing rate, for example, *AppliedCustomerBillingOneTimeCharge* or *AppliedCustomerBillingRecurringCharge*    \n"
          }
        },
        "description": "TMF++::Relation to another applied billing rate\n"
      },
      "PaymentAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "percentage": {
            "type": "number",
            "description": "Represents the percentage that the amount represents out of the price\n",
            "format": "float"
          },
          "taxIncludedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "dutyFreeAmount": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "description": "TMF++::Represents a payment amount\n"
      },
      "OrderPriceRelationship": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the related *OrderPrice* entity\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the relationship\n"
          }
        },
        "description": "TMF++::Relationship between the *OrderPrice* entities\n"
      },
      "PriceOverrideOption": {
        "type": "object",
        "properties": {
          "overrideType": {
            "type": "string",
            "description": "Indicates which override option the CSR can apply. Valid Values &#58; waive, absolute, increase, decrease\n"
          },
          "overrideValue": {
            "$ref": "#/components/schemas/PaymentAmount"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "relatedParty": {
            "$ref": "#/components/schemas/RelatedParty"
          },
          "reason": {
            "$ref": "#/components/schemas/ModifyReason"
          }
        },
        "description": "TMF++::The waive and override data of a price\n"
      },
      "InstallmentOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the installment option\n"
          },
          "name": {
            "description": "Name of the related entity.",
            "type": "string"
          },
          "@type": {
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "type": "string"
          },
          "installmentOption": {
            "type": "string",
            "description": "Indicates if installment options are optional / mandatory for the price\n",
            "readOnly": true
          },
          "numberOfInstallments": {
            "type": "integer",
            "description": "The number of installments\n"
          },
          "downPayment": {
            "$ref": "#/components/schemas/PaymentAmount"
          }
        },
        "description": "TMF++::Represents an installment option for an  price\n"
      },
      "OrderTerm": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the productOrderTerm"
          },
          "name": {
            "type": "string",
            "description": "Name of the productOrderTerm"
          },
          "duration": {
            "$ref": "#/components/schemas/Quantity"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "Description of a productTerm linked to this orderItem. This represent a commitment with a duration"
      },
      "PaymentRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "A name for the payment"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          }
        },
        "description": "If an immediate payment has been done at the product order submission, the payment information are captured and stored (as a reference) in the order."
      },
      "Price": {
        "type": "object",
        "properties": {
          "percentage": {
            "type": "number",
            "description": "Percentage to apply for ProdOfferPriceAlteration",
            "format": "float"
          },
          "taxRate": {
            "type": "number",
            "description": "Tax rate",
            "format": "float"
          },
          "dutyFreeAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxIncludedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "marketingAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "priceReduction": {
            "$ref": "#/components/schemas/Money"
          },
          "priceOverride": {
            "$ref": "#/components/schemas/Money"
          },
          "priceRecordId": {
            "type": "string",
            "description": "The unique identifier of the price in the pricing domain.\n"
          },
          "chargeType": {
            "type": "string",
            "description": "The charge type that the price represents. The supported values are&#58;<ul><li>debit<li>credit</ul>\n"
          },
          "impactingPriceParameter": {
            "type": "array",
            "description": "The parameters that impact the price\n",
            "items": {
              "$ref": "#/components/schemas/PriceParam"
            }
          },
          "appliedTax": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedTax"
            }
          },
          "rateValidity": {
            "$ref": "#/components/schemas/TimePeriod"
          }
        },
        "description": "Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration."
      },
      "PriceParam": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the parameter\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the parameter\n"
          },
          "value": {
            "type": "string",
            "description": "The value of the parameter\n"
          }
        },
        "description": "TMF++::The parameters that may impact/impact the price\n"
      },
      "AppliedTax": {
        "required": [
          "taxAmount",
          "taxDefinition",
          "taxableAmount"
        ],
        "type": "object",
        "properties": {
          "taxDefinition": {
            "$ref": "#/components/schemas/TaxDefinition"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxableAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "exemptAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "periodCoverage": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "extensions": {
            "$ref": "#/components/schemas/TaxExtensions"
          }
        },
        "description": "TMF++::Calculated tax response"
      },
      "TaxExtensions": {
        "type": "object",
        "properties": {
          "Tax": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tax"
            }
          }
        }
      },
      "Tax": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "TaxDefinition": {
        "required": [
          "exemptionType",
          "isExemption",
          "taxJurisdiction",
          "taxRate",
          "taxType",
          "vaidFor"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The display name of tax type"
          },
          "taxRate": {
            "type": "number",
            "description": "Rate of tax",
            "format": "float"
          },
          "taxType": {
            "type": "string",
            "description": "VAT/GST etc"
          },
          "category": {
            "type": "string",
            "description": "Luxury/Standard etc"
          },
          "isExemption": {
            "type": "boolean",
            "description": "Where the tax definition has exemption defined on it"
          },
          "exemptionType": {
            "type": "string",
            "description": "Exemption type. Valid Values - Customer, Service, Jurisdiction, None."
          },
          "vaidFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "taxJurisdiction": {
            "$ref": "#/components/schemas/TaxJurisdiction"
          }
        },
        "description": "TMF++::Tax definition"
      },
      "TaxJurisdiction": {
        "required": [
          "level",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "description": "TMF++::Tax Juristiction"
      },
      "PriceAlteration": {
        "required": [
          "price",
          "priceType"
        ],
        "type": "object",
        "properties": {
          "applicationDuration": {
            "type": "integer",
            "description": "Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge)"
          },
          "description": {
            "type": "string",
            "description": "A narrative that explains in detail the semantics of this order item price alteration"
          },
          "name": {
            "type": "string",
            "description": "Name of the order item price alteration"
          },
          "priceType": {
            "type": "string",
            "description": "A category that describes the price such as recurring, one time and usage."
          },
          "priority": {
            "type": "integer",
            "description": "Priority level for applying this alteration among all the defined alterations on the order item price"
          },
          "recurringChargePeriod": {
            "type": "string",
            "description": "Could be month, week..."
          },
          "unitOfMeasure": {
            "type": "string",
            "description": "Could be minutes, GB..."
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/ProductOfferingPriceRef"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "recurringChargePeriodLength": {
            "type": "integer",
            "description": "TMF++::The period length of the recurring charge\n"
          },
          "alterationType": {
            "type": "string",
            "description": "TMF++::Type of the alteration\n"
          },
          "promotionActionId": {
            "type": "string",
            "description": "TMF++::Unique identifier of the promotion action triggering this price alteration\n"
          },
          "immediatePromotionId": {
            "type": "string",
            "description": "TMF++::Unique identifier of the promotion instance\n"
          },
          "alterationProductOfferingPriceId": {
            "type": "string",
            "description": "TMF++::Unique identifier of the product offering price on behalf of which the price alteration was given\n"
          },
          "alterationBundleProductOfferingId": {
            "type": "string",
            "description": "TMF++::Unique identifier of the bundle product offering on behalf of which the price alteration was given\n"
          },
          "alterationApplyOrder": {
            "type": "integer",
            "description": "TMF++::Order of the alteration price appliance\n"
          },
          "chargeType": {
            "type": "string",
            "description": "TMF++::Charge type represented by the price alteration. The supported values are&#58;<ul><li>debit<li>discount<li>credit</ul> \n"
          },
          "prorationFactor": {
            "type": "number",
            "description": "TMF++::Proration factor used to prorate this amount\n",
            "format": "double"
          },
          "periodCoverage": {
            "$ref": "#/components/schemas/TimePeriod"
          }
        },
        "description": "Is an amount, usually of money, that modifies the price charged for an order item."
      },
      "ProductOfferingPriceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "priceType": {
            "type": "string",
            "description": "Price offered based on the type"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased"
      },
      "ProductOfferingQualificationItemRef": {
        "required": [
          "id",
          "productOfferingQualificationId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of an item of a product offering qualification"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "productOfferingQualificationHref": {
            "type": "string",
            "description": "Reference of the related entity."
          },
          "productOfferingQualificationId": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "productOfferingQualificationName": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "It's a productOfferingQualification item that has been executed previously."
      },
      "ProductOfferingQualificationRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "It's a productOfferingQualification that has been executed previously"
      },
      "ProductOfferingRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "productOfferingType": {
            "type": "string",
            "description": "TMF++::Type of the product offering\n"
          },
          "productOfferingTypeGroup": {
            "type": "string",
            "description": "TMF++::Type of the product offering type group\n"
          },
          "productOfferingGroup": {
            "type": "string",
            "description": "TMF++::Type of the product offering group\n"
          },
          "primary": {
            "type": "boolean",
            "description": "TMF++::Indicates whether the product offering has a business significance for the customer&#58;\n- It is reflected as a product for the customer and it is actionable - the customer can perform ordering actions on it\n- An action performed on a primary offer can impact the actions available for its bundled or dependent offers (for example, when ownership of a primary offer is changed some internal offers cannot be added or removed)\n"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information."
      },
      "ProductOrder": {
        "type": "object",
        "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": {
          "id": {
            "type": "string",
            "description": "ID created on repository side (OM system)"
          },
          "version": {
            "type": "integer",
            "description": "Version number for the Shopping Cart"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Hyperlink to access the order"
          },
          "coupon": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImmediatePromotion"
            }
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date when the order is cancelled. This is used when order is cancelled. ",
            "format": "date-time"
          },
          "cancellationReason": {
            "type": "string",
            "description": "Reason why the order is cancelled. This is used when order is cancelled. "
          },
          "category": {
            "type": "string",
            "description": "Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...)"
          },
          "completionDate": {
            "type": "string",
            "description": "Date when the order was completed",
            "format": "date-time"
          },
          "description": {
            "type": "string",
            "description": "Description of the product order"
          },
          "expectedCompletionDate": {
            "type": "string",
            "description": "Expected delivery date amended by the provider",
            "format": "date-time"
          },
          "externalId": {
            "type": "string",
            "description": "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)"
          },
          "notificationContact": {
            "type": "string",
            "description": "Contact attached to the order to send back information regarding this order"
          },
          "orderDate": {
            "type": "string",
            "description": "Date when the order was created",
            "format": "date-time"
          },
          "lastUpdate": {
            "type": "string",
            "description": "TMF++::Date on which the product order was created\n",
            "format": "date-time",
            "readOnly": true
          },
          "orderPriceDate": {
            "type": "string",
            "description": "TMF++::Date on which the product order price was calculated\n",
            "format": "date-time",
            "readOnly": true
          },
          "priority": {
            "type": "string",
            "description": "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)"
          },
          "requestedCompletionDate": {
            "type": "string",
            "description": "Requested delivery date from the requestor perspective",
            "format": "date-time"
          },
          "requestedStartDate": {
            "type": "string",
            "description": "Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. ",
            "format": "date-time"
          },
          "orderExtensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "productConfiguration": {
            "$ref": "#/components/schemas/ProductConfiguration"
          },
          "agreement": {
            "type": "array",
            "description": "A reference to an agreement defined in the context of the product order",
            "items": {
              "$ref": "#/components/schemas/AgreementRef"
            }
          },
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "channel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedChannel"
            }
          },
          "note": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "orderTotalPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderPrice"
            }
          },
          "payment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentProductOrder"
            }
          },
          "productOfferingQualification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingQualificationRef"
            }
          },
          "productOrderItem": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductOrderItem"
            }
          },
          "quote": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteRef"
            }
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "state": {
            "$ref": "#/components/schemas/ProductOrderStateType"
          },
          "subState": {
            "type": "string",
            "description": "Substatus value"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "immediatePromotion": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ImmediatePromotion"
            }
          },
          "validation": {
            "$ref": "#/components/schemas/Validation"
          }
        },
        "required": [
          "productOrderItem"
        ],
        "x-examples": {}
      },
      "ProductOrderItem": {
        "required": [
          "action",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, ...)"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity ordered"
          },
          "action": {
            "$ref": "#/components/schemas/OrderItemActionType"
          },
          "appointment": {
            "$ref": "#/components/schemas/AppointmentRef"
          },
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "agreement": {
            "type": "array",
            "description": "A reference to an agreement defined in the context of the product order",
            "items": {
              "$ref": "#/components/schemas/AgreementRef"
            }
          },
          "itemPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderPrice"
            }
          },
          "itemTerm": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderTerm"
            }
          },
          "itemTotalPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderPrice"
            }
          },
          "payment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRef"
            }
          },
          "product": {
            "$ref": "#/components/schemas/ProductRefOrValue"
          },
          "productOffering": {
            "$ref": "#/components/schemas/ProductOfferingRef"
          },
          "productOfferingQualificationItem": {
            "$ref": "#/components/schemas/ProductOfferingQualificationItemRef"
          },
          "productOrderItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductOrderItem"
            }
          },
          "productOrderItemRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemRelationship"
            }
          },
          "qualification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductOfferingQualificationRef"
            }
          },
          "quoteItem": {
            "$ref": "#/components/schemas/QuoteItemRef"
          },
          "state": {
            "$ref": "#/components/schemas/ProductOrderItemStateType"
          },
          "subState": {
            "type": "string",
            "description": "Substatus value"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "readOnly": {
            "type": "boolean",
            "description": "TMF++::Indicates whether the order item can be reconfigured\n",
            "readOnly": true
          },
          "completionDate": {
            "type": "string",
            "description": "TMF++::Date on which the order item was completed\n",
            "format": "date-time",
            "readOnly": true
          },
          "requestedStartDate": {
            "type": "string",
            "description": "TMF++::Date on which the order item was requested to be started\n",
            "format": "date-time"
          },
          "requestedCompletionDate": {
            "type": "string",
            "description": "TMF++::Date on which the order item was requested to be completed\n",
            "format": "date-time"
          },
          "expectedCompletionDate": {
            "type": "string",
            "description": "TMF++::Date on which the order item is expected to be completed\n",
            "format": "date-time",
            "readOnly": true
          },
          "retroactiveChangeDate": {
            "type": "string",
            "description": "TMF++::Past date of a retroactive change performed on the order item\n",
            "format": "date-time"
          },
          "creationDate": {
            "type": "string",
            "description": "TMF++::Item creation date \n",
            "format": "date-time"
          },
          "itemPriceDate": {
            "type": "string",
            "description": "TMF++::Date according to which the product order item was quoted\n",
            "format": "date-time"
          },
          "productOfferingGroupOption": {
            "$ref": "#/components/schemas/ProductOfferingGroupOption"
          },
          "modifyReason": {
            "type": "array",
            "description": "TMF++::Modify Reason",
            "items": {
              "$ref": "#/components/schemas/ModifyReason"
            }
          },
          "nextAction": {
            "type": "array",
            "description": "TMF++::Next Action",
            "items": {
              "$ref": "#/components/schemas/NextAction"
            }
          },
          "relatedImmediatePromotion": {
            "type": "array",
            "description": "TMF++::List of immediate promotions related to the order item\n",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/RelatedImmediatePromotion"
            }
          },
          "characteristic": {
            "type": "array",
            "description": "TMF++::Characteristics of the product offering\n",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "fulfillmentMethod": {
            "type": "string"
          },
          "extensions": {
            "$ref": "#/components/schemas/ProductOrderItem_Extensions"
          },
          "actionReason": {
            "items": {
              "description": "The action and complementary reason associated with a customer-owned product or a newly provided product offering\n",
              "properties": {
                "action": {
                  "description": "Name of the action performed on the instance of the product offering\n",
                  "type": "string"
                },
                "metadata": {
                  "description": "Metadata of the Modify Reason\n",
                  "items": {
                    "description": "Metadata\n",
                    "properties": {
                      "metadataType": {
                        "description": "Type of the metadata\n",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the metadata\n",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of the metadata\n",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "reason": {
                  "description": "Name of the modification reason\n",
                  "type": "string"
                },
                "reasonText": {
                  "description": "Text of the modification reason. This property is populated if the type of the modification reason requires an input of a free text\n",
                  "type": "string"
                }
              },
              "required": [
                "reason"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "description": "An identified part of the order. A product order is decomposed into one or more order items."
      },
      "ProductOfferingGroupOption": {
        "type": "object",
        "properties": {
          "groupOptionId": {
            "type": "string",
            "description": "Unique identifier of the product offering group option in the product catalog\n"
          }
        },
        "description": "TMF++::Reference to the product offering group option from the product catalog\n"
      },
      "NextAction": {
        "type": "object",
        "properties": {
          "nextActionType": {
            "type": "string",
            "description": "next action type can be catalog define limit duration product, catalog define limit duration promotion or customer defined temporary action\n"
          },
          "action": {
            "type": "string",
            "description": "Action applied to the order item (for example - add, suspend, resume, terminate, and so on). \n"
          },
          "durationPolicy": {
            "$ref": "#/components/schemas/DurationPolicy"
          },
          "modifyReason": {
            "$ref": "#/components/schemas/ModifyReason"
          },
          "calculateEffectiveDate": {
            "type": "string",
            "description": "the date that will be recalculated by the order handling for the next action\n",
            "format": "date-time"
          }
        },
        "description": "TMF++::Next action in the same order that can be complementary action (for example suspend will have next action resume)\n"
      },
      "RelatedImmediatePromotion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the immediate promotion\n"
          },
          "itemQualificationType": {
            "type": "string",
            "description": "Type of the qualification result for an item - *trigger* or *benefit*\n"
          },
          "itemStatus": {
            "type": "string",
            "description": "Status of the item in the promotion:\n- *add* - A new item in the product promotion\n- *keep* - An existing item that remains as the result of reevaluation in the product promotion\n- *revoke* - An existing item that is revoked as the result of reevaluation in the product promotion\n"
          }
        },
        "description": "TMF++::Reference to the full immediate promotion\n"
      },
      "ProductOrderItemStateType": {
        "type": "string",
        "description": "Possible values for the state of the product order item",
        "enum": [
          "acknowledged",
          "Amended",
          "pending",
          "held",
          "inProgress",
          "cancelled",
          "Fallout",
          "Partial",
          "PendingAmend",
          "PendingCancel",
          "completed",
          "failed",
          "Draft",
          "Submitted",
          "Cloned"
        ]
      },
      "ProductOrderStateType": {
        "type": "string",
        "description": "Possible values for the state of the order",
        "enum": [
          "acknowledged",
          "rejected",
          "pending",
          "held",
          "inProgress",
          "cancelled",
          "completed",
          "failed",
          "partial",
          "assessingCancellation",
          "pendingCancellation",
          "Draft",
          "Submitted"
        ]
      },
      "ProductPrice": {
        "required": [
          "price",
          "priceType"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A narrative that explains in detail the semantics of this product price."
          },
          "name": {
            "type": "string",
            "description": "A short descriptive name such as \"Subscription price\"."
          },
          "priceType": {
            "type": "string",
            "description": "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth."
          },
          "recurringChargePeriod": {
            "type": "string",
            "description": "Could be month, week..."
          },
          "unitOfMeasure": {
            "type": "string",
            "description": "Could be minutes, GB..."
          },
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "productOfferingPrice": {
            "$ref": "#/components/schemas/ProductOfferingPriceRef"
          },
          "productPriceAlteration": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceAlteration"
            }
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time."
      },
      "ProductRefOrValue": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the product"
          },
          "referenceId": {
            "description": "TMF++::Reference ID of the product\n",
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the product"
          },
          "description": {
            "type": "string",
            "description": "Is the description of the product. It could be copied from the description of the Product Offering."
          },
          "isBundle": {
            "type": "boolean",
            "description": "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering."
          },
          "isCustomerVisible": {
            "type": "boolean",
            "description": "If true, the product is visible by the customer."
          },
          "name": {
            "type": "string",
            "description": "Name of the product. It could be the same as the name of the product offering"
          },
          "orderDate": {
            "type": "string",
            "description": "Is the date when the product was ordered",
            "format": "date-time"
          },
          "productSerialNumber": {
            "type": "string",
            "description": "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router."
          },
          "startDate": {
            "type": "string",
            "description": "Is the date from which the product starts",
            "format": "date-time"
          },
          "terminationDate": {
            "type": "string",
            "description": "Is the date when the product was terminated",
            "format": "date-time"
          },
          "agreement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgreementItemRef"
            }
          },
          "billingAccount": {
            "$ref": "#/components/schemas/BillingAccountRef"
          },
          "place": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedPlaceRefOrValue"
            }
          },
          "product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductRefOrValue"
            }
          },
          "productCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "productOffering": {
            "$ref": "#/components/schemas/ProductOfferingRef"
          },
          "productOrderItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedProductOrderItem"
            }
          },
          "productPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPrice"
            }
          },
          "productRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductRelationship"
            }
          },
          "productSpecification": {
            "$ref": "#/components/schemas/ProductSpecificationRef"
          },
          "productTerm": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTerm"
            }
          },
          "realizingResource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceRef"
            }
          },
          "realizingService": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceRef"
            }
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatusType"
          },
          "primaryProductId": {
            "type": "string",
            "description": "Unique identifier of the primary product. This property is populated only when the product is a product reference for the *Enable By* relation, and the referenced product is a product in the inventory and is not part of the order. In this case, the property contains the ID of the product ancestor that is marked as primary. This property and *productOrderRef* are mutually exclusive"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself"
      },
      "ProductRelationship": {
        "required": [
          "relationshipType"
        ],
        "type": "object",
        "properties": {
          "relationshipType": {
            "type": "string",
            "description": "Type of the product relationship, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful"
          },
          "relationshipSubtype": {
            "type": "string",
            "description": "Refers to relationship.id"
          },
          "product": {
            "$ref": "#/components/schemas/ProductRefOrValue"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful"
      },
      "ProductSpecificationRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "version": {
            "type": "string",
            "description": "Version of the product specification"
          },
          "productSpecificationType": {
            "type": "string"
          },
          "productSpecificationTypeId": {
            "type": "string"
          },
          "targetProductSchema": {
            "$ref": "#/components/schemas/TargetProductSchema"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role."
      },
      "ProductStatusType": {
        "type": "string",
        "description": "Possible values for the status of the product",
        "enum": [
          "created",
          "pendingActive",
          "cancelled",
          "active",
          "pendingTerminate",
          "terminated",
          "suspended",
          "aborted "
        ]
      },
      "ProductTerm": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the productTerm"
          },
          "name": {
            "type": "string",
            "description": "Name of the productTerm"
          },
          "duration": {
            "$ref": "#/components/schemas/Quantity"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "Description of a productTerm linked to this product. This represent a commitment with a duration"
      },
      "Quantity": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "Numeric value in a given unit",
            "default": 1
          },
          "units": {
            "type": "string",
            "description": "Unit"
          }
        },
        "description": "An amount in a given unit"
      },
      "QuoteItemRef": {
        "required": [
          "id",
          "quoteId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of an item of a quote"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "quoteHref": {
            "type": "string",
            "description": "Reference of the related entity."
          },
          "quoteId": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "quoteName": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "It's a Quote item that has been executed previously."
      },
      "QuoteRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "It's a Quote that has been executed previously"
      },
      "AppointmentInfo": {
        "x-amf-examples": {
          "valid": {
            "installationDayContact": {
              "id": "1cedc118-1205-49ae-9f53-52e4fd757de4",
              "givenName": "dev6",
              "familyName": "Newton",
              "individualIdentification": [
                {
                  "identificationType": "onlineId",
                  "identificationId": "555120289"
                }
              ],
              "contactMedium": [
                {
                  "mediumType": "email",
                  "characteristic": {
                    "contactType": "home",
                    "emailAddress": "qay_slid_aj0929MiFi@att.com"
                  }
                },
                {
                  "mediumType": "telephone",
                  "characteristic": {
                    "contactType": "home",
                    "phoneNumber": "3142127385"
                  }
                }
              ]
            },
            "selected": {
              "id": "wrkordid-2022-09-28-08-10",
              "@type": "realTime"
            }
          }
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "installationDayContact": {
            "$ref": "#/components/schemas/installationDayContact"
          },
          "selected": {
            "description": "Refers an appointment, such as a Customer presentation or internal meeting or site visit",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "@baseType": {
                "description": "When sub-classing, this defines the super-class",
                "type": "string"
              },
              "@referredType": {
                "description": "The actual type of the target instance when needed for disambiguation",
                "type": "string"
              },
              "@schemaLocation": {
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
                "type": "string",
                "format": "uri"
              },
              "@type": {
                "description": "When sub-classing, this defines the sub-class Extensible name",
                "type": "string"
              },
              "description": {
                "description": "An explanatory text regarding the appointment made with a party",
                "type": "string"
              },
              "href": {
                "description": "The reference of the appointment",
                "type": "string",
                "format": "uri"
              },
              "id": {
                "description": "The identifier of the referred appointment",
                "type": "string"
              }
            }
          }
        }
      },
      "RelatedChannel": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the channel."
          },
          "role": {
            "type": "string",
            "description": "Role playing by the channel."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          }
        },
        "description": "Related channel to another entity. May be online web, mobile app, social ,etc."
      },
      "RelatedParty": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "role": {
            "type": "string",
            "description": "Role played by the related party"
          },
          "extensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Related Entity reference. A related party defines party or party role linked to a specific entity."
      },
      "RelatedPlaceRefOrValue": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the place"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Unique reference of the place"
          },
          "name": {
            "type": "string",
            "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
          },
          "role": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          }
        },
        "description": "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself"
      },
      "RelatedProductOrderItem": {
        "required": [
          "orderItemId",
          "productOrderId"
        ],
        "type": "object",
        "properties": {
          "orderItemAction": {
            "type": "string",
            "description": "Action of the order item for this product"
          },
          "orderItemId": {
            "type": "string",
            "description": "Identifier of the order item where the product was managed"
          },
          "productOrderHref": {
            "type": "string",
            "description": "Reference of the related entity."
          },
          "productOrderId": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "role": {
            "type": "string",
            "description": "role of the product order item for this product"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination."
      },
      "ResourceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the resource"
          },
          "value": {
            "type": "string",
            "description": "The resource value that can be used to identify a resource with a public key (e.g.: a tel nr, an msisdn)"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        }
      },
      "ServiceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Service reference, for when Service is used by other entities"
      },
      "TargetProductSchema": {
        "required": [
          "@schemaLocation",
          "@type"
        ],
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "This field provides a link to the schema describing the target product"
          },
          "@type": {
            "type": "string",
            "description": "Class type of the target product"
          }
        },
        "description": "The reference object to the schema and type of target product which is described by product specification"
      },
      "TimePeriod": {
        "type": "object",
        "properties": {
          "endDateTime": {
            "type": "string",
            "description": "End of the time period, using IETC-RFC-3339 format",
            "format": "date-time"
          },
          "startDateTime": {
            "type": "string",
            "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end",
            "format": "date-time"
          }
        },
        "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both"
      },
      "Error": {
        "required": [
          "code",
          "reason"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Application relevant detail, defined in the API or a common list."
          },
          "reason": {
            "type": "string",
            "description": "Explanation of the reason for the error which can be shown to a client user."
          },
          "message": {
            "type": "string",
            "description": "More details and corrective actions related to the error which can be shown to a client user."
          },
          "status": {
            "type": "string",
            "description": "HTTP Error code extension"
          },
          "referenceError": {
            "type": "string",
            "description": "URI of documentation describing the error.",
            "format": "uri"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class."
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name."
          }
        },
        "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)"
      },
      "PaymentProductOrder": {
        "description": "Representation of a payment method",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id of the payment method in the server"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "URI where to perform actions on the payment method"
          },
          "role": {
            "type": "string",
            "description": "URI where to perform actions on the payment method"
          },
          "name": {
            "type": "string",
            "description": "Screen name of the payment method"
          },
          "description": {
            "type": "string",
            "description": "Description of the payment method"
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "account": {
            "type": "array",
            "description": "Account that owns or can use the payment method",
            "items": {
              "$ref": "#/components/schemas/BillingAccountRef"
            }
          },
          "preferred": {
            "type": "boolean",
            "description": "Defines whether this particular method is the preferred one"
          },
          "relatedParty": {
            "type": "array",
            "description": "Account that owns the payment method",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "paymentItem": {
            "type": "array",
            "description": "Payment order item reference id",
            "items": {
              "$ref": "#/components/schemas/PaymentItemRef"
            }
          },
          "@type": {
            "type": "string",
            "enum": [
              "cash",
              "digitalWallet",
              "tokenizedCard",
              "bankAccountTransfer",
              "bankAccountDebit",
              "bankCard",
              "account",
              "bucket",
              "voucher",
              "check",
              "loyaltyAccount"
            ],
            "description": "Payment method type. The content of the details field depends on the value of this one"
          },
          "authorizationCode": {
            "type": "string",
            "description": "Authorization code provided by a financial institution. Typically this would be populated for recurring payments using the method, as payments have an authorization code of their own."
          },
          "status": {
            "type": "string",
            "description": "Current status of the payment method"
          },
          "statusDate": {
            "format": "date-time",
            "type": "string",
            "description": "Last time the status changed"
          },
          "details": {
            "$ref": "#/components/schemas/ProductOrderPaymentDetails"
          },
          "characteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          }
        },
        "required": [
          "id",
          "href",
          "@type",
          "details"
        ]
      },
      "ProductOrderPaymentDetails": {
        "title": "details",
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Payment Details token"
          },
          "tokenType": {
            "type": "string",
            "description": "Payment Details tokenType"
          },
          "type": {
            "type": "string",
            "description": "Payment Details type"
          },
          "issuer": {
            "type": "string",
            "description": "Payment Details issuer"
          },
          "brand": {
            "type": "string",
            "description": "Payment Details brand"
          },
          "lastFourDigits": {
            "type": "number",
            "description": "Payment Details lastFourDigits"
          }
        }
      },
      "PaymentItemRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Reference of the related entity."
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "ProductOrder (ProductOrder) .The product order which the recommendation is related with."
      },
      "Validation": {
        "type": "object",
        "description": "TMF++::Validation result that is associated with the product order\n",
        "properties": {
          "status": {
            "type": "string",
            "description": "Validation status\n"
          },
          "readyToCheckout": {
            "type": "boolean",
            "description": "Ready To Checkout\n"
          },
          "readyToSubmit": {
            "type": "boolean",
            "description": "Ready to Submit\n"
          },
          "error": {
            "$ref": "#/components/schemas/Error"
          },
          "validationMessage": {
            "type": "array",
            "description": "Validation message\n",
            "items": {
              "$ref": "#/components/schemas/ValidationMessage"
            }
          },
          "configurationChange": {
            "type": "array",
            "description": "Configuration change\n",
            "items": {
              "$ref": "#/components/schemas/ConfigurationChange"
            }
          },
          "configuration": {
            "type": "array",
            "description": "Configuration Components\n",
            "items": {
              "$ref": "#/components/schemas/Configuration"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "x-examples": {}
      },
      "ValidationMessage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Non-localized name identifier of the validation message\n"
          },
          "text": {
            "type": "string",
            "description": "Localized descriptive validation message\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the validation message\n"
          },
          "subtype": {
            "type": "string",
            "description": "Distinct code which represents the issue\n"
          },
          "parameter": {
            "type": "array",
            "description": "Name/value pair of the validation message\n",
            "items": {
              "$ref": "#/components/schemas/ValidationMessageParameter"
            }
          },
          "severity": {
            "type": "string",
            "description": "Severity of the validation message\n"
          },
          "path": {
            "type": "string",
            "description": "Path to the resource part to which the validation message is related\n"
          },
          "resource": {
            "type": "array",
            "description": "Resource that is associated with the message\n",
            "items": {
              "$ref": "#/components/schemas/RelatedResource"
            }
          }
        },
        "description": "TMF++::Message associated with the validation failure\n"
      },
      "ValidationMessageParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the parameter\n"
          },
          "value": {
            "type": "array",
            "description": "Value of the parameter\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "TMF++::Name/value pair of the validation message parameter\n"
      },
      "RelatedResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the resource\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the resource\n"
          },
          "variable": {
            "type": "array",
            "description": "Variables related to the resource\n",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          },
          "containedResource": {
            "type": "array",
            "description": "Other resources, specs, or offers that are linked to the message but did not trigger the validation message\n",
            "items": {
              "$ref": "#/components/schemas/ContainedResource"
            }
          }
        },
        "description": "TMF++::Resource that is associated with the validation message (that is, triggered the validation failure)\n"
      },
      "Variable": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the variable\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the variable\n"
          },
          "value": {
            "type": "array",
            "description": "Value(s) of the variable\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Variable that is associated with a resource\n"
      },
      "ContainedResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the resource\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the resource\n"
          },
          "variable": {
            "type": "array",
            "description": "Variables that are related to the resource\n",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          }
        },
        "description": "TMF++::Resources that are contained in the validation message\n"
      },
      "ConfigurationChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the configuration change\n"
          },
          "text": {
            "type": "string",
            "description": "Localized descriptive configuration change message\n"
          },
          "type": {
            "type": "string",
            "description": "Implementation discriminator of the configuration change\n"
          },
          "parameter": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConfigurationChangeParameter"
            }
          },
          "severity": {
            "type": "string",
            "description": "Severity of the configuration change\n"
          },
          "path": {
            "type": "string",
            "description": "Path to the configuration change in the resource model\n"
          },
          "skipRevalidation": {
            "type": "boolean",
            "description": "Indicates whether revalidation of the configuration change is required\n"
          },
          "patchElement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PatchElement"
            }
          },
          "configurationChangeSource": {
            "type": "array",
            "description": "Holds a list of the impacting components that are involved in action rule\n- enablmentRelation - The action rule has impacting enablment relation functionality or was created by this functionality.\n- commertialRelation - The action rule has impacting commertial relation functionality or was created by this functionality.\n- subscriptionRelation - The action rule has impacting subscription relation or was created by this functionality. functionality\n- catalog - The action rule was created by catalog.\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "TMF++::Configuration change recommended for a validated resource\n"
      },
      "ConfigurationChangeParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the parameter\n"
          },
          "value": {
            "type": "array",
            "description": "Value(s) of the parameter\n",
            "items": {
              "type": "string"
            }
          },
          "valueType": {
            "type": "string",
            "description": "Types of each Value in the parameter array\nAs a default - when empty - the type is string.\nAlso will be supported-\n** HashMap - a jason format representation of key value <string,string> map.\n"
          }
        },
        "description": "TMF++::Name/value pair of the configuration change parameters\n"
      },
      "PatchElement": {
        "type": "object",
        "description": "TMF++::Patched resource part\n",
        "properties": {
          "op": {
            "type": "string",
            "description": "Operation that is associated with the patched resource part. Valid values are *add*, *remove*, or *replace*.\n"
          },
          "path": {
            "type": "string",
            "description": "Path of this resource part within the patched resource, for example, */note*, */name*, or */orderItem/quantity*\n"
          },
          "value": {
            "type": "object",
            "description": "Value of the patched resource part\n"
          }
        }
      },
      "ImmediatePromotion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the immediate promotion\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the instance of the immediate promotion\n"
          },
          "state": {
            "type": "string",
            "description": "The apply state of the qualified promotion. The state can have the following values:\n- 'applied' - For an immediate promotion that all of it's benefits are applied\n- 'notApplied' - For an immediate promotion that none of it's benefits are applied - future\n- 'partiallyApplied' - For an immediate promotion that part of it's benefits are applied - future\n- 'pendingApply' - Received in the request for an immediate promotion for which certain benefits, which are selected externally by a consuming application, should be applied\n"
          },
          "promotion": {
            "$ref": "#/components/schemas/PromotionRef"
          },
          "productPromotion": {
            "$ref": "#/components/schemas/ProductPromotionRef"
          },
          "triggerItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TriggerItem"
            }
          },
          "benefitItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BenefitItem"
            }
          },
          "immediatePromotionCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContextCharacteristic"
            }
          },
          "reason": {
            "$ref": "#/components/schemas/ModifyReason"
          },
          "relatedParty": {
            "$ref": "#/components/schemas/RelatedParty"
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Immediate promotion\n"
      },
      "ModifyReason": {
        "required": [
          "action",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the modification reason\n"
          },
          "reasonText": {
            "type": "string",
            "description": "Text of the modification reason. This property is populated if the type of the modification reason requires an input of a free text.\n"
          },
          "action": {
            "type": "string",
            "description": "Action performed on the instance of the product offering\n"
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Modification reason associated with the action performed on the product offering that is related to the order item\n"
      },
      "PromotionRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the promotion\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the promotion\n"
          },
          "description": {
            "type": "string",
            "description": "Promotion description for a business user\n"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "type": {
            "type": "string",
            "description": "The type of the promotion\n"
          },
          "priority": {
            "type": "integer",
            "description": "The priority of the promotion\n"
          },
          "applyPolicy": {
            "type": "string",
            "description": "Defines the policy to apply the promotion - can be manual or automatic \n"
          },
          "href": {
            "type": "string",
            "description": "Hypertext reference to the promotion\n",
            "format": "url",
            "readOnly": true
          }
        },
        "description": "TMF++::Reference to the promotion\n"
      },
      "ProductPromotionRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the product promotion\n"
          },
          "href": {
            "type": "string",
            "description": "Hypertext reference to the product promotion\n",
            "format": "url",
            "readOnly": true
          }
        },
        "description": "TMF++::Reference to the product promotion.\n"
      },
      "TriggerItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the trigger item\n"
          },
          "href": {
            "type": "string",
            "description": "Hypertext reference to the trigger item\n",
            "format": "url"
          },
          "itemType": {
            "type": "string",
            "description": "Type of the trigger item\n"
          },
          "promotionCriteriaGroupId": {
            "type": "string",
            "description": "Unique identifier of the promotion criteria group (root or nested) as part of which this item is qualified as trigger item\n"
          },
          "itemStatus": {
            "type": "string",
            "description": "Status of the trigger item in the promotion&#58;\n- *add* - A new trigger item in the product promotion\n- *keep* - An existing trigger item that remains as the result of reevaluation in the product promotion\n- *revoke* - An existing trigger item that is revoked as the result of reevaluation in the product promotion\n"
          },
          "pathToRoot": {
            "type": "string",
            "description": "Path from the current item in the product offering structure to the root. Populated if the trigger item is a nested item.\n"
          },
          "triggerItemCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContextCharacteristic"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Item that participated in the promotion qualification\n"
      },
      "ContextCharacteristic": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the characteristic\n"
          },
          "contextType": {
            "type": "string",
            "description": "The context type of the characteristic\n"
          },
          "valueType": {
            "type": "string",
            "description": "The value type of the characteristic \n"
          },
          "value": {
            "type": "array",
            "description": "The value of the characteristic\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "TMF++::The list of dynamic characteristics related to a specific context\n"
      },
      "BenefitItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the benefit item \n"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Hypertext reference to the benefit item\n"
          },
          "itemType": {
            "type": "string",
            "description": "Type of the benefit item\n"
          },
          "promotionCriteriaGroupId": {
            "type": "string",
            "description": "Unique identifier of the promotion criteria group (root or nested) as part of which this item is qualified as a benefit item\n"
          },
          "itemStatus": {
            "type": "string",
            "description": "Status of the benefit item in the promotion&#58;\n- *add* - A new benefit item in the product promotion\n- *keep* - An existing benefit item that remains as the result of reevaluation in the product promotion\n- *revoke* - An existing benefit item that is revoked as the result of reevaluation in the product promotion\n"
          },
          "itemState": {
            "type": "string",
            "description": "The apply state of the benefit on a benefit item. The state can have the following values&#58;\n- 'applied' - For a benefit that is applied\n- 'notApplied' - For a benefit that is not applied\n- 'pendingApply' - Received in the request for a benefit, for which the relevant benefit item is selected and should be applied\n"
          },
          "pathToRoot": {
            "type": "string",
            "description": "Path from the current item in the product offering structure to the root. Populated if the benefit item is a nested item.\n"
          },
          "action": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromotionAction"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "description": "TMF++::Item that received the promotion benefit, which is a benefit granted through the promotion - can be discount, allowance, free services\n"
      }
    },
    "examples": {
      "OCE_Realtime_Activation_Failure_Eg1": {
        "value": {
          "configuration": [
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "DigitalID"
            },
            {
              "required": true,
              "status": "complete",
              "subtype": "string",
              "type": "CustomerProfile"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "BillingAccount"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "CreditInfo"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "FulfillmentOptions"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "ECONSENT,CSA,PAPERLESS_DISCLOSURE"
                }
              ],
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "Terms"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "AE"
                },
                {
                  "name": "autoPayEligiblePaymentTenders",
                  "value": "ACH,CreditCard,DebitCard"
                },
                {
                  "name": "dueTodayEligiblePaymentTenders",
                  "value": "CreditCard,DebitCard"
                },
                {
                  "name": "sourceLocation",
                  "value": "XX"
                },
                {
                  "name": "sourceSystem",
                  "value": "RTB"
                }
              ],
              "required": true,
              "status": "complete",
              "subtype": "autopay",
              "type": "payment"
            }
          ],
          "readyToSubmit": false,
          "status": "incomplete",
          "validationMessage": [
            {
              "text": "{faultDescription}",
              "type": "OCE"
            }
          ],
          "manageSubscriptions": {
            "cartId": "4acf5430-cdde-11ef-a076-69438f4c5ef7",
            "sessionId": "4acf5430-cdde-11ef",
            "customerOrderNumber": "24-768981789999999",
            "status": "failed",
            "errors": [
              {
                "message": "Cannot connnect to downstream system",
                "errorId": "500",
                "details": {
                  "faultCode": "500000000001",
                  "faultDescription": "Backend error - cannot connect to downstream."
                }
              }
            ]
          }
        }
      },
      "OCE_Realtime_Activation_Failure_Eg2": {
        "value": {
          "configuration": [
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "DigitalID"
            },
            {
              "required": true,
              "status": "complete",
              "subtype": "string",
              "type": "CustomerProfile"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "BillingAccount"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "CreditInfo"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "FulfillmentOptions"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "ECONSENT,CSA,PAPERLESS_DISCLOSURE"
                }
              ],
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "Terms"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "AE"
                },
                {
                  "name": "autoPayEligiblePaymentTenders",
                  "value": "ACH,CreditCard,DebitCard"
                },
                {
                  "name": "dueTodayEligiblePaymentTenders",
                  "value": "CreditCard,DebitCard"
                },
                {
                  "name": "sourceLocation",
                  "value": "XX"
                },
                {
                  "name": "sourceSystem",
                  "value": "RTB"
                }
              ],
              "required": true,
              "status": "complete",
              "subtype": "autopay",
              "type": "payment"
            }
          ],
          "readyToSubmit": false,
          "status": "incomplete",
          "validationMessage": [
            {
              "text": "{faultDescription}",
              "type": "OCE"
            }
          ],
          "manageSubscriptions": {
            "cartId": "4f5f65f0-0e50-11f0-8373-2f78b02572af",
            "sessionId": "a3Cfg000005gtQbEAI",
            "customerOrderNumber": "24-743710055242256",
            "status": "Failed",
            "subscribers": [
              {
                "subscriberNumber": "4695853803",
                "errors": [
                  {
                    "message": "Request performed out of sequence with business process",
                    "errorId": "500",
                    "details": {
                      "faultCode": "50000000065",
                      "faultDescription": "Combine BAN is not allowed - Inappropriate account type. The combination of BAN account type I and BAN account sub type R is illegal."
                    }
                  }
                ]
              }
            ]
          }
        }
      },
      "OCE_Realtime_Activation_Failure_Eg3": {
        "value": {
          "configuration": [
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "DigitalID"
            },
            {
              "required": true,
              "status": "complete",
              "subtype": "string",
              "type": "CustomerProfile"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "BillingAccount"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "CreditInfo"
            },
            {
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "FulfillmentOptions"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "ECONSENT,CSA,PAPERLESS_DISCLOSURE"
                }
              ],
              "required": true,
              "status": "incomplete",
              "subtype": "string",
              "type": "Terms"
            },
            {
              "properties": [
                {
                  "name": "TermsAndConditionsKeys",
                  "value": "AE"
                },
                {
                  "name": "autoPayEligiblePaymentTenders",
                  "value": "ACH,CreditCard,DebitCard"
                },
                {
                  "name": "dueTodayEligiblePaymentTenders",
                  "value": "CreditCard,DebitCard"
                },
                {
                  "name": "sourceLocation",
                  "value": "XX"
                },
                {
                  "name": "sourceSystem",
                  "value": "RTB"
                }
              ],
              "required": true,
              "status": "complete",
              "subtype": "autopay",
              "type": "payment"
            }
          ],
          "readyToSubmit": false,
          "status": "incomplete",
          "validationMessage": [
            {
              "text": "{faultDescription}",
              "type": "OCE"
            }
          ],
          "manageSubscriptions": {
            "status": "Failed",
            "errors": [
              {
                "message": "Timeout error.",
                "errorId": "500",
                "details": {
                  "faultCode": "50000000061",
                  "faultDescription": "Backend error - cannot connect to downstream."
                }
              }
            ]
          }
        }
      },
      "OCE_Milestone_Failed": {
        "value": {
          "id": "123456789",
          "state": "Acknowledged",
          "customerOrderId": "25-46454212454",
          "completionDate": "2022-01-03T21:25:33.226Z",
          "orderSummaryAccessToken": "string"
        }
      },
      "OCE_Milestone_Conflict": {
        "value": {
          "id": "123456789",
          "state": "Acknowledged",
          "customerOrderId": "25-46454212454",
          "completionDate": "2022-01-03T21:25:33.226Z",
          "orderSummaryAccessToken": "string"
        }
      },
      "OCE_StepContext_Response": {
        "value": {
          "id": "123456789",
          "state": "Acknowledged",
          "customerOrderId": "25-46454212454",
          "completionDate": "2022-01-03T21:25:33.226Z",
          "orderSummaryAccessToken": "string"
        }
      }
    },
    "parameters": {
      "idpctxuuid": {
        "in": "header",
        "name": "idpctx-uuid",
        "description": "Mandatory user id header 'idpctx-uuid'.",
        "required": true,
        "schema": {
          "type": "string",
          "default": "userId12345"
        }
      },
      "idpctxUserType": {
        "in": "header",
        "name": "idpctx-user-type",
        "description": "Type of user('idpctx-user-type'). This is a mandatory header. Example: guest",
        "required": true,
        "schema": {
          "type": "string",
          "default": "guest"
        }
      },
      "idpctxSessionId": {
        "in": "header",
        "name": "idpctx-session-id",
        "description": "The session id of the current user session('idpctx-session-id'). This is a mandatory header.",
        "required": true,
        "schema": {
          "type": "string",
          "default": "074e354a-8897-44c9-a8a0-c78dfe443a26"
        }
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "description": "This API supports Basic Authentication.\n",
        "scheme": "basic"
      }
    }
  }
}