{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Appointment of Veterans Service Organization As Claimant's Representative",
    "type": "object",
    "definitions": {
        "fullName": {
            "type": "object",
            "properties": {
                "first": {
                    "type": "string",
                    "ui:title": "First name",
                    "minLength": 1,
                    "maxLength": 30
                },
                "middle": {
                    "type": "string",
                    "ui:title": "Middle name"
                },
                "last": {
                    "type": "string",
                    "ui:title": "Last name",
                    "minLength": 1,
                    "maxLength": 30
                },
                "suffix": {
                    "type": "string",
                    "ui:title": "Middle name",
                    "enum": [
                        "Jr.",
                        "Sr.",
                        "II",
                        "III",
                        "IV"
                    ]
                }
            },
            "required": [
                "first",
                "last"
            ]
        },
        "address": {
            "type": "object",
            "oneOf": [
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "BRA"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AC",
                                "AL",
                                "AP",
                                "AM",
                                "BA",
                                "CE",
                                "DF",
                                "ES",
                                "GO",
                                "MA",
                                "MT",
                                "MS",
                                "MG",
                                "PA",
                                "PB",
                                "PR",
                                "PE",
                                "PI",
                                "RJ",
                                "RN",
                                "RS",
                                "RO",
                                "RR",
                                "SC",
                                "SP",
                                "SE",
                                "TO"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "ITA"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AG",
                                "AL",
                                "AN",
                                "AO",
                                "AR",
                                "AP",
                                "AT",
                                "AV",
                                "BA",
                                "BT",
                                "BL",
                                "BN",
                                "BG",
                                "BI",
                                "BO",
                                "BZ",
                                "BS",
                                "BR",
                                "CA",
                                "CL",
                                "CB",
                                "CI",
                                "CE",
                                "CT",
                                "CZ",
                                "CH",
                                "CO",
                                "CS",
                                "CR",
                                "KR",
                                "CN",
                                "EN",
                                "FM",
                                "FE",
                                "FI",
                                "FG",
                                "FC",
                                "FR",
                                "GE",
                                "GO",
                                "GR",
                                "IM",
                                "IS",
                                "AQ",
                                "SP",
                                "LT",
                                "LE",
                                "LC",
                                "LI",
                                "LO",
                                "LU",
                                "MC",
                                "MN",
                                "MS",
                                "MT",
                                "VS",
                                "ME",
                                "MI",
                                "MO",
                                "MB",
                                "NA",
                                "NO",
                                "NU",
                                "OG",
                                "OT",
                                "OR",
                                "PD",
                                "PA",
                                "PR",
                                "PV",
                                "PG",
                                "PU",
                                "PE",
                                "PC",
                                "PI",
                                "PT",
                                "PN",
                                "PZ",
                                "PO",
                                "RG",
                                "RA",
                                "RC",
                                "RE",
                                "RI",
                                "RN",
                                "RM",
                                "RO",
                                "SA",
                                "SS",
                                "SV",
                                "SI",
                                "SO",
                                "SR",
                                "TA",
                                "TE",
                                "TR",
                                "TP",
                                "TN",
                                "TV",
                                "TS",
                                "TO",
                                "UD",
                                "VA",
                                "VE",
                                "VB",
                                "VC",
                                "VR",
                                "VV",
                                "VI",
                                "VT"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "MEX"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AG",
                                "BC",
                                "BS",
                                "CM",
                                "CS",
                                "CH",
                                "CO",
                                "CL",
                                "DG",
                                "DF",
                                "GT",
                                "GR",
                                "HG",
                                "JA",
                                "ME",
                                "MI",
                                "MO",
                                "NA",
                                "NL",
                                "OA",
                                "PB",
                                "QE",
                                "QR",
                                "SL",
                                "SI",
                                "SO",
                                "TB",
                                "TM",
                                "TL",
                                "VE",
                                "YU",
                                "ZA"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "USA"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AA",
                                "AE",
                                "AK",
                                "AL",
                                "AP",
                                "AR",
                                "AS",
                                "AZ",
                                "CA",
                                "CO",
                                "CT",
                                "DC",
                                "DE",
                                "FL",
                                "FM",
                                "GA",
                                "GU",
                                "HI",
                                "IA",
                                "ID",
                                "IL",
                                "IN",
                                "KS",
                                "KY",
                                "LA",
                                "MA",
                                "MD",
                                "ME",
                                "MH",
                                "MI",
                                "MN",
                                "MO",
                                "MP",
                                "MS",
                                "MT",
                                "NC",
                                "ND",
                                "NE",
                                "NH",
                                "NJ",
                                "NM",
                                "NV",
                                "NY",
                                "OH",
                                "OK",
                                "OR",
                                "PA",
                                "PR",
                                "PW",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UM",
                                "UT",
                                "VA",
                                "VI",
                                "VT",
                                "WA",
                                "WI",
                                "WV",
                                "WY"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "CAN"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AB",
                                "BC",
                                "MB",
                                "NB",
                                "NL",
                                "NT",
                                "NS",
                                "NU",
                                "ON",
                                "PE",
                                "QC",
                                "SK",
                                "YT"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "IND"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "AN",
                                "AP",
                                "AR",
                                "AS",
                                "BR",
                                "CH",
                                "CT",
                                "DN",
                                "DD",
                                "DL",
                                "GA",
                                "GJ",
                                "HR",
                                "HP",
                                "JK",
                                "JH",
                                "KA",
                                "KL",
                                "LD",
                                "MP",
                                "MH",
                                "MN",
                                "ML",
                                "MZ",
                                "NL",
                                "OR",
                                "PY",
                                "PB",
                                "RJ",
                                "SK",
                                "TN",
                                "TR",
                                "UT",
                                "UP",
                                "WB"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "CHN"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "34",
                                "11",
                                "71",
                                "50",
                                "35",
                                "62",
                                "44",
                                "45",
                                "52",
                                "46",
                                "13",
                                "23",
                                "41",
                                "91",
                                "42",
                                "43",
                                "32",
                                "36",
                                "22",
                                "21",
                                "92",
                                "15",
                                "64",
                                "63",
                                "61",
                                "37",
                                "31",
                                "14",
                                "51",
                                "12",
                                "65",
                                "54",
                                "53",
                                "33"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "AUS"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "ACT",
                                "NSW",
                                "NT",
                                "QLD",
                                "SA",
                                "TAS",
                                "VIC",
                                "WA"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "IRL"
                            ]
                        },
                        "state": {
                            "type": "string",
                            "enum": [
                                "CW",
                                "CN",
                                "CE",
                                "CO",
                                "DL",
                                "D",
                                "G",
                                "KY",
                                "KE",
                                "KK",
                                "LS",
                                "LM",
                                "LK",
                                "LD",
                                "LH",
                                "MO",
                                "MH",
                                "MN",
                                "OY",
                                "RN",
                                "SO",
                                "TA",
                                "WD",
                                "WH",
                                "WX",
                                "WW"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 10
                        }
                    }
                },
                {
                    "properties": {
                        "country": {
                            "type": "string",
                            "enum": [
                                "AFG",
                                "ALA",
                                "ALB",
                                "DZA",
                                "AND",
                                "AGO",
                                "AIA",
                                "ATA",
                                "ATG",
                                "ARG",
                                "ARM",
                                "ABW",
                                "AUT",
                                "AZE",
                                "BHS",
                                "BHR",
                                "BGD",
                                "BRB",
                                "BLR",
                                "BEL",
                                "BLZ",
                                "BEN",
                                "BMU",
                                "BTN",
                                "BOL",
                                "BES",
                                "BIH",
                                "BWA",
                                "BVT",
                                "IOT",
                                "BRN",
                                "BGR",
                                "BFA",
                                "BDI",
                                "KHM",
                                "CMR",
                                "CPV",
                                "CYM",
                                "CAF",
                                "TCD",
                                "CHL",
                                "TWN",
                                "CXR",
                                "CCK",
                                "COL",
                                "COM",
                                "COG",
                                "COD",
                                "COK",
                                "CRI",
                                "CIV",
                                "HRV",
                                "CUB",
                                "CUW",
                                "CYP",
                                "CZE",
                                "DNK",
                                "DJI",
                                "DMA",
                                "DOM",
                                "ECU",
                                "EGY",
                                "SLV",
                                "GNQ",
                                "ERI",
                                "EST",
                                "ETH",
                                "FLK",
                                "FRO",
                                "FJI",
                                "FIN",
                                "FRA",
                                "GUF",
                                "PYF",
                                "ATF",
                                "GAB",
                                "GMB",
                                "GEO",
                                "DEU",
                                "GHA",
                                "GIB",
                                "GRC",
                                "GRL",
                                "GRD",
                                "GLP",
                                "GTM",
                                "GGY",
                                "GIN",
                                "GNB",
                                "GUY",
                                "HTI",
                                "HMD",
                                "VAT",
                                "HND",
                                "HUN",
                                "ISL",
                                "IDN",
                                "IRN",
                                "IRQ",
                                "IMN",
                                "ISR",
                                "JAM",
                                "JPN",
                                "JEY",
                                "JOR",
                                "KAZ",
                                "KEN",
                                "KIR",
                                "PRK",
                                "KOR",
                                "KWT",
                                "KGZ",
                                "LAO",
                                "LVA",
                                "LBN",
                                "LSO",
                                "LBR",
                                "LBY",
                                "LIE",
                                "LTU",
                                "LUX",
                                "MAC",
                                "MKD",
                                "MDG",
                                "MWI",
                                "MYS",
                                "MDV",
                                "MLI",
                                "MLT",
                                "MTQ",
                                "MRT",
                                "MUS",
                                "MYT",
                                "MDA",
                                "MCO",
                                "MNG",
                                "MNE",
                                "MSR",
                                "MAR",
                                "MOZ",
                                "MMR",
                                "NAM",
                                "NRU",
                                "NPL",
                                "NLD",
                                "NCL",
                                "NZL",
                                "NIC",
                                "NER",
                                "NGA",
                                "NIU",
                                "NFK",
                                "NOR",
                                "OMN",
                                "PAK",
                                "PSE",
                                "PAN",
                                "PNG",
                                "PRY",
                                "PER",
                                "PHL",
                                "PCN",
                                "POL",
                                "PRT",
                                "QAT",
                                "REU",
                                "ROU",
                                "RUS",
                                "RWA",
                                "BLM",
                                "SHN",
                                "KNA",
                                "LCA",
                                "MAF",
                                "SPM",
                                "VCT",
                                "WSM",
                                "SMR",
                                "STP",
                                "SAU",
                                "SEN",
                                "SRB",
                                "SYC",
                                "SLE",
                                "SGP",
                                "SXM",
                                "SVK",
                                "SVN",
                                "SLB",
                                "SOM",
                                "ZAF",
                                "SGS",
                                "SSD",
                                "ESP",
                                "LKA",
                                "SDN",
                                "SUR",
                                "SJM",
                                "SWZ",
                                "SWE",
                                "CHE",
                                "SYR",
                                "TJK",
                                "TZA",
                                "THA",
                                "TLS",
                                "TGO",
                                "TKL",
                                "TON",
                                "TTO",
                                "TUN",
                                "TUR",
                                "TKM",
                                "TCA",
                                "TUV",
                                "UGA",
                                "UKR",
                                "ARE",
                                "GBR",
                                "URY",
                                "UZB",
                                "VUT",
                                "VEN",
                                "VNM",
                                "VGB",
                                "WLF",
                                "ESH",
                                "YEM",
                                "ZMB",
                                "ZWE"
                            ]
                        },
                        "postalCode": {
                            "type": "string",
                            "maxLength": 51
                        }
                    }
                }
            ],
            "properties": {
                "street": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                },
                "street2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                },
                "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 51
                }
            }
        },
        "vaFileNumber": {
            "type": "string",
            "pattern": "^[cC]{0,1}\\d{7,9}$"
        }
    },
    "properties": {
        "veteranFullName": {
            "$ref": "#/definitions/fullName"
        },
        "veteranSSN": {
            "type": "string"
        },
        "insuranceNumber": {
            "type": "string"
        },
        "claimantFullName": {
            "$ref": "#/definitions/fullName"
        },
        "claimantAddress": {
            "$ref": "#/definitions/address"
        },
        "claimantEmail": {
            "type": "string",
            "format": "email"
        },
        "claimantDaytimePhone": {
            "type": "string"
        },
        "claimantEveningPhone": {
            "type": "string"
        },
        "relationship": {
            "title": "Relationship to Veteran",
            "type": "string",
            "enum": [
                "Parent",
                "Spouse",
                "Child"
            ]
        },
        "appointmentDate": {
            "type": "string",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
        },
        "organizationName": {
            "type": "string"
        },
        "organizationEmail": {
            "type": "string",
            "format": "email"
        },
        "organizationRepresentativeName": {
            "type": "string"
        },
        "organizationRepresentativeTitle": {
            "type": "string"
        },
        "authorization": {
            "type": "boolean"
        },
        "disclosureExceptionDrugAbuse": {
            "type": "boolean"
        },
        "disclosureExceptionAlcoholism": {
            "type": "boolean"
        },
        "disclosureExceptionHIV": {
            "type": "boolean"
        },
        "disclosureExceptionSickleCellAnemia": {
            "type": "boolean"
        },
        "authorizationToChangeClaimantAddress": {
            "type": "boolean"
        }
    }
}