civicinfo.divisions.queryDivisionByAddress

valid {
    input.Qs.address == STRING
    input.ProviderMetadata.Region == STRING
}

civicinfo.divisions.search

valid {
    input.Qs.query == STRING
    input.ProviderMetadata.Region == STRING
}

civicinfo.elections.electionQuery

valid {
    input.Qs.productionDataOnly == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

civicinfo.elections.voterInfoQuery

valid {
    input.Qs.address == STRING
    input.Qs.electionId == STRING
    input.Qs.officialOnly == BOOLEAN
    input.Qs.productionDataOnly == BOOLEAN
    input.Qs.returnAllAvailableData == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

civicinfo.representatives.representativeInfoByAddress

enum_LevelsParameter := [ "international", "country", "administrativeArea1", "regional", "administrativeArea2", "locality", "subLocality1", "subLocality2", "special" ]
enum_RolesParameter := [ "headOfState", "headOfGovernment", "deputyHeadOfGovernment", "governmentOfficer", "executiveCouncil", "legislatorUpperBody", "legislatorLowerBody", "highestCourtJudge", "judge", "schoolBoard", "specialPurposeOfficer", "otherRole" ]

valid {
    input.Qs.address == STRING
    input.Qs.includeOffices == BOOLEAN
    input.Qs.levels == enum_LevelsParameter[_]
    input.Qs.roles == enum_RolesParameter[_]
    input.ProviderMetadata.Region == STRING
}

civicinfo.representatives.representativeInfoByDivision

enum_LevelsParameter := [ "international", "country", "administrativeArea1", "regional", "administrativeArea2", "locality", "subLocality1", "subLocality2", "special" ]
enum_RolesParameter := [ "headOfState", "headOfGovernment", "deputyHeadOfGovernment", "governmentOfficer", "executiveCouncil", "legislatorUpperBody", "legislatorLowerBody", "highestCourtJudge", "judge", "schoolBoard", "specialPurposeOfficer", "otherRole" ]

valid {
    input.ReqMap.ocdId == STRING
    input.Qs.levels == enum_LevelsParameter[_]
    input.Qs.recursive == BOOLEAN
    input.Qs.roles == enum_RolesParameter[_]
    input.ProviderMetadata.Region == STRING
}