From 42c579a9c2ec67a33b642875a8de59f078a9b7c3 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Fri, 31 Jan 2025 13:35:30 -0700 Subject: [PATCH 1/9] Changes the phoneNumber regex for v2 2122/2122a for veteran and claimant. Adjusts the dev swagger file accordingly. --- .../swagger/claims_api/v2/dev/swagger.json | 3102 +++++++++++++---- .../claims_api/config/schemas/v2/2122.json | 10 +- .../claims_api/config/schemas/v2/2122a.json | 10 +- 3 files changed, 2428 insertions(+), 694 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json index 86ade3e527a..ff8d5bce163 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json @@ -265,7 +265,10 @@ "properties": { "trackedItemIds": { "description": "Array of tracked items ids.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -335,7 +338,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "c21ca745-8f00-4222-af2c-6e1fb2216813", + "id": "7bdfe9a6-98e0-49ea-b2b1-7ca2b4218cb1", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +523,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-02" }, "confinements": [ { @@ -566,7 +569,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "56ad67d7-fe14-41c4-a98e-f3683d85ec74", + "id": "d6b9d4f6-038e-4db1-bf2d-7262e040011b", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +733,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-01-30", + "activeDutyEndDate": "2025-02-02", "separationLocationCode": "98282" } ], @@ -751,7 +754,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-02" }, "confinements": [ { @@ -850,25 +853,37 @@ ], "properties": { "serviceNumber": { - "type": "string", + "type": [ + "null", + "string" + ], "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -894,7 +909,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -902,7 +920,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -918,7 +939,10 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -931,21 +955,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -954,18 +987,27 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "email": { - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -982,7 +1024,10 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { @@ -1004,7 +1049,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -1012,7 +1060,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -1028,7 +1079,10 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -1041,21 +1095,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -1066,13 +1129,19 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -1082,23 +1151,35 @@ } }, "homeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "other", "enum": [ @@ -1106,13 +1187,17 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER" + "OTHER", + null ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -1120,28 +1205,41 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER" + "OTHER", + null ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -1150,7 +1248,10 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "minLength": 1, "maxLength": 100, @@ -1158,20 +1259,29 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -1181,38 +1291,57 @@ } }, "toxicExposure": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "gulfWarHazardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "serviceDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1224,21 +1353,31 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "otherLocationsServed": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -1246,18 +1385,27 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1268,13 +1416,19 @@ } }, "additionalHazardExposures": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -1287,31 +1441,44 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER" + "OTHER", + null ] } }, "specifyOtherExposures": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1322,7 +1489,10 @@ } }, "multipleExposures": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "minItems": 1, "uniqueItems": true, @@ -1331,33 +1501,48 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1390,7 +1575,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -1402,14 +1590,20 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -1425,32 +1619,47 @@ "example": "NEW" }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": "integer", + "type": [ + "integer", + "null" + ], "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -1465,7 +1674,10 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": "array", + "type": [ + "array", + "null" + ], "items": { "type": "object", "additionalProperties": false, @@ -1478,7 +1690,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -1490,7 +1705,10 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -1505,13 +1723,19 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -1524,7 +1748,10 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -1533,14 +1760,20 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 101, "items": { @@ -1554,13 +1787,19 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -1569,7 +1808,10 @@ }, "city": { "description": "City of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -1578,7 +1820,10 @@ }, "state": { "description": "State of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -1597,7 +1842,10 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -1653,7 +1901,10 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "98283" } @@ -1661,43 +1912,63 @@ } }, "servedInActiveCombatSince911": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard" + "National Guard", + null ] }, "obligationTermsOfService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -1705,31 +1976,46 @@ } }, "unitName": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 20, "example": "5555555" @@ -1737,10 +2023,14 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "nullable": true, "example": "YES" @@ -1749,20 +2039,29 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -1770,7 +2069,10 @@ } }, "confinements": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -1779,13 +2081,17 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -1796,52 +2102,75 @@ } }, "servicePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -1850,53 +2179,76 @@ } }, "retiredStatus": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST" + "PERMANENT_DISABILITY_RETIRED_LIST", + null ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -1906,7 +2258,10 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false @@ -1914,13 +2269,19 @@ } }, "directDeposit": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -1928,31 +2289,44 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS" + "SAVINGS", + null ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -1966,7 +2340,10 @@ "default": false }, "claimNotes": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "An optional notes section.", "maxLength": 4000 }, @@ -2200,7 +2577,13 @@ "type": "object", "required": [ "attributes", - null + [ + "claimantCertification", + "claimProcessType", + "disabilities", + "serviceInformation", + "veteranIdentification" + ] ], "properties": { "attributes": { @@ -2234,25 +2617,37 @@ ], "properties": { "serviceNumber": { - "type": "string", + "type": [ + "null", + "string" + ], "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -2278,7 +2673,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -2286,7 +2684,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -2302,7 +2703,10 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -2315,21 +2719,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -2338,18 +2751,27 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "email": { - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -2366,7 +2788,10 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { @@ -2388,7 +2813,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -2396,7 +2824,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -2412,7 +2843,10 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -2425,21 +2859,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -2450,13 +2893,19 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -2466,23 +2915,35 @@ } }, "homeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "other", "enum": [ @@ -2490,13 +2951,17 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER" + "OTHER", + null ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -2504,28 +2969,41 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER" + "OTHER", + null ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -2534,7 +3012,10 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "minLength": 1, "maxLength": 100, @@ -2542,20 +3023,29 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -2565,38 +3055,57 @@ } }, "toxicExposure": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "gulfWarHazardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "serviceDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -2608,21 +3117,31 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "otherLocationsServed": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -2630,18 +3149,27 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -2652,13 +3180,19 @@ } }, "additionalHazardExposures": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -2671,31 +3205,44 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER" + "OTHER", + null ] } }, "specifyOtherExposures": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -2706,7 +3253,10 @@ } }, "multipleExposures": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "minItems": 1, "uniqueItems": true, @@ -2715,33 +3265,48 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -2774,7 +3339,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -2786,14 +3354,20 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -2809,32 +3383,47 @@ "example": "NEW" }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": "integer", + "type": [ + "integer", + "null" + ], "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -2849,7 +3438,10 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": "array", + "type": [ + "array", + "null" + ], "items": { "type": "object", "additionalProperties": false, @@ -2862,7 +3454,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -2874,7 +3469,10 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -2889,13 +3487,19 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -2908,7 +3512,10 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -2917,14 +3524,20 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 101, "items": { @@ -2938,13 +3551,19 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -2953,7 +3572,10 @@ }, "city": { "description": "City of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -2962,7 +3584,10 @@ }, "state": { "description": "State of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -2981,7 +3606,10 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -3037,7 +3665,10 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "98283" } @@ -3045,43 +3676,63 @@ } }, "servedInActiveCombatSince911": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard" + "National Guard", + null ] }, "obligationTermsOfService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -3089,31 +3740,46 @@ } }, "unitName": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 20, "example": "5555555" @@ -3121,10 +3787,14 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "nullable": true, "example": "YES" @@ -3133,20 +3803,29 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -3154,7 +3833,10 @@ } }, "confinements": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -3163,13 +3845,17 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -3180,52 +3866,75 @@ } }, "servicePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -3234,53 +3943,76 @@ } }, "retiredStatus": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST" + "PERMANENT_DISABILITY_RETIRED_LIST", + null ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -3290,7 +4022,10 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false @@ -3298,13 +4033,19 @@ } }, "directDeposit": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -3312,31 +4053,44 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS" + "SAVINGS", + null ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -3350,7 +4104,10 @@ "default": false }, "claimNotes": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "An optional notes section.", "maxLength": 4000 } @@ -3994,7 +4751,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-01-30", + "activeDutyEndDate": "2025-02-02", "separationLocationCode": "98282" } ], @@ -4015,7 +4772,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-02" }, "confinements": [ { @@ -4354,7 +5111,13 @@ "type": "object", "required": [ "attributes", - null + [ + "claimantCertification", + "claimProcessType", + "disabilities", + "serviceInformation", + "veteranIdentification" + ] ], "properties": { "attributes": { @@ -4388,25 +5151,37 @@ ], "properties": { "serviceNumber": { - "type": "string", + "type": [ + "null", + "string" + ], "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -4432,7 +5207,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -4440,7 +5218,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -4456,7 +5237,10 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -4469,21 +5253,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -4492,18 +5285,27 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "email": { - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -4520,7 +5322,10 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { @@ -4542,7 +5347,10 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -4550,7 +5358,10 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -4566,7 +5377,10 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -4579,21 +5393,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -4604,13 +5427,19 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -4620,23 +5449,35 @@ } }, "homeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "other", "enum": [ @@ -4644,13 +5485,17 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER" + "OTHER", + null ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -4658,28 +5503,41 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER" + "OTHER", + null ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 500, "example": "other living situation" @@ -4688,7 +5546,10 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "minLength": 1, "maxLength": 100, @@ -4696,20 +5557,29 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -4719,38 +5589,57 @@ } }, "toxicExposure": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "gulfWarHazardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "serviceDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -4762,21 +5651,31 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "otherLocationsServed": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -4784,18 +5683,27 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -4806,13 +5714,19 @@ } }, "additionalHazardExposures": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -4825,31 +5739,44 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER" + "OTHER", + null ] } }, "specifyOtherExposures": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -4860,7 +5787,10 @@ } }, "multipleExposures": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "minItems": 1, "uniqueItems": true, @@ -4869,33 +5799,48 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -4928,7 +5873,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -4940,14 +5888,20 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -4963,32 +5917,47 @@ "example": "NEW" }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": "integer", + "type": [ + "integer", + "null" + ], "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -5003,7 +5972,10 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": "array", + "type": [ + "array", + "null" + ], "items": { "type": "object", "additionalProperties": false, @@ -5016,7 +5988,10 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -5028,7 +6003,10 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -5043,13 +6021,19 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -5062,7 +6046,10 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -5071,14 +6058,20 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 101, "items": { @@ -5092,13 +6085,19 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -5107,7 +6106,10 @@ }, "city": { "description": "City of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -5116,7 +6118,10 @@ }, "state": { "description": "State of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -5135,7 +6140,10 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -5191,7 +6199,10 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "98283" } @@ -5199,43 +6210,63 @@ } }, "servedInActiveCombatSince911": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard" + "National Guard", + null ] }, "obligationTermsOfService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -5243,31 +6274,46 @@ } }, "unitName": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 20, "example": "5555555" @@ -5275,10 +6321,14 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "nullable": true, "example": "YES" @@ -5287,20 +6337,29 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -5308,7 +6367,10 @@ } }, "confinements": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -5317,13 +6379,17 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": "string", + "type": [ + "string" + ], "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -5334,52 +6400,75 @@ } }, "servicePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -5388,53 +6477,76 @@ } }, "retiredStatus": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST" + "PERMANENT_DISABILITY_RETIRED_LIST", + null ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "minimum": 1, "maximum": 999999, @@ -5444,7 +6556,10 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false @@ -5452,13 +6567,19 @@ } }, "directDeposit": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -5466,31 +6587,44 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS" + "SAVINGS", + null ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -5504,7 +6638,10 @@ "default": false }, "claimNotes": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "An optional notes section.", "maxLength": 4000 } @@ -5893,7 +7030,13 @@ "type": "object", "required": [ "attributes", - null + [ + "claimantCertification", + "claimProcessType", + "disabilities", + "serviceInformation", + "veteranIdentification" + ] ], "properties": { "attributes": { @@ -5932,24 +7075,36 @@ ], "properties": { "serviceNumber": { - "type": "string", + "type": [ + "null", + "string" + ], "description": "Service identification number", "nullable": true, "maxLength": 1000 }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number. Number including area code.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "nullable": true, @@ -5974,14 +7129,20 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 325, "example": "Unit 4", "nullable": true }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 325, "example": "Room 1", "nullable": true @@ -5994,7 +7155,10 @@ }, "state": { "description": "State for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "NY", "maxLength": 1000, "nullable": true @@ -6007,21 +7171,30 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "12345", "maxLength": 500, "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "6789", "nullable": true, "maxLength": 500 }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true } @@ -6029,17 +7202,26 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "email": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "The most current email address of the Veteran.", "maxLength": 1000, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -6056,7 +7238,10 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'dates.beginDate', 'addressLine1', 'city', 'state', 'country', 'zipFirstFive'.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { @@ -6077,14 +7262,20 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 325, "example": "Unit 4", "nullable": true }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 325, "example": "Room 1", "nullable": true @@ -6097,35 +7288,50 @@ }, "state": { "description": "State for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "NY", "maxLength": 1000, "nullable": true }, "country": { "description": "Country for the Veteran's new address. Value must match the values returned by the /countries endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": "string", + "type": [ + "string", + "null" + ], "example": "USA", "maxLength": 1000, "nullable": true }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "12345", "maxLength": 500, "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "6789", "maxLength": 500 }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true }, @@ -6140,7 +7346,10 @@ }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "example": "2018-06-04" @@ -6150,23 +7359,35 @@ } }, "homeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "other", "enum": [ @@ -6174,13 +7395,17 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER" + "OTHER", + null ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 5000, "example": "other living situation" @@ -6188,28 +7413,41 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER" + "OTHER", + null ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 5000, "example": "other living situation" @@ -6218,26 +7456,38 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "minLength": 1, "maxLength": 1000, "example": "Jane Doe" }, "pointOfContactNumber": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "5555555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "+44 20 1234 5678", "nullable": true, "maxLength": 1000 @@ -6247,38 +7497,57 @@ } }, "toxicExposure": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "gulfWarHazardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "serviceDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -6290,39 +7559,58 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES" + "YES", + null ], "nullable": true }, "otherLocationsServed": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Other location(s) where Veteran served.", "maxLength": 5000 }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -6333,13 +7621,19 @@ } }, "additionalHazardExposures": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 5000, "items": { @@ -6352,30 +7646,43 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER" + "OTHER", + null ] } }, "specifyOtherExposures": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Exposure to asbestos.", "maxLength": 5000 }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -6386,7 +7693,10 @@ } }, "multipleExposures": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 5000, "minItems": 0, @@ -6395,31 +7705,46 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Hazard the Veteran was exposed to.", "maxLength": 1000 }, "exposureLocation": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Location where the exposure happened.", "maxLength": 1000 }, "exposureDates": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -6452,7 +7777,10 @@ "maxLength": 1000 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "examples": [ @@ -6464,14 +7792,20 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Heavy equipment operator in service.", "maxLength": 1000 }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true, @@ -6488,32 +7822,47 @@ "example": "NEW" }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": "integer", + "type": [ + "integer", + "null" + ], "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "uniqueItems": true, "items": { @@ -6540,7 +7889,10 @@ "maxLength": 1000 }, "exposureOrEventOrInjury": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "What caused the disability?", "nullable": true, "examples": [ @@ -6552,7 +7904,10 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Heavy equipment operator in service.", "maxLength": 1000 @@ -6567,14 +7922,20 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true, "maxLength": 1000 }, "classificationCode": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -6587,7 +7948,10 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 5000, "items": { @@ -6596,14 +7960,20 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 101, "items": { @@ -6617,26 +7987,38 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Private Facility 2", "maxLength": 100 }, "city": { "description": "City of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "Schenectady", "nullable": true }, "state": { "description": "State of treatment facility.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "NY", "nullable": true } @@ -6654,7 +8036,10 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 5000, "items": { @@ -6710,7 +8095,10 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "98283" } @@ -6718,43 +8106,63 @@ } }, "servedInActiveCombatSince911": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard" + "National Guard", + null ] }, "obligationTermsOfService": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:\\d{4})-(?:\\d{2})-(?:\\d{2})$", "example": "2018-06-06" }, "endDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(?:\\d{4})-(?:\\d{2})-(?:\\d{2})$", "example": "2018-06-06" @@ -6762,28 +8170,43 @@ } }, "unitName": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true }, "unitAddress": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true }, "unitPhone": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "555" }, "phoneNumber": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 20, "example": "5555555" @@ -6791,10 +8214,14 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "nullable": true, "example": "YES" @@ -6802,20 +8229,29 @@ } }, "federalActivation": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}-\\d{2}-\\d{2}$|^$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}-\\d{2}-\\d{2}$|^$", "example": "2018-06-06", "nullable": true @@ -6823,7 +8259,10 @@ } }, "confinements": { - "type": "array", + "type": [ + "array", + "null" + ], "nullable": true, "maxItems": 5000, "items": { @@ -6832,13 +8271,19 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-06-06 or 2018-06" @@ -6849,105 +8294,151 @@ } }, "servicePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "Will be retiring soon.", "nullable": true, "maxLength": 1000 }, "militaryRetiredPay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 1000, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "example": 100 } } }, "retiredStatus": { - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST" + "PERMANENT_DISABILITY_RETIRED_LIST", + null ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "YES", - "NO" + "NO", + null ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": "integer", + "type": [ + "integer", + "null" + ], "nullable": true, "example": 100 } @@ -6955,7 +8446,10 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "example": true, "default": false @@ -6963,44 +8457,63 @@ } }, "directDeposit": { - "type": "object", + "type": [ + "object", + "null" + ], "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false }, "accountNumber": { "description": "Account number for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS" + "SAVINGS", + null ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": "string", + "type": [ + "string", + "null" + ], "nullable": true, "maxLength": 9, "example": "123123123" @@ -7013,7 +8526,10 @@ "default": false }, "claimNotes": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "An optional notes section.", "maxLength": 4000 } @@ -8006,7 +9522,10 @@ } }, "tempJurisdiction": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "Temporary jurisdiction of claim" }, "trackedItems": { @@ -8537,8 +10056,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-01-28", - "expirationDate": "2026-01-28", + "creationDate": "2025-01-31", + "expirationDate": "2026-01-31", "type": "compensation", "status": "active" } @@ -9428,7 +10947,7 @@ "application/json": { "example": { "data": { - "id": "2d72d148-095d-4ff7-9826-f7e1fac3686e", + "id": "1ca6f5b0-5ca7-4a1e-98b4-45295fc5f31d", "type": "power-of-attorney-request", "attributes": { "veteran": { @@ -9501,7 +11020,9 @@ ], "properties": { "id": { - "type": "string", + "type": [ + "string" + ], "description": "The unique identifier for the power of attorney request" }, "type": { @@ -9641,7 +11162,10 @@ "additionalProperties": false, "properties": { "claimantId": { - "type": "string", + "type": [ + "string", + "null" + ], "example": "123456789", "description": "Id of the claimant." }, @@ -9651,40 +11175,61 @@ "properties": { "addressLine1": { "description": "Street address with number and name. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 30 }, "addressLine2": { - "type": "string", + "type": [ + "string", + "null" + ], "maxLength": 5 }, "city": { "description": "City for the address. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "Portland", "maxLength": 18 }, "stateCode": { "description": "State for the address. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[a-z,A-Z]{2}$", "example": "OR" }, "country": { "description": "Country of the address. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "USA" }, "zipCode": { "description": "Zipcode (First 5 digits) of the address. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{5}?$", "example": "12345" }, "zipCodeSuffix": { "description": "Zipcode (Last 4 digits) of the address.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^\\d{4}?$", "example": "6789" } @@ -9701,13 +11246,19 @@ "properties": { "areaCode": { "description": "Area code of the phone number.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[2-9][0-9]{2}$", "example": "555" }, "phoneNumber": { "description": "Phone number.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": "^[0-9]{1,14}$", "example": "555-5555" } @@ -9715,14 +11266,20 @@ }, "email": { "description": "Email address of the claimant.", - "type": "string", + "type": [ + "string", + "null" + ], "pattern": ".@.", "maxLength": 61, "example": "claimant@example.com" }, "relationship": { "description": "Relationship of claimant to the veteran. Required if claimant information provided.", - "type": "string", + "type": [ + "string", + "null" + ], "example": "Spouse" } } @@ -9975,7 +11532,12 @@ "type": "object", "required": [ "attributes", - null + [ + "veteran", + "poa", + "recordConsent", + "consentAddressChange" + ] ], "properties": { "attributes": { @@ -10438,7 +12000,10 @@ ], "properties": { "id": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "uuid" }, "type": { @@ -10459,13 +12024,22 @@ "type": "object", "properties": { "firstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "lastName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "middleName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -10473,22 +12047,40 @@ "type": "object", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPo": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPostalCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "state": { - "type": "string" + "type": [ + "string", + "null" + ] }, "zip": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -10496,45 +12088,77 @@ "type": "object", "properties": { "poaCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserEmail": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserFirstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserLastName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, "receivedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "actionedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "status": { - "type": "string" + "type": [ + "string", + "null" + ] }, "declinedReason": { - "type": "string" + "type": [ + "string", + "null" + ] }, "consentAddressChange": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] }, "recordConsent": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] } } @@ -10844,7 +12468,10 @@ ], "properties": { "id": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "uuid" }, "type": { @@ -10865,13 +12492,22 @@ "type": "object", "properties": { "firstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "lastName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "middleName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -10879,22 +12515,40 @@ "type": "object", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPo": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPostalCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "state": { - "type": "string" + "type": [ + "string", + "null" + ] }, "zip": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -10902,45 +12556,77 @@ "type": "object", "properties": { "poaCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserEmail": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserFirstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserLastName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, "receivedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "actionedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "status": { - "type": "string" + "type": [ + "string", + "null" + ] }, "declinedReason": { - "type": "string" + "type": [ + "string", + "null" + ] }, "consentAddressChange": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] }, "recordConsent": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] } } @@ -11151,7 +12837,10 @@ ], "properties": { "id": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "uuid" }, "type": { @@ -11172,13 +12861,22 @@ "type": "object", "properties": { "firstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "lastName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "middleName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -11186,22 +12884,40 @@ "type": "object", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPo": { - "type": "string" + "type": [ + "string", + "null" + ] }, "militaryPostalCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "state": { - "type": "string" + "type": [ + "string", + "null" + ] }, "zip": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, @@ -11209,45 +12925,77 @@ "type": "object", "properties": { "poaCode": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserEmail": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserFirstName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vsoUserLastName": { - "type": "string" + "type": [ + "string", + "null" + ] } } }, "receivedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "actionedDate": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date-time" }, "status": { - "type": "string" + "type": [ + "string", + "null" + ] }, "declinedReason": { - "type": "string" + "type": [ + "string", + "null" + ] }, "consentAddressChange": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] }, "recordConsent": { - "type": "boolean", + "type": [ + "boolean", + "null" + ], "enum": [ true, - false + false, + null ] } } @@ -11468,7 +13216,10 @@ ] }, "declinedReason": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "The reason for declining the request.", "nullable": true }, @@ -11803,7 +13554,10 @@ "type": "object", "required": [ "attributes", - null + [ + "veteran", + "serviceOrganization" + ] ], "properties": { "attributes": { @@ -11897,12 +13651,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -12039,12 +13789,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -12225,7 +13971,7 @@ "application/json": { "example": { "data": { - "id": "912b967f-c833-4e3d-8421-109a02ba368e", + "id": "f48237c4-477c-4e1f-9f5c-3bbab62419eb", "type": "organization", "attributes": { "code": "083", @@ -12496,7 +14242,10 @@ "type": "object", "required": [ "attributes", - null + [ + "veteran", + "serviceOrganization" + ] ], "properties": { "attributes": { @@ -12590,12 +14339,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -12732,12 +14477,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -13227,7 +14968,10 @@ "type": "object", "required": [ "attributes", - null + [ + "veteran", + "representative" + ] ], "properties": { "attributes": { @@ -13346,12 +15090,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -13474,12 +15214,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -13723,7 +15459,7 @@ "application/json": { "example": { "data": { - "id": "44f0935e-3c9b-42a1-babf-c22490474922", + "id": "b673cace-8273-46bb-8a64-e6d505e205c4", "type": "individual", "attributes": { "code": "067", @@ -13986,7 +15722,10 @@ "type": "object", "required": [ "attributes", - null + [ + "veteran", + "representative" + ] ], "properties": { "attributes": { @@ -14105,12 +15844,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -14233,12 +15968,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -14571,10 +16302,10 @@ "application/json": { "example": { "data": { - "id": "2051bd6b-7e4c-4c03-83b9-b9545e837167", + "id": "ffcd1a08-763b-4a51-8059-3d393b2ceb8a", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-01-28T14:23:53.918Z", + "createdAt": "2025-01-31T20:08:41.536Z", "representative": { "serviceOrganization": { "poaCode": "074" @@ -14708,15 +16439,22 @@ ] }, "completedAt": { - "type": "string", + "type": [ + "string", + "null" + ], "format": "date" }, "nextStep": { - "type": "string", + "type": [ + "string", + "null" + ], "enum": [ "POA_UPDATE", "POA_ACCESS_UPDATE", - "CLAIMANT_NOTIFICATION" + "CLAIMANT_NOTIFICATION", + null ] } } diff --git a/modules/claims_api/config/schemas/v2/2122.json b/modules/claims_api/config/schemas/v2/2122.json index 5c2179ed51a..7af0b053f19 100644 --- a/modules/claims_api/config/schemas/v2/2122.json +++ b/modules/claims_api/config/schemas/v2/2122.json @@ -87,10 +87,9 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^[0-9]{1,14}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { "type": "string", "pattern": "^[a-zA-Z0-9]{1,10}$" } + } }, "if": { "properties": { @@ -207,10 +206,9 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^[0-9]{1,14}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { "type": "string", "pattern": "^[a-zA-Z0-9]{1,10}$" } + } }, "if": { "properties": { diff --git a/modules/claims_api/config/schemas/v2/2122a.json b/modules/claims_api/config/schemas/v2/2122a.json index 0b5be64ba15..16c865e3f9b 100644 --- a/modules/claims_api/config/schemas/v2/2122a.json +++ b/modules/claims_api/config/schemas/v2/2122a.json @@ -112,10 +112,9 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^[0-9]{1,14}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { "type": "string", "pattern": "^[a-zA-Z0-9]{1,10}$" } + } }, "if": { "properties": { @@ -221,10 +220,9 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){6,9}$", "example": "555-5555" - }, - "phoneNumberExt": { "type": "string", "pattern": "^[a-zA-Z0-9]{1,10}$" } + } }, "if": { "properties": { From 3be81cd59ffc2b4223efd330172c05ae71230163 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Fri, 31 Jan 2025 14:47:34 -0700 Subject: [PATCH 2/9] Adds tests. --- .../veterans/power_of_attorney/2122_spec.rb | 80 +++++++++++++++++++ .../veterans/power_of_attorney/2122a_spec.rb | 78 ++++++++++++++++++ 2 files changed, 158 insertions(+) diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb index d2c88ea37d3..135db476df1 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb @@ -912,6 +912,86 @@ end end end + + context 'when claimant.phoneNumber contains a dash' do + let(:request_body) do + Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122', 'valid.json').read + end + + let(:claimant) do + { + claimantId: '456', + email: 'lillian@disney.com', + relationship: 'Spouse', + address: { + addressLine1: '2688 S Camino Real', + city: 'Palm Springs', + stateCode: 'CA', + countryCode: 'US', + zipCode: '92264' + }, + phone: { + countryCode: '1', + areaCode: '203', + phoneNumber: '555-1337' + } + } + end + + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header + + expect(response).to have_http_status(:ok) + end + end + end + end + + context 'when claimant.phoneNumber contains a space' do + let(:request_body) do + Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122', 'valid.json').read + end + + let(:claimant) do + { + claimantId: '456', + email: 'lillian@disney.com', + relationship: 'Spouse', + address: { + addressLine1: '2688 S Camino Real', + city: 'Palm Springs', + stateCode: 'CA', + countryCode: 'US', + zipCode: '92264' + }, + phone: { + countryCode: '1', + areaCode: '203', + phoneNumber: '555 1337' + } + } + end + + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header + + expect(response).to have_http_status(:ok) + end + end + end + end end end end diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb index 6f1ce2b14e5..7ab8ad3438d 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb @@ -931,6 +931,84 @@ end end end + + context 'when claimant phoneNumber has a dash' do + let(:request_body) do + Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122a', 'valid.json').read + end + + let(:claimant) do + { + claimantId: '456', + email: 'lillian@disney.com', + relationship: 'Spouse', + address: { + addressLine1: '2688 S Camino Real', + city: 'Palm Springs', + stateCode: 'CA', + countryCode: 'US', + zipCode: '92264' + }, + phone: { + countryCode: '1', + areaCode: '456', + phoneNumber: '555-1337' + } + } + end + + it 'returns a 202' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:ok) + end + end + end + end + + context 'when claimant phoneNumber has a space' do + let(:request_body) do + Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122a', 'valid.json').read + end + + let(:claimant) do + { + claimantId: '456', + email: 'lillian@disney.com', + relationship: 'Spouse', + address: { + addressLine1: '2688 S Camino Real', + city: 'Palm Springs', + stateCode: 'CA', + countryCode: 'US', + zipCode: '92264' + }, + phone: { + countryCode: '1', + areaCode: '456', + phoneNumber: '555 1337' + } + } + end + + it 'returns a 202' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:ok) + end + end + end + end end end end From 4dea984e02b918543b35d832d859e2056b6252c0 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:24:54 -0700 Subject: [PATCH 3/9] Updates the schema and docs for international phone - number of digits allowed in the regex. --- .../swagger/claims_api/v2/dev/swagger.json | 3070 ++++------------- .../claims_api/config/schemas/v2/2122.json | 4 +- .../claims_api/config/schemas/v2/2122a.json | 4 +- 3 files changed, 654 insertions(+), 2424 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json index ff8d5bce163..5e55b172181 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json @@ -265,10 +265,7 @@ "properties": { "trackedItemIds": { "description": "Array of tracked items ids.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -338,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "7bdfe9a6-98e0-49ea-b2b1-7ca2b4218cb1", + "id": "5226f34c-0a8a-47f3-ac38-4cfcba5541c4", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -523,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-02" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -569,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "d6b9d4f6-038e-4db1-bf2d-7262e040011b", + "id": "609f7962-0bfe-4ea4-8ba6-2200b5d3c08d", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -733,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-02", + "activeDutyEndDate": "2025-02-05", "separationLocationCode": "98282" } ], @@ -754,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-02" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -853,37 +850,25 @@ ], "properties": { "serviceNumber": { - "type": [ - "null", - "string" - ], + "type": "string", "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -909,10 +894,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -920,10 +902,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -939,10 +918,7 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -955,30 +931,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -987,27 +954,18 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "email": { - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -1024,10 +982,7 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { @@ -1049,10 +1004,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -1060,10 +1012,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -1079,10 +1028,7 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -1095,30 +1041,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -1129,19 +1066,13 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -1151,35 +1082,23 @@ } }, "homeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "other", "enum": [ @@ -1187,17 +1106,13 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER", - null + "OTHER" ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -1205,41 +1120,28 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER", - null + "OTHER" ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -1248,10 +1150,7 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "minLength": 1, "maxLength": 100, @@ -1259,29 +1158,20 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -1291,57 +1181,38 @@ } }, "toxicExposure": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "gulfWarHazardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "serviceDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1353,31 +1224,21 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "otherLocationsServed": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -1385,27 +1246,18 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1416,19 +1268,13 @@ } }, "additionalHazardExposures": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -1441,44 +1287,31 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER", - null + "OTHER" ] } }, "specifyOtherExposures": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1489,10 +1322,7 @@ } }, "multipleExposures": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "minItems": 1, "uniqueItems": true, @@ -1501,48 +1331,33 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -1575,10 +1390,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -1590,20 +1402,14 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -1619,47 +1425,32 @@ "example": "NEW" }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": [ - "integer", - "null" - ], + "type": "integer", "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -1674,10 +1465,7 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": [ - "array", - "null" - ], + "type": "array", "items": { "type": "object", "additionalProperties": false, @@ -1690,10 +1478,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -1705,10 +1490,7 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -1723,19 +1505,13 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -1748,10 +1524,7 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -1760,20 +1533,14 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 101, "items": { @@ -1787,19 +1554,13 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -1808,10 +1569,7 @@ }, "city": { "description": "City of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -1820,10 +1578,7 @@ }, "state": { "description": "State of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -1842,10 +1597,7 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -1901,10 +1653,7 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "98283" } @@ -1912,63 +1661,43 @@ } }, "servedInActiveCombatSince911": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard", - null + "National Guard" ] }, "obligationTermsOfService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -1976,46 +1705,31 @@ } }, "unitName": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 20, "example": "5555555" @@ -2023,14 +1737,10 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "nullable": true, "example": "YES" @@ -2039,29 +1749,20 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -2069,10 +1770,7 @@ } }, "confinements": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -2081,17 +1779,13 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -2102,75 +1796,52 @@ } }, "servicePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -2179,76 +1850,53 @@ } }, "retiredStatus": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST", - null + "PERMANENT_DISABILITY_RETIRED_LIST" ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -2258,10 +1906,7 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false @@ -2269,19 +1914,13 @@ } }, "directDeposit": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -2289,44 +1928,31 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS", - null + "SAVINGS" ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -2340,10 +1966,7 @@ "default": false }, "claimNotes": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "An optional notes section.", "maxLength": 4000 }, @@ -2577,13 +2200,7 @@ "type": "object", "required": [ "attributes", - [ - "claimantCertification", - "claimProcessType", - "disabilities", - "serviceInformation", - "veteranIdentification" - ] + null ], "properties": { "attributes": { @@ -2617,37 +2234,25 @@ ], "properties": { "serviceNumber": { - "type": [ - "null", - "string" - ], + "type": "string", "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -2673,10 +2278,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -2684,10 +2286,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -2703,10 +2302,7 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -2719,30 +2315,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -2751,27 +2338,18 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "email": { - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -2788,10 +2366,7 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { @@ -2813,10 +2388,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -2824,10 +2396,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -2843,10 +2412,7 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -2859,30 +2425,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -2893,19 +2450,13 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -2915,35 +2466,23 @@ } }, "homeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "other", "enum": [ @@ -2951,17 +2490,13 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER", - null + "OTHER" ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -2969,41 +2504,28 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER", - null + "OTHER" ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -3012,10 +2534,7 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "minLength": 1, "maxLength": 100, @@ -3023,29 +2542,20 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -3055,57 +2565,38 @@ } }, "toxicExposure": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "gulfWarHazardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "serviceDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -3117,31 +2608,21 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "otherLocationsServed": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -3149,27 +2630,18 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -3180,19 +2652,13 @@ } }, "additionalHazardExposures": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -3205,44 +2671,31 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER", - null + "OTHER" ] } }, "specifyOtherExposures": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -3253,10 +2706,7 @@ } }, "multipleExposures": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "minItems": 1, "uniqueItems": true, @@ -3265,48 +2715,33 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -3339,10 +2774,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -3354,20 +2786,14 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -3383,47 +2809,32 @@ "example": "NEW" }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": [ - "integer", - "null" - ], + "type": "integer", "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -3438,10 +2849,7 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": [ - "array", - "null" - ], + "type": "array", "items": { "type": "object", "additionalProperties": false, @@ -3454,10 +2862,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -3469,10 +2874,7 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -3487,19 +2889,13 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -3512,10 +2908,7 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -3524,20 +2917,14 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 101, "items": { @@ -3551,19 +2938,13 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -3572,10 +2953,7 @@ }, "city": { "description": "City of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -3584,10 +2962,7 @@ }, "state": { "description": "State of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -3606,10 +2981,7 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -3665,10 +3037,7 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "98283" } @@ -3676,63 +3045,43 @@ } }, "servedInActiveCombatSince911": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard", - null + "National Guard" ] }, "obligationTermsOfService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -3740,46 +3089,31 @@ } }, "unitName": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 20, "example": "5555555" @@ -3787,14 +3121,10 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "nullable": true, "example": "YES" @@ -3803,29 +3133,20 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -3833,10 +3154,7 @@ } }, "confinements": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -3845,17 +3163,13 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -3866,75 +3180,52 @@ } }, "servicePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -3943,76 +3234,53 @@ } }, "retiredStatus": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST", - null + "PERMANENT_DISABILITY_RETIRED_LIST" ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -4022,10 +3290,7 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false @@ -4033,19 +3298,13 @@ } }, "directDeposit": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -4053,44 +3312,31 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS", - null + "SAVINGS" ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -4104,10 +3350,7 @@ "default": false }, "claimNotes": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "An optional notes section.", "maxLength": 4000 } @@ -4751,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-02", + "activeDutyEndDate": "2025-02-05", "separationLocationCode": "98282" } ], @@ -4772,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-02" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -5111,13 +4354,7 @@ "type": "object", "required": [ "attributes", - [ - "claimantCertification", - "claimProcessType", - "disabilities", - "serviceInformation", - "veteranIdentification" - ] + null ], "properties": { "attributes": { @@ -5151,37 +4388,25 @@ ], "properties": { "serviceNumber": { - "type": [ - "null", - "string" - ], + "type": "string", "description": "Service identification number", "maxLength": 1000, "nullable": true }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "maxLength": 1000, @@ -5207,10 +4432,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -5218,10 +4440,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -5237,10 +4456,7 @@ }, "state": { "description": "State for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -5253,30 +4469,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}?$", "example": "6789", "nullable": true }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -5285,27 +4492,18 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "email": { - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[^\\s@]+@([^\\s@.,]+\\.)+[^\\s@.,]{2,}$", "description": "The most current email address of the Veteran.", "maxLength": 80, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -5322,10 +4520,7 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'addressLine1', 'city', 'country'.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { @@ -5347,10 +4542,7 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Unit 4", @@ -5358,10 +4550,7 @@ }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 20, "example": "Room 1", @@ -5377,10 +4566,7 @@ }, "state": { "description": "State for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "NY", "nullable": true @@ -5393,30 +4579,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address. Required if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^\\d{5}?$", "example": "12345", "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|^\\d{4}?$", "example": "6789" }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address. Do not include if 'country' is 'USA'.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 16, "nullable": true, "pattern": "^[a-zA-Z0-9]*$" @@ -5427,19 +4604,13 @@ "beginDate": { "description": "Begin date for the Veteran's new address.", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "2018-06-04" }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-04" @@ -5449,35 +4620,23 @@ } }, "homeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "other", "enum": [ @@ -5485,17 +4644,13 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER", - null + "OTHER" ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -5503,41 +4658,28 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER", - null + "OTHER" ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 500, "example": "other living situation" @@ -5546,10 +4688,7 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "minLength": 1, "maxLength": 100, @@ -5557,29 +4696,20 @@ "example": "Jane Doe" }, "pointOfContactNumber": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{10}?$", "example": "5555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "+44 20 1234 5678", "maxLength": 1000, "nullable": true @@ -5589,57 +4719,38 @@ } }, "toxicExposure": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "gulfWarHazardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "serviceDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -5651,31 +4762,21 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "otherLocationsServed": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, @@ -5683,27 +4784,18 @@ }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -5714,19 +4806,13 @@ } }, "additionalHazardExposures": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -5739,44 +4825,31 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER", - null + "OTHER" ] } }, "specifyOtherExposures": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 5000, "description": "Exposure to asbestos." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -5787,10 +4860,7 @@ } }, "multipleExposures": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "minItems": 1, "uniqueItems": true, @@ -5799,48 +4869,33 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^([-a-zA-Z0-9'.,&# ])+$", "maxLength": 1000, "description": "Hazard the Veteran was exposed to." }, "exposureLocation": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^$|([a-zA-Z0-9\"\\/&\\(\\)\\-'.,#\\[\\] ]([a-zA-Z0-9(\\)\\-'.,#\\[\\] ])?)+$", "maxLength": 1000, "description": "Location where the exposure happened." }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", @@ -5873,10 +4928,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -5888,20 +4940,14 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true @@ -5917,47 +4963,32 @@ "example": "NEW" }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": [ - "integer", - "null" - ], + "type": "integer", "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -5972,10 +5003,7 @@ }, "secondaryDisabilities": { "description": "If secondaryDisability is included, the following attributes are required: 'secondaryDisability.name', 'secondaryDisability.disabilityActionType' and 'secondaryDisability.serviceRelevance'", - "type": [ - "array", - "null" - ], + "type": "array", "items": { "type": "object", "additionalProperties": false, @@ -5988,10 +5016,7 @@ "maxLength": 255 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "maxLength": 1000, @@ -6003,10 +5028,7 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Heavy equipment operator in service." @@ -6021,19 +5043,13 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4}(?:-(?!00)(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[1-2][0-9]|3[0-1]))?)?)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -6046,10 +5062,7 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -6058,20 +5071,14 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:19|20)[0-9][0-9]$|^(?:19|20)[0-9][0-9]-(0[1-9]|1[0-2])$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 101, "items": { @@ -6085,19 +5092,13 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "([a-zA-Z0-9\"/&()\\'-'.,# ]([a-zA-Z0-9()\\'-'.,# ])?)+$", "example": "Private Facility 2", @@ -6106,10 +5107,7 @@ }, "city": { "description": "City of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "([a-zA-Z0-9\\-'.# ]([a-zA-Z0-9\\-'.# ])?)+$", "example": "Portland", "nullable": true, @@ -6118,10 +5116,7 @@ }, "state": { "description": "State of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^$|^[a-z,A-Z]{2}$", "example": "OR", "nullable": true @@ -6140,10 +5135,7 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 100, "uniqueItems": true, @@ -6199,10 +5191,7 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "98283" } @@ -6210,63 +5199,43 @@ } }, "servedInActiveCombatSince911": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard", - null + "National Guard" ] }, "obligationTermsOfService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06" @@ -6274,46 +5243,31 @@ } }, "unitName": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "pattern": "^$|([a-zA-Z0-9\\-'.,# ][a-zA-Z0-9\\-'.,# ]?)*$" }, "unitAddress": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "pattern": "^$|^([-a-zA-Z0-9'.,&# ])+$", "nullable": true }, "unitPhone": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 3, "pattern": "^$|^\\d{3}$", "example": "555" }, "phoneNumber": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 20, "example": "5555555" @@ -6321,14 +5275,10 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "nullable": true, "example": "YES" @@ -6337,29 +5287,20 @@ }, "federalActivation": { "description": "If federalActivation is present then reservesNationalGuardService.obligationTermsOfService.beginDate, reservesNationalGuardService.obligationTermsOfService.endDate and reservesNationalGuardService.unitName are required", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$", "example": "2018-06-06", "nullable": true @@ -6367,10 +5308,7 @@ } }, "confinements": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -6379,17 +5317,13 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": [ - "string" - ], + "type": "string", "nullable": false, "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-06-06 or 2018-06" @@ -6400,75 +5334,52 @@ } }, "servicePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "example": "Will be retiring soon.", "nullable": true }, "militaryRetiredPay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -6477,76 +5388,53 @@ } }, "retiredStatus": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST", - null + "PERMANENT_DISABILITY_RETIRED_LIST" ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$|(?:[0-9]{4})$|(?:[0-9]{4})-(?:0[1-9]|1[0-2])$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "minimum": 1, "maximum": 999999, @@ -6556,10 +5444,7 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false @@ -6567,19 +5452,13 @@ } }, "directDeposit": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false @@ -6587,44 +5466,31 @@ "accountNumber": { "description": "Account number for the direct deposit.", "pattern": "^(?:[a-zA-Z0-9-]{4,1000})?$", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS", - null + "SAVINGS" ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "pattern": "^$|^\\d{0,1000}$", @@ -6638,10 +5504,7 @@ "default": false }, "claimNotes": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "An optional notes section.", "maxLength": 4000 } @@ -7030,13 +5893,7 @@ "type": "object", "required": [ "attributes", - [ - "claimantCertification", - "claimProcessType", - "disabilities", - "serviceInformation", - "veteranIdentification" - ] + null ], "properties": { "attributes": { @@ -7075,36 +5932,24 @@ ], "properties": { "serviceNumber": { - "type": [ - "null", - "string" - ], + "type": "string", "description": "Service identification number", "nullable": true, "maxLength": 1000 }, "veteranNumber": { "description": "If there isn't a ten digit phone number in VBMS for the Veteran, the exams will not be ordered. Including the phone number is recommended to avoid claim processing delays.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "telephone": { "description": "Veteran's phone number. Number including area code.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "5555555555", "nullable": true }, "internationalTelephone": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Veteran's international phone number.", "example": "+44 20 1234 5678", "nullable": true, @@ -7129,20 +5974,14 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 325, "example": "Unit 4", "nullable": true }, "addressLine3": { "description": "Address line 3 for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 325, "example": "Room 1", "nullable": true @@ -7155,10 +5994,7 @@ }, "state": { "description": "State for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "NY", "maxLength": 1000, "nullable": true @@ -7171,30 +6007,21 @@ }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "12345", "maxLength": 500, "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "6789", "nullable": true, "maxLength": 500 }, "internationalPostalCode": { "description": "International postal code for the Veteran's current mailing address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true } @@ -7202,26 +6029,17 @@ }, "emailAddress": { "description": "Information associated with the Veteran's email address.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "email": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The most current email address of the Veteran.", "maxLength": 1000, "nullable": true }, "agreeToEmailRelatedToClaim": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Agreement to email information relating to this claim.", "example": true, "default": false, @@ -7238,10 +6056,7 @@ }, "changeOfAddress": { "description": "If 'changeOfAddress' is included, the following attributes are required: 'typeOfAddressChange', 'dates.beginDate', 'addressLine1', 'city', 'state', 'country', 'zipFirstFive'.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { @@ -7262,20 +6077,14 @@ }, "addressLine2": { "description": "Address line 2 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 325, "example": "Unit 4", "nullable": true }, "addressLine3": { "description": "Address line 3 for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 325, "example": "Room 1", "nullable": true @@ -7288,50 +6097,35 @@ }, "state": { "description": "State for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "NY", "maxLength": 1000, "nullable": true }, "country": { "description": "Country for the Veteran's new address. Value must match the values returned by the /countries endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": [ - "string", - "null" - ], + "type": "string", "example": "USA", "maxLength": 1000, "nullable": true }, "zipFirstFive": { "description": "Zip code (First 5 digits) for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "12345", "maxLength": 500, "nullable": true }, "zipLastFour": { "description": "Zip code (Last 4 digits) for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "6789", "maxLength": 500 }, "internationalPostalCode": { "description": "International postal code for the Veteran's new address.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true }, @@ -7346,10 +6140,7 @@ }, "endDate": { "description": "Date in YYYY-MM-DD the changed address expires, if change is temporary.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "example": "2018-06-04" @@ -7359,35 +6150,23 @@ } }, "homeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "isCurrentlyHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently homeless?" }, "currentlyHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "homelessSituationOptions": { "description": "Veteran's living situation.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "other", "enum": [ @@ -7395,17 +6174,13 @@ "NOT_CURRENTLY_IN_A_SHELTERED_ENVIRONMENT", "STAYING_WITH_ANOTHER_PERSON", "FLEEING_CURRENT_RESIDENCE", - "OTHER", - null + "OTHER" ], "example": "FLEEING_CURRENT_RESIDENCE" }, "otherDescription": { "description": "Explanation of living situation. Required if 'homelessSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 5000, "example": "other living situation" @@ -7413,41 +6188,28 @@ } }, "isAtRiskOfBecomingHomeless": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Is the Veteran currently at risk of becoming homeless?" }, "riskOfBecomingHomeless": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "livingSituationOptions": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "default": "HOUSING_WILL_BE_LOST_IN_30_DAYS", "enum": [ "HOUSING_WILL_BE_LOST_IN_30_DAYS", "LEAVING_PUBLICLY_FUNDED_SYSTEM_OF_CARE", - "OTHER", - null + "OTHER" ] }, "otherDescription": { "description": "Explanation of living situation. Required if 'livingSituationOptions' is 'OTHER'.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 5000, "example": "other living situation" @@ -7456,38 +6218,26 @@ }, "pointOfContact": { "description": "Individual in direct contact with Veteran.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "minLength": 1, "maxLength": 1000, "example": "Jane Doe" }, "pointOfContactNumber": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "telephone": { "description": "Ten digit primary phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "5555555555", "nullable": true }, "internationalTelephone": { "description": "International phone of point of contact.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "+44 20 1234 5678", "nullable": true, "maxLength": 1000 @@ -7497,57 +6247,38 @@ } }, "toxicExposure": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "gulfWarHazardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Toxic exposure related to the Gulf war.", "properties": { "servedInGulfWarHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following Gulf War hazard locations: Iraq; Kuwait; Saudi Arabia; the neutral zone between Iraq and Saudi Arabia; Bahrain; Qatar; the United Arab Emirates; Oman; Yemen; Lebanon; Somalia; Afghanistan; Israel; Egypt; Turkey; Syria; Jordan; Djibouti; Uzbekistan; the Gulf of Aden; the Gulf of Oman; the Persian Gulf; the Arabian Sea; and the Red Sea.", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "serviceDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in Gulf War hazard location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in Gulf War hazard location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -7559,58 +6290,39 @@ }, "herbicideHazardService": { "description": "Toxic exposure related to herbicide (Agent Orange) hazards.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "servedInHerbicideHazardLocations": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Set to true if the Veteran served in any of the following herbicide/Agent Orange locations: Republic of Vietnam to include the 12 nautical mile territorial waters; Thailand at any United States or Royal Thai base; Laos; Cambodia at Mimot or Krek; Kampong Cham Province; Guam or American Samoa; or in the territorial waters thereof; Johnston Atoll or a ship that called at Johnston Atoll; Korean demilitarized zone; aboard (to include repeated operations and maintenance with) a C-123 aircraft known to have been used to spray an herbicide agent (during service in the Air Force and Air Force Reserves).", "example": "YES", "enum": [ "NO", - "YES", - null + "YES" ], "nullable": true }, "otherLocationsServed": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Other location(s) where Veteran served.", "maxLength": 5000 }, "serviceDates": { "description": "Date range for exposure in herbicide hazard location.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for serving in herbicide location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for serving in herbicide location.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -7621,19 +6333,13 @@ } }, "additionalHazardExposures": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Additional hazardous exposures.", "properties": { "additionalExposures": { "description": "Additional exposure incidents.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 5000, "items": { @@ -7646,43 +6352,30 @@ "SHIPBOARD_HAZARD_AND_DEFENSE", "MILITARY_OCCUPATIONAL_SPECIALTY_RELATED_TOXIN", "CONTAMINATED_WATER_AT_CAMP_LEJEUNE", - "OTHER", - null + "OTHER" ] } }, "specifyOtherExposures": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Exposure to asbestos.", "maxLength": 5000 }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -7693,10 +6386,7 @@ } }, "multipleExposures": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 5000, "minItems": 0, @@ -7705,46 +6395,31 @@ "additionalProperties": false, "properties": { "hazardExposedTo": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Hazard the Veteran was exposed to.", "maxLength": 1000 }, "exposureLocation": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Location where the exposure happened.", "maxLength": 1000 }, "exposureDates": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "Date range for when the exposure happened.", "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate begin date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "Approximate end date for exposure.", "pattern": "^(\\d{4}(-\\d{2})?)?$", @@ -7777,10 +6452,7 @@ "maxLength": 1000 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "examples": [ @@ -7792,20 +6464,14 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury. If the disabilityActionType is 'NEW', the serviceRelevance is required.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Heavy equipment operator in service.", "maxLength": 1000 }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true, @@ -7822,47 +6488,32 @@ "example": "NEW" }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true }, "ratedDisabilityId": { "description": "When submitting a contention with action type 'INCREASE', the previously rated disability id may be included.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "1100583", "nullable": true }, "diagnosticCode": { "description": "If the disabilityActionType is 'NONE' or 'INCREASE', the diagnosticCode should correspond to an existing rated disability.", - "type": [ - "integer", - "null" - ], + "type": "integer", "example": 9999, "nullable": true }, "isRelatedToToxicExposure": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "description": "Is the disability related to toxic exposures? If true, related 'toxicExposure' must be included.", "example": true, "default": false, "nullable": true }, "specialIssues": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "uniqueItems": true, "items": { @@ -7889,10 +6540,7 @@ "maxLength": 1000 }, "exposureOrEventOrInjury": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "What caused the disability?", "nullable": true, "examples": [ @@ -7904,10 +6552,7 @@ }, "serviceRelevance": { "description": "Explanation of how the disability(ies) relates to the in-service event/exposure/injury.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Heavy equipment operator in service.", "maxLength": 1000 @@ -7922,20 +6567,14 @@ }, "approximateDate": { "description": "Approximate date disability began. Date must be in the past. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018", "nullable": true, "maxLength": 1000 }, "classificationCode": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Classification code for the associated body system. Must match an active code returned by the /disabilities endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", "example": "249470", "nullable": true @@ -7948,10 +6587,7 @@ }, "treatments": { "description": "Identifies the Service Treatment information of the Veteran. The combination of treatedDisabilityName, center name, center city, and center state must be less than 1000 characters to successfully generate a PDF.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 5000, "items": { @@ -7960,20 +6596,14 @@ "properties": { "beginDate": { "description": "Begin date for treatment. If treatment began from 2005 to present, you do not need to provide dates. Each treatment begin date must be after the first 'servicePeriod.activeDutyBeginDate'.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(\\d{4}(-\\d{2})?)?$", "example": "2018-06 or 2018", "nullable": true }, "treatedDisabilityNames": { "description": "Name(s) of disabilities treated in this time frame.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 101, "items": { @@ -7987,38 +6617,26 @@ }, "center": { "description": "VA Medical Center(s) and Department of Defense Military Treatment Facilities where the Veteran received treatment after discharge for any claimed disabilities.", - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "name": { "description": "Name of facility Veteran was treated in. The /treatment-centers endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve possible treatment center names.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Private Facility 2", "maxLength": 100 }, "city": { "description": "City of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "Schenectady", "nullable": true }, "state": { "description": "State of treatment facility.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "NY", "nullable": true } @@ -8036,10 +6654,7 @@ "properties": { "alternateNames": { "description": "List any other names under which the Veteran served, if applicable.", - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 5000, "items": { @@ -8095,10 +6710,7 @@ }, "separationLocationCode": { "description": "Location code for the facility the Veteran plans to separate from. Code must match the values returned by the /intake-sites endpoint on the [Benefits reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current).", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "98283" } @@ -8106,63 +6718,43 @@ } }, "servedInActiveCombatSince911": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "description": "Did Veteran serve in a combat zone since 9-11-2001?", "example": "YES", "nullable": true }, "reservesNationalGuardService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "component": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "Reserves", - "National Guard", - null + "National Guard" ] }, "obligationTermsOfService": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "If 'obligationTermsOfService' is included, the following attributes are required: 'beginDate ' and 'endDate'.", "additionalProperties": false, "properties": { "beginDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:\\d{4})-(?:\\d{2})-(?:\\d{2})$", "example": "2018-06-06" }, "endDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(?:\\d{4})-(?:\\d{2})-(?:\\d{2})$", "example": "2018-06-06" @@ -8170,43 +6762,28 @@ } }, "unitName": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true }, "unitAddress": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true }, "unitPhone": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "areaCode": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "555" }, "phoneNumber": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 20, "example": "5555555" @@ -8214,14 +6791,10 @@ } }, "receivingInactiveDutyTrainingPay": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "nullable": true, "example": "YES" @@ -8229,29 +6802,20 @@ } }, "federalActivation": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "activationDate": { "description": "Date cannot be in the future and must be after the earliest servicePeriod.activeDutyBeginDate.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$|^$", "example": "2018-06-06", "nullable": true }, "anticipatedSeparationDate": { "description": "Anticipated date of separation. Date must be in the future.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$|^$", "example": "2018-06-06", "nullable": true @@ -8259,10 +6823,7 @@ } }, "confinements": { - "type": [ - "array", - "null" - ], + "type": "array", "nullable": true, "maxItems": 5000, "items": { @@ -8271,19 +6832,13 @@ "properties": { "approximateBeginDate": { "description": "The approximateBeginDate must be after the earliest servicePeriod activeDutyBeginDate.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-06-06 or 2018-06" }, "approximateEndDate": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-06-06 or 2018-06" @@ -8294,151 +6849,105 @@ } }, "servicePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "properties": { "receivingMilitaryRetiredPay": { "description": "Is the Veteran receiving military retired pay?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPay": { "description": "Will the Veteran receive military retired pay pay in future? \n If true, then 'futurePayExplanation' is required.", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "futureMilitaryRetiredPayExplanation": { "description": "Explains why future pay will be received.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "Will be retiring soon.", "nullable": true, "maxLength": 1000 }, "militaryRetiredPay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 1000, "example": "Air Force" }, "monthlyAmount": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "example": 100 } } }, "retiredStatus": { - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "description": "", "enum": [ "RETIRED", "TEMPORARY_DISABILITY_RETIRED_LIST", - "PERMANENT_DISABILITY_RETIRED_LIST", - null + "PERMANENT_DISABILITY_RETIRED_LIST" ] }, "favorMilitaryRetiredPay": { "description": "Is the Veteran waiving VA benefits to retain military retired pay? See item 26 on form 21-526EZ for more details.", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false }, "receivedSeparationOrSeverancePay": { "description": "Has the Veteran ever received separation pay, disability severance pay, or any other lump sum payment from their branch of service?", - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "YES", - "NO", - null + "NO" ], "example": "YES", "nullable": true }, "separationSeverancePay": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "description": "", "properties": { "datePaymentReceived": { "description": "Approximate date separation pay was received. \n Format can be either YYYY-MM-DD or YYYY-MM or YYYY", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^(\\d{4}-(\\d{2}-(\\d{2})?)?|\\d{4}-\\d{2}|\\d{4}|)$", "example": "2018-03-02 or 2018-03 or 2018" }, "branchOfService": { "description": "Branch of service. The /service-branches endpoint on the [Benefits Reference Data API](https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current) may be used to retrieve list of possible service branches.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "Air Force" }, "preTaxAmountReceived": { "description": "Amount being received.", - "type": [ - "integer", - "null" - ], + "type": "integer", "nullable": true, "example": 100 } @@ -8446,10 +6955,7 @@ }, "favorTrainingPay": { "description": "Is the Veteran waiving VA benefits to retain training pay? See item 28 on form 21-526EZ for more details. ", - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "example": true, "default": false @@ -8457,63 +6963,44 @@ } }, "directDeposit": { - "type": [ - "object", - "null" - ], + "type": "object", "nullable": true, "additionalProperties": false, "description": "If direct deposit information is included, the following attributes are required: accountType, accountNumber, routingNumber.", "properties": { "noAccount": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "nullable": true, "description": "Claimant certifies that they do not have an account with a financial institution or certified payment agent.", "default": false }, "accountNumber": { "description": "Account number for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 1000, "nullable": true, "example": "123123123123" }, "accountType": { "description": "Account type for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "CHECKING", "enum": [ "CHECKING", - "SAVINGS", - null + "SAVINGS" ] }, "financialInstitutionName": { "description": "Provide the name of the financial institution where the Veteran wants the direct deposit.", "maxLength": 1000, - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "example": "Some Bank" }, "routingNumber": { "description": "Routing number for the direct deposit.", - "type": [ - "string", - "null" - ], + "type": "string", "nullable": true, "maxLength": 9, "example": "123123123" @@ -8526,10 +7013,7 @@ "default": false }, "claimNotes": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "An optional notes section.", "maxLength": 4000 } @@ -9522,10 +8006,7 @@ } }, "tempJurisdiction": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "Temporary jurisdiction of claim" }, "trackedItems": { @@ -10056,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-01-31", - "expirationDate": "2026-01-31", + "creationDate": "2025-02-03", + "expirationDate": "2026-02-03", "type": "compensation", "status": "active" } @@ -10947,7 +9428,7 @@ "application/json": { "example": { "data": { - "id": "1ca6f5b0-5ca7-4a1e-98b4-45295fc5f31d", + "id": "45fb41a5-5c01-446b-8142-d8d88a1822d8", "type": "power-of-attorney-request", "attributes": { "veteran": { @@ -11020,9 +9501,7 @@ ], "properties": { "id": { - "type": [ - "string" - ], + "type": "string", "description": "The unique identifier for the power of attorney request" }, "type": { @@ -11162,10 +9641,7 @@ "additionalProperties": false, "properties": { "claimantId": { - "type": [ - "string", - "null" - ], + "type": "string", "example": "123456789", "description": "Id of the claimant." }, @@ -11175,61 +9651,40 @@ "properties": { "addressLine1": { "description": "Street address with number and name. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^([-a-zA-Z0-9'.,&#]([-a-zA-Z0-9'.,&# ])?)+$", "maxLength": 30 }, "addressLine2": { - "type": [ - "string", - "null" - ], + "type": "string", "maxLength": 5 }, "city": { "description": "City for the address. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "Portland", "maxLength": 18 }, "stateCode": { "description": "State for the address. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[a-z,A-Z]{2}$", "example": "OR" }, "country": { "description": "Country of the address. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "USA" }, "zipCode": { "description": "Zipcode (First 5 digits) of the address. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{5}?$", "example": "12345" }, "zipCodeSuffix": { "description": "Zipcode (Last 4 digits) of the address.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^\\d{4}?$", "example": "6789" } @@ -11246,19 +9701,13 @@ "properties": { "areaCode": { "description": "Area code of the phone number.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[2-9][0-9]{2}$", "example": "555" }, "phoneNumber": { "description": "Phone number.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": "^[0-9]{1,14}$", "example": "555-5555" } @@ -11266,20 +9715,14 @@ }, "email": { "description": "Email address of the claimant.", - "type": [ - "string", - "null" - ], + "type": "string", "pattern": ".@.", "maxLength": 61, "example": "claimant@example.com" }, "relationship": { "description": "Relationship of claimant to the veteran. Required if claimant information provided.", - "type": [ - "string", - "null" - ], + "type": "string", "example": "Spouse" } } @@ -11532,12 +9975,7 @@ "type": "object", "required": [ "attributes", - [ - "veteran", - "poa", - "recordConsent", - "consentAddressChange" - ] + null ], "properties": { "attributes": { @@ -12000,10 +10438,7 @@ ], "properties": { "id": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "uuid" }, "type": { @@ -12024,22 +10459,13 @@ "type": "object", "properties": { "firstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "lastName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "middleName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12047,40 +10473,22 @@ "type": "object", "properties": { "city": { - "type": [ - "string", - "null" - ] + "type": "string" }, "country": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPo": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPostalCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "state": { - "type": [ - "string", - "null" - ] + "type": "string" }, "zip": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12088,77 +10496,45 @@ "type": "object", "properties": { "poaCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserEmail": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserFirstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserLastName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, "receivedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "actionedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "status": { - "type": [ - "string", - "null" - ] + "type": "string" }, "declinedReason": { - "type": [ - "string", - "null" - ] + "type": "string" }, "consentAddressChange": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] }, "recordConsent": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] } } @@ -12468,10 +10844,7 @@ ], "properties": { "id": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "uuid" }, "type": { @@ -12492,22 +10865,13 @@ "type": "object", "properties": { "firstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "lastName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "middleName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12515,40 +10879,22 @@ "type": "object", "properties": { "city": { - "type": [ - "string", - "null" - ] + "type": "string" }, "country": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPo": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPostalCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "state": { - "type": [ - "string", - "null" - ] + "type": "string" }, "zip": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12556,77 +10902,45 @@ "type": "object", "properties": { "poaCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserEmail": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserFirstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserLastName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, "receivedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "actionedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "status": { - "type": [ - "string", - "null" - ] + "type": "string" }, "declinedReason": { - "type": [ - "string", - "null" - ] + "type": "string" }, "consentAddressChange": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] }, "recordConsent": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] } } @@ -12837,10 +11151,7 @@ ], "properties": { "id": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "uuid" }, "type": { @@ -12861,22 +11172,13 @@ "type": "object", "properties": { "firstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "lastName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "middleName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12884,40 +11186,22 @@ "type": "object", "properties": { "city": { - "type": [ - "string", - "null" - ] + "type": "string" }, "country": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPo": { - "type": [ - "string", - "null" - ] + "type": "string" }, "militaryPostalCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "state": { - "type": [ - "string", - "null" - ] + "type": "string" }, "zip": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, @@ -12925,77 +11209,45 @@ "type": "object", "properties": { "poaCode": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserEmail": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserFirstName": { - "type": [ - "string", - "null" - ] + "type": "string" }, "vsoUserLastName": { - "type": [ - "string", - "null" - ] + "type": "string" } } }, "receivedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "actionedDate": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date-time" }, "status": { - "type": [ - "string", - "null" - ] + "type": "string" }, "declinedReason": { - "type": [ - "string", - "null" - ] + "type": "string" }, "consentAddressChange": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] }, "recordConsent": { - "type": [ - "boolean", - "null" - ], + "type": "boolean", "enum": [ true, - false, - null + false ] } } @@ -13216,10 +11468,7 @@ ] }, "declinedReason": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The reason for declining the request.", "nullable": true }, @@ -13554,10 +11803,7 @@ "type": "object", "required": [ "attributes", - [ - "veteran", - "serviceOrganization" - ] + null ], "properties": { "attributes": { @@ -13651,7 +11897,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -13789,7 +12035,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -13971,7 +12217,7 @@ "application/json": { "example": { "data": { - "id": "f48237c4-477c-4e1f-9f5c-3bbab62419eb", + "id": "906ceaa7-e65a-4892-98ba-908705f2f3c5", "type": "organization", "attributes": { "code": "083", @@ -14242,10 +12488,7 @@ "type": "object", "required": [ "attributes", - [ - "veteran", - "serviceOrganization" - ] + null ], "properties": { "attributes": { @@ -14339,7 +12582,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -14477,7 +12720,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -14968,10 +13211,7 @@ "type": "object", "required": [ "attributes", - [ - "veteran", - "representative" - ] + null ], "properties": { "attributes": { @@ -15090,7 +13330,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -15214,7 +13454,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -15459,7 +13699,7 @@ "application/json": { "example": { "data": { - "id": "b673cace-8273-46bb-8a64-e6d505e205c4", + "id": "33341844-6fdb-4eca-a41f-dfd83237235c", "type": "individual", "attributes": { "code": "067", @@ -15722,10 +13962,7 @@ "type": "object", "required": [ "attributes", - [ - "veteran", - "representative" - ] + null ], "properties": { "attributes": { @@ -15844,7 +14081,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -15968,7 +14205,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -16302,10 +14539,10 @@ "application/json": { "example": { "data": { - "id": "ffcd1a08-763b-4a51-8059-3d393b2ceb8a", + "id": "70c3779c-c926-49a3-81ce-acf2801116a4", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-01-31T20:08:41.536Z", + "createdAt": "2025-02-03T18:41:31.362Z", "representative": { "serviceOrganization": { "poaCode": "074" @@ -16439,22 +14676,15 @@ ] }, "completedAt": { - "type": [ - "string", - "null" - ], + "type": "string", "format": "date" }, "nextStep": { - "type": [ - "string", - "null" - ], + "type": "string", "enum": [ "POA_UPDATE", "POA_ACCESS_UPDATE", - "CLAIMANT_NOTIFICATION", - null + "CLAIMANT_NOTIFICATION" ] } } diff --git a/modules/claims_api/config/schemas/v2/2122.json b/modules/claims_api/config/schemas/v2/2122.json index 7af0b053f19..5364e13ed3a 100644 --- a/modules/claims_api/config/schemas/v2/2122.json +++ b/modules/claims_api/config/schemas/v2/2122.json @@ -87,7 +87,7 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -206,7 +206,7 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, diff --git a/modules/claims_api/config/schemas/v2/2122a.json b/modules/claims_api/config/schemas/v2/2122a.json index 16c865e3f9b..ace4184dc71 100644 --- a/modules/claims_api/config/schemas/v2/2122a.json +++ b/modules/claims_api/config/schemas/v2/2122a.json @@ -112,7 +112,7 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, @@ -220,7 +220,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){6,9}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" } }, From dae0e39cbcc73504103cea436bda06b03bf3ca4a Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:29:35 -0700 Subject: [PATCH 4/9] Updates the schema and docs for international phone - number of digits allowed in the regex. --- .../claims_api/v2/production/swagger.json | 74 ++++++------------- 1 file changed, 21 insertions(+), 53 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json index e3debb4d30c..74f62d66521 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json @@ -335,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "f7f66fc3-ea97-45a5-bb38-0a1037b74b7b", + "id": "01784c76-9a7e-4bd3-a799-b7fd8e1d026b", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -566,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "74dc787d-aa66-4658-b87c-4153ecc968b9", + "id": "2fc6cd13-260b-47bb-9435-a00fec8f8930", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-01-30", + "activeDutyEndDate": "2025-02-05", "separationLocationCode": "98282" } ], @@ -751,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -3994,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-01-30", + "activeDutyEndDate": "2025-02-05", "separationLocationCode": "98282" } ], @@ -4015,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-01-30" + "anticipatedSeparationDate": "2025-02-05" }, "confinements": [ { @@ -8537,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-01-28", - "expirationDate": "2026-01-28", + "creationDate": "2025-02-03", + "expirationDate": "2026-02-03", "type": "compensation", "status": "active" } @@ -9784,12 +9784,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -9926,12 +9922,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -10112,7 +10104,7 @@ "application/json": { "example": { "data": { - "id": "cee0496e-0a27-4c19-b18b-3bba4821d900", + "id": "b25c2a93-2fc8-4191-b11f-52da2c4a7417", "type": "organization", "attributes": { "code": "083", @@ -10477,12 +10469,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -10619,12 +10607,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -11233,12 +11217,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -11361,12 +11341,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -11610,7 +11586,7 @@ "application/json": { "example": { "data": { - "id": "b01df28a-6961-479f-ad9c-0c91feac5839", + "id": "387bbac0-7a9d-49d0-a59f-a79cb30823ed", "type": "individual", "attributes": { "code": "067", @@ -11992,12 +11968,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -12120,12 +12092,8 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^[0-9]{1,14}$", + "pattern": "^\\d(?:[- ]*\\d){1,14}$", "example": "555-5555" - }, - "phoneNumberExt": { - "type": "string", - "pattern": "^[a-zA-Z0-9]{1,10}$" } }, "if": { @@ -12458,10 +12426,10 @@ "application/json": { "example": { "data": { - "id": "9b3813b9-0811-4a6d-adc1-97b0c1df5cd2", + "id": "ba40091c-13d6-499a-9171-d510abb68287", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-01-28T14:25:25.171Z", + "createdAt": "2025-02-03T18:42:53.023Z", "representative": { "serviceOrganization": { "poaCode": "074" From 2efe1d5f37dc4a4c07cf2ac567a5b99c497029a6 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:58:28 -0700 Subject: [PATCH 5/9] Simplifies tests. --- .../veterans/power_of_attorney/2122_spec.rb | 186 ++++++++---------- .../veterans/power_of_attorney/2122a_spec.rb | 172 ++++++---------- 2 files changed, 149 insertions(+), 209 deletions(-) diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb index 135db476df1..3d72f2501b8 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb @@ -831,7 +831,7 @@ end end - context 'when claimant.phone.countryCode is "1" and areaCode is not provided' do + describe 'phone number validation' do let(:request_body) do Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', 'power_of_attorney', '2122', 'valid.json').read @@ -850,36 +850,12 @@ zipCode: '92264' }, phone: { - countryCode: '1', + areaCode: '303', phoneNumber: '5551337' } } end - let(:error_msg) { 'The property /claimant/phone did not contain the required key areaCode' } - - it 'returns a meaningful 422' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122_path, params: request_body, headers: auth_header - - response_body = JSON.parse(response.body)['errors'][0] - expect(response).to have_http_status(:unprocessable_entity) - expect(response_body['detail']).to eq(error_msg) - end - end - end - end - - context 'when claimant.phone.countryCode is "1" and areaCode is provided' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122', 'valid.json').read - end - - let(:claimant) do + let(:claimant_international) do { claimantId: '456', email: 'lillian@disney.com', @@ -893,101 +869,113 @@ }, phone: { countryCode: '1', - areaCode: '203', + areaCode: '303', phoneNumber: '5551337' } } end - it 'returns a 200' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122_path, params: request_body, headers: auth_header + context 'when claimant.phone.countryCode is "1" and areaCode is not provided' do + let(:error_msg) do + "The property /claimant/phone/areaCode did not match the following requirements: + {\"description\"=>\"Area code of the phone number. + Required if countryCode is '1' or not included.\", + \"type\"=>\"string\", \"pattern\"=>\"^[2-9][0-9]{2}$\", \"example\"=>\"555\"}" + end - expect(response).to have_http_status(:ok) + it 'returns a meaningful 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:areaCode] = nil + json['data']['attributes']['claimant'] = claimant_international + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header + + response_body = JSON.parse(response.body)['errors'][0] + expect(response).to have_http_status(:unprocessable_entity) + expect(response_body['detail']).to eq(error_msg) + end end end end - end - context 'when claimant.phoneNumber contains a dash' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122', 'valid.json').read - end + context 'when claimant.phone.countryCode is "1" and areaCode is provided' do + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:phoneNumber] = '5551337' + json['data']['attributes']['claimant'] = claimant_international + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header - let(:claimant) do - { - claimantId: '456', - email: 'lillian@disney.com', - relationship: 'Spouse', - address: { - addressLine1: '2688 S Camino Real', - city: 'Palm Springs', - stateCode: 'CA', - countryCode: 'US', - zipCode: '92264' - }, - phone: { - countryCode: '1', - areaCode: '203', - phoneNumber: '555-1337' - } - } + expect(response).to have_http_status(:ok) + end + end + end end - it 'returns a 200' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122_path, params: request_body, headers: auth_header + context 'when claimant.phoneNumber contains a dash' do + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '555-1337' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(:ok) + end end end end - end - context 'when claimant.phoneNumber contains a space' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122', 'valid.json').read + context 'when it a US number contains a space' do + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '555 1337' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header + + expect(response).to have_http_status(:ok) + end + end + end end - let(:claimant) do - { - claimantId: '456', - email: 'lillian@disney.com', - relationship: 'Spouse', - address: { - addressLine1: '2688 S Camino Real', - city: 'Palm Springs', - stateCode: 'CA', - countryCode: 'US', - zipCode: '92264' - }, - phone: { - countryCode: '1', - areaCode: '203', - phoneNumber: '555 1337' - } - } + context 'when an international number contains dashes' do + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:phoneNumber] = '44-1234-567890' + json['data']['attributes']['claimant'] = claimant_international + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header + + expect(response).to have_http_status(:ok) + end + end + end end - it 'returns a 200' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122_path, params: request_body, headers: auth_header + context 'when an international number contains spaces' do + it 'returns a 200' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:phoneNumber] = '44 1234 567890' + json['data']['attributes']['claimant'] = claimant_international + request_body = json.to_json + post validate2122_path, params: request_body, headers: auth_header - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(:ok) + end end end end diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb index 7ab8ad3438d..7abca461d1a 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb @@ -96,6 +96,14 @@ } end + context 'when not valid' do + it 'returns a 401' do + post validate2122a_path, headers: { 'Authorization' => 'Bearer HelloWorld' } + + expect(response).to have_http_status(:unauthorized) + end + end + context 'when a POA code isn\'t provided' do it 'returns a 422 error code' do mock_ccg(scopes) do |auth_header| @@ -851,7 +859,7 @@ end end - context 'when claimant.phone.countryCode is "1" and areaCode is not provided' do + describe 'phone number' do let(:request_body) do Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', 'power_of_attorney', '2122a', 'valid.json').read @@ -875,30 +883,7 @@ } } end - let(:error_msg) { 'The property /claimant/phone did not contain the required key areaCode' } - - it 'returns a meaningful 422' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122a_path, params: request_body, headers: auth_header - response_body = JSON.parse(response.body)['errors'][0] - expect(response).to have_http_status(:unprocessable_entity) - expect(response_body['detail']).to eq(error_msg) - end - end - end - end - - context 'when claimant.phone.countryCode is "1" and areaCode is provided' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122a', 'valid.json').read - end - - let(:claimant) do + let(:claimant_international) do { claimantId: '456', email: 'lillian@disney.com', @@ -912,99 +897,74 @@ }, phone: { countryCode: '1', - areaCode: '456', + areaCode: '303', phoneNumber: '5551337' } } end - let(:error_msg) { "If country code is blank or 1 'areaCode' must be filled in" } - it 'returns a meaningful 422' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122a_path, params: request_body, headers: auth_header - expect(response).to have_http_status(:ok) + context 'when claimant.phone.countryCode is "1" and areaCode is not provided' do + let(:error_msg) { 'The property /claimant/phone did not contain the required key areaCode' } + + it 'returns a meaningful 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:areaCode] = nil + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + response_body = JSON.parse(response.body)['errors'][0] + expect(response).to have_http_status(:unprocessable_entity) + expect(response_body['detail']).to eq(error_msg) + end end end end - end - - context 'when claimant phoneNumber has a dash' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122a', 'valid.json').read - end - let(:claimant) do - { - claimantId: '456', - email: 'lillian@disney.com', - relationship: 'Spouse', - address: { - addressLine1: '2688 S Camino Real', - city: 'Palm Springs', - stateCode: 'CA', - countryCode: 'US', - zipCode: '92264' - }, - phone: { - countryCode: '1', - areaCode: '456', - phoneNumber: '555-1337' - } - } - end + context 'when claimant.phone.countryCode is "1" and areaCode is provided' do + let(:error_msg) { "If country code is blank or 1 'areaCode' must be filled in" } - it 'returns a 202' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122a_path, params: request_body, headers: auth_header - expect(response).to have_http_status(:ok) + it 'returns a meaningful 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant_international[:phone][:areaCode] = '555' + json['data']['attributes']['claimant'] = claimant_international + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:ok) + end end end end - end - context 'when claimant phoneNumber has a space' do - let(:request_body) do - Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', - 'power_of_attorney', '2122a', 'valid.json').read - end - - let(:claimant) do - { - claimantId: '456', - email: 'lillian@disney.com', - relationship: 'Spouse', - address: { - addressLine1: '2688 S Camino Real', - city: 'Palm Springs', - stateCode: 'CA', - countryCode: 'US', - zipCode: '92264' - }, - phone: { - countryCode: '1', - areaCode: '456', - phoneNumber: '555 1337' - } - } + context 'when claimant phoneNumber has parenthesis' do + it 'returns a 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '(555)1337' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:unprocessable_entity) + end + end + end end - it 'returns a 202' do - VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do - mock_ccg(%w[claim.write claim.read]) do |auth_header| - json = JSON.parse(request_body) - json['data']['attributes']['claimant'] = claimant - request_body = json.to_json - post validate2122a_path, params: request_body, headers: auth_header - expect(response).to have_http_status(:ok) + context 'when claimant phoneNumber has an asterick' do + it 'returns a 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '555*1337' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:unprocessable_entity) + end end end end @@ -1014,14 +974,6 @@ end end end - - context 'when not valid' do - it 'returns a 401' do - post validate2122a_path, headers: { 'Authorization' => 'Bearer HelloWorld' } - - expect(response).to have_http_status(:unauthorized) - end - end end end end From f1def1321f353e110001f934f185fd5f6fef2e7f Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 4 Feb 2025 12:39:43 -0700 Subject: [PATCH 6/9] Updates swgger files & schema files. Linting update on 2122_spec. --- .../swagger/claims_api/v2/dev/swagger.json | 76 +++++++++++-------- .../claims_api/v2/production/swagger.json | 74 +++++++++++------- .../claims_api/config/schemas/v2/2122.json | 12 ++- .../claims_api/config/schemas/v2/2122a.json | 13 +++- .../veterans/power_of_attorney/2122_spec.rb | 7 +- 5 files changed, 110 insertions(+), 72 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json index 5e55b172181..6e195adfcf3 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json @@ -335,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "5226f34c-0a8a-47f3-ac38-4cfcba5541c4", + "id": "3b4fef81-b80a-43b3-adb7-8e592ffcb433", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -566,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "609f7962-0bfe-4ea4-8ba6-2200b5d3c08d", + "id": "8e6f1970-f34f-4a39-8a46-2ba6ed925618", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-05", + "activeDutyEndDate": "2025-02-06", "separationLocationCode": "98282" } ], @@ -751,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -3994,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-05", + "activeDutyEndDate": "2025-02-06", "separationLocationCode": "98282" } ], @@ -4015,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -8537,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-02-03", - "expirationDate": "2026-02-03", + "creationDate": "2025-02-04", + "expirationDate": "2026-02-04", "type": "compensation", "status": "active" } @@ -9428,7 +9428,7 @@ "application/json": { "example": { "data": { - "id": "45fb41a5-5c01-446b-8142-d8d88a1822d8", + "id": "7730d1b9-c2dc-4412-b7c5-bd1b7fdcf707", "type": "power-of-attorney-request", "attributes": { "veteran": { @@ -11897,8 +11897,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -12035,8 +12037,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -12217,7 +12221,7 @@ "application/json": { "example": { "data": { - "id": "906ceaa7-e65a-4892-98ba-908705f2f3c5", + "id": "956ebc17-d614-47ab-aa5e-5bd3708c5946", "type": "organization", "attributes": { "code": "083", @@ -12582,8 +12586,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -12720,8 +12726,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -13330,8 +13338,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -13454,8 +13464,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -13699,7 +13711,7 @@ "application/json": { "example": { "data": { - "id": "33341844-6fdb-4eca-a41f-dfd83237235c", + "id": "3a3a7857-9928-4dec-a799-fb00ba27256e", "type": "individual", "attributes": { "code": "067", @@ -14081,8 +14093,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -14205,8 +14219,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -14539,10 +14555,10 @@ "application/json": { "example": { "data": { - "id": "70c3779c-c926-49a3-81ce-acf2801116a4", + "id": "ddad2731-2077-4f41-811c-8a8872f3fea4", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-02-03T18:41:31.362Z", + "createdAt": "2025-02-04T19:36:26.765Z", "representative": { "serviceOrganization": { "poaCode": "074" diff --git a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json index 74f62d66521..2b051d15652 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json @@ -335,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "01784c76-9a7e-4bd3-a799-b7fd8e1d026b", + "id": "9217b33f-7a4a-47fc-b033-dd6c48e881ba", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -566,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "2fc6cd13-260b-47bb-9435-a00fec8f8930", + "id": "1dcf9701-ac11-4739-9e05-f150b396296f", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-05", + "activeDutyEndDate": "2025-02-06", "separationLocationCode": "98282" } ], @@ -751,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -3994,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-05", + "activeDutyEndDate": "2025-02-06", "separationLocationCode": "98282" } ], @@ -4015,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-05" + "anticipatedSeparationDate": "2025-02-06" }, "confinements": [ { @@ -8537,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-02-03", - "expirationDate": "2026-02-03", + "creationDate": "2025-02-04", + "expirationDate": "2026-02-04", "type": "compensation", "status": "active" } @@ -9784,8 +9784,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -9922,8 +9924,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -10104,7 +10108,7 @@ "application/json": { "example": { "data": { - "id": "b25c2a93-2fc8-4191-b11f-52da2c4a7417", + "id": "4641b112-46db-4a38-823b-a621b602eed9", "type": "organization", "attributes": { "code": "083", @@ -10469,8 +10473,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -10607,8 +10613,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -11217,8 +11225,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -11341,8 +11351,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -11586,7 +11598,7 @@ "application/json": { "example": { "data": { - "id": "387bbac0-7a9d-49d0-a59f-a79cb30823ed", + "id": "a1cd47e2-5289-48a7-8450-9ae969c32dc4", "type": "individual", "attributes": { "code": "067", @@ -11968,8 +11980,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -12092,8 +12106,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -12426,10 +12442,10 @@ "application/json": { "example": { "data": { - "id": "ba40091c-13d6-499a-9171-d510abb68287", + "id": "649c9474-339a-4a9b-8db8-202c7f2009f6", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-02-03T18:42:53.023Z", + "createdAt": "2025-02-04T19:37:41.795Z", "representative": { "serviceOrganization": { "poaCode": "074" diff --git a/modules/claims_api/config/schemas/v2/2122.json b/modules/claims_api/config/schemas/v2/2122.json index 5364e13ed3a..638fc42583a 100644 --- a/modules/claims_api/config/schemas/v2/2122.json +++ b/modules/claims_api/config/schemas/v2/2122.json @@ -87,8 +87,10 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "type": "string", "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -206,8 +208,10 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "type": "string", "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { diff --git a/modules/claims_api/config/schemas/v2/2122a.json b/modules/claims_api/config/schemas/v2/2122a.json index ace4184dc71..479d9b324d4 100644 --- a/modules/claims_api/config/schemas/v2/2122a.json +++ b/modules/claims_api/config/schemas/v2/2122a.json @@ -112,8 +112,11 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "type": "string", + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { @@ -220,8 +223,10 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "^\\d(?:[- ]*\\d){1,14}$", - "example": "555-5555" + "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "example": "555-5555", + "minLength": 1, + "maxLength": 14 } }, "if": { diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb index 3d72f2501b8..63e7b099a65 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122_spec.rb @@ -877,10 +877,7 @@ context 'when claimant.phone.countryCode is "1" and areaCode is not provided' do let(:error_msg) do - "The property /claimant/phone/areaCode did not match the following requirements: - {\"description\"=>\"Area code of the phone number. - Required if countryCode is '1' or not included.\", - \"type\"=>\"string\", \"pattern\"=>\"^[2-9][0-9]{2}$\", \"example\"=>\"555\"}" + 'The property /claimant/phone/areaCode did not match the following requirements:' end it 'returns a meaningful 422' do @@ -894,7 +891,7 @@ response_body = JSON.parse(response.body)['errors'][0] expect(response).to have_http_status(:unprocessable_entity) - expect(response_body['detail']).to eq(error_msg) + expect(response_body['detail']).to include(error_msg) end end end From 443da3554fd6d5cfffd0025e1e7e7b7f4e22bbae Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 4 Feb 2025 12:47:17 -0700 Subject: [PATCH 7/9] Adds more to the spec file to test the regex more thoroughly. --- .../veterans/power_of_attorney/2122a_spec.rb | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb index 7abca461d1a..c59756ca5ad 100644 --- a/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/power_of_attorney/2122a_spec.rb @@ -968,6 +968,51 @@ end end end + + context 'when claimant phoneNumber has an 2 digits' do + it 'returns a 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '55' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:unprocessable_entity) + end + end + end + end + + context 'when claimant phoneNumber has 3 digits & dashes' do + it 'returns a 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '5-5-5' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:unprocessable_entity) + end + end + end + end + + context 'when claimant phoneNumber many digits & dashes & spaces' do + it 'returns a 422' do + VCR.use_cassette('claims_api/mpi/find_candidate/valid_icn_full') do + mock_ccg(%w[claim.write claim.read]) do |auth_header| + json = JSON.parse(request_body) + claimant[:phone][:phoneNumber] = '1-2-3-4-5 6 789 0-1-2-3 45' + json['data']['attributes']['claimant'] = claimant + request_body = json.to_json + post validate2122a_path, params: request_body, headers: auth_header + expect(response).to have_http_status(:unprocessable_entity) + end + end + end + end end end end From 320f0206191ae263a79e786ac9887cf852df4f39 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Wed, 5 Feb 2025 14:39:22 -0700 Subject: [PATCH 8/9] Adjusts the regex and re-runs the swagger --- .../swagger/claims_api/v2/dev/swagger.json | 44 +++++++++--------- .../claims_api/v2/production/swagger.json | 46 +++++++++---------- .../claims_api/config/schemas/v2/2122.json | 4 +- .../claims_api/config/schemas/v2/2122a.json | 4 +- 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json index 365c82cb8a6..ee1a04bbe59 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json @@ -335,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "db8972c4-5f94-48b8-a3fc-44a59edc97d6", + "id": "8e482717-0388-4018-9199-4c34b479840f", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -566,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "797c2738-5de4-4a17-b661-638a358396c9", + "id": "25bb7925-d6a2-4087-8b84-4940b5bcf2fa", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-06", + "activeDutyEndDate": "2025-02-07", "separationLocationCode": "98282" } ], @@ -751,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -3994,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-06", + "activeDutyEndDate": "2025-02-07", "separationLocationCode": "98282" } ], @@ -4015,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -8537,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-02-04", - "expirationDate": "2026-02-04", + "creationDate": "2025-02-05", + "expirationDate": "2026-02-05", "type": "compensation", "status": "active" } @@ -9428,7 +9428,7 @@ "application/json": { "example": { "data": { - "id": "2265779d-aa6a-40d5-803f-bac34543cdb7", + "id": "f748fd99-12a6-4c5c-a533-b87ad954eb37", "type": "power-of-attorney-request", "attributes": { "veteran": { @@ -11897,7 +11897,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -12037,7 +12037,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -12221,7 +12221,7 @@ "application/json": { "example": { "data": { - "id": "4414cba8-a7fe-4e28-95d4-1c91c4172ed1", + "id": "a2637127-6b5d-4f21-8e8b-7ecd93521f56", "type": "organization", "attributes": { "code": "083", @@ -12586,7 +12586,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -12726,7 +12726,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -13338,7 +13338,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -13464,7 +13464,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -13711,7 +13711,7 @@ "application/json": { "example": { "data": { - "id": "bfac9e00-83f6-4383-84cc-22aea75f50f1", + "id": "bce45d99-e99d-4315-9700-bc5a778e2d38", "type": "individual", "attributes": { "code": "067", @@ -14093,7 +14093,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -14219,7 +14219,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -14555,10 +14555,10 @@ "application/json": { "example": { "data": { - "id": "14cbfe09-c52a-48ba-b1b2-b489a47ba15a", + "id": "7ea83b6f-d2fa-4370-b1c4-a40c7dc33925", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-02-04T15:09:41.326Z", + "createdAt": "2025-02-05T21:37:11.866Z", "representative": { "serviceOrganization": { "poaCode": "074" diff --git a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json index 070e110debe..8a596eddab1 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json @@ -335,7 +335,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "f559385d-0abd-4a65-b14a-47c1a0e37ea2", + "id": "6c2b2cb9-4284-4938-96f4-56d33846b445", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -520,7 +520,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -566,7 +566,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "3c24c6e4-12ba-4765-b187-f051d9dc29e5", + "id": "cf626ce3-fbf7-40f0-b717-20afbedfa605", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -730,7 +730,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-06", + "activeDutyEndDate": "2025-02-07", "separationLocationCode": "98282" } ], @@ -751,7 +751,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -3994,7 +3994,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2025-02-06", + "activeDutyEndDate": "2025-02-07", "separationLocationCode": "98282" } ], @@ -4015,7 +4015,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2025-02-06" + "anticipatedSeparationDate": "2025-02-07" }, "confinements": [ { @@ -8537,8 +8537,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2025-02-04", - "expirationDate": "2026-02-04", + "creationDate": "2025-02-05", + "expirationDate": "2026-02-05", "type": "compensation", "status": "active" } @@ -9784,7 +9784,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -9924,7 +9924,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -10108,7 +10108,7 @@ "application/json": { "example": { "data": { - "id": "86ad5d89-281d-4bb6-a1bf-8028f687c9c3", + "id": "021f7f4e-fb48-4fa3-8ad5-7b2bb20b9109", "type": "organization", "attributes": { "code": "083", @@ -10473,7 +10473,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -10613,7 +10613,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -11225,7 +11225,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -11351,7 +11351,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -11598,7 +11598,7 @@ "application/json": { "example": { "data": { - "id": "96056478-c9ec-4151-aa71-42aba99f6fe7", + "id": "6bb73960-a881-4525-90d3-946d4d142e25", "type": "individual", "attributes": { "code": "067", @@ -11980,7 +11980,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -12106,7 +12106,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -12390,8 +12390,8 @@ }, "/veterans/{veteranId}/power-of-attorney/{id}": { "get": { - "summary": "Checks status of Power of Attorney appointment form submission", - "description": "Gets the Power of Attorney appointment request status (21-22/21-22a)", + "summary": "Checks status of power of attorney submission (VA Forms 21-22 or 21-22a)", + "description": "Check the submissions status of a request to appoint power of attorney (VA Forms 21-22 or 21-22a).", "tags": [ "Power of Attorney" ], @@ -12442,10 +12442,10 @@ "application/json": { "example": { "data": { - "id": "14a9ae99-06d4-4cd0-baed-448eeb347e53", + "id": "1160af78-2198-428f-a0c0-621f3404d321", "type": "claimsApiPowerOfAttorneys", "attributes": { - "createdAt": "2025-02-04T15:12:15.875Z", + "createdAt": "2025-02-05T21:38:36.298Z", "representative": { "serviceOrganization": { "poaCode": "074" diff --git a/modules/claims_api/config/schemas/v2/2122.json b/modules/claims_api/config/schemas/v2/2122.json index 638fc42583a..e0c4920bf52 100644 --- a/modules/claims_api/config/schemas/v2/2122.json +++ b/modules/claims_api/config/schemas/v2/2122.json @@ -87,7 +87,7 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "type": "string", "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -208,7 +208,7 @@ }, "phoneNumber": { "description": "Phone number.", - "type": "string", "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "type": "string", "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 diff --git a/modules/claims_api/config/schemas/v2/2122a.json b/modules/claims_api/config/schemas/v2/2122a.json index 479d9b324d4..2e14a948550 100644 --- a/modules/claims_api/config/schemas/v2/2122a.json +++ b/modules/claims_api/config/schemas/v2/2122a.json @@ -113,7 +113,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 @@ -223,7 +223,7 @@ "phoneNumber": { "description": "Phone number.", "type": "string", - "pattern": "\\d(?:[- ]?*\\d){6,9}$", + "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, "maxLength": 14 From 4359fa007ab2ad08f82498c19681c709c97bc02b Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Fri, 7 Feb 2025 08:13:36 -0700 Subject: [PATCH 9/9] Increases maxLength on phoneNumber on 2122 & 2122a schemas. --- modules/claims_api/config/schemas/v2/2122.json | 4 ++-- modules/claims_api/config/schemas/v2/2122a.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/claims_api/config/schemas/v2/2122.json b/modules/claims_api/config/schemas/v2/2122.json index e0c4920bf52..26210e365fa 100644 --- a/modules/claims_api/config/schemas/v2/2122.json +++ b/modules/claims_api/config/schemas/v2/2122.json @@ -90,7 +90,7 @@ "type": "string", "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, - "maxLength": 14 + "maxLength": 23 } }, "if": { @@ -211,7 +211,7 @@ "type": "string", "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, - "maxLength": 14 + "maxLength": 23 } }, "if": { diff --git a/modules/claims_api/config/schemas/v2/2122a.json b/modules/claims_api/config/schemas/v2/2122a.json index 2e14a948550..0733baf2809 100644 --- a/modules/claims_api/config/schemas/v2/2122a.json +++ b/modules/claims_api/config/schemas/v2/2122a.json @@ -116,7 +116,7 @@ "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, - "maxLength": 14 + "maxLength": 23 } }, "if": { @@ -226,7 +226,7 @@ "pattern": "^\\d(?:[- ]?\\d){0,13}$", "example": "555-5555", "minLength": 1, - "maxLength": 14 + "maxLength": 23 } }, "if": {