-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Civic Information SDK.
--   
--   Provides polling places, early vote locations, contest data, election
--   officials, and government representatives for U.S. residential
--   addresses.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v2</tt> of the API.
@package gogol-civicinfo
@version 0.3.0


module Network.Google.CivicInfo.Types

-- | Default request referring to version <tt>v2</tt> of the Google Civic
--   Information API. This contains the host and root path used as a
--   starting point for constructing service requests.
civicInfoService :: ServiceConfig

-- | Political geographic divisions that contain the requested address.
--   
--   <i>See:</i> <a>representativeInfoResponseDivisions</a> smart
--   constructor.
data RepresentativeInfoResponseDivisions

-- | Creates a value of <a>RepresentativeInfoResponseDivisions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirdAddtional</a></li>
--   </ul>
representativeInfoResponseDivisions :: HashMap Text GeographicDivision -> RepresentativeInfoResponseDivisions

-- | The unique Open Civic Data identifier for this division.
rirdAddtional :: Lens' RepresentativeInfoResponseDivisions (HashMap Text GeographicDivision)

-- | The result of a voter info lookup query.
--   
--   <i>See:</i> <a>voterInfoResponse</a> smart constructor.
data VoterInfoResponse

-- | Creates a value of <a>VoterInfoResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>virOtherElections</a></li>
--   <li><a>virContests</a></li>
--   <li><a>virState</a></li>
--   <li><a>virKind</a></li>
--   <li><a>virDropOffLocations</a></li>
--   <li><a>virElection</a></li>
--   <li><a>virNormalizedInput</a></li>
--   <li><a>virMailOnly</a></li>
--   <li><a>virEarlyVoteSites</a></li>
--   <li><a>virPollingLocations</a></li>
--   <li><a>virPrecinctId</a></li>
--   </ul>
voterInfoResponse :: VoterInfoResponse

-- | If no election ID was specified in the query, and there was more than
--   one election with data for the given voter, this will contain
--   information about the other elections that could apply.
virOtherElections :: Lens' VoterInfoResponse [Election]

-- | Contests that will appear on the voter's ballot.
virContests :: Lens' VoterInfoResponse [Contest]

-- | Local Election Information for the state that the voter votes in. For
--   the US, there will only be one element in this array.
virState :: Lens' VoterInfoResponse [AdministrationRegion]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#voterInfoResponse".
virKind :: Lens' VoterInfoResponse Text

-- | Locations where a voter is eligible to drop off a completed ballot.
--   The voter must have received and completed a ballot prior to arriving
--   at the location. The location may not have ballots available on the
--   premises. These locations could be open on or before election day as
--   indicated in the pollingHours field.
virDropOffLocations :: Lens' VoterInfoResponse [PollingLocation]

-- | The election that was queried.
virElection :: Lens' VoterInfoResponse (Maybe Election)

-- | The normalized version of the requested address
virNormalizedInput :: Lens' VoterInfoResponse (Maybe SimpleAddressType)

-- | Specifies whether voters in the precinct vote only by mailing their
--   ballots (with the possible option of dropping off their ballots as
--   well).
virMailOnly :: Lens' VoterInfoResponse (Maybe Bool)

-- | Locations where the voter is eligible to vote early, prior to election
--   day.
virEarlyVoteSites :: Lens' VoterInfoResponse [PollingLocation]

-- | Locations where the voter is eligible to vote on election day.
virPollingLocations :: Lens' VoterInfoResponse [PollingLocation]
virPrecinctId :: Lens' VoterInfoResponse (Maybe Text)

-- | A location where a voter can vote. This may be an early vote site, an
--   election day voting location, or a drop off location for a completed
--   ballot.
--   
--   <i>See:</i> <a>pollingLocation</a> smart constructor.
data PollingLocation

-- | Creates a value of <a>PollingLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plVoterServices</a></li>
--   <li><a>plEndDate</a></li>
--   <li><a>plSources</a></li>
--   <li><a>plAddress</a></li>
--   <li><a>plStartDate</a></li>
--   <li><a>plPollingHours</a></li>
--   <li><a>plName</a></li>
--   <li><a>plId</a></li>
--   <li><a>plNotes</a></li>
--   </ul>
pollingLocation :: PollingLocation

-- | The services provided by this early vote site or drop off location.
--   This field is not populated for polling locations.
plVoterServices :: Lens' PollingLocation (Maybe Text)

-- | The last date that this early vote site or drop off location may be
--   used. This field is not populated for polling locations.
plEndDate :: Lens' PollingLocation (Maybe Text)

-- | A list of sources for this location. If multiple sources are listed
--   the data has been aggregated from those sources.
plSources :: Lens' PollingLocation [Source]

-- | The address of the location.
plAddress :: Lens' PollingLocation (Maybe SimpleAddressType)

-- | The first date that this early vote site or drop off location may be
--   used. This field is not populated for polling locations.
plStartDate :: Lens' PollingLocation (Maybe Text)

-- | A description of when this location is open.
plPollingHours :: Lens' PollingLocation (Maybe Text)

-- | The name of the early vote site or drop off location. This field is
--   not populated for polling locations.
plName :: Lens' PollingLocation (Maybe Text)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
plId :: Lens' PollingLocation (Maybe Text)

-- | Notes about this location (e.g. accessibility ramp or entrance to
--   use).
plNotes :: Lens' PollingLocation (Maybe Text)

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
data RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   administrativeArea1
--   </pre>
ADMINISTRATIVEAREA1 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   administrativeArea2
--   </pre>
ADMINISTRATIVEAREA2 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   country
--   </pre>
Country :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   international
--   </pre>
International :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   locality
--   </pre>
Locality :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   regional
--   </pre>
Regional :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   special
--   </pre>
Special :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   subLocality1
--   </pre>
SUBLOCALITY1 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   subLocality2
--   </pre>
SUBLOCALITY2 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | Describes a political geography.
--   
--   <i>See:</i> <a>geographicDivision</a> smart constructor.
data GeographicDivision

-- | Creates a value of <a>GeographicDivision</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdName</a></li>
--   <li><a>gdOfficeIndices</a></li>
--   <li><a>gdAlsoKnownAs</a></li>
--   </ul>
geographicDivision :: GeographicDivision

-- | The name of the division.
gdName :: Lens' GeographicDivision (Maybe Text)

-- | List of indices in the offices array, one for each office elected from
--   this division. Will only be present if includeOffices was true (or
--   absent) in the request.
gdOfficeIndices :: Lens' GeographicDivision [Word32]

-- | Any other valid OCD IDs that refer to the same division. Because OCD
--   IDs are meant to be human-readable and at least somewhat predictable,
--   there are occasionally several identifiers for a single division.
--   These identifiers are defined to be equivalent to one another, and one
--   is always indicated as the primary identifier. The primary identifier
--   will be returned in ocd_id above, and any other equivalent valid
--   identifiers will be returned in this list. For example, if this
--   division's OCD ID is ocd-division/country:us/district:dc, this will
--   contain ocd-division/country:us/state:dc.
gdAlsoKnownAs :: Lens' GeographicDivision [Text]

-- | Information about a candidate running for elected office.
--   
--   <i>See:</i> <a>candidate</a> smart constructor.
data Candidate

-- | Creates a value of <a>Candidate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cEmail</a></li>
--   <li><a>cPhone</a></li>
--   <li><a>cPhotoURL</a></li>
--   <li><a>cChannels</a></li>
--   <li><a>cCandidateURL</a></li>
--   <li><a>cOrderOnBallot</a></li>
--   <li><a>cName</a></li>
--   <li><a>cParty</a></li>
--   </ul>
candidate :: Candidate

-- | The email address for the candidate's campaign.
cEmail :: Lens' Candidate (Maybe Text)

-- | The voice phone number for the candidate's campaign office.
cPhone :: Lens' Candidate (Maybe Text)

-- | A URL for a photo of the candidate.
cPhotoURL :: Lens' Candidate (Maybe Text)

-- | A list of known (social) media channels for this candidate.
cChannels :: Lens' Candidate [Channel]

-- | The URL for the candidate's campaign web site.
cCandidateURL :: Lens' Candidate (Maybe Text)

-- | The order the candidate appears on the ballot for this contest.
cOrderOnBallot :: Lens' Candidate (Maybe Int64)

-- | The candidate's name. If this is a joint ticket it will indicate the
--   name of the candidate at the top of a ticket followed by a / and that
--   name of candidate at the bottom of the ticket. e.g. "Mitt Romney /
--   Paul Ryan"
cName :: Lens' Candidate (Maybe Text)

-- | The full name of the party the candidate is a member of.
cParty :: Lens' Candidate (Maybe Text)

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
data RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   administrativeArea1
--   </pre>
RRIBALADMINISTRATIVEAREA1 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   administrativeArea2
--   </pre>
RRIBALADMINISTRATIVEAREA2 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   country
--   </pre>
RRIBALCountry :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   international
--   </pre>
RRIBALInternational :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   locality
--   </pre>
RRIBALLocality :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   regional
--   </pre>
RRIBALRegional :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   special
--   </pre>
RRIBALSpecial :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   subLocality1
--   </pre>
RRIBALSUBLOCALITY1 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   subLocality2
--   </pre>
RRIBALSUBLOCALITY2 :: RepresentativesRepresentativeInfoByAddressLevels

-- | Information about an Office held by one or more Officials.
--   
--   <i>See:</i> <a>office</a> smart constructor.
data Office

-- | Creates a value of <a>Office</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDivisionId</a></li>
--   <li><a>oRoles</a></li>
--   <li><a>oOfficialIndices</a></li>
--   <li><a>oSources</a></li>
--   <li><a>oName</a></li>
--   <li><a>oLevels</a></li>
--   </ul>
office :: Office

-- | The OCD ID of the division with which this office is associated.
oDivisionId :: Lens' Office (Maybe Text)

-- | The roles which this office fulfills. Roles are not meant to be
--   exhaustive, or to exactly specify the entire set of responsibilities
--   of a given office, but are meant to be rough categories that are
--   useful for general selection from or sorting of a list of offices.
oRoles :: Lens' Office [Text]

-- | List of indices in the officials array of people who presently hold
--   this office.
oOfficialIndices :: Lens' Office [Word32]

-- | A list of sources for this office. If multiple sources are listed, the
--   data has been aggregated from those sources.
oSources :: Lens' Office [Source]

-- | The human-readable name of the office.
oName :: Lens' Office (Maybe Text)

-- | The levels of government of which this office is part. There may be
--   more than one in cases where a jurisdiction effectively acts at two
--   different levels of government; for example, the mayor of the District
--   of Columbia acts at "locality" level, but also effectively at both
--   "administrative-area-2" and "administrative-area-1".
oLevels :: Lens' Office [Text]

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
data RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   deputyHeadOfGovernment
--   </pre>
DeputyHeadOfGovernment :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   executiveCouncil
--   </pre>
ExecutiveCouncil :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   governmentOfficer
--   </pre>
GovernmentOfficer :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   headOfGovernment
--   </pre>
HeadOfGovernment :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   headOfState
--   </pre>
HeadOfState :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   highestCourtJudge
--   </pre>
HighestCourtJudge :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   judge
--   </pre>
Judge :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   legislatorLowerBody
--   </pre>
LegislatorLowerBody :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   legislatorUpperBody
--   </pre>
LegislatorUpperBody :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   schoolBoard
--   </pre>
SchoolBoard :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   specialPurposeOfficer
--   </pre>
SpecialPurposeOfficer :: RepresentativesRepresentativeInfoByDivisionRoles
data ElectionsQueryRequest

-- | Creates a value of <a>ElectionsQueryRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqrContextParams</a></li>
--   </ul>
electionsQueryRequest :: ElectionsQueryRequest
eqrContextParams :: Lens' ElectionsQueryRequest (Maybe ContextParams)

-- | A social media or web channel for a candidate.
--   
--   <i>See:</i> <a>channel</a> smart constructor.
data Channel

-- | Creates a value of <a>Channel</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cId</a></li>
--   <li><a>cType</a></li>
--   </ul>
channel :: Channel

-- | The unique public identifier for the candidate's channel.
cId :: Lens' Channel (Maybe Text)

-- | The type of channel. The following is a list of types of channels, but
--   is not exhaustive. More channel types may be added at a later time.
--   One of: GooglePlus, YouTube, Facebook, Twitter
cType :: Lens' Channel (Maybe Text)

-- | Information about the election that was queried.
--   
--   <i>See:</i> <a>election</a> smart constructor.
data Election

-- | Creates a value of <a>Election</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eOcdDivisionId</a></li>
--   <li><a>eElectionDay</a></li>
--   <li><a>eName</a></li>
--   <li><a>eId</a></li>
--   </ul>
election :: Election

-- | The political division of the election. Represented as an OCD Division
--   ID. Voters within these political jurisdictions are covered by this
--   election. This is typically a state such as
--   ocd-division/country:us/state:ca or for the midterms or general
--   election the entire US (i.e. ocd-division/country:us).
eOcdDivisionId :: Lens' Election (Maybe Text)

-- | Day of the election in YYYY-MM-DD format.
eElectionDay :: Lens' Election (Maybe Text)

-- | A displayable name for the election.
eName :: Lens' Election (Maybe Text)

-- | The unique ID of this election.
eId :: Lens' Election (Maybe Int64)

-- | The result of a representative info lookup query.
--   
--   <i>See:</i> <a>representativeInfoResponse</a> smart constructor.
data RepresentativeInfoResponse

-- | Creates a value of <a>RepresentativeInfoResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirKind</a></li>
--   <li><a>rirNormalizedInput</a></li>
--   <li><a>rirOfficials</a></li>
--   <li><a>rirDivisions</a></li>
--   <li><a>rirOffices</a></li>
--   </ul>
representativeInfoResponse :: RepresentativeInfoResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#representativeInfoResponse".
rirKind :: Lens' RepresentativeInfoResponse Text

-- | The normalized version of the requested address
rirNormalizedInput :: Lens' RepresentativeInfoResponse (Maybe SimpleAddressType)

-- | Officials holding the offices listed above. Will only be present if
--   includeOffices was true in the request.
rirOfficials :: Lens' RepresentativeInfoResponse [Official]

-- | Political geographic divisions that contain the requested address.
rirDivisions :: Lens' RepresentativeInfoResponse (Maybe RepresentativeInfoResponseDivisions)

-- | Elected offices referenced by the divisions listed above. Will only be
--   present if includeOffices was true in the request.
rirOffices :: Lens' RepresentativeInfoResponse [Office]
data VoterInfoSegmentResult

-- | Creates a value of <a>VoterInfoSegmentResult</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>visrResponse</a></li>
--   <li><a>visrGeneratedMillis</a></li>
--   <li><a>visrPostalAddress</a></li>
--   <li><a>visrRequest</a></li>
--   </ul>
voterInfoSegmentResult :: VoterInfoSegmentResult
visrResponse :: Lens' VoterInfoSegmentResult (Maybe VoterInfoResponse)
visrGeneratedMillis :: Lens' VoterInfoSegmentResult (Maybe Int64)
visrPostalAddress :: Lens' VoterInfoSegmentResult (Maybe PostalAddress)
visrRequest :: Lens' VoterInfoSegmentResult (Maybe VoterInfoRequest)

-- | Represents a political geographic division that matches the requested
--   query.
--   
--   <i>See:</i> <a>divisionSearchResult</a> smart constructor.
data DivisionSearchResult

-- | Creates a value of <a>DivisionSearchResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrAliases</a></li>
--   <li><a>dsrName</a></li>
--   <li><a>dsrOcdId</a></li>
--   </ul>
divisionSearchResult :: DivisionSearchResult

-- | Other Open Civic Data identifiers that refer to the same division --
--   for example, those that refer to other political divisions whose
--   boundaries are defined to be coterminous with this one. For example,
--   ocd-division/country:us/state:wy will include an alias of
--   ocd-division/country:us/state:wy/cd:1, since Wyoming has only one
--   Congressional district.
dsrAliases :: Lens' DivisionSearchResult [Text]

-- | The name of the division.
dsrName :: Lens' DivisionSearchResult (Maybe Text)

-- | The unique Open Civic Data identifier for this division.
dsrOcdId :: Lens' DivisionSearchResult (Maybe Text)

-- | A search request for political geographies.
--   
--   <i>See:</i> <a>divisionSearchRequest</a> smart constructor.
data DivisionSearchRequest

-- | Creates a value of <a>DivisionSearchRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrContextParams</a></li>
--   </ul>
divisionSearchRequest :: DivisionSearchRequest
dsrContextParams :: Lens' DivisionSearchRequest (Maybe ContextParams)

-- | Information about an election administrative body (e.g. County Board
--   of Elections).
--   
--   <i>See:</i> <a>administrativeBody</a> smart constructor.
data AdministrativeBody

-- | Creates a value of <a>AdministrativeBody</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>abCorrespondenceAddress</a></li>
--   <li><a>abAbsenteeVotingInfoURL</a></li>
--   <li><a>abHoursOfOperation</a></li>
--   <li><a>abBallotInfoURL</a></li>
--   <li><a>abPhysicalAddress</a></li>
--   <li><a>abElectionRegistrationConfirmationURL</a></li>
--   <li><a>abElectionInfoURL</a></li>
--   <li><a>abVotingLocationFinderURL</a></li>
--   <li><a>abElectionOfficials</a></li>
--   <li><a>abName</a></li>
--   <li><a>abElectionRulesURL</a></li>
--   <li><a>abAddressLines</a></li>
--   <li><a>abVoterServices</a></li>
--   <li><a>abElectionRegistrationURL</a></li>
--   </ul>
administrativeBody :: AdministrativeBody

-- | The mailing address of this administrative body.
abCorrespondenceAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)

-- | A URL provided by this administrative body for information on absentee
--   voting.
abAbsenteeVotingInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | A description of the hours of operation for this administrative body.
abHoursOfOperation :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body to give contest information
--   to the voter.
abBallotInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | The physical address of this administrative body.
abPhysicalAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)

-- | A URL provided by this administrative body for confirming that the
--   voter is registered to vote.
abElectionRegistrationConfirmationURL :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body for looking up general
--   election information.
abElectionInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body for looking up where to
--   vote.
abVotingLocationFinderURL :: Lens' AdministrativeBody (Maybe Text)

-- | The election officials for this election administrative body.
abElectionOfficials :: Lens' AdministrativeBody [ElectionOfficial]

-- | The name of this election administrative body.
abName :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body describing election rules
--   to the voter.
abElectionRulesURL :: Lens' AdministrativeBody (Maybe Text)
abAddressLines :: Lens' AdministrativeBody [Text]

-- | A description of the services this administrative body may provide.
abVoterServices :: Lens' AdministrativeBody [Text]

-- | A URL provided by this administrative body for looking up how to
--   register to vote.
abElectionRegistrationURL :: Lens' AdministrativeBody (Maybe Text)

-- | A request for political geography and representative information for
--   an address.
--   
--   <i>See:</i> <a>representativeInfoRequest</a> smart constructor.
data RepresentativeInfoRequest

-- | Creates a value of <a>RepresentativeInfoRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirContextParams</a></li>
--   </ul>
representativeInfoRequest :: RepresentativeInfoRequest
rirContextParams :: Lens' RepresentativeInfoRequest (Maybe ContextParams)

-- | Information about a contest that appears on a voter's ballot.
--   
--   <i>See:</i> <a>contest</a> smart constructor.
data Contest

-- | Creates a value of <a>Contest</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>conReferendumPassageThreshold</a></li>
--   <li><a>conRoles</a></li>
--   <li><a>conReferendumURL</a></li>
--   <li><a>conReferendumEffectOfAbstain</a></li>
--   <li><a>conReferendumSubtitle</a></li>
--   <li><a>conNumberVotingFor</a></li>
--   <li><a>conOffice</a></li>
--   <li><a>conReferendumConStatement</a></li>
--   <li><a>conSources</a></li>
--   <li><a>conReferendumProStatement</a></li>
--   <li><a>conReferendumBallotResponses</a></li>
--   <li><a>conNumberElected</a></li>
--   <li><a>conSpecial</a></li>
--   <li><a>conReferendumText</a></li>
--   <li><a>conPrimaryParty</a></li>
--   <li><a>conId</a></li>
--   <li><a>conType</a></li>
--   <li><a>conElectorateSpecifications</a></li>
--   <li><a>conReferendumBrief</a></li>
--   <li><a>conDistrict</a></li>
--   <li><a>conLevel</a></li>
--   <li><a>conCandidates</a></li>
--   <li><a>conReferendumTitle</a></li>
--   <li><a>conBallotPlacement</a></li>
--   </ul>
contest :: Contest

-- | The threshold of votes that the referendum needs in order to pass,
--   e.g. "two-thirds". This field is only populated for contests of type
--   'Referendum'.
conReferendumPassageThreshold :: Lens' Contest (Maybe Text)

-- | The roles which this office fulfills.
conRoles :: Lens' Contest [Text]

-- | A link to the referendum. This field is only populated for contests of
--   type 'Referendum'.
conReferendumURL :: Lens' Contest (Maybe Text)

-- | Specifies what effect abstaining (not voting) on the proposition will
--   have (i.e. whether abstaining is considered a vote against it). This
--   field is only populated for contests of type 'Referendum'.
conReferendumEffectOfAbstain :: Lens' Contest (Maybe Text)

-- | A brief description of the referendum. This field is only populated
--   for contests of type 'Referendum'.
conReferendumSubtitle :: Lens' Contest (Maybe Text)

-- | The number of candidates that a voter may vote for in this contest.
conNumberVotingFor :: Lens' Contest (Maybe Int64)

-- | The name of the office for this contest.
conOffice :: Lens' Contest (Maybe Text)

-- | A statement in opposition to the referendum. It does not necessarily
--   appear on the ballot. This field is only populated for contests of
--   type 'Referendum'.
conReferendumConStatement :: Lens' Contest (Maybe Text)

-- | A list of sources for this contest. If multiple sources are listed,
--   the data has been aggregated from those sources.
conSources :: Lens' Contest [Source]

-- | A statement in favor of the referendum. It does not necessarily appear
--   on the ballot. This field is only populated for contests of type
--   'Referendum'.
conReferendumProStatement :: Lens' Contest (Maybe Text)

-- | The set of ballot responses for the referendum. A ballot response
--   represents a line on the ballot. Common examples might include "yes"
--   or "no" for referenda. This field is only populated for contests of
--   type 'Referendum'.
conReferendumBallotResponses :: Lens' Contest [Text]

-- | The number of candidates that will be elected to office in this
--   contest.
conNumberElected :: Lens' Contest (Maybe Int64)

-- | "Yes" or "No" depending on whether this a contest being held outside
--   the normal election cycle.
conSpecial :: Lens' Contest (Maybe Text)

-- | The full text of the referendum. This field is only populated for
--   contests of type 'Referendum'.
conReferendumText :: Lens' Contest (Maybe Text)

-- | If this is a partisan election, the name of the party it is for.
conPrimaryParty :: Lens' Contest (Maybe Text)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
conId :: Lens' Contest (Maybe Text)

-- | The type of contest. Usually this will be 'General', 'Primary', or
--   'Run-off' for contests with candidates. For referenda this will be
--   'Referendum'. For Retention contests this will typically be
--   'Retention'.
conType :: Lens' Contest (Maybe Text)

-- | A description of any additional eligibility requirements for voting in
--   this contest.
conElectorateSpecifications :: Lens' Contest (Maybe Text)

-- | Specifies a short summary of the referendum that is typically on the
--   ballot below the title but above the text. This field is only
--   populated for contests of type 'Referendum'.
conReferendumBrief :: Lens' Contest (Maybe Text)

-- | Information about the electoral district that this contest is in.
conDistrict :: Lens' Contest (Maybe ElectoralDistrict)

-- | The levels of government of the office for this contest. There may be
--   more than one in cases where a jurisdiction effectively acts at two
--   different levels of government; for example, the mayor of the District
--   of Columbia acts at "locality" level, but also effectively at both
--   "administrative-area-2" and "administrative-area-1".
conLevel :: Lens' Contest [Text]

-- | The candidate choices for this contest.
conCandidates :: Lens' Contest [Candidate]

-- | The title of the referendum (e.g. 'Proposition 42'). This field is
--   only populated for contests of type 'Referendum'.
conReferendumTitle :: Lens' Contest (Maybe Text)

-- | A number specifying the position of this contest on the voter's
--   ballot.
conBallotPlacement :: Lens' Contest (Maybe Int64)

-- | The result of a division search query.
--   
--   <i>See:</i> <a>divisionSearchResponse</a> smart constructor.
data DivisionSearchResponse

-- | Creates a value of <a>DivisionSearchResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrResults</a></li>
--   <li><a>dsrKind</a></li>
--   </ul>
divisionSearchResponse :: DivisionSearchResponse
dsrResults :: Lens' DivisionSearchResponse [DivisionSearchResult]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#divisionSearchResponse".
dsrKind :: Lens' DivisionSearchResponse Text

-- | Political geographic divisions that contain the requested address.
--   
--   <i>See:</i> <a>representativeInfoDataDivisions</a> smart constructor.
data RepresentativeInfoDataDivisions

-- | Creates a value of <a>RepresentativeInfoDataDivisions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riddAddtional</a></li>
--   </ul>
representativeInfoDataDivisions :: HashMap Text GeographicDivision -> RepresentativeInfoDataDivisions

-- | The unique Open Civic Data identifier for this division.
riddAddtional :: Lens' RepresentativeInfoDataDivisions (HashMap Text GeographicDivision)

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
data RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   deputyHeadOfGovernment
--   </pre>
RRIBARDeputyHeadOfGovernment :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   executiveCouncil
--   </pre>
RRIBARExecutiveCouncil :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   governmentOfficer
--   </pre>
RRIBARGovernmentOfficer :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   headOfGovernment
--   </pre>
RRIBARHeadOfGovernment :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   headOfState
--   </pre>
RRIBARHeadOfState :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   highestCourtJudge
--   </pre>
RRIBARHighestCourtJudge :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   judge
--   </pre>
RRIBARJudge :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   legislatorLowerBody
--   </pre>
RRIBARLegislatorLowerBody :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   legislatorUpperBody
--   </pre>
RRIBARLegislatorUpperBody :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   schoolBoard
--   </pre>
RRIBARSchoolBoard :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   specialPurposeOfficer
--   </pre>
RRIBARSpecialPurposeOfficer :: RepresentativesRepresentativeInfoByAddressRoles

-- | Information about individual election officials.
--   
--   <i>See:</i> <a>electionOfficial</a> smart constructor.
data ElectionOfficial

-- | Creates a value of <a>ElectionOfficial</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoFaxNumber</a></li>
--   <li><a>eoName</a></li>
--   <li><a>eoOfficePhoneNumber</a></li>
--   <li><a>eoEmailAddress</a></li>
--   <li><a>eoTitle</a></li>
--   </ul>
electionOfficial :: ElectionOfficial

-- | The fax number of the election official.
eoFaxNumber :: Lens' ElectionOfficial (Maybe Text)

-- | The full name of the election official.
eoName :: Lens' ElectionOfficial (Maybe Text)

-- | The office phone number of the election official.
eoOfficePhoneNumber :: Lens' ElectionOfficial (Maybe Text)

-- | The email address of the election official.
eoEmailAddress :: Lens' ElectionOfficial (Maybe Text)

-- | The title of the election official.
eoTitle :: Lens' ElectionOfficial (Maybe Text)
data RepresentativeInfoData

-- | Creates a value of <a>RepresentativeInfoData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ridOfficials</a></li>
--   <li><a>ridDivisions</a></li>
--   <li><a>ridOffices</a></li>
--   </ul>
representativeInfoData :: RepresentativeInfoData

-- | Officials holding the offices listed above. Will only be present if
--   includeOffices was true in the request.
ridOfficials :: Lens' RepresentativeInfoData [Official]

-- | Political geographic divisions that contain the requested address.
ridDivisions :: Lens' RepresentativeInfoData (Maybe RepresentativeInfoDataDivisions)

-- | Elected offices referenced by the divisions listed above. Will only be
--   present if includeOffices was true in the request.
ridOffices :: Lens' RepresentativeInfoData [Office]

-- | Contains information about the data source for the element containing
--   it.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sName</a></li>
--   <li><a>sOfficial</a></li>
--   </ul>
source :: Source

-- | The name of the data source.
sName :: Lens' Source (Maybe Text)

-- | Whether this data comes from an official government source.
sOfficial :: Lens' Source (Maybe Bool)

-- | A request to look up representative information for a single division.
--   
--   <i>See:</i> <a>divisionRepresentativeInfoRequest</a> smart
--   constructor.
data DivisionRepresentativeInfoRequest

-- | Creates a value of <a>DivisionRepresentativeInfoRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drirContextParams</a></li>
--   </ul>
divisionRepresentativeInfoRequest :: DivisionRepresentativeInfoRequest
drirContextParams :: Lens' DivisionRepresentativeInfoRequest (Maybe ContextParams)

-- | Describes the geographic scope of a contest.
--   
--   <i>See:</i> <a>electoralDistrict</a> smart constructor.
data ElectoralDistrict

-- | Creates a value of <a>ElectoralDistrict</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edKgForeignKey</a></li>
--   <li><a>edName</a></li>
--   <li><a>edScope</a></li>
--   <li><a>edId</a></li>
--   </ul>
electoralDistrict :: ElectoralDistrict
edKgForeignKey :: Lens' ElectoralDistrict (Maybe Text)

-- | The name of the district.
edName :: Lens' ElectoralDistrict (Maybe Text)

-- | The geographic scope of this district. If unspecified the district's
--   geography is not known. One of: national, statewide, congressional,
--   stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide,
--   township, countyCouncil, cityCouncil, ward, special
edScope :: Lens' ElectoralDistrict (Maybe Text)

-- | An identifier for this district, relative to its scope. For example,
--   the 34th State Senate district would have id "34" and a scope of
--   stateUpper.
edId :: Lens' ElectoralDistrict (Maybe Text)

-- | A request for information about a voter.
--   
--   <i>See:</i> <a>voterInfoRequest</a> smart constructor.
data VoterInfoRequest

-- | Creates a value of <a>VoterInfoRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>virVoterInfoSegmentResult</a></li>
--   <li><a>virContextParams</a></li>
--   </ul>
voterInfoRequest :: VoterInfoRequest
virVoterInfoSegmentResult :: Lens' VoterInfoRequest (Maybe VoterInfoSegmentResult)
virContextParams :: Lens' VoterInfoRequest (Maybe ContextParams)

-- | A simple representation of an address.
--   
--   <i>See:</i> <a>simpleAddressType</a> smart constructor.
data SimpleAddressType

-- | Creates a value of <a>SimpleAddressType</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>satLine2</a></li>
--   <li><a>satState</a></li>
--   <li><a>satLine3</a></li>
--   <li><a>satZip</a></li>
--   <li><a>satCity</a></li>
--   <li><a>satLine1</a></li>
--   <li><a>satLocationName</a></li>
--   </ul>
simpleAddressType :: SimpleAddressType

-- | The second line the address, if needed.
satLine2 :: Lens' SimpleAddressType (Maybe Text)

-- | The US two letter state abbreviation of the address.
satState :: Lens' SimpleAddressType (Maybe Text)

-- | The third line of the address, if needed.
satLine3 :: Lens' SimpleAddressType (Maybe Text)

-- | The US Postal Zip Code of the address.
satZip :: Lens' SimpleAddressType (Maybe Text)

-- | The city or town for the address.
satCity :: Lens' SimpleAddressType (Maybe Text)

-- | The street name and number of this address.
satLine1 :: Lens' SimpleAddressType (Maybe Text)

-- | The name of the location.
satLocationName :: Lens' SimpleAddressType (Maybe Text)
data ContextParams

-- | Creates a value of <a>ContextParams</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpClientProFile</a></li>
--   </ul>
contextParams :: ContextParams
cpClientProFile :: Lens' ContextParams (Maybe Text)
data PostalAddress

-- | Creates a value of <a>PostalAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paAdministrativeAreaName</a></li>
--   <li><a>paRecipientName</a></li>
--   <li><a>paLanguageCode</a></li>
--   <li><a>paSortingCode</a></li>
--   <li><a>paPremiseName</a></li>
--   <li><a>paPostalCodeNumberExtension</a></li>
--   <li><a>paCountryNameCode</a></li>
--   <li><a>paDependentThoroughfaresConnector</a></li>
--   <li><a>paThoroughfareLeadingType</a></li>
--   <li><a>paSubAdministrativeAreaName</a></li>
--   <li><a>paThoroughfareTrailingType</a></li>
--   <li><a>paPostBoxNumber</a></li>
--   <li><a>paThoroughfarePreDirection</a></li>
--   <li><a>paLocalityName</a></li>
--   <li><a>paDependentThoroughfaresType</a></li>
--   <li><a>paThoroughfarePostDirection</a></li>
--   <li><a>paIsDisputed</a></li>
--   <li><a>paDependentThoroughfarePreDirection</a></li>
--   <li><a>paThoroughfareNumber</a></li>
--   <li><a>paDependentThoroughfaresIndicator</a></li>
--   <li><a>paDependentLocalityName</a></li>
--   <li><a>paFirmName</a></li>
--   <li><a>paCountryName</a></li>
--   <li><a>paDependentThoroughfareTrailingType</a></li>
--   <li><a>paDependentThoroughfareName</a></li>
--   <li><a>paDependentThoroughfarePostDirection</a></li>
--   <li><a>paAddressLines</a></li>
--   <li><a>paPostalCodeNumber</a></li>
--   <li><a>paThoroughfareName</a></li>
--   <li><a>paSubPremiseName</a></li>
--   <li><a>paDependentThoroughfareLeadingType</a></li>
--   </ul>
postalAddress :: PostalAddress
paAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)
paRecipientName :: Lens' PostalAddress (Maybe Text)
paLanguageCode :: Lens' PostalAddress (Maybe Text)
paSortingCode :: Lens' PostalAddress (Maybe Text)
paPremiseName :: Lens' PostalAddress (Maybe Text)
paPostalCodeNumberExtension :: Lens' PostalAddress (Maybe Text)
paCountryNameCode :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresConnector :: Lens' PostalAddress (Maybe Text)
paThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
paSubAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)
paThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
paPostBoxNumber :: Lens' PostalAddress (Maybe Text)
paThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
paLocalityName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresType :: Lens' PostalAddress (Maybe Text)
paThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
paIsDisputed :: Lens' PostalAddress (Maybe Bool)
paDependentThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
paThoroughfareNumber :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresIndicator :: Lens' PostalAddress (Maybe Text)
paDependentLocalityName :: Lens' PostalAddress (Maybe Text)
paFirmName :: Lens' PostalAddress (Maybe Text)
paCountryName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
paAddressLines :: Lens' PostalAddress [Text]
paPostalCodeNumber :: Lens' PostalAddress (Maybe Text)
paThoroughfareName :: Lens' PostalAddress (Maybe Text)
paSubPremiseName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)

-- | Describes information about a regional election administrative area.
--   
--   <i>See:</i> <a>administrationRegion</a> smart constructor.
data AdministrationRegion

-- | Creates a value of <a>AdministrationRegion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arLocalJurisdiction</a></li>
--   <li><a>arSources</a></li>
--   <li><a>arName</a></li>
--   <li><a>arElectionAdministrationBody</a></li>
--   <li><a>arId</a></li>
--   </ul>
administrationRegion :: AdministrationRegion

-- | The city or county that provides election information for this voter.
--   This object can have the same elements as state.
arLocalJurisdiction :: Lens' AdministrationRegion (Maybe AdministrationRegion)

-- | A list of sources for this area. If multiple sources are listed the
--   data has been aggregated from those sources.
arSources :: Lens' AdministrationRegion [Source]

-- | The name of the jurisdiction.
arName :: Lens' AdministrationRegion (Maybe Text)

-- | The election administration body for this area.
arElectionAdministrationBody :: Lens' AdministrationRegion (Maybe AdministrativeBody)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
arId :: Lens' AdministrationRegion (Maybe Text)

-- | The list of elections available for this version of the API.
--   
--   <i>See:</i> <a>electionsQueryResponse</a> smart constructor.
data ElectionsQueryResponse

-- | Creates a value of <a>ElectionsQueryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqrKind</a></li>
--   <li><a>eqrElections</a></li>
--   </ul>
electionsQueryResponse :: ElectionsQueryResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#electionsQueryResponse".
eqrKind :: Lens' ElectionsQueryResponse Text

-- | A list of available elections
eqrElections :: Lens' ElectionsQueryResponse [Election]

-- | Information about a person holding an elected office.
--   
--   <i>See:</i> <a>official</a> smart constructor.
data Official

-- | Creates a value of <a>Official</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>offPhotoURL</a></li>
--   <li><a>offURLs</a></li>
--   <li><a>offChannels</a></li>
--   <li><a>offAddress</a></li>
--   <li><a>offPhones</a></li>
--   <li><a>offName</a></li>
--   <li><a>offEmails</a></li>
--   <li><a>offParty</a></li>
--   </ul>
official :: Official

-- | A URL for a photo of the official.
offPhotoURL :: Lens' Official (Maybe Text)

-- | The official's public website URLs.
offURLs :: Lens' Official [Text]

-- | A list of known (social) media channels for this official.
offChannels :: Lens' Official [Channel]

-- | Addresses at which to contact the official.
offAddress :: Lens' Official [SimpleAddressType]

-- | The official's public contact phone numbers.
offPhones :: Lens' Official [Text]

-- | The official's name.
offName :: Lens' Official (Maybe Text)

-- | The direct email addresses for the official.
offEmails :: Lens' Official [Text]

-- | The full name of the party the official belongs to.
offParty :: Lens' Official (Maybe Text)


-- | Searches for political divisions by their natural name or OCD ID.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a> for
--   <tt>civicinfo.divisions.search</tt>.
module Network.Google.Resource.CivicInfo.Divisions.Search

-- | A resource alias for <tt>civicinfo.divisions.search</tt> method which
--   the <a>DivisionsSearch</a> request conforms to.
type DivisionsSearchResource = "civicinfo" :> ("v2" :> ("divisions" :> (QueryParam "query" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DivisionSearchRequest :> Get '[JSON] DivisionSearchResponse)))))

-- | Creates a value of <a>DivisionsSearch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsPayload</a></li>
--   <li><a>dsQuery</a></li>
--   </ul>
divisionsSearch :: DivisionSearchRequest -> DivisionsSearch

-- | Searches for political divisions by their natural name or OCD ID.
--   
--   <i>See:</i> <a>divisionsSearch</a> smart constructor.
data DivisionsSearch

-- | Multipart request metadata.
dsPayload :: Lens' DivisionsSearch DivisionSearchRequest

-- | The search query. Queries can cover any parts of a OCD ID or a human
--   readable division name. All words given in the query are treated as
--   required patterns. In addition to that, most query operators of the
--   Apache Lucene library are supported. See
--   http://lucene.apache.org/core/2_9_4/queryparsersyntax.html
dsQuery :: Lens' DivisionsSearch (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.CivicInfo.Divisions.Search.DivisionsSearch
instance Data.Data.Data Network.Google.Resource.CivicInfo.Divisions.Search.DivisionsSearch
instance GHC.Show.Show Network.Google.Resource.CivicInfo.Divisions.Search.DivisionsSearch
instance GHC.Classes.Eq Network.Google.Resource.CivicInfo.Divisions.Search.DivisionsSearch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CivicInfo.Divisions.Search.DivisionsSearch


-- | List of available elections to query.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a> for
--   <tt>civicinfo.elections.electionQuery</tt>.
module Network.Google.Resource.CivicInfo.Elections.ElectionQuery

-- | A resource alias for <tt>civicinfo.elections.electionQuery</tt> method
--   which the <a>ElectionsElectionQuery</a> request conforms to.
type ElectionsElectionQueryResource = "civicinfo" :> ("v2" :> ("elections" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ElectionsQueryRequest :> Get '[JSON] ElectionsQueryResponse))))

-- | Creates a value of <a>ElectionsElectionQuery</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eeqPayload</a></li>
--   </ul>
electionsElectionQuery :: ElectionsQueryRequest -> ElectionsElectionQuery

-- | List of available elections to query.
--   
--   <i>See:</i> <a>electionsElectionQuery</a> smart constructor.
data ElectionsElectionQuery

-- | Multipart request metadata.
eeqPayload :: Lens' ElectionsElectionQuery ElectionsQueryRequest
instance GHC.Generics.Generic Network.Google.Resource.CivicInfo.Elections.ElectionQuery.ElectionsElectionQuery
instance Data.Data.Data Network.Google.Resource.CivicInfo.Elections.ElectionQuery.ElectionsElectionQuery
instance GHC.Show.Show Network.Google.Resource.CivicInfo.Elections.ElectionQuery.ElectionsElectionQuery
instance GHC.Classes.Eq Network.Google.Resource.CivicInfo.Elections.ElectionQuery.ElectionsElectionQuery
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CivicInfo.Elections.ElectionQuery.ElectionsElectionQuery


-- | Looks up information relevant to a voter based on the voter's
--   registered address.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a> for
--   <tt>civicinfo.elections.voterInfoQuery</tt>.
module Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery

-- | A resource alias for <tt>civicinfo.elections.voterInfoQuery</tt>
--   method which the <a>ElectionsVoterInfoQuery</a> request conforms to.
type ElectionsVoterInfoQueryResource = "civicinfo" :> ("v2" :> ("voterinfo" :> (QueryParam "address" Text :> (QueryParam "returnAllAvailableData" Bool :> (QueryParam "electionId" (Textual Int64) :> (QueryParam "officialOnly" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] VoterInfoRequest :> Get '[JSON] VoterInfoResponse))))))))

-- | Creates a value of <a>ElectionsVoterInfoQuery</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eviqReturnAllAvailableData</a></li>
--   <li><a>eviqElectionId</a></li>
--   <li><a>eviqAddress</a></li>
--   <li><a>eviqPayload</a></li>
--   <li><a>eviqOfficialOnly</a></li>
--   </ul>
electionsVoterInfoQuery :: Text -> VoterInfoRequest -> ElectionsVoterInfoQuery

-- | Looks up information relevant to a voter based on the voter's
--   registered address.
--   
--   <i>See:</i> <a>electionsVoterInfoQuery</a> smart constructor.
data ElectionsVoterInfoQuery

-- | If set to true, the query will return the success codeand include any
--   partial information when it is unable to determine a matching address
--   or unable to determine the election for electionId=0 queries.
eviqReturnAllAvailableData :: Lens' ElectionsVoterInfoQuery Bool

-- | The unique ID of the election to look up. A list of election IDs can
--   be obtained at
--   https://www.googleapis.com/civicinfo/{version}/elections
eviqElectionId :: Lens' ElectionsVoterInfoQuery Int64

-- | The registered address of the voter to look up.
eviqAddress :: Lens' ElectionsVoterInfoQuery Text

-- | Multipart request metadata.
eviqPayload :: Lens' ElectionsVoterInfoQuery VoterInfoRequest

-- | If set to true, only data from official state sources will be
--   returned.
eviqOfficialOnly :: Lens' ElectionsVoterInfoQuery Bool
instance GHC.Generics.Generic Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery.ElectionsVoterInfoQuery
instance Data.Data.Data Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery.ElectionsVoterInfoQuery
instance GHC.Show.Show Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery.ElectionsVoterInfoQuery
instance GHC.Classes.Eq Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery.ElectionsVoterInfoQuery
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery.ElectionsVoterInfoQuery


-- | Looks up political geography and representative information for a
--   single address.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a> for
--   <tt>civicinfo.representatives.representativeInfoByAddress</tt>.
module Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress

-- | A resource alias for
--   <tt>civicinfo.representatives.representativeInfoByAddress</tt> method
--   which the <a>RepresentativesRepresentativeInfoByAddress</a> request
--   conforms to.
type RepresentativesRepresentativeInfoByAddressResource = "civicinfo" :> ("v2" :> ("representatives" :> (QueryParams "roles" RepresentativesRepresentativeInfoByAddressRoles :> (QueryParam "address" Text :> (QueryParam "includeOffices" Bool :> (QueryParams "levels" RepresentativesRepresentativeInfoByAddressLevels :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RepresentativeInfoRequest :> Get '[JSON] RepresentativeInfoResponse))))))))

-- | Creates a value of <a>RepresentativesRepresentativeInfoByAddress</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rribaRoles</a></li>
--   <li><a>rribaAddress</a></li>
--   <li><a>rribaPayload</a></li>
--   <li><a>rribaIncludeOffices</a></li>
--   <li><a>rribaLevels</a></li>
--   </ul>
representativesRepresentativeInfoByAddress :: RepresentativeInfoRequest -> RepresentativesRepresentativeInfoByAddress

-- | Looks up political geography and representative information for a
--   single address.
--   
--   <i>See:</i> <a>representativesRepresentativeInfoByAddress</a> smart
--   constructor.
data RepresentativesRepresentativeInfoByAddress

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
rribaRoles :: Lens' RepresentativesRepresentativeInfoByAddress [RepresentativesRepresentativeInfoByAddressRoles]

-- | The address to look up. May only be specified if the field ocdId is
--   not given in the URL.
rribaAddress :: Lens' RepresentativesRepresentativeInfoByAddress (Maybe Text)

-- | Multipart request metadata.
rribaPayload :: Lens' RepresentativesRepresentativeInfoByAddress RepresentativeInfoRequest

-- | Whether to return information about offices and officials. If false,
--   only the top-level district information will be returned.
rribaIncludeOffices :: Lens' RepresentativesRepresentativeInfoByAddress Bool

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
rribaLevels :: Lens' RepresentativesRepresentativeInfoByAddress [RepresentativesRepresentativeInfoByAddressLevels]
instance GHC.Generics.Generic Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress.RepresentativesRepresentativeInfoByAddress
instance Data.Data.Data Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress.RepresentativesRepresentativeInfoByAddress
instance GHC.Show.Show Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress.RepresentativesRepresentativeInfoByAddress
instance GHC.Classes.Eq Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress.RepresentativesRepresentativeInfoByAddress
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress.RepresentativesRepresentativeInfoByAddress


-- | Looks up representative information for a single geographic division.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a> for
--   <tt>civicinfo.representatives.representativeInfoByDivision</tt>.
module Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision

-- | A resource alias for
--   <tt>civicinfo.representatives.representativeInfoByDivision</tt> method
--   which the <a>RepresentativesRepresentativeInfoByDivision</a> request
--   conforms to.
type RepresentativesRepresentativeInfoByDivisionResource = "civicinfo" :> ("v2" :> ("representatives" :> (Capture "ocdId" Text :> (QueryParams "roles" RepresentativesRepresentativeInfoByDivisionRoles :> (QueryParam "recursive" Bool :> (QueryParams "levels" RepresentativesRepresentativeInfoByDivisionLevels :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DivisionRepresentativeInfoRequest :> Get '[JSON] RepresentativeInfoData))))))))

-- | Creates a value of <a>RepresentativesRepresentativeInfoByDivision</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rribdRoles</a></li>
--   <li><a>rribdPayload</a></li>
--   <li><a>rribdRecursive</a></li>
--   <li><a>rribdOcdId</a></li>
--   <li><a>rribdLevels</a></li>
--   </ul>
representativesRepresentativeInfoByDivision :: DivisionRepresentativeInfoRequest -> Text -> RepresentativesRepresentativeInfoByDivision

-- | Looks up representative information for a single geographic division.
--   
--   <i>See:</i> <a>representativesRepresentativeInfoByDivision</a> smart
--   constructor.
data RepresentativesRepresentativeInfoByDivision

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
rribdRoles :: Lens' RepresentativesRepresentativeInfoByDivision [RepresentativesRepresentativeInfoByDivisionRoles]

-- | Multipart request metadata.
rribdPayload :: Lens' RepresentativesRepresentativeInfoByDivision DivisionRepresentativeInfoRequest

-- | If true, information about all divisions contained in the division
--   requested will be included as well. For example, if querying
--   ocd-division/country:us/district:dc, this would also return all DC's
--   wards and ANCs.
rribdRecursive :: Lens' RepresentativesRepresentativeInfoByDivision (Maybe Bool)

-- | The Open Civic Data division identifier of the division to look up.
rribdOcdId :: Lens' RepresentativesRepresentativeInfoByDivision Text

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
rribdLevels :: Lens' RepresentativesRepresentativeInfoByDivision [RepresentativesRepresentativeInfoByDivisionLevels]
instance GHC.Generics.Generic Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision.RepresentativesRepresentativeInfoByDivision
instance Data.Data.Data Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision.RepresentativesRepresentativeInfoByDivision
instance GHC.Show.Show Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision.RepresentativesRepresentativeInfoByDivision
instance GHC.Classes.Eq Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision.RepresentativesRepresentativeInfoByDivision
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision.RepresentativesRepresentativeInfoByDivision


-- | Provides polling places, early vote locations, contest data, election
--   officials, and government representatives for U.S. residential
--   addresses.
--   
--   <i>See:</i> <a>Google Civic Information API Reference</a>
module Network.Google.CivicInfo

-- | Default request referring to version <tt>v2</tt> of the Google Civic
--   Information API. This contains the host and root path used as a
--   starting point for constructing service requests.
civicInfoService :: ServiceConfig

-- | Represents the entirety of the methods and resources available for the
--   Google Civic Information API service.
type CivicInfoAPI = ElectionsVoterInfoQueryResource :<|> (ElectionsElectionQueryResource :<|> (DivisionsSearchResource :<|> (RepresentativesRepresentativeInfoByDivisionResource :<|> RepresentativesRepresentativeInfoByAddressResource)))

-- | Political geographic divisions that contain the requested address.
--   
--   <i>See:</i> <a>representativeInfoResponseDivisions</a> smart
--   constructor.
data RepresentativeInfoResponseDivisions

-- | Creates a value of <a>RepresentativeInfoResponseDivisions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirdAddtional</a></li>
--   </ul>
representativeInfoResponseDivisions :: HashMap Text GeographicDivision -> RepresentativeInfoResponseDivisions

-- | The unique Open Civic Data identifier for this division.
rirdAddtional :: Lens' RepresentativeInfoResponseDivisions (HashMap Text GeographicDivision)

-- | The result of a voter info lookup query.
--   
--   <i>See:</i> <a>voterInfoResponse</a> smart constructor.
data VoterInfoResponse

-- | Creates a value of <a>VoterInfoResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>virOtherElections</a></li>
--   <li><a>virContests</a></li>
--   <li><a>virState</a></li>
--   <li><a>virKind</a></li>
--   <li><a>virDropOffLocations</a></li>
--   <li><a>virElection</a></li>
--   <li><a>virNormalizedInput</a></li>
--   <li><a>virMailOnly</a></li>
--   <li><a>virEarlyVoteSites</a></li>
--   <li><a>virPollingLocations</a></li>
--   <li><a>virPrecinctId</a></li>
--   </ul>
voterInfoResponse :: VoterInfoResponse

-- | If no election ID was specified in the query, and there was more than
--   one election with data for the given voter, this will contain
--   information about the other elections that could apply.
virOtherElections :: Lens' VoterInfoResponse [Election]

-- | Contests that will appear on the voter's ballot.
virContests :: Lens' VoterInfoResponse [Contest]

-- | Local Election Information for the state that the voter votes in. For
--   the US, there will only be one element in this array.
virState :: Lens' VoterInfoResponse [AdministrationRegion]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#voterInfoResponse".
virKind :: Lens' VoterInfoResponse Text

-- | Locations where a voter is eligible to drop off a completed ballot.
--   The voter must have received and completed a ballot prior to arriving
--   at the location. The location may not have ballots available on the
--   premises. These locations could be open on or before election day as
--   indicated in the pollingHours field.
virDropOffLocations :: Lens' VoterInfoResponse [PollingLocation]

-- | The election that was queried.
virElection :: Lens' VoterInfoResponse (Maybe Election)

-- | The normalized version of the requested address
virNormalizedInput :: Lens' VoterInfoResponse (Maybe SimpleAddressType)

-- | Specifies whether voters in the precinct vote only by mailing their
--   ballots (with the possible option of dropping off their ballots as
--   well).
virMailOnly :: Lens' VoterInfoResponse (Maybe Bool)

-- | Locations where the voter is eligible to vote early, prior to election
--   day.
virEarlyVoteSites :: Lens' VoterInfoResponse [PollingLocation]

-- | Locations where the voter is eligible to vote on election day.
virPollingLocations :: Lens' VoterInfoResponse [PollingLocation]
virPrecinctId :: Lens' VoterInfoResponse (Maybe Text)

-- | A location where a voter can vote. This may be an early vote site, an
--   election day voting location, or a drop off location for a completed
--   ballot.
--   
--   <i>See:</i> <a>pollingLocation</a> smart constructor.
data PollingLocation

-- | Creates a value of <a>PollingLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plVoterServices</a></li>
--   <li><a>plEndDate</a></li>
--   <li><a>plSources</a></li>
--   <li><a>plAddress</a></li>
--   <li><a>plStartDate</a></li>
--   <li><a>plPollingHours</a></li>
--   <li><a>plName</a></li>
--   <li><a>plId</a></li>
--   <li><a>plNotes</a></li>
--   </ul>
pollingLocation :: PollingLocation

-- | The services provided by this early vote site or drop off location.
--   This field is not populated for polling locations.
plVoterServices :: Lens' PollingLocation (Maybe Text)

-- | The last date that this early vote site or drop off location may be
--   used. This field is not populated for polling locations.
plEndDate :: Lens' PollingLocation (Maybe Text)

-- | A list of sources for this location. If multiple sources are listed
--   the data has been aggregated from those sources.
plSources :: Lens' PollingLocation [Source]

-- | The address of the location.
plAddress :: Lens' PollingLocation (Maybe SimpleAddressType)

-- | The first date that this early vote site or drop off location may be
--   used. This field is not populated for polling locations.
plStartDate :: Lens' PollingLocation (Maybe Text)

-- | A description of when this location is open.
plPollingHours :: Lens' PollingLocation (Maybe Text)

-- | The name of the early vote site or drop off location. This field is
--   not populated for polling locations.
plName :: Lens' PollingLocation (Maybe Text)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
plId :: Lens' PollingLocation (Maybe Text)

-- | Notes about this location (e.g. accessibility ramp or entrance to
--   use).
plNotes :: Lens' PollingLocation (Maybe Text)

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
data RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   administrativeArea1
--   </pre>
ADMINISTRATIVEAREA1 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   administrativeArea2
--   </pre>
ADMINISTRATIVEAREA2 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   country
--   </pre>
Country :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   international
--   </pre>
International :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   locality
--   </pre>
Locality :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   regional
--   </pre>
Regional :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   special
--   </pre>
Special :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   subLocality1
--   </pre>
SUBLOCALITY1 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | <pre>
--   subLocality2
--   </pre>
SUBLOCALITY2 :: RepresentativesRepresentativeInfoByDivisionLevels

-- | Describes a political geography.
--   
--   <i>See:</i> <a>geographicDivision</a> smart constructor.
data GeographicDivision

-- | Creates a value of <a>GeographicDivision</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdName</a></li>
--   <li><a>gdOfficeIndices</a></li>
--   <li><a>gdAlsoKnownAs</a></li>
--   </ul>
geographicDivision :: GeographicDivision

-- | The name of the division.
gdName :: Lens' GeographicDivision (Maybe Text)

-- | List of indices in the offices array, one for each office elected from
--   this division. Will only be present if includeOffices was true (or
--   absent) in the request.
gdOfficeIndices :: Lens' GeographicDivision [Word32]

-- | Any other valid OCD IDs that refer to the same division. Because OCD
--   IDs are meant to be human-readable and at least somewhat predictable,
--   there are occasionally several identifiers for a single division.
--   These identifiers are defined to be equivalent to one another, and one
--   is always indicated as the primary identifier. The primary identifier
--   will be returned in ocd_id above, and any other equivalent valid
--   identifiers will be returned in this list. For example, if this
--   division's OCD ID is ocd-division/country:us/district:dc, this will
--   contain ocd-division/country:us/state:dc.
gdAlsoKnownAs :: Lens' GeographicDivision [Text]

-- | Information about a candidate running for elected office.
--   
--   <i>See:</i> <a>candidate</a> smart constructor.
data Candidate

-- | Creates a value of <a>Candidate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cEmail</a></li>
--   <li><a>cPhone</a></li>
--   <li><a>cPhotoURL</a></li>
--   <li><a>cChannels</a></li>
--   <li><a>cCandidateURL</a></li>
--   <li><a>cOrderOnBallot</a></li>
--   <li><a>cName</a></li>
--   <li><a>cParty</a></li>
--   </ul>
candidate :: Candidate

-- | The email address for the candidate's campaign.
cEmail :: Lens' Candidate (Maybe Text)

-- | The voice phone number for the candidate's campaign office.
cPhone :: Lens' Candidate (Maybe Text)

-- | A URL for a photo of the candidate.
cPhotoURL :: Lens' Candidate (Maybe Text)

-- | A list of known (social) media channels for this candidate.
cChannels :: Lens' Candidate [Channel]

-- | The URL for the candidate's campaign web site.
cCandidateURL :: Lens' Candidate (Maybe Text)

-- | The order the candidate appears on the ballot for this contest.
cOrderOnBallot :: Lens' Candidate (Maybe Int64)

-- | The candidate's name. If this is a joint ticket it will indicate the
--   name of the candidate at the top of a ticket followed by a / and that
--   name of candidate at the bottom of the ticket. e.g. "Mitt Romney /
--   Paul Ryan"
cName :: Lens' Candidate (Maybe Text)

-- | The full name of the party the candidate is a member of.
cParty :: Lens' Candidate (Maybe Text)

-- | A list of office levels to filter by. Only offices that serve at least
--   one of these levels will be returned. Divisions that don't contain a
--   matching office will not be returned.
data RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   administrativeArea1
--   </pre>
RRIBALADMINISTRATIVEAREA1 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   administrativeArea2
--   </pre>
RRIBALADMINISTRATIVEAREA2 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   country
--   </pre>
RRIBALCountry :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   international
--   </pre>
RRIBALInternational :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   locality
--   </pre>
RRIBALLocality :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   regional
--   </pre>
RRIBALRegional :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   special
--   </pre>
RRIBALSpecial :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   subLocality1
--   </pre>
RRIBALSUBLOCALITY1 :: RepresentativesRepresentativeInfoByAddressLevels

-- | <pre>
--   subLocality2
--   </pre>
RRIBALSUBLOCALITY2 :: RepresentativesRepresentativeInfoByAddressLevels

-- | Information about an Office held by one or more Officials.
--   
--   <i>See:</i> <a>office</a> smart constructor.
data Office

-- | Creates a value of <a>Office</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDivisionId</a></li>
--   <li><a>oRoles</a></li>
--   <li><a>oOfficialIndices</a></li>
--   <li><a>oSources</a></li>
--   <li><a>oName</a></li>
--   <li><a>oLevels</a></li>
--   </ul>
office :: Office

-- | The OCD ID of the division with which this office is associated.
oDivisionId :: Lens' Office (Maybe Text)

-- | The roles which this office fulfills. Roles are not meant to be
--   exhaustive, or to exactly specify the entire set of responsibilities
--   of a given office, but are meant to be rough categories that are
--   useful for general selection from or sorting of a list of offices.
oRoles :: Lens' Office [Text]

-- | List of indices in the officials array of people who presently hold
--   this office.
oOfficialIndices :: Lens' Office [Word32]

-- | A list of sources for this office. If multiple sources are listed, the
--   data has been aggregated from those sources.
oSources :: Lens' Office [Source]

-- | The human-readable name of the office.
oName :: Lens' Office (Maybe Text)

-- | The levels of government of which this office is part. There may be
--   more than one in cases where a jurisdiction effectively acts at two
--   different levels of government; for example, the mayor of the District
--   of Columbia acts at "locality" level, but also effectively at both
--   "administrative-area-2" and "administrative-area-1".
oLevels :: Lens' Office [Text]

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
data RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   deputyHeadOfGovernment
--   </pre>
DeputyHeadOfGovernment :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   executiveCouncil
--   </pre>
ExecutiveCouncil :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   governmentOfficer
--   </pre>
GovernmentOfficer :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   headOfGovernment
--   </pre>
HeadOfGovernment :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   headOfState
--   </pre>
HeadOfState :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   highestCourtJudge
--   </pre>
HighestCourtJudge :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   judge
--   </pre>
Judge :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   legislatorLowerBody
--   </pre>
LegislatorLowerBody :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   legislatorUpperBody
--   </pre>
LegislatorUpperBody :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   schoolBoard
--   </pre>
SchoolBoard :: RepresentativesRepresentativeInfoByDivisionRoles

-- | <pre>
--   specialPurposeOfficer
--   </pre>
SpecialPurposeOfficer :: RepresentativesRepresentativeInfoByDivisionRoles
data ElectionsQueryRequest

-- | Creates a value of <a>ElectionsQueryRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqrContextParams</a></li>
--   </ul>
electionsQueryRequest :: ElectionsQueryRequest
eqrContextParams :: Lens' ElectionsQueryRequest (Maybe ContextParams)

-- | A social media or web channel for a candidate.
--   
--   <i>See:</i> <a>channel</a> smart constructor.
data Channel

-- | Creates a value of <a>Channel</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cId</a></li>
--   <li><a>cType</a></li>
--   </ul>
channel :: Channel

-- | The unique public identifier for the candidate's channel.
cId :: Lens' Channel (Maybe Text)

-- | The type of channel. The following is a list of types of channels, but
--   is not exhaustive. More channel types may be added at a later time.
--   One of: GooglePlus, YouTube, Facebook, Twitter
cType :: Lens' Channel (Maybe Text)

-- | Information about the election that was queried.
--   
--   <i>See:</i> <a>election</a> smart constructor.
data Election

-- | Creates a value of <a>Election</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eOcdDivisionId</a></li>
--   <li><a>eElectionDay</a></li>
--   <li><a>eName</a></li>
--   <li><a>eId</a></li>
--   </ul>
election :: Election

-- | The political division of the election. Represented as an OCD Division
--   ID. Voters within these political jurisdictions are covered by this
--   election. This is typically a state such as
--   ocd-division/country:us/state:ca or for the midterms or general
--   election the entire US (i.e. ocd-division/country:us).
eOcdDivisionId :: Lens' Election (Maybe Text)

-- | Day of the election in YYYY-MM-DD format.
eElectionDay :: Lens' Election (Maybe Text)

-- | A displayable name for the election.
eName :: Lens' Election (Maybe Text)

-- | The unique ID of this election.
eId :: Lens' Election (Maybe Int64)

-- | The result of a representative info lookup query.
--   
--   <i>See:</i> <a>representativeInfoResponse</a> smart constructor.
data RepresentativeInfoResponse

-- | Creates a value of <a>RepresentativeInfoResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirKind</a></li>
--   <li><a>rirNormalizedInput</a></li>
--   <li><a>rirOfficials</a></li>
--   <li><a>rirDivisions</a></li>
--   <li><a>rirOffices</a></li>
--   </ul>
representativeInfoResponse :: RepresentativeInfoResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#representativeInfoResponse".
rirKind :: Lens' RepresentativeInfoResponse Text

-- | The normalized version of the requested address
rirNormalizedInput :: Lens' RepresentativeInfoResponse (Maybe SimpleAddressType)

-- | Officials holding the offices listed above. Will only be present if
--   includeOffices was true in the request.
rirOfficials :: Lens' RepresentativeInfoResponse [Official]

-- | Political geographic divisions that contain the requested address.
rirDivisions :: Lens' RepresentativeInfoResponse (Maybe RepresentativeInfoResponseDivisions)

-- | Elected offices referenced by the divisions listed above. Will only be
--   present if includeOffices was true in the request.
rirOffices :: Lens' RepresentativeInfoResponse [Office]
data VoterInfoSegmentResult

-- | Creates a value of <a>VoterInfoSegmentResult</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>visrResponse</a></li>
--   <li><a>visrGeneratedMillis</a></li>
--   <li><a>visrPostalAddress</a></li>
--   <li><a>visrRequest</a></li>
--   </ul>
voterInfoSegmentResult :: VoterInfoSegmentResult
visrResponse :: Lens' VoterInfoSegmentResult (Maybe VoterInfoResponse)
visrGeneratedMillis :: Lens' VoterInfoSegmentResult (Maybe Int64)
visrPostalAddress :: Lens' VoterInfoSegmentResult (Maybe PostalAddress)
visrRequest :: Lens' VoterInfoSegmentResult (Maybe VoterInfoRequest)

-- | Represents a political geographic division that matches the requested
--   query.
--   
--   <i>See:</i> <a>divisionSearchResult</a> smart constructor.
data DivisionSearchResult

-- | Creates a value of <a>DivisionSearchResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrAliases</a></li>
--   <li><a>dsrName</a></li>
--   <li><a>dsrOcdId</a></li>
--   </ul>
divisionSearchResult :: DivisionSearchResult

-- | Other Open Civic Data identifiers that refer to the same division --
--   for example, those that refer to other political divisions whose
--   boundaries are defined to be coterminous with this one. For example,
--   ocd-division/country:us/state:wy will include an alias of
--   ocd-division/country:us/state:wy/cd:1, since Wyoming has only one
--   Congressional district.
dsrAliases :: Lens' DivisionSearchResult [Text]

-- | The name of the division.
dsrName :: Lens' DivisionSearchResult (Maybe Text)

-- | The unique Open Civic Data identifier for this division.
dsrOcdId :: Lens' DivisionSearchResult (Maybe Text)

-- | A search request for political geographies.
--   
--   <i>See:</i> <a>divisionSearchRequest</a> smart constructor.
data DivisionSearchRequest

-- | Creates a value of <a>DivisionSearchRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrContextParams</a></li>
--   </ul>
divisionSearchRequest :: DivisionSearchRequest
dsrContextParams :: Lens' DivisionSearchRequest (Maybe ContextParams)

-- | Information about an election administrative body (e.g. County Board
--   of Elections).
--   
--   <i>See:</i> <a>administrativeBody</a> smart constructor.
data AdministrativeBody

-- | Creates a value of <a>AdministrativeBody</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>abCorrespondenceAddress</a></li>
--   <li><a>abAbsenteeVotingInfoURL</a></li>
--   <li><a>abHoursOfOperation</a></li>
--   <li><a>abBallotInfoURL</a></li>
--   <li><a>abPhysicalAddress</a></li>
--   <li><a>abElectionRegistrationConfirmationURL</a></li>
--   <li><a>abElectionInfoURL</a></li>
--   <li><a>abVotingLocationFinderURL</a></li>
--   <li><a>abElectionOfficials</a></li>
--   <li><a>abName</a></li>
--   <li><a>abElectionRulesURL</a></li>
--   <li><a>abAddressLines</a></li>
--   <li><a>abVoterServices</a></li>
--   <li><a>abElectionRegistrationURL</a></li>
--   </ul>
administrativeBody :: AdministrativeBody

-- | The mailing address of this administrative body.
abCorrespondenceAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)

-- | A URL provided by this administrative body for information on absentee
--   voting.
abAbsenteeVotingInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | A description of the hours of operation for this administrative body.
abHoursOfOperation :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body to give contest information
--   to the voter.
abBallotInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | The physical address of this administrative body.
abPhysicalAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)

-- | A URL provided by this administrative body for confirming that the
--   voter is registered to vote.
abElectionRegistrationConfirmationURL :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body for looking up general
--   election information.
abElectionInfoURL :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body for looking up where to
--   vote.
abVotingLocationFinderURL :: Lens' AdministrativeBody (Maybe Text)

-- | The election officials for this election administrative body.
abElectionOfficials :: Lens' AdministrativeBody [ElectionOfficial]

-- | The name of this election administrative body.
abName :: Lens' AdministrativeBody (Maybe Text)

-- | A URL provided by this administrative body describing election rules
--   to the voter.
abElectionRulesURL :: Lens' AdministrativeBody (Maybe Text)
abAddressLines :: Lens' AdministrativeBody [Text]

-- | A description of the services this administrative body may provide.
abVoterServices :: Lens' AdministrativeBody [Text]

-- | A URL provided by this administrative body for looking up how to
--   register to vote.
abElectionRegistrationURL :: Lens' AdministrativeBody (Maybe Text)

-- | A request for political geography and representative information for
--   an address.
--   
--   <i>See:</i> <a>representativeInfoRequest</a> smart constructor.
data RepresentativeInfoRequest

-- | Creates a value of <a>RepresentativeInfoRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirContextParams</a></li>
--   </ul>
representativeInfoRequest :: RepresentativeInfoRequest
rirContextParams :: Lens' RepresentativeInfoRequest (Maybe ContextParams)

-- | Information about a contest that appears on a voter's ballot.
--   
--   <i>See:</i> <a>contest</a> smart constructor.
data Contest

-- | Creates a value of <a>Contest</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>conReferendumPassageThreshold</a></li>
--   <li><a>conRoles</a></li>
--   <li><a>conReferendumURL</a></li>
--   <li><a>conReferendumEffectOfAbstain</a></li>
--   <li><a>conReferendumSubtitle</a></li>
--   <li><a>conNumberVotingFor</a></li>
--   <li><a>conOffice</a></li>
--   <li><a>conReferendumConStatement</a></li>
--   <li><a>conSources</a></li>
--   <li><a>conReferendumProStatement</a></li>
--   <li><a>conReferendumBallotResponses</a></li>
--   <li><a>conNumberElected</a></li>
--   <li><a>conSpecial</a></li>
--   <li><a>conReferendumText</a></li>
--   <li><a>conPrimaryParty</a></li>
--   <li><a>conId</a></li>
--   <li><a>conType</a></li>
--   <li><a>conElectorateSpecifications</a></li>
--   <li><a>conReferendumBrief</a></li>
--   <li><a>conDistrict</a></li>
--   <li><a>conLevel</a></li>
--   <li><a>conCandidates</a></li>
--   <li><a>conReferendumTitle</a></li>
--   <li><a>conBallotPlacement</a></li>
--   </ul>
contest :: Contest

-- | The threshold of votes that the referendum needs in order to pass,
--   e.g. "two-thirds". This field is only populated for contests of type
--   'Referendum'.
conReferendumPassageThreshold :: Lens' Contest (Maybe Text)

-- | The roles which this office fulfills.
conRoles :: Lens' Contest [Text]

-- | A link to the referendum. This field is only populated for contests of
--   type 'Referendum'.
conReferendumURL :: Lens' Contest (Maybe Text)

-- | Specifies what effect abstaining (not voting) on the proposition will
--   have (i.e. whether abstaining is considered a vote against it). This
--   field is only populated for contests of type 'Referendum'.
conReferendumEffectOfAbstain :: Lens' Contest (Maybe Text)

-- | A brief description of the referendum. This field is only populated
--   for contests of type 'Referendum'.
conReferendumSubtitle :: Lens' Contest (Maybe Text)

-- | The number of candidates that a voter may vote for in this contest.
conNumberVotingFor :: Lens' Contest (Maybe Int64)

-- | The name of the office for this contest.
conOffice :: Lens' Contest (Maybe Text)

-- | A statement in opposition to the referendum. It does not necessarily
--   appear on the ballot. This field is only populated for contests of
--   type 'Referendum'.
conReferendumConStatement :: Lens' Contest (Maybe Text)

-- | A list of sources for this contest. If multiple sources are listed,
--   the data has been aggregated from those sources.
conSources :: Lens' Contest [Source]

-- | A statement in favor of the referendum. It does not necessarily appear
--   on the ballot. This field is only populated for contests of type
--   'Referendum'.
conReferendumProStatement :: Lens' Contest (Maybe Text)

-- | The set of ballot responses for the referendum. A ballot response
--   represents a line on the ballot. Common examples might include "yes"
--   or "no" for referenda. This field is only populated for contests of
--   type 'Referendum'.
conReferendumBallotResponses :: Lens' Contest [Text]

-- | The number of candidates that will be elected to office in this
--   contest.
conNumberElected :: Lens' Contest (Maybe Int64)

-- | "Yes" or "No" depending on whether this a contest being held outside
--   the normal election cycle.
conSpecial :: Lens' Contest (Maybe Text)

-- | The full text of the referendum. This field is only populated for
--   contests of type 'Referendum'.
conReferendumText :: Lens' Contest (Maybe Text)

-- | If this is a partisan election, the name of the party it is for.
conPrimaryParty :: Lens' Contest (Maybe Text)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
conId :: Lens' Contest (Maybe Text)

-- | The type of contest. Usually this will be 'General', 'Primary', or
--   'Run-off' for contests with candidates. For referenda this will be
--   'Referendum'. For Retention contests this will typically be
--   'Retention'.
conType :: Lens' Contest (Maybe Text)

-- | A description of any additional eligibility requirements for voting in
--   this contest.
conElectorateSpecifications :: Lens' Contest (Maybe Text)

-- | Specifies a short summary of the referendum that is typically on the
--   ballot below the title but above the text. This field is only
--   populated for contests of type 'Referendum'.
conReferendumBrief :: Lens' Contest (Maybe Text)

-- | Information about the electoral district that this contest is in.
conDistrict :: Lens' Contest (Maybe ElectoralDistrict)

-- | The levels of government of the office for this contest. There may be
--   more than one in cases where a jurisdiction effectively acts at two
--   different levels of government; for example, the mayor of the District
--   of Columbia acts at "locality" level, but also effectively at both
--   "administrative-area-2" and "administrative-area-1".
conLevel :: Lens' Contest [Text]

-- | The candidate choices for this contest.
conCandidates :: Lens' Contest [Candidate]

-- | The title of the referendum (e.g. 'Proposition 42'). This field is
--   only populated for contests of type 'Referendum'.
conReferendumTitle :: Lens' Contest (Maybe Text)

-- | A number specifying the position of this contest on the voter's
--   ballot.
conBallotPlacement :: Lens' Contest (Maybe Int64)

-- | The result of a division search query.
--   
--   <i>See:</i> <a>divisionSearchResponse</a> smart constructor.
data DivisionSearchResponse

-- | Creates a value of <a>DivisionSearchResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrResults</a></li>
--   <li><a>dsrKind</a></li>
--   </ul>
divisionSearchResponse :: DivisionSearchResponse
dsrResults :: Lens' DivisionSearchResponse [DivisionSearchResult]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#divisionSearchResponse".
dsrKind :: Lens' DivisionSearchResponse Text

-- | Political geographic divisions that contain the requested address.
--   
--   <i>See:</i> <a>representativeInfoDataDivisions</a> smart constructor.
data RepresentativeInfoDataDivisions

-- | Creates a value of <a>RepresentativeInfoDataDivisions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riddAddtional</a></li>
--   </ul>
representativeInfoDataDivisions :: HashMap Text GeographicDivision -> RepresentativeInfoDataDivisions

-- | The unique Open Civic Data identifier for this division.
riddAddtional :: Lens' RepresentativeInfoDataDivisions (HashMap Text GeographicDivision)

-- | A list of office roles to filter by. Only offices fulfilling one of
--   these roles will be returned. Divisions that don't contain a matching
--   office will not be returned.
data RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   deputyHeadOfGovernment
--   </pre>
RRIBARDeputyHeadOfGovernment :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   executiveCouncil
--   </pre>
RRIBARExecutiveCouncil :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   governmentOfficer
--   </pre>
RRIBARGovernmentOfficer :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   headOfGovernment
--   </pre>
RRIBARHeadOfGovernment :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   headOfState
--   </pre>
RRIBARHeadOfState :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   highestCourtJudge
--   </pre>
RRIBARHighestCourtJudge :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   judge
--   </pre>
RRIBARJudge :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   legislatorLowerBody
--   </pre>
RRIBARLegislatorLowerBody :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   legislatorUpperBody
--   </pre>
RRIBARLegislatorUpperBody :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   schoolBoard
--   </pre>
RRIBARSchoolBoard :: RepresentativesRepresentativeInfoByAddressRoles

-- | <pre>
--   specialPurposeOfficer
--   </pre>
RRIBARSpecialPurposeOfficer :: RepresentativesRepresentativeInfoByAddressRoles

-- | Information about individual election officials.
--   
--   <i>See:</i> <a>electionOfficial</a> smart constructor.
data ElectionOfficial

-- | Creates a value of <a>ElectionOfficial</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoFaxNumber</a></li>
--   <li><a>eoName</a></li>
--   <li><a>eoOfficePhoneNumber</a></li>
--   <li><a>eoEmailAddress</a></li>
--   <li><a>eoTitle</a></li>
--   </ul>
electionOfficial :: ElectionOfficial

-- | The fax number of the election official.
eoFaxNumber :: Lens' ElectionOfficial (Maybe Text)

-- | The full name of the election official.
eoName :: Lens' ElectionOfficial (Maybe Text)

-- | The office phone number of the election official.
eoOfficePhoneNumber :: Lens' ElectionOfficial (Maybe Text)

-- | The email address of the election official.
eoEmailAddress :: Lens' ElectionOfficial (Maybe Text)

-- | The title of the election official.
eoTitle :: Lens' ElectionOfficial (Maybe Text)
data RepresentativeInfoData

-- | Creates a value of <a>RepresentativeInfoData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ridOfficials</a></li>
--   <li><a>ridDivisions</a></li>
--   <li><a>ridOffices</a></li>
--   </ul>
representativeInfoData :: RepresentativeInfoData

-- | Officials holding the offices listed above. Will only be present if
--   includeOffices was true in the request.
ridOfficials :: Lens' RepresentativeInfoData [Official]

-- | Political geographic divisions that contain the requested address.
ridDivisions :: Lens' RepresentativeInfoData (Maybe RepresentativeInfoDataDivisions)

-- | Elected offices referenced by the divisions listed above. Will only be
--   present if includeOffices was true in the request.
ridOffices :: Lens' RepresentativeInfoData [Office]

-- | Contains information about the data source for the element containing
--   it.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sName</a></li>
--   <li><a>sOfficial</a></li>
--   </ul>
source :: Source

-- | The name of the data source.
sName :: Lens' Source (Maybe Text)

-- | Whether this data comes from an official government source.
sOfficial :: Lens' Source (Maybe Bool)

-- | A request to look up representative information for a single division.
--   
--   <i>See:</i> <a>divisionRepresentativeInfoRequest</a> smart
--   constructor.
data DivisionRepresentativeInfoRequest

-- | Creates a value of <a>DivisionRepresentativeInfoRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drirContextParams</a></li>
--   </ul>
divisionRepresentativeInfoRequest :: DivisionRepresentativeInfoRequest
drirContextParams :: Lens' DivisionRepresentativeInfoRequest (Maybe ContextParams)

-- | Describes the geographic scope of a contest.
--   
--   <i>See:</i> <a>electoralDistrict</a> smart constructor.
data ElectoralDistrict

-- | Creates a value of <a>ElectoralDistrict</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edKgForeignKey</a></li>
--   <li><a>edName</a></li>
--   <li><a>edScope</a></li>
--   <li><a>edId</a></li>
--   </ul>
electoralDistrict :: ElectoralDistrict
edKgForeignKey :: Lens' ElectoralDistrict (Maybe Text)

-- | The name of the district.
edName :: Lens' ElectoralDistrict (Maybe Text)

-- | The geographic scope of this district. If unspecified the district's
--   geography is not known. One of: national, statewide, congressional,
--   stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide,
--   township, countyCouncil, cityCouncil, ward, special
edScope :: Lens' ElectoralDistrict (Maybe Text)

-- | An identifier for this district, relative to its scope. For example,
--   the 34th State Senate district would have id "34" and a scope of
--   stateUpper.
edId :: Lens' ElectoralDistrict (Maybe Text)

-- | A request for information about a voter.
--   
--   <i>See:</i> <a>voterInfoRequest</a> smart constructor.
data VoterInfoRequest

-- | Creates a value of <a>VoterInfoRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>virVoterInfoSegmentResult</a></li>
--   <li><a>virContextParams</a></li>
--   </ul>
voterInfoRequest :: VoterInfoRequest
virVoterInfoSegmentResult :: Lens' VoterInfoRequest (Maybe VoterInfoSegmentResult)
virContextParams :: Lens' VoterInfoRequest (Maybe ContextParams)

-- | A simple representation of an address.
--   
--   <i>See:</i> <a>simpleAddressType</a> smart constructor.
data SimpleAddressType

-- | Creates a value of <a>SimpleAddressType</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>satLine2</a></li>
--   <li><a>satState</a></li>
--   <li><a>satLine3</a></li>
--   <li><a>satZip</a></li>
--   <li><a>satCity</a></li>
--   <li><a>satLine1</a></li>
--   <li><a>satLocationName</a></li>
--   </ul>
simpleAddressType :: SimpleAddressType

-- | The second line the address, if needed.
satLine2 :: Lens' SimpleAddressType (Maybe Text)

-- | The US two letter state abbreviation of the address.
satState :: Lens' SimpleAddressType (Maybe Text)

-- | The third line of the address, if needed.
satLine3 :: Lens' SimpleAddressType (Maybe Text)

-- | The US Postal Zip Code of the address.
satZip :: Lens' SimpleAddressType (Maybe Text)

-- | The city or town for the address.
satCity :: Lens' SimpleAddressType (Maybe Text)

-- | The street name and number of this address.
satLine1 :: Lens' SimpleAddressType (Maybe Text)

-- | The name of the location.
satLocationName :: Lens' SimpleAddressType (Maybe Text)
data ContextParams

-- | Creates a value of <a>ContextParams</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpClientProFile</a></li>
--   </ul>
contextParams :: ContextParams
cpClientProFile :: Lens' ContextParams (Maybe Text)
data PostalAddress

-- | Creates a value of <a>PostalAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paAdministrativeAreaName</a></li>
--   <li><a>paRecipientName</a></li>
--   <li><a>paLanguageCode</a></li>
--   <li><a>paSortingCode</a></li>
--   <li><a>paPremiseName</a></li>
--   <li><a>paPostalCodeNumberExtension</a></li>
--   <li><a>paCountryNameCode</a></li>
--   <li><a>paDependentThoroughfaresConnector</a></li>
--   <li><a>paThoroughfareLeadingType</a></li>
--   <li><a>paSubAdministrativeAreaName</a></li>
--   <li><a>paThoroughfareTrailingType</a></li>
--   <li><a>paPostBoxNumber</a></li>
--   <li><a>paThoroughfarePreDirection</a></li>
--   <li><a>paLocalityName</a></li>
--   <li><a>paDependentThoroughfaresType</a></li>
--   <li><a>paThoroughfarePostDirection</a></li>
--   <li><a>paIsDisputed</a></li>
--   <li><a>paDependentThoroughfarePreDirection</a></li>
--   <li><a>paThoroughfareNumber</a></li>
--   <li><a>paDependentThoroughfaresIndicator</a></li>
--   <li><a>paDependentLocalityName</a></li>
--   <li><a>paFirmName</a></li>
--   <li><a>paCountryName</a></li>
--   <li><a>paDependentThoroughfareTrailingType</a></li>
--   <li><a>paDependentThoroughfareName</a></li>
--   <li><a>paDependentThoroughfarePostDirection</a></li>
--   <li><a>paAddressLines</a></li>
--   <li><a>paPostalCodeNumber</a></li>
--   <li><a>paThoroughfareName</a></li>
--   <li><a>paSubPremiseName</a></li>
--   <li><a>paDependentThoroughfareLeadingType</a></li>
--   </ul>
postalAddress :: PostalAddress
paAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)
paRecipientName :: Lens' PostalAddress (Maybe Text)
paLanguageCode :: Lens' PostalAddress (Maybe Text)
paSortingCode :: Lens' PostalAddress (Maybe Text)
paPremiseName :: Lens' PostalAddress (Maybe Text)
paPostalCodeNumberExtension :: Lens' PostalAddress (Maybe Text)
paCountryNameCode :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresConnector :: Lens' PostalAddress (Maybe Text)
paThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
paSubAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)
paThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
paPostBoxNumber :: Lens' PostalAddress (Maybe Text)
paThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
paLocalityName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresType :: Lens' PostalAddress (Maybe Text)
paThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
paIsDisputed :: Lens' PostalAddress (Maybe Bool)
paDependentThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
paThoroughfareNumber :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfaresIndicator :: Lens' PostalAddress (Maybe Text)
paDependentLocalityName :: Lens' PostalAddress (Maybe Text)
paFirmName :: Lens' PostalAddress (Maybe Text)
paCountryName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
paAddressLines :: Lens' PostalAddress [Text]
paPostalCodeNumber :: Lens' PostalAddress (Maybe Text)
paThoroughfareName :: Lens' PostalAddress (Maybe Text)
paSubPremiseName :: Lens' PostalAddress (Maybe Text)
paDependentThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)

-- | Describes information about a regional election administrative area.
--   
--   <i>See:</i> <a>administrationRegion</a> smart constructor.
data AdministrationRegion

-- | Creates a value of <a>AdministrationRegion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arLocalJurisdiction</a></li>
--   <li><a>arSources</a></li>
--   <li><a>arName</a></li>
--   <li><a>arElectionAdministrationBody</a></li>
--   <li><a>arId</a></li>
--   </ul>
administrationRegion :: AdministrationRegion

-- | The city or county that provides election information for this voter.
--   This object can have the same elements as state.
arLocalJurisdiction :: Lens' AdministrationRegion (Maybe AdministrationRegion)

-- | A list of sources for this area. If multiple sources are listed the
--   data has been aggregated from those sources.
arSources :: Lens' AdministrationRegion [Source]

-- | The name of the jurisdiction.
arName :: Lens' AdministrationRegion (Maybe Text)

-- | The election administration body for this area.
arElectionAdministrationBody :: Lens' AdministrationRegion (Maybe AdministrativeBody)

-- | An ID for this object. IDs may change in future requests and should
--   not be cached. Access to this field requires special access that can
--   be requested from the Request more link on the Quotas page.
arId :: Lens' AdministrationRegion (Maybe Text)

-- | The list of elections available for this version of the API.
--   
--   <i>See:</i> <a>electionsQueryResponse</a> smart constructor.
data ElectionsQueryResponse

-- | Creates a value of <a>ElectionsQueryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqrKind</a></li>
--   <li><a>eqrElections</a></li>
--   </ul>
electionsQueryResponse :: ElectionsQueryResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "civicinfo#electionsQueryResponse".
eqrKind :: Lens' ElectionsQueryResponse Text

-- | A list of available elections
eqrElections :: Lens' ElectionsQueryResponse [Election]

-- | Information about a person holding an elected office.
--   
--   <i>See:</i> <a>official</a> smart constructor.
data Official

-- | Creates a value of <a>Official</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>offPhotoURL</a></li>
--   <li><a>offURLs</a></li>
--   <li><a>offChannels</a></li>
--   <li><a>offAddress</a></li>
--   <li><a>offPhones</a></li>
--   <li><a>offName</a></li>
--   <li><a>offEmails</a></li>
--   <li><a>offParty</a></li>
--   </ul>
official :: Official

-- | A URL for a photo of the official.
offPhotoURL :: Lens' Official (Maybe Text)

-- | The official's public website URLs.
offURLs :: Lens' Official [Text]

-- | A list of known (social) media channels for this official.
offChannels :: Lens' Official [Channel]

-- | Addresses at which to contact the official.
offAddress :: Lens' Official [SimpleAddressType]

-- | The official's public contact phone numbers.
offPhones :: Lens' Official [Text]

-- | The official's name.
offName :: Lens' Official (Maybe Text)

-- | The direct email addresses for the official.
offEmails :: Lens' Official [Text]

-- | The full name of the party the official belongs to.
offParty :: Lens' Official (Maybe Text)
