{
  "openapi": "3.0.1",
  "security": [
    {
      "basicAuth": []
    }
  ],
  "info": {
    "title": "GeoAddress Management Process API",
    "description": "\nThe Geographic Address Management API is a client interface tool designed for address management systems. It offers the ability to search for addresses globally. Additionally, it serves as a tool for verifying the authenticity of geographic address data to ensure it represents a genuine geographic location. \n<br/>\nLastly, it can be utilized to find a geographic address by initially searching an area, such as a city or town, followed by narrowing down to the streets within that area, and concluding by enumerating all the segments or numbers on a particular street.\n\n\n\nGeographic Address Management API performs the following operations :\n- Retrieve a geographic address\n- Service address validation\n- Billing and Shipping address validation\n\n</br>\n\n<b> Upstream Services: </b><br/><br/>\n`EdgeProfileDataConsumerMS,CCmule,wireless-sales-eapi,copopofferms, idpgwconsumer`\n<br/><br/>\n<b>Downstream Services:</b>  <br/><br/>\n`Idpgwcconsumer`\n<br/><br/>\n\n[GeoAddress Management Overview- website](https://wiki.web.att.com/display/DRC/Geo-address-management+API)\n\n[Sequence Diagram](\n https://codecloud.web.att.com/projects/ST_GOV/repos/geo-address-management-papi_specs/browse/docs/architecture.jpg)\n\n[Send an email to Omni Commerce Enabler Services Team](mailto:DL-OmniEnabler@list.att.com)",
    "version": "4.0.6",
    "x-att-catalog": {
      "productTeam": "Cart & Checkout",
      "scrumTeam": "Commerce Platform",
      "functionalArea": "GeoLocation",
      "shortDescription": "REST API for geographic address management",
      "status": "DEVELOPMENT",
      "apiType": "BUSINESS_DOMAIN",
      "channelsSupported": [
        "WEB",
        "NATIVE"
      ],
      "tmfCompliant": true,
      "mots": 234432432,
      "tmfDocumentNumber": 673,
      "dynatraceUrl": "https://ikv688.dynatrace-managed.com/e/5058f9a1-d426-4412-9328-8a4d87697dee/#newservices/serviceOverview;id=SERVICE-586F3297D2BB06DD;gtf=-2h;gf=all",
      "grafanaUrl": "http://grafana1.web.att.com/idpgrafana/d/idpappmetricsv1/idp-app-metrics?var-application=watchtvorchestrationms",
      "efkUrl": null,
      "notes": null,
      "otherUrls": [
        "https://wiki.web.att.com/display/SolutionArchitecture/GeoAddress+Management+APIs"
      ]
    }
  },
  "servers": [
    {
      "url": "https://sales-internal-api-test-e2.az.3pc.att.com/msapi/salesapi/geo-address-management-papi-test3/v1"
    }
  ],
  "tags": [],
  "paths": {
    "/address-validation": {
      "post": {
        "tags": [
          "Address Validation"
        ],
        "summary": "Billing and Shipping Address Validation.",
        "description": "This operation takes address validation for shipping and billing address and it's provied all address type comma separated types billing,shipping,ppu.it's controls the maximum number of possible matches that are returned in the case of a multiple matches. Default is 10 if this field is not passed on the request",
        "operationId": "AddressValidation",
        "requestBody": {
          "description": "The GeographicAddress to be validated",
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/AddressValidationInputRequest"
              },
              "examples": {
                "SampleAdderssValidationInput": {
                  "value": {
                    "geographicAddress": {
                      "postcode": "98021",
                      "stateOrProvince": "WA",
                      "addressCharacteristic": [
                        {
                          "name": "addressLine1",
                          "value": "23114 38th Ave SE"
                        }
                      ]
                    },
                    "cartCharacteristic": [
                      {
                        "name": "category",
                        "value": "WBB"
                      }
                    ],
                    "channel": {
                      "id": "12345",
                      "name": "SelfService"
                    }
                  }
                },
                "Request for Address Validation with addressLine2": {
                  "value": {
                    "geographicAddress": {
                      "postcode": "98021",
                      "stateOrProvince": "WA",
                      "addressCharacteristic": [
                        {
                          "name": "addressLine1",
                          "value": "23114 38th Ave SE"
                        },
                        {
                          "name": "addressLine2",
                          "valueType": "string",
                          "value": "APT 123"
                        }
                      ]
                    },
                    "cartCharacteristic": [
                      {
                        "name": "category",
                        "value": "WBB"
                      }
                    ],
                    "channel": {
                      "id": "SF",
                      "name": "SF",
                      "channelCharacteristic": [
                        {
                          "name": "salesChannelId",
                          "value": "101"
                        },
                        {
                          "name": "salesChannelType",
                          "value": "SF"
                        }
                      ]
                    }
                  }
                },
                "Request for Address Validation with address ID": {
                  "value": {
                    "geographicAddress": {
                      "id": "00000NG3XH"
                    },
                    "cartCharacteristic": [
                      {
                        "name": "category",
                        "value": "WBB"
                      }
                    ],
                    "channel": {
                      "id": "SF",
                      "name": "SF",
                      "channelCharacteristic": [
                        {
                          "name": "salesChannelId",
                          "value": "101"
                        },
                        {
                          "name": "salesChannelType",
                          "value": "SF"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/GeographicAddressValidation"
                },
                "examples": {
                  "Success Response": {
                    "value": {
                      "validationResult": "success",
                      "validationResultCode": "4S80",
                      "validGeographicAddress": {
                        "id": "00000NG3XH",
                        "@type": "S",
                        "streetNr": "3802",
                        "streetName": "MAIN",
                        "streetType": "ST",
                        "city": "CHULA VISTA",
                        "stateOrProvince": "CA",
                        "postcode": "91911",
                        "postcodeExtension": "6247",
                        "streetSuffix": "SE",
                        "geographicSubAddress": [
                          {
                            "subUnitType": "STE",
                            "subUnitNumber": "5",
                            "subAddressType": "H"
                          }
                        ],
                        "addressCharacteristic": [
                          {
                            "name": "addressLine1",
                            "value": "3802 MAIN ST STE 5"
                          },
                          {
                            "name": "cityAbbreviatedName",
                            "value": "CHULA VISTA"
                          },
                          {
                            "name": "cassAddressLine1",
                            "value": "3802 MAIN ST STE 5"
                          },
                          {
                            "name": "cassAddressLine2",
                            "value": "HOUSTON TX  77077-7601"
                          },
                          {
                            "name": "county",
                            "value": "COOK"
                          },
                          {
                            "name": "urbanizationCode",
                            "value": "URB SUMMIT HLS"
                          },
                          {
                            "name": "addressMatchCode",
                            "value": "3SUU"
                          },
                          {
                            "name": "addressMatchCodeDescription",
                            "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                          },
                          {
                            "name": "addressMatchCodeStatus",
                            "value": "S80000"
                          },
                          {
                            "name": "deliveryPointValidationCode",
                            "value": "S"
                          },
                          {
                            "name": "lacsCode",
                            "value": "F"
                          },
                          {
                            "name": "deliveryPointValidationFootnote",
                            "value": "AABBCC"
                          },
                          {
                            "name": "taxationGeocode",
                            "value": "144339144000"
                          },
                          {
                            "name": "latitude",
                            "value": "29.738805"
                          },
                          {
                            "name": "longitude",
                            "value": "-95.61404"
                          }
                        ]
                      },
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "ACCEPT"
                        },
                        {
                          "validationType": "SHIPPING",
                          "validationRecommendation": "ACCEPT"
                        }
                      ]
                    }
                  },
                  "Success PO Box address": {
                    "value": {
                      "validationResult": "success",
                      "validationResultCode": "4SPO",
                      "validGeographicAddress": {
                        "id": "00011JCNHB",
                        "streetName": "PO BOX 1600",
                        "city": "HILO",
                        "stateOrProvince": "HI",
                        "postcode": "96721",
                        "postcodeExtension": "1600",
                        "streetSuffix": "SE",
                        "geographicSubAddress": [
                          {
                            "subAddressType": "P"
                          }
                        ],
                        "addressCharacteristic": [
                          {
                            "name": "addressLine1",
                            "value": "PO BOX 1600"
                          },
                          {
                            "name": "cityAbbreviatedName",
                            "value": "HILO"
                          },
                          {
                            "name": "cassAddressLine1",
                            "value": "3802 MAIN ST STE 5"
                          },
                          {
                            "name": "cassAddressLine2",
                            "value": "HOUSTON TX  77077-7601"
                          },
                          {
                            "name": "county",
                            "value": "COOK"
                          },
                          {
                            "name": "urbanizationCode",
                            "value": "URB SUMMIT HLS"
                          },
                          {
                            "name": "addressMatchCode",
                            "value": "3SUU"
                          },
                          {
                            "name": "addressMatchCodeDescription",
                            "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                          },
                          {
                            "name": "addressMatchCodeStatus",
                            "value": "S80000"
                          },
                          {
                            "name": "deliveryPointValidationCode",
                            "value": "S"
                          },
                          {
                            "name": "lacsCode",
                            "value": "F"
                          },
                          {
                            "name": "deliveryPointValidationFootnote",
                            "value": "AABBCC"
                          },
                          {
                            "name": "taxationGeocode",
                            "value": "144339144000"
                          },
                          {
                            "name": "latitude",
                            "value": "29.738805"
                          },
                          {
                            "name": "longitude",
                            "value": "-95.61404"
                          },
                          {
                            "name": "postalBox",
                            "value": "1600"
                          }
                        ]
                      },
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "ACCEPT"
                        },
                        {
                          "validationType": "SHIPPING",
                          "validationRecommendation": "STOP"
                        }
                      ]
                    }
                  },
                  "Success Rural address": {
                    "value": {
                      "validationResult": "success",
                      "validationResultCode": "4SE0",
                      "validGeographicAddress": {
                        "id": "00010UD41I",
                        "streetName": "RR 2",
                        "city": "EL CAMPO",
                        "stateOrProvince": "TX",
                        "postcode": "77437",
                        "postcodeExtension": "9205",
                        "geographicSubAddress": [
                          {
                            "subUnitType": "BOX"
                          },
                          {
                            "subUnitNumber": "186"
                          },
                          {
                            "subAddressType": "R"
                          }
                        ],
                        "addressCharacteristic": [
                          {
                            "name": "addressLine1",
                            "value": "RR 2 BOX 186"
                          },
                          {
                            "name": "cassAddressLine1",
                            "value": "RR 2 BOX 186"
                          },
                          {
                            "name": "cassAddressLine2",
                            "value": "EL CAMPO TX  77437-9205"
                          },
                          {
                            "name": "county",
                            "value": "WHARTON"
                          },
                          {
                            "name": "urbanizationCode",
                            "value": "URB SUMMIT HLS"
                          },
                          {
                            "name": "addressMatchCode",
                            "value": "4SE0"
                          },
                          {
                            "name": "addressMatchCodeDescription",
                            "value": "Address validation successful"
                          },
                          {
                            "name": "addressMatchCodeStatus",
                            "value": "SE0000"
                          },
                          {
                            "name": "deliveryPointValidationCode",
                            "value": "Y"
                          },
                          {
                            "name": "lacsCode",
                            "value": "T"
                          },
                          {
                            "name": "deliveryPointValidationFootnote",
                            "value": "AABB"
                          },
                          {
                            "name": "taxationGeocode",
                            "value": "144481097000"
                          },
                          {
                            "name": "latitude",
                            "value": "29.16982"
                          },
                          {
                            "name": "longitude",
                            "value": "-95.282193"
                          },
                          {
                            "name": "box",
                            "value": "186"
                          },
                          {
                            "name": "route",
                            "value": "2"
                          }
                        ]
                      },
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "ACCEPT"
                        },
                        {
                          "validationType": "SHIPPING",
                          "validationRecommendation": "STOP"
                        }
                      ]
                    }
                  },
                  "Close match - multiple matches": {
                    "value": {
                      "validationResult": "closematch",
                      "validationResultCode": "Multiple",
                      "validationResultDescription": "Address validation found multiple matches",
                      "alternateGeographicAddress": [
                        {
                          "city": "PLANO",
                          "stateOrProvince": "TX",
                          "postcode": "75075",
                          "postcodeExtension": "8011",
                          "addressCharacteristic": [
                            {
                              "name": "addressLine1",
                              "value": "3400 W PLANO PKWY"
                            },
                            {
                              "name": "cassAddressLine1",
                              "value": "3802 MAIN ST STE 5"
                            },
                            {
                              "name": "cassAddressLine2",
                              "value": "HOUSTON TX  77077-7601"
                            },
                            {
                              "name": "county",
                              "value": "COOK"
                            },
                            {
                              "name": "urbanizationCode",
                              "value": "URB SUMMIT HLS"
                            },
                            {
                              "name": "addressMatchCode",
                              "value": "3SUU"
                            },
                            {
                              "name": "addressMatchCodeDescription",
                              "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                            },
                            {
                              "name": "addressMatchCodeStatus",
                              "value": "S80000"
                            },
                            {
                              "name": "deliveryPointValidationCode",
                              "value": "S"
                            },
                            {
                              "name": "lacsCode",
                              "value": "F"
                            },
                            {
                              "name": "deliveryPointValidationFootnote",
                              "value": "AABBCC"
                            },
                            {
                              "name": "taxationGeocode",
                              "value": "144339144000"
                            },
                            {
                              "name": "latitude",
                              "value": "29.738805"
                            },
                            {
                              "name": "longitude",
                              "value": "-95.61404"
                            }
                          ]
                        },
                        {
                          "city": "PLANO",
                          "stateOrProvince": "TX",
                          "postcode": "75074",
                          "postcodeExtension": "7203",
                          "addressCharacteristic": [
                            {
                              "name": "addressLine1",
                              "value": "3400 E PLANO PKWY"
                            },
                            {
                              "name": "cassAddressLine1",
                              "value": "3802 MAIN ST STE 5"
                            },
                            {
                              "name": "cassAddressLine2",
                              "value": "HOUSTON TX  77077-7601"
                            },
                            {
                              "name": "county",
                              "value": "COOK"
                            },
                            {
                              "name": "urbanizationCode",
                              "value": "URB SUMMIT HLS"
                            },
                            {
                              "name": "addressMatchCode",
                              "value": "3SUU"
                            },
                            {
                              "name": "addressMatchCodeDescription",
                              "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                            },
                            {
                              "name": "addressMatchCodeStatus",
                              "value": "S80000"
                            },
                            {
                              "name": "deliveryPointValidationCode",
                              "value": "S"
                            },
                            {
                              "name": "lacsCode",
                              "value": "F"
                            },
                            {
                              "name": "deliveryPointValidationFootnote",
                              "value": "AABBCC"
                            },
                            {
                              "name": "taxationGeocode",
                              "value": "144339144000"
                            },
                            {
                              "name": "latitude",
                              "value": "29.738805"
                            },
                            {
                              "name": "longitude",
                              "value": "-95.61404"
                            }
                          ]
                        }
                      ],
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "LIST"
                        },
                        {
                          "validationType": "SHIPPING",
                          "validationRecommendation": "LIST"
                        }
                      ]
                    }
                  },
                  "Partial match with recommendation": {
                    "value": {
                      "validationResult": "closematch-mdu",
                      "validationResultCode": "3SMU",
                      "validationResultDescription": "Address is missing unit information.  Mail may not be delivered.",
                      "alternateGeographicAddress": [
                        {
                          "city": "HOUSTON",
                          "stateOrProvince": "TX",
                          "postcode": "77077",
                          "postcodeExtension": "7601",
                          "addressCharacteristic": [
                            {
                              "name": "addressLine1",
                              "value": "2400 BRIARWEST BLVD"
                            },
                            {
                              "name": "cassAddressLine1",
                              "value": "3802 MAIN ST STE 5"
                            },
                            {
                              "name": "cassAddressLine2",
                              "value": "HOUSTON TX  77077-7601"
                            },
                            {
                              "name": "county",
                              "value": "COOK"
                            },
                            {
                              "name": "urbanizationCode",
                              "value": "URB SUMMIT HLS"
                            },
                            {
                              "name": "addressMatchCode",
                              "value": "3SUU"
                            },
                            {
                              "name": "addressMatchCodeDescription",
                              "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                            },
                            {
                              "name": "addressMatchCodeStatus",
                              "value": "S80000"
                            },
                            {
                              "name": "deliveryPointValidationCode",
                              "value": "S"
                            },
                            {
                              "name": "lacsCode",
                              "value": "F"
                            },
                            {
                              "name": "deliveryPointValidationFootnote",
                              "value": "AABBCC"
                            },
                            {
                              "name": "taxationGeocode",
                              "value": "144339144000"
                            },
                            {
                              "name": "latitude",
                              "value": "29.738805"
                            },
                            {
                              "name": "longitude",
                              "value": "-95.61404"
                            }
                          ],
                          "geographicSubAddress": [
                            {
                              "subUnitType": "APT",
                              "subUnitNumber": "2209"
                            }
                          ]
                        },
                        {
                          "city": "HOUSTON",
                          "stateOrProvince": "TX",
                          "postcode": "77077",
                          "postcodeExtension": "7601",
                          "addressCharacteristic": [
                            {
                              "name": "addressLine1",
                              "value": "2400 BRIARWEST BLVD"
                            }
                          ],
                          "geographicSubAddress": [
                            {
                              "subUnitType": "APT",
                              "subUnitNumber": "2317"
                            }
                          ]
                        },
                        {
                          "city": "HOUSTON",
                          "stateOrProvince": "TX",
                          "postcode": "77077",
                          "postcodeExtension": "7601",
                          "addressCharacteristic": [
                            {
                              "name": "addressLine1",
                              "value": "2400 BRIARWEST BLVD"
                            },
                            {
                              "name": "cassAddressLine1",
                              "value": "3802 MAIN ST STE 5"
                            },
                            {
                              "name": "cassAddressLine2",
                              "value": "HOUSTON TX  77077-7601"
                            },
                            {
                              "name": "county",
                              "value": "COOK"
                            },
                            {
                              "name": "urbanizationCode",
                              "value": "URB SUMMIT HLS"
                            },
                            {
                              "name": "addressMatchCode",
                              "value": "3SUU"
                            },
                            {
                              "name": "addressMatchCodeDescription",
                              "value": "Unit information is not recognized by the U.S. Postal Service.  Mail may not be delivered"
                            },
                            {
                              "name": "addressMatchCodeStatus",
                              "value": "S80000"
                            },
                            {
                              "name": "deliveryPointValidationCode",
                              "value": "S"
                            },
                            {
                              "name": "lacsCode",
                              "value": "F"
                            },
                            {
                              "name": "deliveryPointValidationFootnote",
                              "value": "AABBCC"
                            },
                            {
                              "name": "taxationGeocode",
                              "value": "144339144000"
                            },
                            {
                              "name": "latitude",
                              "value": "29.738805"
                            },
                            {
                              "name": "longitude",
                              "value": "-95.61404"
                            }
                          ],
                          "geographicSubAddress": [
                            {
                              "subUnitType": "APT",
                              "subUnitNumber": "2006"
                            }
                          ]
                        }
                      ],
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "STOP"
                        }
                      ]
                    }
                  },
                  "No Match Response": {
                    "value": {
                      "validationResult": "nomatch",
                      "validationResultCode": "2E010",
                      "validationResultDescription": "Incorrect or missing city+state or ZIP Code.",
                      "validationTypeRecommendation": [
                        {
                          "validationType": "BILLING",
                          "validationRecommendation": "STOP"
                        },
                        {
                          "validationType": "SHIPPING",
                          "validationRecommendation": "STOP"
                        }
                      ]
                    }
                  },
                  "For ACC System Error Response": {
                    "value": {
                      "validationResult": "failed",
                      "validGeographicAddress": {
                        "id": "ADR-45436211",
                        "stateOrProvince": "CA",
                        "postcode": "91911",
                        "addressCharacteristic": [
                          {
                            "name": "addressLine1",
                            "value": "3802 MAIN ST STE 5"
                          },
                          {
                            "name": "addressNotValidated",
                            "value": "true"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "400 Bad Request": {
                    "value": {
                      "code": "GA-V100017",
                      "reason": "Invalid Address Type",
                      "message": "Invalid Address Type",
                      "status": "400"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "500 Internal Server Error": {
                    "value": {
                      "code": "GA-B40000",
                      "reason": "Could not reach downstream system",
                      "message": "Could not reach downstream system",
                      "status": "500"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "billing",
                "shipping",
                "ppu"
              ]
            },
            "in": "query",
            "name": "addressType",
            "description": "Address Type comma separated types billing,shipping,ppu",
            "required": true
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "maximumAlternativeAddresses",
            "description": "Maximum number of matches"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Enter the username and password here for authorization."
      }
    },
    "schemas": {
      "PlaceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "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": "Place reference. PlaceRef defines the placeRefs where the products are sold or delivered."
      },
      "RelatedChannel": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of a related entity."
          },
          "href": {
            "type": "string",
            "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."
          }
        },
        "description": "Related channel to another entity. May be online web, mobile app, social ,etc."
      },
      "Addressable": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "@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": "Base schema for adressable entities"
      },
      "EntityRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class",
            "example": "ResourceSpecification"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri",
            "example": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "example": "LogicalResourceSpecification"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Entity reference schema to be use for all entityRef class."
      },
      "Extensible": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class",
            "example": "ResourceSpecification"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri",
            "example": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "example": "LogicalResourceSpecification"
          }
        },
        "description": "Base Extensible schema for use in TMForum Open-APIs"
      },
      "GeographicAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the place"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the place"
          },
          "city": {
            "type": "string",
            "description": "City that the address is in"
          },
          "country": {
            "type": "string",
            "description": "Country that the address is in"
          },
          "locality": {
            "type": "string",
            "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]"
          },
          "name": {
            "type": "string",
            "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
          },
          "postcode": {
            "type": "string",
            "description": "descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode)"
          },
          "stateOrProvince": {
            "type": "string",
            "description": "the State or Province that the address is in"
          },
          "streetName": {
            "type": "string",
            "description": "Name of the street or other street type"
          },
          "streetNr": {
            "type": "string",
            "description": "Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses"
          },
          "streetNrLast": {
            "type": "string",
            "description": "Last number in a range of street numbers allocated to a property"
          },
          "streetNrLastSuffix": {
            "type": "string",
            "description": "Last street number suffix for a ranged address"
          },
          "streetNrSuffix": {
            "type": "string",
            "description": "the first street number suffix"
          },
          "streetSuffix": {
            "type": "string",
            "description": "A modifier denoting a relative direction"
          },
          "streetType": {
            "type": "string",
            "description": "alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf "
          },
          "geographicLocation": {
            "$ref": "#/components/schemas/GeographicLocationRefOrValue"
          },
          "geographicSubAddress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeographicSubAddress"
            }
          },
          "@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"
          },
          "addressCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          }
        },
        "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"
      },
      "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"
          },
          "@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."
      },
      "GeographicAddressValidation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Address Validation"
          },
          "href": {
            "type": "string",
            "description": "An URI used to access to the address validation resource"
          },
          "provideAlternative": {
            "type": "boolean",
            "description": "Indicator provided by the requester to specify if alternate addresses must be provided in case of partial or fail result."
          },
          "validationDate": {
            "type": "string",
            "description": "Date when the address validation is performed",
            "format": "date-time"
          },
          "validationResult": {
            "type": "string",
            "description": "Result of the address validation (success, partial, fails)"
          },
          "validationResultCode": {
            "type": "string",
            "maxLength": 50,
            "description": "See the addressMatchCode tab in the spreadsheet in the AID.",
            "example": "3SMU"
          },
          "validationResultDescription": {
            "type": "string",
            "maxLength": 256,
            "description": "See the addressMatchCode tab in the spreadsheet in the AID..",
            "example": "Address is missing unit information.  Mail may not be delivered"
          },
          "validationTypeRecommendation": {
            "$ref": "#/components/schemas/ValidationTypeRec"
          },
          "alternateGeographicAddress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeographicAddress"
            }
          },
          "state": {
            "$ref": "#/components/schemas/TaskStateType"
          },
          "submittedGeographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "validGeographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "@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": "This resource is used to manage address validation request and response",
        "example": {
          "validationResult": "success",
          "validGeographicAddress": {
            "city": "CHULA VISTA",
            "stateOrProvince": "CA",
            "postcode": "91911",
            "addressCharacteristic": [
              {
                "name": "addressLine1",
                "value": "23114 38th Ave SE"
              }
            ]
          },
          "validationTypeRecommendation": [
            [
              {
                "validationType": "BILLING",
                "validationRecommendation": "ACCEPT"
              },
              {
                "validationType": "SHIPPING",
                "validationRecommendation": "STOP"
              }
            ]
          ]
        }
      },
      "ValidationTypeRec": {
        "type": "array",
        "items": {
          "properties": {
            "addressType": {
              "type": "string",
              "maxLength": 25
            },
            "validationRecommendation": {
              "type": "string",
              "maxLength": 25,
              "description": "The recommended action that the calling application should take.Valid values: ACCEPT: The calling application should allow the user to proceed with the validated address. LIST: The calling application should list the addresses returned by the mS and allow the user to select one and continue or enter a different address that is subsequently validated. WARN: The calling application should require the user to review their address and either confirm it is correct or fix and revalidate it before proceeding. STOP: The calling application should prevent the user from proceeding until they fix and revalidate the address."
            }
          },
          "example": [
            {
              "validationType": "BILLING",
              "validationRecommendation": "WARN"
            },
            {
              "validationType": "SHIPPING",
              "validationRecommendation": "STOP"
            }
          ]
        }
      },
      "GeographicAddressValidation_Create": {
        "required": [
          "provideAlternative",
          "submittedGeographicAddress"
        ],
        "type": "object",
        "properties": {
          "provideAlternative": {
            "type": "boolean",
            "description": "Indicator provided by the requester to specify if alternate addresses must be provided in case of partial or fail result."
          },
          "submittedGeographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "@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": "This resource is used to manage address validation request and response\nSkipped properties: id,href,alternateGeographicAddress,validGeographicAddress,state,validationResult,validationDate"
      },
      "GeographicAddressValidation_Update": {
        "type": "object",
        "properties": {
          "provideAlternative": {
            "type": "boolean",
            "description": "Indicator provided by the requester to specify if alternate addresses must be provided in case of partial or fail result."
          },
          "validationDate": {
            "type": "string",
            "description": "Date when the address validation is performed",
            "format": "date-time"
          },
          "validationResult": {
            "type": "string",
            "description": "Result of the address validation (success, partial, fails)"
          },
          "alternateGeographicAddress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeographicAddress"
            }
          },
          "state": {
            "$ref": "#/components/schemas/TaskStateType"
          },
          "submittedGeographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "validGeographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "@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": "This resource is used to manage address validation request and response\nSkipped properties: id,href"
      },
      "GeographicLocation": {
        "required": [
          "@type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the geographic location"
          },
          "href": {
            "type": "string",
            "description": "An URI used to access to the geographic loca-tion resource"
          },
          "@type": {
            "type": "string",
            "description": "The name of the GeoJSON structure used in the geometry attribute",
            "enum": [
              "GeoJsonPoint",
              "GeoJsonMultiPoint",
              "GeoJsonLineString",
              "GeoJsonMultiLineString",
              "GeoJsonPolygon",
              "RuralAddress"
            ]
          },
          "bbox": {
            "type": "array",
            "description": "A bounding box array that contains the geometry. The axes order follows the axes order of the geometry",
            "items": {
              "type": "number"
            }
          }
        },
        "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."
      },
      "GeographicLocationRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class",
            "example": "ResourceSpecification"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri",
            "example": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class Extensible name",
            "example": "LogicalResourceSpecification"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        }
      },
      "GeographicLocationRefOrValue": {
        "required": [
          "@type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the place"
          },
          "href": {
            "type": "string",
            "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]"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class",
            "example": "ResourceSpecification"
          },
          "bbox": {
            "type": "array",
            "description": "A bounding box array that contains the geometry. The axes order follows the axes order of the geometry",
            "items": {
              "type": "number"
            }
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri",
            "example": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json"
          },
          "@type": {
            "type": "string",
            "description": "The name of the GeoJSON structure used in the geometry attribute",
            "enum": [
              "GeoJsonPoint",
              "GeoJsonMultiPoint",
              "GeoJsonLineString",
              "GeoJsonMultiLineString",
              "GeoJsonPolygon"
            ]
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "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."
      },
      "AddressType": {
        "type": "string",
        "description": "action to be performed on the product",
        "enum": [
          "billing",
          "shipping",
          "ppu"
        ]
      },
      "GeographicSubAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier of the subAddress"
          },
          "href": {
            "type": "string",
            "description": "Link to the subAddress"
          },
          "buildingName": {
            "type": "string",
            "description": "allows for buildings that have well-known names"
          },
          "levelNumber": {
            "type": "string",
            "description": "used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2"
          },
          "levelType": {
            "type": "string",
            "description": "describes level types within a building. Allowed Values: FLR"
          },
          "name": {
            "type": "string",
            "description": "Name of the subAddress to identify it with a meaningful identification"
          },
          "privateStreetName": {
            "type": "string",
            "description": "private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office."
          },
          "privateStreetNumber": {
            "type": "string",
            "description": "private streets numbers internal to a private street"
          },
          "subAddressType": {
            "type": "string",
            "description": "Type of subAddress : it can be a subunit or a private street"
          },
          "subUnitNumber": {
            "type": "string",
            "description": "the discriminator used for the subunit\noften just a simple number e.g. FLAT 5, may also be a range"
          },
          "subUnitType": {
            "type": "string",
            "description": "the type of subunit\ne.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF"
          },
          "@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": "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."
      },
      "Place": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the place"
          },
          "href": {
            "type": "string",
            "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]"
          },
          "@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": "Place reference. Place defines the places where the products are sold or delivered."
      },
      "TaskStateType": {
        "type": "string",
        "description": "Possible values for the state of a task",
        "enum": [
          "accepted",
          "terminatedWithError",
          "inProgress",
          "done"
        ]
      },
      "EventSubscription": {
        "required": [
          "callback",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of the listener"
          },
          "callback": {
            "type": "string",
            "description": "The callback being registered."
          },
          "query": {
            "type": "string",
            "description": "additional data to be passed"
          }
        },
        "description": "Sets the communication endpoint address the service instance must use to deliver notification information"
      },
      "EventSubscriptionInput": {
        "required": [
          "callback"
        ],
        "type": "object",
        "properties": {
          "callback": {
            "type": "string",
            "description": "The callback being registered."
          },
          "query": {
            "type": "string",
            "description": "additional data to be passed"
          }
        },
        "description": "Sets the communication endpoint address the service instance must use to deliver notification information"
      },
      "GeographicAddressValidationStateChangeEvent": {
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/GeographicAddressValidationStateChangeEventPayload"
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification."
          },
          "eventTime": {
            "type": "string",
            "description": "Time of the event occurrence.",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification."
          },
          "correlationId": {
            "type": "string",
            "description": "The correlation id for this event."
          },
          "domain": {
            "type": "string",
            "description": "The domain of the event."
          },
          "title": {
            "type": "string",
            "description": "The title of the event."
          },
          "description": {
            "type": "string",
            "description": "An explnatory of the event."
          },
          "priority": {
            "type": "string",
            "description": "A priority."
          },
          "timeOcurred": {
            "type": "string",
            "description": "The time the event occured.",
            "format": "date-time"
          }
        },
        "description": "The notification data structure"
      },
      "GeographicAddressValidationStateChangeEventPayload": {
        "type": "object",
        "properties": {
          "geographicAddressValidation": {
            "$ref": "#/components/schemas/GeographicAddressValidation"
          }
        },
        "description": "The event data structure"
      },
      "GeoJsonLineString": {
        "description": "Container for GeoJson LineString: A collection of Points forming a connected line",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeographicLocation"
          },
          {
            "type": "object",
            "properties": {
              "geoJson": {
                "$ref": "#/components/schemas/LineString"
              }
            }
          }
        ]
      },
      "GeoJsonMultiLineString": {
        "description": "A container for GeoJSON MultiLineString: A collection of distinct LineStrings",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeographicLocation"
          },
          {
            "type": "object",
            "properties": {
              "geoJson": {
                "$ref": "#/components/schemas/MultiLineString"
              }
            }
          }
        ]
      },
      "GeoJsonMultiPoint": {
        "description": "Container for GeoJSON MultiPoint: A collection of Points",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeographicLocation"
          },
          {
            "type": "object",
            "properties": {
              "geoJson": {
                "$ref": "#/components/schemas/MultiPoint"
              }
            }
          }
        ]
      },
      "GeoJsonPoint": {
        "description": "Container for a GeoJSON Point: A single position",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeographicLocation"
          },
          {
            "type": "object",
            "properties": {
              "geoJson": {
                "$ref": "#/components/schemas/Point"
              }
            }
          }
        ]
      },
      "GeoJsonPolygon": {
        "description": "Container for GeoJSON Polygon: An array of linear rings",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeographicLocation"
          },
          {
            "type": "object",
            "properties": {
              "geoJson": {
                "$ref": "#/components/schemas/Polygon"
              }
            }
          }
        ]
      },
      "LineString": {
        "required": [
          "coordinates"
        ],
        "type": "object",
        "properties": {
          "coordinates": {
            "$ref": "#/components/schemas/lineString"
          },
          "@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": "GeoJSON: A collection of Points forming a connected line"
      },
      "MultiLineString": {
        "required": [
          "coordinates",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "coordinates": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/lineString"
            }
          },
          "@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": "A collection of distinct LineStrings"
      },
      "MultiPoint": {
        "required": [
          "coordinates",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/positionArray"
          },
          "@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": "A collection of Points"
      },
      "Point": {
        "required": [
          "coordinates",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/position"
          },
          "@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": "GeoJSON: A single position"
      },
      "Polygon": {
        "required": [
          "coordinates",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/polygon"
          },
          "@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 array of linear rings"
      },
      "position": {
        "maxItems": 2,
        "minItems": 2,
        "type": "array",
        "description": "GeoJSON: A single position",
        "items": {
          "type": "number"
        }
      },
      "positionArray": {
        "type": "array",
        "description": "GeoJSON: An array of positions",
        "items": {
          "$ref": "#/components/schemas/position"
        }
      },
      "lineString": {
        "description": "GeoJSON: An array of two or more positions",
        "allOf": [
          {
            "$ref": "#/components/schemas/positionArray"
          },
          {
            "type": "object"
          }
        ]
      },
      "linearRing": {
        "description": "GeoJSON: An array of four positions where the first equals the last",
        "allOf": [
          {
            "$ref": "#/components/schemas/positionArray"
          },
          {
            "type": "object"
          }
        ]
      },
      "polygon": {
        "type": "array",
        "description": "GeoJSON: An array of linear rings",
        "items": {
          "$ref": "#/components/schemas/linearRing"
        }
      },
      "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."
          },
          "errorCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          }
        },
        "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)"
      },
      "AddressValidationInputRequest": {
        "required": [
          "geographicAddress"
        ],
        "type": "object",
        "properties": {
          "geographicAddress": {
            "$ref": "#/components/schemas/GeographicAddress"
          },
          "cartCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "channel": {
            "$ref": "#/components/schemas/RelatedChannel"
          },
          "place": {
            "$ref": "#/components/schemas/PlaceRef"
          },
          "@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)"
      }
    }
  }
}