18F/e-QIP-prototype

View on GitHub
api/design/validate.apib

Summary

Maintainability
Test Coverage
FORMAT: 1A

# E-QIP API

# Validate SSN [/validate/ssn/{ssn}]

## Validates Social Security Number [GET]

+ Parameters
    + ssn: `012345678` - Social Security Number for a person

+ Request
  + Headers

    Authorization: Bearer
    Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "SSN",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Passport [/validate/passport]

## Validate Passport Number [/validate/passport/number/{passport}]

### Validates Passport Number [GET]
+ Parameters
  + passport: The passport number provided by a government source

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Number",
          "Error": ""
        }
      ]
    }

+ Response 500

## Validate Passport Dates [/validate/passport/dates/{issued}/to/{expiration}]

### Validates Passport Dates [GET]
+ Parameters
  + issued: The timestamp when passport was issued
  + expiration: The timestamp when passport is due to expire

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Issued",
          "Error": ""
        },
        {
          "Fieldname": "Expiration",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Address [/validate/address]

## Validates complete address [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Address",
          "Error": ""
        },
        {
          "Fieldname": "Street",
          "Error": ""
        },
        {
          "Fieldname": "City",
          "Error": ""
        },
        {
          "Fieldname": "State",
          "Error": ""
        },
        {
          "Fieldname": "Zipcode",
          "Error": ""
        },
        {
          "Fieldname": "County",
          "Error": ""
        },
        {
          "Fieldname": "Country",
          "Error": "",
          "Suggestions": []
        }
      ]
    }

+ Response 500

# Validate City [/validate/address/city/{city}]

## Validates a city entry [GET]

+ Parameters
  + city: `Arlington` - City of address to be validated

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "City",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Zipcode [/validate/address/zipcode/{zipcode}]

## Validates a zipcode entry [GET]

+ Parameters
  + zipcode: `22202` - Zipcode of address to be validated

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

  {
    "Errors": [
      {
        "Fieldname": "Zipcode",
        "Error": ""
      }
    ]
  }

+ Response 500

# Validate State [/validate/address/state/{state}]

## Validates a state entry [GET]

+ Parameters
  + state: `VA` - State of address to be validated

+ Request
  + Headers
      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

  {
    "Errors": [
      {
        "Fieldname": "State",
        "Error": ""
      }
    ]
  }

+ Response 500

# Validate Applicant Name [/validate/applicant/name]

## Validates a persons name entry [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "Last": "",
      "First": "",
      "Middle": "",
      "Suffix": "",
      "SuffixOther": ""
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "First",
          "Error": ""
        },
        {
          "Fieldname": "Last",
          "Error": ""
        },
        {
          "Fieldname": "Middle",
          "Error": ""
        },
        {
          "Fieldname": "Suffix",
          "Error": ""
        },
        {
          "Fieldname": "SuffixOther",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Applicant Birthdate [/validate/applicant/birthdate]

## Validates a persons birthdate [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "Month": "",
      "Day": "",
      "Year": "",
      "Estimated" : ""
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        "Fieldname": "Birthdate",
        "Error": ""
      ]
    }

+ Response 500

# Validate Birthplace [/validate/applicant/birthplace]

## Validates a persons birthplace [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "City": "",
      "State": "",
      "County": "",
      "Country" : ""
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Birthplace",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Height [/validate/height]

## Validates a persons height [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "Feet": "",
      "Inches": "",
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Feet",
          "Error": ""
        },
        {
          "Fieldname": "Inches",
          "Error": ""
        }
      ]
    }

# Validate Weight [/validate/weight/{weight}]

## Validates a persons weight [GET]

+ Parameters
    + weight: `4` - Weight for a person

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Weight",
          "Error": ""
        }
      ]
    }

# Validate Hair Color [/validate/haircolor/{haircolor}]

## Validates a persons hair color [GET]

+ Parameters
    + weight: `Black` - Hair color for a person

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "HairColor",
          "Error": ""
        }
      ]
    }

# Validate Eye Color [/validate/eyecolor/{eyecolor}]

## Validates a persons eye color [GET]

+ Parameters
    + eyecolor: `Black` - Eye color for a person

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "EyeColor",
          "Error": ""
        }
      ]
    }

# Validate Sex [/validate/eyecolor/{eyecolor}]

## Validates a persons sex [GET]

+ Parameters
    + sex: `Female` - Sex of a person

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Sex",
          "Error": ""
        }
      ]
    }

# Validate Daterange [/validate/daterange]

## Validates a date range [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "To": "",
      "From": ""
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "To",
          "Error": ""
        },
        {
          "Fieldname": "From",
          "Error": ""
        }
      ]
    }

# Validate Email [/validate/email]

## Validates Email [POST]

+ Request
  + Headers

      Authorization: Bearer
      Accept: application/json

  + Body

    {
      "Address": ""
    }

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Email",
          "Error": ""
        }
      ]
    }

+ Response 500

# Validate Telephone Number [/validate/telephone]

## Validate Domestic Telephone Number [/validate/telephone/domestic/{number}]

### Validates Domestic Telephone Number [GET]

+ Parameters
    + number: `XXX-XXX-XXXX,0001` - The domestic phone number

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Telephone",
          "Error": ""
        }
      ]
    }

+ Response 500

## Validate International Telephone Number [/validate/telephone/international/{number}]

### Validates International Telephone Number [GET]

+ Parameters
    + number: `011-52-1-55-XXXX-XXXX,0001` - The international phone number

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Telephone",
          "Error": ""
        }
      ]
    }

+ Response 500

## Validate DSN Telephone Number [/validate/telephone/dsn/{number}]

### Validates DSN Telephone Number [GET]

+ Parameters
    + number: `XXX-XXXX` - The DSN phone number

+ Request
  + Headers

      Authorization: Bearer
      Accept: text/plain

+ Response 200 (application/json)
  + Headers

      X-Eqip-Media-Type: eqip.v1

  + Body

    {
      "Errors": [
        {
          "Fieldname": "Telephone",
          "Error": ""
        }
      ]
    }

+ Response 500