Add draft of OpenHMIS API in RAML format.

This first draft is just Eric Jahn's draft from

    https://anypoint.mulesoft.com/apiplatform/repository/public/organizations/5073/apis/7105/versions/7150/files/root

as discussed in this thread:

    http://openhmis.pcni.org/developers/discussion-group?place=msg%2Fopenhmis-discuss%2FFUES85D4YZw%2FBVwZaOCXnOYJ

    From: Karl Fogel <kfogel@opentechstrategies.com>
    To: OpenHMIS Discuss <openhmis-discuss@openhmis.org>
    Subject: Documenting the current OpenHMIS API (esp. for Saro and Eric).
    Date: Thu, 22 Jan 2015 00:44:12 -0600
    Message-ID: <873873qpqb.fsf@red-bean.com>

#%RAML 0.8
#baseUri: http://examplehmis.com/{version}
baseUri: http://mocksvc.mulesoft.com/mocks/ce8f5253-0423-4d20-9364-98b1c088bae7/{version}
securedBy: [oauth_2_0]
title: HMIS API
version: 1
protocols:
  -  HTTPS
securitySchemes:
  - oauth_2_0:
      settings:
        accessTokenUri: http://examplehmis.com/1/oauth2/token
        authorizationUri: http://examplehmis.com/1/oauth2/authorize
        scopes: [user, administrator]
        authorizationGrants: [ owner ] #resource owner password credential grant used, since the client doesn't own the data (https://tools.ietf.org/html/rfc6749)
      description: |
        The HMIS API supports OAuth 2.0 for authenticating all API requests.
      type: OAuth 2.0
      describedBy:
        headers:
          Authorization:
              description: |
                 Used to send a valid OAuth 2 access token. Do not use
                 an "access_token" query string parameter.
              type: string
        responses:
          401:
              description: |
                  Bad or expired token. This can happen if the user or the HMIS
                  revoked or expired an access token. To fix, you should re-
                  authenticate the user.
          403:
              description: |
                  Bad OAuth request (wrong consumer key, bad nonce, expired
                  timestamp...). Unfortunately, re-authenticating the user won't help here.
resourceTypes:
  -  collection:
      description: "Operations performed on the set of all HMIS <<resourcePathName>> within the system, and for adding a new <<resourcePathName|!singularize>> to the set of <<resourcePathName>> "
      get:
        #securedBy: [oauth_2_0: { scopes: [ user ] } ]
        description: Searches for <<resourcePathName|!singularize>>.  Returns a list of <<resourcePathName|!singularize>> ids, based on the query parameters sent.  The query parameters are cumulative, so each additional query parameter narrows the search down further.
        queryParameters:
          CreatedByUserID:
            description: searches for members of the collection created by a particular user
            type: "string"
            example: Smith12
          CreatedAfter:
            description: searches for members of the collection created after (inclusive) a particular date
            type: "date"
            example: 10-11-2011
          CreatedBefore:
            description: searches for members of the collection created before (inclusive) a particular date
            type: "date"
            example: 10-11-2012
          UpdatedAfter:
            description: searches for members of the collection updated after (inclusive) a particular date
            type: "date"
            example: 10-11-2011
          UpdatedBefore:
            description: searches for members of the collection updated before (inclusive) a particular date
            type: "date"
            example: 10-11-2012
        responses:
          200:
            description: OK – Everything is working.
            body:
              application/json:
                schema: <<schema_json>>
          400:
            description: Bad Request – The request was invalid or cannot be served.
          403:
            description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          500:
            description: 500 – Internal Server Error
      put:
        #securedBy: [oauth_2_0: { scopes: [ user ] } ]
        description: Bulk update to multiple <<resourcePathName|!pluralize>>.
        body:
          application/json:
            schema: <<schema_array_json>>
          application/xml:
            schema: <<schema_array_xml>>
        responses:
          200:
            description: OK – Everything is working.
          304:
            description: Not Modified – The client can use cached data.
          400:
            description: Bad Request – The request was invalid or cannot be served.
          403:
            description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          422:
            description: Unprocessable Entity - Request body is incorrect.
          500:
            description: 500 – Internal Server Error
      post:
        description: |
          Add a <<resourcePathName|!singularize>>
        body:
          application/json:
            schema: <<schema_json>>
          application/xml:
            schema: <<schema_xml>>
        responses:
          201:
            description: OK - New resource has been created.
            body:
              application/json:
                schema: <<id_schema_json>>
          400:
            description: Bad Request – The request was invalid or cannot be served.
          401:
            description: Unauthorized – The request requires user authentication.
          403:
            description: Forbidden – The server understood the request, but is refusing it or access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          422:
            description: Unprocessable Entity - Request body is incorrect.
          500:
            description: 500 – Internal Server Error.
      delete:
        description: Deletes all members of the collection
        responses:
          204:
            description: OK – The resources were successfully deleted.
          400:
            description: Bad Request – The request was invalid or cannot be served.
          401:
            description: Unauthorized – The request requires user authentication.
          403:
            description: Forbidden – The server understood the request, but is refusing it or access is not allowed.
          404:
            description: Not found – There are no resources behind the URI.
          500:
            description: 500 – Internal Server Error
  -  member:
      get:
        description: Gets a <<resourcePathName|!singularize>> using a URI resource parameter/ID.
        responses:
          200:
            description: OK – Everything is working.
            body:
              application/json:
                schema: <<schema_json>>
              application/xml:
                schema: <<schema_xml>>
          400:
            description: Bad Request – The request was invalid or cannot be served.
          401:
            description: Unauthorized – The request requires an user authentication.
          403:
            description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          500:
            description: Internal Server Error
      put:
        description: Updates a specific <<resourcePathName|!singularize>> specified by the URI resource parameter/ID.
        responses:
          200:
            description: OK – Everything is working.
          304:
            description: Not Modified – The client can use cached data.
          400:
            description: Bad Request – The request was invalid or cannot be served.
          401:
            description: Unauthorized – The request requires a user.
          403:
            description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          500:
            description: Internal Server Error.
      delete:
        description: Deletes a specific <<resourcePathName|!singularize>> specified by the URI resource parameter/ID.
        responses:
          204:
            description: OK – The resource was successfully deleted.
          400:
            description: Bad Request – The request was invalid or cannot be served.
          401:
            description: Unauthorized – The request requires user authentication.
          403:
            description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
          404:
            description: Not found – There is no resource behind the URI.
          500:
            description: Internal Server Error.
/clients:
  type: {
    collection: {
        id_schema_json: client_id_json,
        schema_json:  client_json,
        schema_xml:  client_xml,
        schema_array_json: clients_json,
        schema_array_xml: clients_xml
    }
  }
  get:
    queryParameters:
      FirstName:
        type: "string"
        example: "Bill"
      MiddleName:
        type: "string"
        example: Frances
      LastName:
        type: "string"
        example: Smith
      DOB:
        type: "date"
        example: 10-11-2012
    responses:
      200:
        body:
          application/json:
            example: |
              "client_ids":[{"PersonalID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"PersonalID":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}]
            schema: client_ids_json
  put:
    body:
      application/json:
        example: |
          {"clients":[{"PersonalID":"csssssaassasfdfreswssaaasdffrfre","FirstName":"Bill","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"},{"PersonalID":"abcsteaassasrdyreswssaaasdffrfre","FirstName":"Jim","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"gsmith"}]
          }
      application/xml:
        example: |
          <hmis:Clients>
            <hmis:Client hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59"
            hmis:userID="ned100">
              <hmis:PersonalID>A1a1</hmis:PersonalID>
              <hmis:FirstName>Edward</hmis:FirstName>
              <hmis:MiddleName>Barnaby</hmis:MiddleName>
              <hmis:LastName>Jones</hmis:LastName>
              <hmis:NameSuffix>Sr.</hmis:NameSuffix>
              <hmis:NameDataQuality>9</hmis:NameDataQuality>
              <hmis:SSN>7xxx9xx8x</hmis:SSN>
              <hmis:SSNDataQuality>2</hmis:SSNDataQuality>
              <hmis:DOB>2014-11-18</hmis:DOB>
              <hmis:DOBDataQuality>1</hmis:DOBDataQuality>
              <hmis:Gender>3</hmis:Gender>
              <hmis:OtherGender>intersex</hmis:OtherGender>
              <hmis:Ethnicity>0</hmis:Ethnicity>
              <hmis:Race>8</hmis:Race>
              <hmis:VeteranStatus>9</hmis:VeteranStatus>
            </hmis:Client>
            <hmis:Client hmis:dateCreated="2014-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
              <hmis:PersonalID>B2a1</hmis:PersonalID>
              <hmis:FirstName>Tanya</hmis:FirstName>
              <hmis:MiddleName>Hartwell</hmis:MiddleName>
              <hmis:LastName>Drake</hmis:LastName>
              <hmis:NameSuffix>Jr.</hmis:NameSuffix>
              <hmis:NameDataQuality>9</hmis:NameDataQuality>
              <hmis:SSN>7xxx9xx8x</hmis:SSN>
              <hmis:SSNDataQuality>2</hmis:SSNDataQuality>
              <hmis:DOB>2014-11-18</hmis:DOB>
              <hmis:DOBDataQuality>1</hmis:DOBDataQuality>
              <hmis:Gender>3</hmis:Gender>
              <hmis:OtherGender>intersex</hmis:OtherGender>
              <hmis:Ethnicity>0</hmis:Ethnicity>
              <hmis:Race>8</hmis:Race>
              <hmis:VeteranStatus>9</hmis:VeteranStatus>
            </hmis:Client>
          </hmis:Clients>
  post:
    body:
      application/json:
        example: |
          {"PersonalID":"csssssaassasfdfreswssaaasdffrfre","FirstName":"Bill","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"}
        schema: client_json
      application/xml:
        example: |
          <hmis:Client hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
              <hmis:PersonalID>A1a1</hmis:PersonalID>
              <hmis:FirstName>Edward</hmis:FirstName>
              <hmis:MiddleName>Barnaby</hmis:MiddleName>
              <hmis:LastName>Jones</hmis:LastName>
              <hmis:NameSuffix>Sr.</hmis:NameSuffix>
              <hmis:NameDataQuality>9</hmis:NameDataQuality>
              <hmis:SSN>7xxx9xx8x</hmis:SSN>
              <hmis:SSNDataQuality>2</hmis:SSNDataQuality>
              <hmis:DOB>2014-11-18</hmis:DOB>
              <hmis:DOBDataQuality>1</hmis:DOBDataQuality>
              <hmis:Gender>3</hmis:Gender>
              <hmis:OtherGender>intersex</hmis:OtherGender>
              <hmis:Ethnicity>0</hmis:Ethnicity>
              <hmis:Race>8</hmis:Race>
              <hmis:VeteranStatus>9</hmis:VeteranStatus>
            </hmis:Client>
        schema: client_xml
    responses:
      201:
        description: Returns the ID of the newly created client.
        body:
          application/json:
            schema: client_id_json
            example: |
              {"PersonalID":"csssssaassasfdfreswssaaasdffrfre"}
  /{client_id}:
    uriParameters:
      client_id:
        displayName: Client Identifier
        type: string
        example: ADBC1111211111114111111111D1111V
    type:
      member:
        schema_json:  client_json
        schema_xml:  client_xml
    get:
      responses:
        200:
          body:
            application/json:
              example: |
                {"PersonalID":"csssssaassasfdfreswssaaasdffrfre","FirstName":"Bill","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"}
            application/xml:
              example: |
                <hmis:Client hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
                  <hmis:PersonalID>A1a1</hmis:PersonalID>
                  <hmis:FirstName>Edward</hmis:FirstName>
                  <hmis:MiddleName>Barnaby</hmis:MiddleName>
                  <hmis:LastName>Jones</hmis:LastName>
                  <hmis:NameSuffix>Sr.</hmis:NameSuffix>
                  <hmis:NameDataQuality>9</hmis:NameDataQuality>
                  <hmis:SSN>7xxx9xx8x</hmis:SSN>
                  <hmis:SSNDataQuality>2</hmis:SSNDataQuality>
                  <hmis:DOB>2014-11-18</hmis:DOB>
                  <hmis:DOBDataQuality>1</hmis:DOBDataQuality>
                  <hmis:Gender>3</hmis:Gender>
                  <hmis:OtherGender>intersex</hmis:OtherGender>
                  <hmis:Ethnicity>0</hmis:Ethnicity>
                  <hmis:Race>8</hmis:Race>
                  <hmis:VeteranStatus>9</hmis:VeteranStatus>
                </hmis:Client>
    /enrollments:
      type: {
        collection: {
            id_schema_json: enrollment_id_json,
            schema_json:  enrollment_json,
            schema_xml:  enrollment_xml,
            schema_array_json: enrollments_json,
            schema_array_xml: enrollments_xml
        }
      }
      description: Work with enrollments for a particular client.
      get:
        description: Fetches all the enrollment ids for a given client, or a subset of them, if a query parameter is used.
        #securedBy: [oauth_2_0: { scopes: [ user ] } ]
        queryParameters:
        responses:
          200:
            body:
              application/json:
                example: |
                  "enrollment_ids":[{"ProjectEntryID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"ProjectEntryID":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}]
                schema: enrollment_ids_json
      post:
        description: Adds an enrollment for a given client.
      put:
        description: Bulk update of enrollments for a given client
      delete:
        description: Bulk deletion of a client's enrollments.
      /{enroll_id}:
        type:
          member:
            schema_json:  enrollment_json
            schema_xml:  enrollment_xml
        description: Work with a specific enrollment for a particular client.
        uriParameters:
          enroll_id:
            displayName: Enrollment Identifier
            type: string
            example: ADBC1111211111114111111111D1111V
        get:
          description: Fetches one specific enrollment for a given client.
        put:
          description: Updates one specific enrollment for a specific client.
          body:
            application/json:
              example: |
                {
                  "ProjectEntryID" : "12345678901234567890123456789012",
                  "PersonalID" : "ADBC1111211111114111111111D1111V",
                  "ProjectID" : "99123456789012345678901234567890"
                  "EntryDate" : "10-12-2014",
                  "HouseholdID" : "77123456789012345678901234567890",
                  "ResidencePrior" : "3",
                  "DateCreated" : "2012-04-23T18:25:43.511Z",
                  "DateUpdated" : "2013-04-23T18:25:43.511Z",
                  "UserID": "77123456789012345678901234567890"
                }
            application/xml:
              example: |
                <hmis:Enrollment hmis:dateCreated="2015-05-08T23:14:59" hmis:dateUpdated="2015-01-27T23:14:59Z" hmis:userID="Hc8CQeYVWWj0dA9cWkDLe">
                  <hmis:ProjectEntryID>w5641</hmis:ProjectEntryID>
                  <hmis:PersonalID>A1a1</hmis:PersonalID>
                  <hmis:ProjectID>222D</hmis:ProjectID>
                  <hmis:EntryDate>2016-04-12Z</hmis:EntryDate>
                  <hmis:HouseholdID>a34563w</hmis:HouseholdID>
                  <hmis:RelationshipToHoH>1</hmis:RelationshipToHoH>
                  <hmis:ResidencePrior>12</hmis:ResidencePrior>
                  <hmis:OtherResidencePrior>some other residence text here</hmis:OtherResidencePrior>
                  <hmis:ResidencePriorLengthOfStay>8</hmis:ResidencePriorLengthOfStay>
                  <hmis:ContinuouslyHomelessOneYear>8</hmis:ContinuouslyHomelessOneYear>
                  <hmis:TimesHomelessPastThreeYears>0</hmis:TimesHomelessPastThreeYears>
                  <hmis:MonthsHomelessPastThreeYears>103</hmis:MonthsHomelessPastThreeYears>
                  <hmis:MonthsHomelessThisTime>101</hmis:MonthsHomelessThisTime>
                  <hmis:YearsHomeless>3</hmis:YearsHomeless>
                  <hmis:StatusDocumented>1</hmis:StatusDocumented>
                  <hmis:DisablingCondition>9</hmis:DisablingCondition>
                  <hmis:HousingStatus>6</hmis:HousingStatus>
                </hmis:Enrollment>
        delete:
          description: Deletes one specific enrollment for a specific client.
        /commercial_sexual_exploitations:
          /{commercial_sexual_exploitation_id}:
        /date_of_engagements:
          /{date_of_engagement_id}:
        /disabilities:
          /{disability_id}:
        /domestic_violences:
          /{domestic_violence_id}:
        /employments:
          /{employment_id}:
        /enrollment_cocs:
          /{enrollment_coc_id}:
        /exits:
          /{exit_id}:
            /connection_with_soars:
              /{connection_with_soar_id}:
            /exit_housing_assessments:
              /{exit_housing_assessment_id}:
            /exit_plans_actions:
              /{exit_plans_actions_id}:
            /family_reunifications:
              /{family_reunification_id}:
            /housing_assessment_dispositions:
              /{housing_assessment_disposition_id}:
            /project_completion_statuses:
              /{project_completion_status_id}:
        /former_ward_child_welfares:
          /{former_ward_child_welfare_id}:
        /former_ward_juvenile_justices:
          /{former_ward_juvenile_justice_id}:
        /health_insurances:
          /{health_insurances_id}:
        /health_statuses:
          /{health_status_id}:
        /income_and_sources:
          /{income_and_sources_id}:
        /last_grade_completeds:
          /{last_grade_completed_id}:
        /last_permanent_addresses:
          /{last_permanent_address_id}:
        /medical_assistances:
          /{medical_assistance_id}:
        /noncash_benefits:
          /{noncash_benefit_id}:
        /referral_sources:
          /{referral_source_id}:
        /residential_move_ins:
          /{residential_move_in_id}:
        /rhybcp_statuses:
          /{rhybcp_status_id}:
        /path_statuses:
          /{path_status_id}:
        /percent_amis:
          /{percent_ami_id}:
        /school_statuses:
          /{school_status_id}:
        /services:
          /{service_id}:
        /sexual_orientations:
          /{sexual_orientation_id}:
        /worst_housing_situations:
          /{worst_housing_situation_id}:
        /youth_critical_issues:
          /{youth_critical_issues_id}:
    /veteran_statuses:
      /{veteran_status_id}:
/enrollments:
  type: {
    collection: {
        id_schema_json: enrollment_id_json,
        schema_json:  enrollment_json,
        schema_xml:  enrollment_xml,
        schema_array_json: enrollments_json,
        schema_array_xml: enrollments_xml
    }
  }
  get:
    #securedBy: [oauth_2_0: { scopes: [ user ] } ]
    queryParameters:
    responses:
      200:
        body:
          application/json:
            example: |
              "enrollment_ids":[{"ProjectEntryID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"ProjectEntryID":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}]
            schema: enrollment_ids_json
  put:
    body:
      application/json:
        example: |
          {
            "ProjectEntryID" : "12345678901234567890123456789012",
            "PersonalID" : "ADBC1111211111114111111111D1111V",
            "ProjectID" : "99123456789012345678901234567890"
            "EntryDate" : "10-12-2014",
            "HouseholdID" : "77123456789012345678901234567890",
            "ResidencePrior" : "3",
            "DateCreated" : "2012-04-23T18:25:43.511Z",
            "DateUpdated" : "2013-04-23T18:25:43.511Z",
            "UserID": "77123456789012345678901234567890"
          }
      application/xml:
        example: |
          <hmis:Enrollment hmis:dateCreated="2015-05-08T23:14:59" hmis:dateUpdated="2015-01-27T23:14:59Z" hmis:userID="Hc8CQeYVWWj0dA9cWkDLe">
            <hmis:ProjectEntryID>w5641</hmis:ProjectEntryID>
            <hmis:PersonalID>A1a1</hmis:PersonalID>
            <hmis:ProjectID>222D</hmis:ProjectID>
            <hmis:EntryDate>2016-04-12Z</hmis:EntryDate>
            <hmis:HouseholdID>a34563w</hmis:HouseholdID>
            <hmis:RelationshipToHoH>1</hmis:RelationshipToHoH>
            <hmis:ResidencePrior>12</hmis:ResidencePrior>
            <hmis:OtherResidencePrior>some other residence text here</hmis:OtherResidencePrior>
            <hmis:ResidencePriorLengthOfStay>8</hmis:ResidencePriorLengthOfStay>
            <hmis:ContinuouslyHomelessOneYear>8</hmis:ContinuouslyHomelessOneYear>
            <hmis:TimesHomelessPastThreeYears>0</hmis:TimesHomelessPastThreeYears>
            <hmis:MonthsHomelessPastThreeYears>103</hmis:MonthsHomelessPastThreeYears>
            <hmis:MonthsHomelessThisTime>101</hmis:MonthsHomelessThisTime>
            <hmis:YearsHomeless>3</hmis:YearsHomeless>
            <hmis:StatusDocumented>1</hmis:StatusDocumented>
            <hmis:DisablingCondition>9</hmis:DisablingCondition>
            <hmis:HousingStatus>6</hmis:HousingStatus>
          </hmis:Enrollment>
  post:
    body:
      application/json:
        example: |
          {
            "ProjectEntryID" : "12345678901234567890123456789012",
            "PersonalID" : "ADBC1111211111114111111111D1111V",
            "ProjectID" : "99123456789012345678901234567890"
            "EntryDate" : "10-12-2014",
            "HouseholdID" : "77123456789012345678901234567890",
            "ResidencePrior" : "3",
            "DateCreated" : "2012-04-23T18:25:43.511Z",
            "DateUpdated" : "2013-04-23T18:25:43.511Z",
            "UserID": "77123456789012345678901234567890"
          }
        schema: enrollment_json
      application/xml:
        example: |
          <hmis:Enrollment hmis:dateCreated="2015-05-08T23:14:59" hmis:dateUpdated="2015-01-27T23:14:59Z" hmis:userID="Hc8CQeYVWWj0dA9cWkDLe">
            <hmis:ProjectEntryID>w5641</hmis:ProjectEntryID>
            <hmis:PersonalID>A1a1</hmis:PersonalID>
            <hmis:ProjectID>222D</hmis:ProjectID>
            <hmis:EntryDate>2016-04-12Z</hmis:EntryDate>
            <hmis:HouseholdID>a34563w</hmis:HouseholdID>
            <hmis:RelationshipToHoH>1</hmis:RelationshipToHoH>
            <hmis:ResidencePrior>12</hmis:ResidencePrior>
            <hmis:OtherResidencePrior>some other residence text here</hmis:OtherResidencePrior>
            <hmis:ResidencePriorLengthOfStay>8</hmis:ResidencePriorLengthOfStay>
            <hmis:ContinuouslyHomelessOneYear>8</hmis:ContinuouslyHomelessOneYear>
            <hmis:TimesHomelessPastThreeYears>0</hmis:TimesHomelessPastThreeYears>
            <hmis:MonthsHomelessPastThreeYears>103</hmis:MonthsHomelessPastThreeYears>
            <hmis:MonthsHomelessThisTime>101</hmis:MonthsHomelessThisTime>
            <hmis:YearsHomeless>3</hmis:YearsHomeless>
            <hmis:StatusDocumented>1</hmis:StatusDocumented>
            <hmis:DisablingCondition>9</hmis:DisablingCondition>
            <hmis:HousingStatus>6</hmis:HousingStatus>
          </hmis:Enrollment>
        schema: enrollment_xml
    responses:
      201:
        body:
          application/json:
            example: |
              {"ProjectEntryID":"csssssaassasfdfreswssaaasdffrfre"}
  /{id}:
    uriParameters:
      id:
        displayName: Enrollment Identifier
        type: string
        example: ADBC1111211111114111111111D1111V
    type:
      member:
        schema_json:  enrollment_json
        schema_xml:  enrollment_xml
    get:
      responses:
        200:
          body:
            application/json:
              example: |
                {
                  "ProjectEntryID" : "12345678901234567890123456789012",
                  "PersonalID" : "ADBC1111211111114111111111D1111V",
                  "ProjectID" : "99123456789012345678901234567890"
                  "EntryDate" : "10-12-2014",
                  "HouseholdID" : "77123456789012345678901234567890",
                  "ResidencePrior" : "3",
                  "DateCreated" : "2012-04-23T18:25:43.511Z",
                  "DateUpdated" : "2013-04-23T18:25:43.511Z",
                  "UserID": "77123456789012345678901234567890"
                }
            application/xml:
              example: |
                <hmis:Enrollment hmis:dateCreated="2015-05-08T23:14:59" hmis:dateUpdated="2015-01-27T23:14:59Z" hmis:userID="Hc8CQeYVWWj0dA9cWkDLe">
                  <hmis:ProjectEntryID>w5641</hmis:ProjectEntryID>
                  <hmis:PersonalID>A1a1</hmis:PersonalID>
                  <hmis:ProjectID>222D</hmis:ProjectID>
                  <hmis:EntryDate>2016-04-12Z</hmis:EntryDate>
                  <hmis:HouseholdID>a34563w</hmis:HouseholdID>
                  <hmis:RelationshipToHoH>1</hmis:RelationshipToHoH>
                  <hmis:ResidencePrior>12</hmis:ResidencePrior>
                  <hmis:OtherResidencePrior>some other residence text here</hmis:OtherResidencePrior>
                  <hmis:ResidencePriorLengthOfStay>8</hmis:ResidencePriorLengthOfStay>
                  <hmis:ContinuouslyHomelessOneYear>8</hmis:ContinuouslyHomelessOneYear>
                  <hmis:TimesHomelessPastThreeYears>0</hmis:TimesHomelessPastThreeYears>
                  <hmis:MonthsHomelessPastThreeYears>103</hmis:MonthsHomelessPastThreeYears>
                  <hmis:MonthsHomelessThisTime>101</hmis:MonthsHomelessThisTime>
                  <hmis:YearsHomeless>3</hmis:YearsHomeless>
                  <hmis:StatusDocumented>1</hmis:StatusDocumented>
                  <hmis:DisablingCondition>9</hmis:DisablingCondition>
                  <hmis:HousingStatus>6</hmis:HousingStatus>
                </hmis:Enrollment>
    put:
      body:
        application/json:
          example: |
            {
              "ProjectEntryID" : "12345678901234567890123456789012",
              "PersonalID" : "ADBC1111211111114111111111D1111V",
              "ProjectID" : "99123456789012345678901234567890"
              "EntryDate" : "10-12-2014",
              "HouseholdID" : "77123456789012345678901234567890",
              "ResidencePrior" : "3",
              "DateCreated" : "2012-04-23T18:25:43.511Z",
              "DateUpdated" : "2013-04-23T18:25:43.511Z",
              "UserID": "77123456789012345678901234567890"
            }
        application/xml:
          example: |
            <hmis:Enrollment hmis:dateCreated="2015-05-08T23:14:59" hmis:dateUpdated="2015-01-27T23:14:59Z" hmis:userID="Hc8CQeYVWWj0dA9cWkDLe">
              <hmis:ProjectEntryID>w5641</hmis:ProjectEntryID>
              <hmis:PersonalID>A1a1</hmis:PersonalID>
              <hmis:ProjectID>222D</hmis:ProjectID>
              <hmis:EntryDate>2016-04-12Z</hmis:EntryDate>
              <hmis:HouseholdID>a34563w</hmis:HouseholdID>
              <hmis:RelationshipToHoH>1</hmis:RelationshipToHoH>
              <hmis:ResidencePrior>12</hmis:ResidencePrior>
              <hmis:OtherResidencePrior>some other residence text here</hmis:OtherResidencePrior>
              <hmis:ResidencePriorLengthOfStay>8</hmis:ResidencePriorLengthOfStay>
              <hmis:ContinuouslyHomelessOneYear>8</hmis:ContinuouslyHomelessOneYear>
              <hmis:TimesHomelessPastThreeYears>0</hmis:TimesHomelessPastThreeYears>
              <hmis:MonthsHomelessPastThreeYears>103</hmis:MonthsHomelessPastThreeYears>
              <hmis:MonthsHomelessThisTime>101</hmis:MonthsHomelessThisTime>
              <hmis:YearsHomeless>3</hmis:YearsHomeless>
              <hmis:StatusDocumented>1</hmis:StatusDocumented>
              <hmis:DisablingCondition>9</hmis:DisablingCondition>
              <hmis:HousingStatus>6</hmis:HousingStatus>
            </hmis:Enrollment>
/hmis_csv:
  description: Batch transmission of HUD HMIS CSV 4.0 according to the specifications at "http://www.hudhdx.info/Resources/Vendors/4_0/HMISCSVSpecifications4_0FINAL.pdf", but placed together in a single .zip file without password protection.
  post:
    description: Upload a single zip file containing any/all of the CSV files defined at http://www.hudhdx.info/Resources/Vendors/4_0/HMISCSVSpecifications4_0FINAL.pdf
    body:
      text/csv:
    responses:
      200:
        description: OK.  The received csv will be parsed and merged with the existing data set.  A bulk upload report can be obtained by authorized users.
      400:
        description: Bad Request – The request was invalid or cannot be served.
      401:
        description: Unauthorized – The request requires user authentication.
      403:
        description: Forbidden – The server understood the request, but is refusing it or access is not allowed.
      422:
        description: Unprocessable Entity - Request body is incorrect.
      500:
        description: 500 – Internal Server Error.
  get:
    description: Download a single zip file containing any/all of the CSV files defined at http://www.hudhdx.info/Resources/Vendors/4_0/HMISCSVSpecifications4_0FINAL.pdf.  The query parameters restrict the download to a subset.
    queryParameters:
      Delta:
      StartDate:
        description: The beginning date for for the exported data
        type: "date"
        example: 10-01-2012
      EndDate:
        type: "date"
        example: 09-30-2013
      #organization id
      #project id
    responses:
      400:
        description: Bad Request – The request was invalid or cannot be served.
      401:
        description: Unauthorized – The request requires an user authentication.
      403:
        description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
      404:
        description: Not found – There is no resource behind the URI.
      500:
        description: Internal Server Error
/hmis_xml:
  description: Batch transmission of HUD HMIS XML 4.0 according to the specifications at http://www.hudhdx.info/Resources/Vendors/4_0/HUD_HMIS.xsd.  An example instance is at http://www.hudhdx.info/Resources/Vendors/4_0/HUD_HMIS_Instance.xml.
  post:
    body:
      text/xml:
        schema: bulk_hmis_xml
    responses:
      200:
        description: OK.  The received csv will be parsed, validated, and merged with the existing data set.  A bulk upload report can be obtained by authorized users.
      400:
        description: Bad Request – The request was invalid or cannot be served.
      401:
        description: Unauthorized – The request requires user authentication.
      403:
        description: Forbidden – The server understood the request, but is refusing it or access is not allowed.
      422:
        description: Unprocessable Entity - Request body is incorrect.
        body:
          application/json:
            example: |
              {message: "validation errors are: line 10 not an integer."}
      500:
        description: 500 – Internal Server Error.
  get:
    queryParameters:
      #date start
      #date end
      #organization id
      #project id
    responses:
        200:
          body:
            application/xml:
              schema: bulk_hmis_xml
        400:
          description: Bad Request – The request was invalid or cannot be served.
        401:
          description: Unauthorized – The request requires an user authentication.
        403:
          description: Forbidden – The server understood the request, but is refusing it or the access is not allowed.
        404:
          description: Not found – There is no resource behind the URI.
        500:
          description: Internal Server Error
/organizations:
  type: {
    collection: {
        id_schema_json: organization_id_json,
        schema_json:  organization_json,
        schema_xml:  organization_xml,
        schema_array_json: organizations_json,
        schema_array_xml: organizations_xml
      }
    }
  get:
    queryParameters:
      OrganizationName:
        type: "string"
        example: "JSN Services"
      OrganizationCommonName:
        type: "string"
        example: JSN
    responses:
      200:
        body:
          application/json:
            example: |
              "organization_ids":[{"OrganizationID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"OrganizationID":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}]
            schema: organization_ids_json
  put:
    body:
      application/json:
        example: |
          {"Organizations":[{"OrganizationID":"csssssaassasfdfreswssaaasdffrfre","OrganizationName":"The Name","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"org112"},{"OrganizationID":"abcsteaassasrdyreswssaaasdffrfre","OrganizationName":"The other name","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"org115"}]
          }
      application/xml:
        example: |
          <hmis:Organizations>
          <hmis:Organization hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
          <hmis:OrganizationID>Org1234</hmis:OrganizationID>
          <hmis:OrganizationName>The organization</hmis:OrganizationName>
          <hmis:OrganizationCommonName>ORG</hmis:OrganizationCommonName>
          </hmis:Organization>
          <hmis:Organization hmis:dateCreated="2014-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned102">
          <hmis:OrganizationID>Org2345</hmis:OrganizationID>
          <hmis:OrganizationName>The other organization</hmis:OrganizationName>
          <hmis:OrganizationCommonName>Org2</hmis:OrganizationCommonName>
          </hmis:Organization>
          </hmis:Organizations>
  post:
    body:
      application/json:
        example: |
          {"OrganizationID":"csssssaassasfdfreswssaaasdffrfre","OganizationName":"The org","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"org234"}
        schema: organization_json
      application/xml:
        example: |
          <hmis:Organization hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="org234">
              <hmis:OrganizationID>Org239</hmis:OrganizationID>
              <hmis:OrganizationName>The organization</hmis:OrganizationName>
              <hmis:OrganizationCommonName>ORG</hmis:OrganizationCommonName>
            </hmis:Organization>
        schema: organization_xml
    responses:
      201:
        description: Returns the ID of the newly created organization.
        body:
          application/json:
            schema: organization_id_json
            example: |
              {"OrganizationID":"csssssaassasfdfreswssaaasdffrfre"}
  /{id}:
    uriParameters:
      id:
        displayName: Organization Identifier
        type: string
        example: ADBC11112AD111114111111111D1111V
    type:
      member:
        schema_json:  organization_json
        schema_xml:  organization_xml
    get:
      responses:
        200:
          body:
            application/json:
              example: |
                {
                  "OrganizationID":"csssssaassasfdfreswssaaasdffrfre",
                  "OganizationName":"The Org",
                  "DateCreated":"10-12-2014",
                  "DateUpdated":"11-14-2014",
                  "UserID":"org234"
                }
            application/xml:
              example: |
                <hmis:Organization hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="org234">
                <hmis:OrganizationID>Org239</hmis:OrganizationID>
                <hmis:OrganizationName>The organization</hmis:OrganizationName>
                <hmis:OrganizationCommonName>ORG</hmis:OrganizationCommonName>
                </hmis:Organization>
    put:
      body:
        application/json:
           example: |
            {"OrganizationID":"csssssaassasfdfreswssaaasdffrfre","OganizationName":"The org","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"org234"}
        application/xml:
            example: |
              <hmis:Organization hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="org234">
              <hmis:OrganizationID>Org239</hmis:OrganizationID>
              <hmis:OrganizationName>The organization</hmis:OrganizationName>
              <hmis:OrganizationCommonName>ORG</hmis:OrganizationCommonName>
              </hmis:Organization>
/projects:
  type: {
    collection: {
        id_schema_json: project_id_json,
        schema_json:  project_json,
        schema_xml:  project_xml,
        schema_array_json: projects_json,
        schema_array_xml: projects_xml
    }
  }
  get:
    queryParameters:
      ProjectName:
        type: "string"
        example: "The Project"
    responses:
      200:
        body:
          application/json:
            example: |
              "projects_ids":[{"ProjectID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"ProjectID":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}]
            schema: project_ids_json
  put:
    body:
      application/json:
        example: |
          {"projects":[{"ProjectID":"csssssaassasfdfreswssaaasdffrfre","OrganizationID":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","ProjectName":"Project 1","ContinuumProject":"1","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"},       {"ProjectID":"abcsteaassasrdyreswssaaasdffrfre","OrganizationID":"aaaaaaaaaaaaaaaaaaaaaaaaaaabbbba","ProjectName":"Project 2","ContinuumProject":"1","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"psmith"}]
      application/xml:
        example: |
          </hmis:Projects>
          <hmis:Project hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100"> <hmis:ProjectID>aserh2345htgdr6945678094rth34520</hmis:ProjectID>
          <hmis:ProjectName>Project 1</hmis:ProjectName>
          <hmis:ContinuumProject>1</hmis:ContinuumProject>
          <hmis:ProjectType>5</hmis:ProjectType>
          <hmis:ResidentialAffiliation>3</hmis:ResidentialAffiliation>
          <hmis:TrackingMethod>4</hmis:TrackingMethod>
          <hmis:TargetPopulation>2</hmis:TargetPopulation>
          <hmis:ProjectCommonName>P1</hmis:ProjectCommonName>
          </hmis:Project>
          <hmis:Project hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
          <hmis:ProjectID>aserh2345htgdr6945678094rth34520</hmis:ProjectID>
          <hmis:ProjectName>Project 1</hmis:ProjectName>
          <hmis:ContinuumProject>1</hmis:ContinuumProject>
          <hmis:ProjectType>5</hmis:ProjectType>
          <hmis:ResidentialAffiliation>3</hmis:ResidentialAffiliation>
          <hmis:TrackingMethod>4</hmis:TrackingMethod>
          <hmis:TargetPopulation>2</hmis:TargetPopulation>
          <hmis:ProjectCommonName>P1</hmis:ProjectCommonName>
          </hmis:Project>
          </hmis:Projects>
  post:
    body:
      application/json:
        schema: project_json
          example:|
            {
              "ProjectID":"csssssaassasfdfreswssaaasdffrfre",
              "ProjectName":"Project  One",
              "DateCreated":"10-12-2014",
              "DateUpdated":"11-14-2014",
              "UserID":"gsmith"}
      application/xml:
        schema: project_xml
          example:|
            <hmis:Project hmis:dateCreated="2016-04-11T23:14:59Z" hmis:dateUpdated="2015-05-30T23:14:59" hmis:userID="ned100">
            <hmis:ProjectID>aserh2345htgdr6945678094rth34520</hmis:ProjectID>
            <hmis:ProjectName>Project 1</hmis:ProjectName>
            <hmis:ContinuumProject>1</hmis:ContinuumProject>
            <hmis:ProjectType>5</hmis:ProjectType>
            <hmis:ResidentialAffiliation>3</hmis:ResidentialAffiliation>
            <hmis:TrackingMethod>4</hmis:TrackingMethod>
            <hmis:TargetPopulation>2</hmis:TargetPopulation>
            <hmis:ProjectCommonName>P1</hmis:ProjectCommonName>
            </hmis:Project>
    responses:
      201:
        description: Returns the ID of the newly created project.
        body:
          application/json:
            schema: client_id_json
            example: |
              {"ProjectID":"csssssaassasfdfreswssaaasdffrfre"}
  /{project_id}:
    uriParameters:
      project_id:
        displayName: Project Identifier
        type: string
        example: ADBC11112AD111114111111111D1111V
    type:
      member:
        schema_json:  project_json
        schema_xml:  project_xml
    /affiliations:
      /{affiliation_id}:
    /funders:
      /{funder_id}:
/project_cocs:
  type: {
    collection: {
        id_schema_json: project_coc_id_json,
        schema_json:  project_coc_json,
        schema_xml:  project_coc_xml,
        schema_array_json: projects_coc_json,
        schema_array_xml: projects_coc_xml
    }
  }
  put:
    body:
      application/json:
        example: |
            {"projects":[{"ProjectCoCID":"csssssaassasfdfreswssaaasdffrfre","ProjectID":"csssssaassasfdfreswssaaasdffrfre","CoCCode":"AB-123","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"},       {"ProjectCoCID":"zxssssaassasfdfreswssaaasdffrfre","ProjectID":"abcsteaassasrdyreswssaaasdffrfre","CoCCode":"CD-456","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"psmith"}]
            }
  /{project_coc_id}:
    /inventories:
      type: {
        collection: {
            id_schema_json: inventory_id_json,
            schema_json:  inventory_json,
            schema_xml:  inventory_xml,
            schema_array_json: inventories_json,
            schema_array_xml: inventories_xml
        }
      }
      put:
        body:
          application/json:
            example: |
               {"Inventories":[{"InventoryID":"csssssaassasfdfreswssaaasdffrfre","ProjectID":"csssssaassasfdfreswssaaasdffrfre","CoCCode":"AB-123", "InformationDate":"10-12-2014","UnitInventory":"7","BedInventory":"12","HMISParticipatingBeds":"3","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"{"InventoryID":"zxssssaassasfdfreswssaaasdffrfre","ProjectID":"abcsteaassasrdyreswssaaasdffrfre","CoCCode":"CD-456","InformationDate":"10-122014","UnitInventory":"7","BedInventory":"12","HMISParticipatingBeds":"3","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"psmith"}]}
      /{inventory_id}:
        uriParameters:
          inventory_id:
            displayName:  Inventory Identifier
            type: string
            example: INVC11112AD111114111111111D1111V
        type:
          member:
            schema_json: inventory_json
            schema_xml: inventory_xml
    /sites:
      type: {
        collection: {
            id_schema_json: site_id_json,
            schema_json:  site_json,
            schema_xml:  site_xml,
            schema_array_json: sites_json,
            schema_array_xml: sites_xml
        }
      }
      put:
        body:
          application/json:
            example: |
                {"sites":[{"SiteID":"csssssaassasfdfreswssaaasdffrfre","ProjectID":"csssssaassasfdfreswssaaasdffrfre","CoCCode":"AB-123", "PrincipalSite":"1","DateCreated":"10-12-2014","DateUpdated":"11-14-2014","UserID":"gsmith"},       {"SiteID":"zxssssaassasfdfreswssaaasdffrfre","ProjectID":"abcsteaassasrdyreswssaaasdffrfre","CoCCode":"CD-456","PrincipalSite":"1","DateCreated":"09-20-2014","DateUpdated":"10-21-2014","UserID":"psmith"}]
                }
      /{site_id}:
        uriParameters:
          site_id:
            displayName: Site Identifier
            type: string
            example: ADBC11112AD111114111111111D1111V
        type:
          member:
            schema_json:  site_json
            schema_xml:  site_xml
schemas:
- bulk_hmis_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="http://www.hudhdx.info/Resources/Vendors/4_0/HUD_HMIS.xsd">
      <xs:element name="Sources" type="hmis:sources"/>
    </xs:schema>
- client_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["PersonalID"],
      "properties": {
        "PersonalID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- client_ids_json: |
    {
      "type": "array",
      "$schema": "http://json-schema.org/draft-04/schema",
      "title": "client_ids",
      "items": { "$ref": "#/definitions/client_id" },
        "definitions": {
          "client_id": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema",
          "required": ["PersonalID"],
            "properties": {
              "PersonalID": {
                "type": "string",
                "minLength": "32",
                "maxLength": "32",
                "minItems": 1,
                "uniqueItems": true,
                "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
              }
            }
          }
        }
      }
- enrollment_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["ProjectEntryID"],
      "properties": {
        "ProjectEntryID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- enrollment_ids_json: |
    {
      "type": "array",
      "$schema": "http://json-schema.org/draft-04/schema",
      "title": "enrollment_ids",
      "items": { "$ref": "#/definitions/enrollment_id" },
        "definitions": {
          "enrollment_id": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema",
          "required": ["ProjectEntryID"],
            "properties": {
              "ProjectEntryID": {
                "type": "string",
                "minLength": "32",
                "maxLength": "32",
                "minItems": 1,
                "uniqueItems": true,
                "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
              }
            }
          }
        }
     }
- organization_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["OrganizationID"],
      "properties": {
        "OrganizationID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- organization_ids_json: |
    {
      "type": "array",
      "$schema": "http://json-schema.org/draft-04/schema",
      "title": "client_ids",
      "items": { "$ref": "#/definitions/organization_id" },
        "definitions": {
          "organization_id": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema",
          "required": ["OrganizationID"],
            "properties": {
              "OrganizationID": {
                "type": "string",
                "minLength": "32",
                "maxLength": "32",
                "minItems": 1,
                "uniqueItems": true,
                "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
              }
            }
          }
        }
      }
- client_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["PersonalID", "DateCreated", "DateUpdated", "UserID"],
      "properties": {
        "PersonalID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "FirstName": {
          "type": "string",
          "maxLength": "50"
        },
        "MiddleName": {
          "type": "string",
          "maxLength": "50"
        },
        "LastName": {
          "type": "string",
          "maxLength": "50"
        },
        "NameSuffix": {
          "type": "string",
          "maxLength": "50"
        },
        "NameDataQuality": {
          "type" : "integer"
        },
        "SSN": {
          "type": "string",
          "maxLength": "9"
        },
        "SSNDataQuality": {
          "type" : "integer"
        },
        "DOB": {
          "type": "string",
          "format": "date-time"
        },
        "DOBDataQuality": {
          "type": "integer"
        },
        "AmIndAKNative": {
          "type": "integer"
        },
        "Asian": {
          "type": "integer"
        },
        "BlackAfAmerican": {
          "type": "integer"
        },
        "NativeHIOtherPacific": {
          "type": "integer"
        },
        "White": {
          "type": "integer"
        },
        "RaceNone": {
          "type": "integer"
        },
        "Ethnicity": {
          "type": "integer"
        },
        "Gender": {
          "type": "integer"
        },
        "OtherGender": {
          "type": "string",
          "maxLength": "50"
        },
        "VeteranStatus": {
          "type": "integer"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
- clients_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "clients",
    "type": "array",
    "items": { "$ref": "#/definitions/client" },
    "definitions": {
      "client": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["PersonalID", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "PersonalID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "FirstName": {
           "type": "string",
           "maxLength": "50"
          },
          "MiddleName": {
            "type": "string",
            "maxLength": "50"
          },
          "LastName": {
            "type": "string",
            "maxLength": "50"
          },
          "NameSuffix": {
            "type": "string",
            "maxLength": "50"
          },
          "NameDataQuality": {
            "type" : "integer"
          },
          "SSN": {
            "type": "string",
            "maxLength": "9"
          },
          "SSNDataQuality": {
            "type" : "integer"
          },
          "DOB": {
            "type": "string",
            "format": "date-time"
          },
          "DOBDataQuality": {
            "type": "integer"
          },
          "AmIndAKNative": {
            "type": "integer"
          },
          "Asian": {
            "type": "integer"
          },
          "BlackAfAmerican": {
            "type": "integer"
          },
          "NativeHIOtherPacific": {
            "type": "integer"
          },
          "White": {
            "type": "integer"
          },
          "RaceNone": {
            "type": "integer"
          },
          "Ethnicity": {
            "type": "integer"
          },
          "Gender": {
            "type": "integer"
          },
          "OtherGender": {
            "type": "string",
            "maxLength": "50"
          },
          "VeteranStatus": {
            "type": "integer"
          },
          "DateCreated": {
           "type": "string",
           "format": "date-time"
          },
          "DateUpdated": {
           "type": "string",
           "format": "date-time"
          },
          "UserID": {
            "type": "string",
            "maxLength": "32"
          },
          "DateDeleted": {
          "type": "string",
          "format": "date-time"
          }
        }
      }
    }
- client_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Client" type="hmis:client"/>
    </xs:schema>
- clients_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Clients" type="hmis:clients"/>
    </xs:schema>
- enrollment_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["ProjectEntryID", "PersonalID", "ProjectID", "EntryDate", "HouseholdID", "RelationshipToHoH", "DateCreated", "DateUpdated", "UserID"],
      "properties": {
        "ProjectEntryID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "PersonalID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "ProjectID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "EntryDate": {
          "type": "string",
          "format": "date-time"
        },
        "HouseholdID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "RelationshipToHoH": {
         "type": "integer"
        },
        "ResidencePrior": {
         "type": "integer"
        },
        "OtherResidencePrior": {
          "type": "string",
          "maxLength": "50"
        },
        "ResidencePriorLengthOfStay": {
          "type": "integer"
        },
        "DisablingCondition": {
          "type": "integer"
        },
        "ContinuouslyHomelessOneYear": {
          "type": "integer"
        },
        "TimesHomelessPastThreeYears": {
          "type": "integer"
        },
        "MonthsHomelessPastThreeYears": {
          "type": "integer"
        },
        "MonthsHomelessThisTime": {
          "type": "string",
          "pattern": "^[0-9]{1,3}$"
        },
        "StatusDocumented": {
          "type": "integer"
        },
        "HousingStatus": {
          "type": "integer"
        },
        "DateOfEngagement": {
          "type": "string",
          "format": "date-time"
        },
        "InPermanentHousing": {
          "type": "integer"
        },
        "ResidentialMoveInDate": {
          "type": "string",
          "format": "date-time"
        },
        "DateOfPATHStatus": {
          "type": "string",
          "format": "date-time"
        },
        "ClientEnrolledInPATH": {
          "type": "integer"
        },
        "ReasonNotEnrolled": {
          "type": "integer"
        },
        "WorstHousingSituation": {
          "type": "integer"
        },
        "PercentAMI": {
          "type": "integer"
        },
        "LastPermanentStreet": {
          "type": "string",
          "maxLength": "100"
        },
        "LastPermanentCity": {
          "type": "string",
          "maxLength": "50"
        },
        "LastPermanentState": {
          "type": "string",
          "maxLength": "2",
          "pattern": "^[a-zA-Z]{2}$"
        },
        "LastPermanentZIP": {
          "type": "string",
          "maxLength": "5",
          "pattern": "^[0-9]{5}$"
        },
        "AddressDataQuality": {
          "type": "integer"
        },
        "DateOfBCPStatus": {
          "type": "string",
          "format": "date-time"
        },
        "FYSBYouth": {
          "type": "integer"
        },
        "ReasonNoServices": {
          "type": "integer"
        },
        "SexualOrientation": {
          "type": "integer"
        },
        "FormerWardChildWelfare": {
          "type": "integer"
        },
        "ChildWelfareYears": {
          "type": "integer"
        },
        "ChildWelfareMonths": {
          "type": "integer"
        },
        "FormerWardJuvenileJustice": {
          "type": "integer"
        },
        "JuvenileJusticeYears": {
          "type": "integer"
        },
        "JuvenileJusticeMonths": {
          "type": "integer"
        },
        "HouseholdDynamics": {
          "type": "integer"
        },
        "SexualOrientationGenderIDYouth": {
          "type": "integer"
        },
        "SexualOrientationGenderIDFam": {
          "type": "integer"
        },
        "HousingIssuesYouth": {
          "type": "integer"
        },
        "HousingIssuesFam": {
          "type": "integer"
        },
        "SchoolEducationalIssuesYouth": {
          "type": "integer"
        },
        "SchoolEducationalIssuesFam": {
          "type": "integer"
        },
        "UnemploymentYouth": {
          "type": "integer"
        },
        "UnemploymentFam": {
          "type": "integer"
        },
        "MentalHealthIssuesYouth": {
          "type": "integer"
        },
        "MentalHealthIssuesFam": {
          "type": "integer"
        },
        "HealthIssuesYouth": {
          "type": "integer"
        },
        "HealthIssuesFam": {
          "type": "integer"
        },
        "PhysicalDisabilityYouth": {
          "type": "integer"
        },
        "PhysicalDisabilityFam": {
          "type": "integer"
        },
        "MentalDisabilityYouth": {
          "type": "integer"
        },
        "MentalDisabilityFam": {
          "type": "integer"
        },
        "AbuseAndNeglectYouth": {
          "type": "integer"
        },
        "AbuseAndNeglectFam": {
          "type": "integer"
        },
        "AlcoholDrugAbuseYouth": {
          "type": "integer"
        },
        "AlcoholDrugAbuseFam": {
          "type": "integer"
        },
        "InsufficientIncome": {
          "type": "integer"
        },
        "ActiveMilitaryParent": {
          "type": "integer"
        },
        "IncarceratedParent": {
          "type": "integer"
        },
        "IncarceratedParentStatus": {
          "type": "integer"
        },
        "ReferralSource": {
          "type": "integer"
        },
        "CountOutreachReferralApproaches": {
          "type": "integer"
        },
        "ExchangeForSexPastThreeMonths": {
          "type": "integer"
        },
        "CountOfExchangeForSex": {
          "type": "integer"
        },
        "AskedOrForcedToExchangeForSex": {
          "type": "integer"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
- enrollment_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Enrollment" type="hmis:enrollment"/>
    </xs:schema>
- enrollments_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "enrollments",
    "type": "array",
    "items": { "$ref": "#/definitions/enrollment" },
    "definitions": {
        "enrollment": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["ProjectEntryID", "PersonalID", "ProjectID", "EntryDate", "HouseholdID", "RelationshipToHoH", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "ProjectEntryID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "PersonalID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjectID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "EntryDate": {
            "type": "string",
            "format": "date-time"
          },
          "HouseholdID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "RelationshipToHoH": {
           "type": "integer"
          },
          "ResidencePrior": {
           "type": "integer"
          },
          "OtherResidencePrior": {
            "type": "string",
            "maxLength": "50"
          },
          "ResidencePriorLengthOfStay": {
            "type": "integer"
          },
          "DisablingCondition": {
            "type": "integer"
          },
          "ContinuouslyHomelessOneYear": {
            "type": "integer"
          },
          "TimesHomelessPastThreeYears": {
            "type": "integer"
          },
          "MonthsHomelessPastThreeYears": {
            "type": "integer"
          },
          "MonthsHomelessThisTime": {
            "type": "string",
            "pattern": "^[0-9]{1,3}$"
          },
          "StatusDocumented": {
            "type": "integer"
          },
          "HousingStatus": {
            "type": "integer"
          },
          "DateOfEngagement": {
            "type": "string",
            "format": "date-time"
          },
          "InPermanentHousing": {
            "type": "integer"
          },
          "ResidentialMoveInDate": {
            "type": "string",
            "format": "date-time"
          },
          "DateOfPATHStatus": {
            "type": "string",
            "format": "date-time"
          },
          "ClientEnrolledInPATH": {
            "type": "integer"
          },
          "ReasonNotEnrolled": {
            "type": "integer"
          },
          "WorstHousingSituation": {
            "type": "integer"
          },
          "PercentAMI": {
            "type": "integer"
          },
          "LastPermanentStreet": {
            "type": "string",
            "maxLength": "100"
          },
          "LastPermanentCity": {
            "type": "string",
            "maxLength": "50"
          },
          "LastPermanentState": {
            "type": "string",
            "maxLength": "2",
            "pattern": "^[a-zA-Z]{2}$"
          },
          "LastPermanentZIP": {
            "type": "string",
            "maxLength": "5",
            "pattern": "^[0-9]{5}$"
          },
          "AddressDataQuality": {
            "type": "integer"
          },
          "DateOfBCPStatus": {
            "type": "string",
            "format": "date-time"
          },
          "FYSBYouth": {
            "type": "integer"
          },
          "ReasonNoServices": {
            "type": "integer"
          },
          "SexualOrientation": {
            "type": "integer"
          },
          "FormerWardChildWelfare": {
            "type": "integer"
          },
          "ChildWelfareYears": {
            "type": "integer"
          },
          "ChildWelfareMonths": {
            "type": "integer"
          },
          "FormerWardJuvenileJustice": {
            "type": "integer"
          },
          "JuvenileJusticeYears": {
            "type": "integer"
          },
          "JuvenileJusticeMonths": {
            "type": "integer"
          },
          "HouseholdDynamics": {
            "type": "integer"
          },
          "SexualOrientationGenderIDYouth": {
            "type": "integer"
          },
          "SexualOrientationGenderIDFam": {
            "type": "integer"
          },
          "HousingIssuesYouth": {
            "type": "integer"
          },
          "HousingIssuesFam": {
            "type": "integer"
          },
          "SchoolEducationalIssuesYouth": {
            "type": "integer"
          },
          "SchoolEducationalIssuesFam": {
            "type": "integer"
          },
          "UnemploymentYouth": {
            "type": "integer"
          },
          "UnemploymentFam": {
            "type": "integer"
          },
          "MentalHealthIssuesYouth": {
            "type": "integer"
          },
          "MentalHealthIssuesFam": {
            "type": "integer"
          },
          "HealthIssuesYouth": {
            "type": "integer"
          },
          "HealthIssuesFam": {
            "type": "integer"
          },
          "PhysicalDisabilityYouth": {
            "type": "integer"
          },
          "PhysicalDisabilityFam": {
            "type": "integer"
          },
          "MentalDisabilityYouth": {
            "type": "integer"
          },
          "MentalDisabilityFam": {
            "type": "integer"
          },
          "AbuseAndNeglectYouth": {
            "type": "integer"
          },
          "AbuseAndNeglectFam": {
            "type": "integer"
          },
          "AlcoholDrugAbuseYouth": {
            "type": "integer"
          },
          "AlcoholDrugAbuseFam": {
            "type": "integer"
          },
          "InsufficientIncome": {
            "type": "integer"
          },
          "ActiveMilitaryParent": {
            "type": "integer"
          },
          "IncarceratedParent": {
            "type": "integer"
          },
          "IncarceratedParentStatus": {
            "type": "integer"
          },
          "ReferralSource": {
            "type": "integer"
          },
          "CountOutreachReferralApproaches": {
            "type": "integer"
          },
          "ExchangeForSexPastThreeMonths": {
            "type": "integer"
          },
          "CountOfExchangeForSex": {
            "type": "integer"
          },
          "AskedOrForcedToExchangeForSex": {
            "type": "integer"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          },
          "DateDeleted": {
          "type": "string",
          "format": "date-time"
          }
        }
      }
    }
- enrollments_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Enrollments" type="hmis:enrollments"/>

- organization_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["OrganizationID", "OrganizationName", "OrganizationCommonName", "DateCreated","DateUpdated","UserID"],
      "properties": {
        "OrganizationID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
         "OrganizationName": {
          "type": "string",
          "maxLength": "80"
        },
         "OrganizationCommonName": {
          "type": "string",
          "maxLength": "80"
        },
         "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
- organization_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Organization" type="hmis:organization"/>
    </xs:schema>
- organizations_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "organizations",
    "type": "array",
    "items": { "$ref": "#/definitions/"organization },
    "definitions": {
      "organization": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["OrganizationID", "OrganizationName", "OrganizationCommonName", "DateCreated","DateUpdated","UserID"],
       "properties": {
        "OrganizationID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
         "OrganizationName": {
          "type": "string",
          "maxLength": "80"
        },
         "OrganizationCommonName": {
          "type": "string",
          "maxLength": "80"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        }
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        },
      }
    }
- organizations_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Organizations" type="hmis:organizations"/>
- project_json: |-
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["ProjectID","OrganizationID","ProjectName","ProjectCommonName","ContinuumProject","DateCreated", "DateUpdated", "UserID","ExportID"],
      "properties": {
        "ProjectID": {
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "OrganizationID":{
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "ProjectName": {
          "type": "String",
          "maxLength": "50"
        },
        "ContinuumProject": {
          "type": "Integer"
        },
        "ProjectType": {
          "type": "Integer"
        },
        "ResidentialAffiliation": {
          "type": "Collection(Integer)"
        },
        "TrackingMethod": {
          "type": "Integer"
        },
        "TargetPopulation": {
          "type": "Integer"
        },
        "ProjectCommonName": {
          "type": "String",
          "maxLength": "20"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
         "ExportID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
- projects_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "projects",
    "type": "array",
    "items": { "$ref": "#/definitions/project" },
    "definitions": {
      "project": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["ProjectID","OrganizationID","ProjectName","ProjectCommonName","ContinuumProject","DateCreated", "DateUpdated", "UserID","ExportID"],
        "properties": {
        "ProjectID": {
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "OrganizationID":{
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "ProjectName": {
          "type": "String",
          "maxLength": "50"
        },
        "ContinuumProject": {
          "type": "Integer"
        },
        "ProjectType": {
          "type": "Integer"
        },
        "ResidentialAffiliation": {
          "type": "Collection(Integer)"
        },
        "TrackingMethod": {
          "type": "Integer"
        },
        "TargetPopulation": {
          "type": "Integer"
        },
        "ProjectCommonName": {
          "type": "String",
          "maxLength": "20"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "ExportID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        },
      }
    }
- project_coc_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["ProjectCoCID"],
      "properties": {
        "ProjectCoCID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- project_coc_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["ProjectID", "DateCreated", "DateUpdated", "UserID"],
      "properties": {
        "ProjectCoCID": {
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "ProjectID": {
          "type": "String",
          "minLength": "32",
          "maxLength": "32"
        },
        "CoCCode": {
          "type": "String",
          "minLength": "6",
          "maxLength": "6"
        },
        "DateCreated": {
          "type": "string",
          "format": "date-time"
        },
        "DateUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
        },
        "DateDeleted": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
- project_cocs_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "project_cocs",
    "type": "array",
    "items": { "$ref": "#/definitions/project_coc" },
    "definitions": {
      "project_coc": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["ProjectCoCID", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "ProjectCoCID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjectID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "CoCCode": {
            "type": "String",
            "minLength": "6",
            "maxLength": "6"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          }
          "DateDeleted": {
            "type": "string",
            "format": "date-time"
          }
      }
    }
- project_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Project" type="hmis:project"/>
    </xs:schema>
- projects_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Projects" type="hmis:projects"/>
    </xs:schema>
- project_coc_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="ProjectCoC" type="hmis:projectCoC"/>
    </xs:schema>
- projects_cocs_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="ProjectsCoC" type="hmis:projectsCoC"/>
    </xs:schema>
- site_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "site",
    "type": "array",
    "items": { "$ref": "#/definitions/site" },
    "definitions": {
      "site": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["SiteID", "ProjectID", "CoCCode", "PrincipalSite", "Geocode",   "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "SiteID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjectID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "CoCCode": {
            "type": "String",
            "minLength": "6",
            "maxLength": "6"
          },
          "PrincipalSite": {
            "type": "Integer"
          },
          "Geocode": {
            "type": "String",
            "minLength": "6",
            "maxLength": "6"
          },
          "Address": {
            "type": "String",
            "maxLength": "100"
          },
          "City": {
            "type": "String",
            "maxLength": "50"
          },
          "State": {
            "type": "String",
            "maxLength": "2"
          },
          "ZIP": {
            "type": "String",
            "maxLength": "5"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          }
          "DateDeleted": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
- site_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["SiteID"],
      "properties": {
        "SiteID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "ghwgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- sites_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "sites",
    "type": "array",
    "items": { "$ref": "#/definitions/site" },
    "definitions": {
      "site": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["SiteID", "ProjectID", "CoCCode", "PrincipalSite", "Geocode", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "SiteID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjectID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "CoCCode": {
            "type": "String",
            "minLength": "6",
            "maxLength": "6"
          },
          "PrincipalSite": {
            "type": "Integer"
          },
          "Geocode": {
            "type": "String",
            "minLength": "6",
            "maxLength": "6"
          },
          "Address": {
            "type": "String",
            "maxLength": "100"
          },
          "City": {
            "type": "String",
            "maxLength": "50"
          },
          "State": {
            "type": "String",
            "maxLength": "2"
          },
          "ZIP": {
            "type": "String",
            "maxLength": "5"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "string",
            "minLength": "32",
            "maxLength": "32"
          }
          "DateDeleted": {
            "type": "string",
            "format": "date-time"
          }
      }
    }
- site_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Site" type="hmis:site"/>
    </xs:schema>
- sites_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Sites" type="hmis:sites"/>
    </xs:schema>
- inventory_json: |
    "title":"inventory".
    "type": "array",
    "$schema": "http://json-schema.org/draft-04/schema",
    "items": { "$ref": "#/definitions/inventory" },
    "definitions": {
      "inventory":{
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["InventoryID", "ProjectID", "CoCCode", "InformationDate", "HouseholdType", "UnitInventory", "BedInventory", "HMISParticipatingBeds", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "InventoryID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "CoCCode": {
          "type": "String",
          "maxLength": "6",
          "minLength": "6"
          }'
          "InformationDate": {
          "type": "string",
          "format": "date-time"
          },
          "HouseholdType": {
          "type": "Integer",
          },
          "BedType": {
          "type": "Integer",
          },
          "Availibility": {
          "type": "Integer",
          },
          "Uninventory": {
          "type": "Integer",
          },
          "BedInventory": {
          "type": "Integer",
          },
          "CHBedinventory": {
          "type": "Integer",
          },
          "VetBedinventory": {
          "type": "Integer",
          },
          "YouthBedinventory": {
          "type": "Integer",
          },
          "YouthAgeGroup": {
          "type": "Integer",
          },
          "InventoryStartDate": {
          "type": "string",
          "format": "date-time"
          },
          "InventoryEndDate": {
          "type": "string",
          "format": "date-time"
          },
          "HMISParticipatingBeds": {
          "type": "Integer",
          },
          "DateCreated": {
          "type": "string",
          "format": "date-time"
          },
          "DateUpdated": {
          "type": "string",
          "format": "date-time"
          },
          "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
          },
          "DateDeleted": {
          "type": "string",
          "format": "date-time"
          }
        }
      }
    }
- inventory_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["InventoryID"],
      "properties": {
        "InventoryID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "invgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- inventories_json: |-
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "inventories",
    "type": "array",
    "items": { "$ref": "#/definitions/inventory" },
    "definitions": {
      "inventory": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["InventoryID", "ProjectID", "CoCCode", "InformationDate", "HouseholdType", "UnitInventory", "BedInventory", "HMISParticipatingBeds", "DateCreated", "DateUpdated", "UserID"],
        "properties": {
          "InventoryID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "CoCCode": {
          "type": "String",
          "maxLength": "6",
          "minLength": "6"
          }'
          "InformationDate": {
          "type": "string",
          "format": "date-time"
          },
          "HouseholdType": {
          "type": "Integer",
          },
          "BedType": {
          "type": "Integer",
          },
          "Availibility": {
          "type": "Integer",
          },
          "UnitInventory": {
          "type": "Integer",
          },
          "BedInventory": {
          "type": "Integer",
          },
          "CHBedinventory": {
          "type": "Integer",
          },
          "VetBedinventory": {
          "type": "Integer",
          },
          "YouthBedinventory": {
          "type": "Integer",
          },
          "YouthAgeGroup": {
          "type": "Integer",
          },
          "InventoryStartDate": {
          "type": "string",
          "format": "date-time"
          },
          "InventoryEndDate": {
          "type": "string",
          "format": "date-time"
          },
          "HMISParticipatingBeds": {
          "type": "Integer",
          },
          "DateCreated": {
          "type": "string",
          "format": "date-time"
          },
          "DateUpdated": {
          "type": "string",
          "format": "date-time"
          },
          "UserID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32"
          },
          "DateDeleted": {
          "type": "string",
          "format": "date-time"
          }
      }
    }
- inventory_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Inventory" type="hmis:inventory"/>
    </xs:schema>
- inventories_xml: |-
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Inventories" type="hmis:inventories"/>
    </xs:schema>
- funder_json: |-
   "title":"funder".
    "type": "array",
    "$schema": "http://json-schema.org/draft-04/schema",
    "items": { "$ref": "#/definitions/funder" },
    "definitions": {
       "funder":{
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema",
          "required": ["FunderID", "ProjectID", "Funder", "StartDate", "DateCreated", "DateUpdated", "UserID","ExportID"],
          "properties": {
            "FunderID": {
            "type": "String",
            "maxLength": "32",
            "minLength": "32"
          },
          "ProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "Funder": {
          "type": "String",
          "maxLength": "50"
          },
          "GrantID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "StartDate": {
          "type": "String",
          "format": "date-time"
          },
          "EndDate": {
          "type": "String",
          "format": "date-time"
          },
          "EndDate": {
          "type": "String",
          "format": "date-time"
          },
          "DateCreated": {
          "type": "String",
          "format": "date-time"
          },
          "DateUpdated": {
          "type": "String",
          "format": "date-time"
          },
          "DateDeleted": {
          "type": "String",
          "format": "date-time"
          },
          "UserID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ExportID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          }
        }
      }
     }
- funder_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["FunderID"],
      "properties": {
        "InventoryID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "invgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- funders_json: |-
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "funders",
    "type": "array",
    "items": { "$ref": "#/definitions/funder" },
    "definitions": {
      "funder": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["FunderID", "ProjectID", "Funder", "StartDate", "DateCreated", "DateUpdated", "UserID","ExportID"],
        "properties": {
          "FunderID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "Funder": {
          "type": "String",
          "maxLength": "50"
          },
          "GrantID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "StartDate": {
          "type": "String",
          "format": "date-time"
          },
          "EndDate": {
          "type": "String",
          "format": "date-time"
          },
          "EndDate": {
          "type": "String",
          "format": "date-time"
          },
          "DateCreated": {
          "type": "String",
          "format": "date-time"
          },
          "DateUpdated": {
          "type": "String",
          "format": "date-time"
          },
          "DateDeleted": {
          "type": "String",
          "format": "date-time"
          },
          "UserID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ExportID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          }
        }
      }
- funder_xml: |-
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
    <xs:element name="Funder" type="hmis:funder"/>
    </xs:schema>
- funders_xml: |-
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
    <xs:element name="Inventories" type="hmis:inventories"/>
    </xs:schema>
- affiliation_json: |-
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "affiliation",
    "type": "array",
    "items": { "$ref": "#/definitions/affiliation" },
    "definitions": {
      "affiliation": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["AffliationID", "ProjectID", "ResProjectID", "PrincipalSite", "Geocode",   "DateCreated", "DateUpdated", "UserID"],
      "properties": {
      "AffliationID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ResProjectID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
           "DateCreated": {
          "type": "String",
          "format": "date-time"
          },
          "DateUpdated": {
          "type": "String",
          "format": "date-time"
          },
          "DateDeleted": {
          "type": "String",
          "format": "date-time"
          },
          "UserID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          },
          "ExportID": {
          "type": "String",
          "maxLength": "32",
          "minLength": "32"
          }
        }
      }
- affiliation_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["AffiliationID"],
      "properties": {
        "AffiliationID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "invgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }
- affiliation_xml: |-
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
    <xs:element name="Funder" type="hmis:funder"/>
    </xs:schema>
- affiliations_xml: |-
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
    <xs:element name="Inventories" type="hmis:inventories"/>
    </xs:schema>

- incomebenefits_json:  |-
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "incomeBenefits",
    "type": "array",
    "items": { "$ref": "#/definitions/incomebenefit" },
    "definitions": {
      "incomeBenefits": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["IncomeBenefitsID", "ProjectEntryID", "PersonalID", "InformationDate", "DataCollectionStage","DateCreated", "DateUpdated", "UserID","ExportID"],
        "properties": {
          "IncomeBenefitsID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjectEntryID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
           "PersonalID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "InformationDate": {
            "type": "string",
            "format": "date-time"
          },
           "IncomeFromAnySource": {
            "type": "Integer"
          },
          "TotalMonthlyIncome":{
            "type": "Number"
          },
          "Earned": {
            "type": "Integer"
          },
          "EarnedAmount":{
            "type": "Number"
          },
          "Unemployment": {
            "type": "Integer"
          },
           "UnemploymentAmount":{
            "type": "Number"
          },
          "SSI": {
            "type": "Integer"
          },
           "SSIAmount":{
            "type": "Number"
          },
          "SSDI": {
            "type": "Integer"
          },
           "SSDIAmount":{
            "type": "Number"
          },
          "VADisabilityService": {
            "type": "Integer"
          },
           "VADisabilityServiceAmount":{
            "type": "Number"
          },
          "VADisabilityNonService": {
            "type": "Integer"
          },
           "VADisabilityNonServiceAmount":{
            "type": "Number"
          },
          "PrivateDisability": {
            "type": "Integer"
          },
           "PrivateDisabilityAmount":{
            "type": "Number"
          },
          "WorkersComp": {
            "type": "Integer"
          },
           "WorkersCompAmount":{
            "type": "Number"
          },
          "TANF": {
            "type": "Integer"
          },
           "TANFAmount":{
            "type": "Number"
          },
          "GA": {
            "type": "Integer"
          },
           "GAAmount":{
            "type": "Number"
          },
          "SocSecRetirement": {
            "type": "Integer"
          },
           "SocSecRetirementAmount":{
            "type": "Number"
          },
          "Pension": {
            "type": "Integer"
          },
           "PensionAmount":{
            "type": "Number"
          },
          "ChildSupport": {
            "type": "Integer"
          },
           "ChildSupportAmount":{
            "type": "Number"
          },
          "Alimony": {
            "type": "Integer"
          },
           "AlimonyAmount":{
            "type": "Number"
          },
          "OtherIncomeSource": {
            "type": "Integer"
          },
           "OtherIncomeAmount":{
            "type": "Number"
          },
          "OtherIncomeSourceIdentify": {
            "type": "String"
            "maxLength":"50"
          },
           "BenefitsFromAnySource":{
            "type": "Integer"
          },
          "SNAP": {
            "type": "Integer"
          },
          "WIC": {
            "type": "Integer"
          },
          "TANFChildCare": {
            "type": "Integer"
          },
          "TANFTransportation": {
            "type": "Integer"
          },
          "OtherTANF": {
            "type": "Integer"
          },
          "RentalAssistanceOngoing": {
            "type": "Integer"
          },
          "RentalAssistanceTemp": {
            "type": "Integer"
          },
          "OtherBenefitsSource": {
            "type": "Integer"
          },
          "OtherBenefitsSourceIdentify": {
            "type": "String"
            "maxLength":"50"
          },
           "InsuranceFromAnySource": {
            "type": "Integer"
          },
          "Medicaid": {
            "type": "Integer"
          },
          "NoMedicaidReason": {
            "type": "Integer"
          },
          "Medicare": {
            "type": "Integer"
          },
          "NoMedicareReason": {
            "type": "Integer"
          },
          "SCHIP": {
            "type": "Integer"
          },
          "NoSCHIPReason": {
            "type": "Integer"
          },
          "VAMedicalServices": {
            "type": "Integer"
          },
          "NoVAMedicalServices": {
            "type": "Integer"
          },
          "EmployerProvided": {
            "type": "Integer"
          },
          "NoEmployerProvidedReason": {
            "type": "Integer"
          },
          "COBRA": {
            "type": "Integer"
          },
          "NoCOBRAReason": {
            "type": "Integer"
          },
          "PrivatePay": {
            "type": "Integer"
          },
          "NoPrivatePayReason": {
            "type": "Integer"
          },
          "StateHealthIns": {
            "type": "Integer"
          },
          "NoStateHealthInsReason": {
            "type": "Integer"
          },
          "HIVAIDSAssistance": {
            "type": "Integer"
          },
          "NoHIVAIDSAssistanceReason": {
            "type": "Integer"
          },
          "ADAP": {
            "type": "Integer"
          },
          "NoADAPReason": {
            "type": "Integer"
          },
          "DateCreated": {
            "type": "Integer"
          },"InformationDate": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "DateDeleted": {
            "type": "string",
            "format": "date-time"
          },
          "ExportID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          }

      }
    }
- incomebenefits_id_json: |
    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema",
      "required": ["IncomeBenefitsID"],
      "properties": {
        "AffiliationID": {
          "type": "string",
          "minLength": "32",
          "maxLength": "32",
          "minItems": 1,
          "uniqueItems": true,
          "example": "invgqgwhwhwgwbgwtsgdhsy67yt232gs"
        }
      }
    }

- incomebenefitses_json: |
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "incomeBenefitses",
    "type": "array",
    "items": { "$ref": "#/definitions/incomebenefit" },
    "definitions": {
      "incomeBenefits": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema",
        "required": ["IncomeBenefitsID", "ProjectEntryID", "PersonalID", "InformationDate", "DataCollectionStage","DateCreated", "DateUpdated", "UserID","ExportID"],
        "properties": {
          "IncomeBenefitsID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "ProjecEntrytID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
           "PersonalID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "InformationDate": {
            "type": "string",
            "format": "date-time"
          },
           "IncomeFromAnySource": {
            "type": "Integer"
          },
          "TotalMonthlyIncome":{
            "type": "Number"
          },
          "Earned": {
            "type": "Integer"
          },
          "EarnedAmount":{
            "type": "Number"
          },
          "Unemployment": {
            "type": "Integer"
          },
           "UnemploymentAmount":{
            "type": "Number"
          },
          "SSI": {
            "type": "Integer"
          },
           "SSIAmount":{
            "type": "Number"
          },
          "SSDI": {
            "type": "Integer"
          },
           "SSDIAmount":{
            "type": "Number"
          },
          "VADisabilityService": {
            "type": "Integer"
          },
           "VADisabilityServiceAmount":{
            "type": "Number"
          },
          "VADisabilityNonService": {
            "type": "Integer"
          },
           "VADisabilityNonServiceAmount":{
            "type": "Number"
          },
          "PrivateDisability": {
            "type": "Integer"
          },
           "PrivateDisabilityAmount":{
            "type": "Number"
          },
          "WorkersComp": {
            "type": "Integer"
          },
           "WorkersCompAmount":{
            "type": "Number"
          },
          "TANF": {
            "type": "Integer"
          },
           "TANFAmount":{
            "type": "Number"
          },
          "GA": {
            "type": "Integer"
          },
           "GAAmount":{
            "type": "Number"
          },
          "SocSecRetirement": {
            "type": "Integer"
          },
           "SocSecRetirementAmount":{
            "type": "Number"
          },
          "Pension": {
            "type": "Integer"
          },
           "PensionAmount":{
            "type": "Number"
          },
          "ChildSupport": {
            "type": "Integer"
          },
           "ChildSupportAmount":{
            "type": "Number"
          },
          "Alimony": {
            "type": "Integer"
          },
           "AlimonyAmount":{
            "type": "Number"
          },
          "OtherIncomeSource": {
            "type": "Integer"
          },
           "OtherIncomeAmount":{
            "type": "Number"
          },
          "OtherIncomeSourceIdentify": {
            "type": "String"
            "maxLength":"50"
          },
           "BenefitsFromAnySource":{
            "type": "Integer"
          },
          "SNAP": {
            "type": "Integer"
          },
          "WIC": {
            "type": "Integer"
          },
          "TANFChildCare": {
            "type": "Integer"
          },
          "TANFTransportation": {
            "type": "Integer"
          },
          "OtherTANF": {
            "type": "Integer"
          },
          "RentalAssistanceOngoing": {
            "type": "Integer"
          },
          "RentalAssistanceTemp": {
            "type": "Integer"
          },
          "OtherBenefitsSource": {
            "type": "Integer"
          },
          "OtherBenefitsSourceIdentify": {
            "type": "String"
            "maxLength":"50"
          },
           "InsuranceFromAnySource": {
            "type": "Integer"
          },
          "Medicaid": {
            "type": "Integer"
          },
          "NoMedicaidReason": {
            "type": "Integer"
          },
          "Medicare": {
            "type": "Integer"
          },
          "NoMedicareReason": {
            "type": "Integer"
          },
          "SCHIP": {
            "type": "Integer"
          },
          "NoSCHIPReason": {
            "type": "Integer"
          },
          "VAMedicalServices": {
            "type": "Integer"
          },
          "NoVAMedicalServices": {
            "type": "Integer"
          },
          "EmployerProvided": {
            "type": "Integer"
          },
          "NoEmployerProvidedReason": {
            "type": "Integer"
          },
          "COBRA": {
            "type": "Integer"
          },
          "NoCOBRAReason": {
            "type": "Integer"
          },
          "PrivatePay": {
            "type": "Integer"
          },
          "NoPrivatePayReason": {
            "type": "Integer"
          },
          "StateHealthIns": {
            "type": "Integer"
          },
          "NoStateHealthInsReason": {
            "type": "Integer"
          },
          "HIVAIDSAssistance": {
            "type": "Integer"
          },
          "NoHIVAIDSAssistanceReason": {
            "type": "Integer"
          },
          "ADAP": {
            "type": "Integer"
          },
          "NoADAPReason": {
            "type": "Integer"
          },
          "DateCreated": {
            "type": "Integer"
          },"InformationDate": {
            "type": "string",
            "format": "date-time"
          },
          "DateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "UserID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          },
          "DateDeleted": {
            "type": "string",
            "format": "date-time"
          },
          "ExportID": {
            "type": "String",
            "minLength": "32",
            "maxLength": "32"
          }
      }
    }
- incomebenefits_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"              xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
    <xs:element name="Incomebenefits" type="hmis:incomebenefits"/>
    </xs:schema>
- incomebenefitses_xml: |
    <xs:schema attributeFormDefault="qualified"    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"            xmlns:hmis="https://raw.githubusercontent.com/hmis-api/xml/v4.0.1/src/HUD_HMIS.xsd">
      <xs:element name="Incomebenefitses" type="hmis:incomebenefitses"/>
    </xs:schema>

error: pathspec 'doc/openhmis-api.raml' did not match any file(s) known to git