packages feed

gogol-civicinfo 0.3.0 → 0.4.0

raw patch · 6 files changed

+3992/−2657 lines, 6 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

- Network.Google.CivicInfo: paDependentThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfaresConnector :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfaresIndicator :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paDependentThoroughfaresType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo: paThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfaresConnector :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfaresIndicator :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paDependentThoroughfaresType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)
- Network.Google.CivicInfo.Types: paThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)
+ Network.Google.CivicInfo: conBallotTitle :: Lens' Contest (Maybe Text)
+ Network.Google.CivicInfo: data FieldMetadataProto
+ Network.Google.CivicInfo: data InternalFieldMetadataProto
+ Network.Google.CivicInfo: data InternalSourceSummaryProto
+ Network.Google.CivicInfo: data LivegraphBacktraceRecordInfo
+ Network.Google.CivicInfo: data LivegraphBacktraceRecordInfoExpInfo
+ Network.Google.CivicInfo: data MessageSet
+ Network.Google.CivicInfo: data PointProto
+ Network.Google.CivicInfo: data Provenance
+ Network.Google.CivicInfo: data StreetSegment
+ Network.Google.CivicInfo: data StreetSegmentList
+ Network.Google.CivicInfo: fieldMetadataProto :: FieldMetadataProto
+ Network.Google.CivicInfo: fmpInternal :: Lens' FieldMetadataProto (Maybe InternalFieldMetadataProto)
+ Network.Google.CivicInfo: ifmpIsAuto :: Lens' InternalFieldMetadataProto (Maybe Bool)
+ Network.Google.CivicInfo: ifmpSourceSummary :: Lens' InternalFieldMetadataProto (Maybe InternalSourceSummaryProto)
+ Network.Google.CivicInfo: internalFieldMetadataProto :: InternalFieldMetadataProto
+ Network.Google.CivicInfo: internalSourceSummaryProto :: InternalSourceSummaryProto
+ Network.Google.CivicInfo: isspDataSet :: Lens' InternalSourceSummaryProto (Maybe Text)
+ Network.Google.CivicInfo: isspProvider :: Lens' InternalSourceSummaryProto (Maybe Text)
+ Network.Google.CivicInfo: lbriDataSourcePublishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriExpId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo: lbriExpInfo :: Lens' LivegraphBacktraceRecordInfo (Maybe LivegraphBacktraceRecordInfoExpInfo)
+ Network.Google.CivicInfo: lbriIsRecon :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo: lbriIsWlmThrottled :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo: lbriNumberOfTriples :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriPriority :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo: lbriProcess :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo: lbriProxyReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriProxySentMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriRecordId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo: lbriShouldMonitorLatency :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo: lbriSubscriberReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriTopicBuildFinishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriTopicBuildStartMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo: lbriVersion :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo: lbrieiDeletedIns :: Lens' LivegraphBacktraceRecordInfoExpInfo [Text]
+ Network.Google.CivicInfo: livegraphBacktraceRecordInfo :: LivegraphBacktraceRecordInfo
+ Network.Google.CivicInfo: livegraphBacktraceRecordInfoExpInfo :: LivegraphBacktraceRecordInfoExpInfo
+ Network.Google.CivicInfo: messageSet :: MessageSet
+ Network.Google.CivicInfo: msRecordMessageSetExt :: Lens' MessageSet (Maybe LivegraphBacktraceRecordInfo)
+ Network.Google.CivicInfo: pCollidedSegmentSource :: Lens' Provenance (Maybe StreetSegmentList)
+ Network.Google.CivicInfo: pCtclContestUuid :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo: pCtclOfficeUuid :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo: pDataSetId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo: pPrecinctId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo: pPrecinctSplitId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo: pTsStreetSegmentId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo: pVIP5PrecinctId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo: pVIP5StreetSegmentId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo: pVIPStreetSegmentId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo: plLatitude :: Lens' PollingLocation (Maybe Double)
+ Network.Google.CivicInfo: plLongitude :: Lens' PollingLocation (Maybe Double)
+ Network.Google.CivicInfo: pointProto :: PointProto
+ Network.Google.CivicInfo: ppLatE7 :: Lens' PointProto (Maybe Word32)
+ Network.Google.CivicInfo: ppLngE7 :: Lens' PointProto (Maybe Word32)
+ Network.Google.CivicInfo: ppMetadata :: Lens' PointProto (Maybe FieldMetadataProto)
+ Network.Google.CivicInfo: ppTemporaryData :: Lens' PointProto (Maybe MessageSet)
+ Network.Google.CivicInfo: provenance :: Provenance
+ Network.Google.CivicInfo: ssAdministrationRegionIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssBeforeGeocodeId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssCataListUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssCity :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssCityCouncilDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssCongressionalDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssContestIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssCountyCouncilDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssCountyFips :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssDataSetId :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssEarlyVoteSiteByIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssEndHouseNumber :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssGeocodedPoint :: Lens' StreetSegment (Maybe PointProto)
+ Network.Google.CivicInfo: ssGeographicDivisionOcdIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssJudicialDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssMailOnly :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo: ssMunicipalDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssNcoaAddress :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssOddOrEvens :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssOriginalId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssPollinglocationByIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssPrecinctName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssPrecinctOcdId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssProvenances :: Lens' StreetSegment [Provenance]
+ Network.Google.CivicInfo: ssPublished :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo: ssSchoolDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssStartHouseNumber :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssStartLatE7 :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssStartLngE7 :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssState :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssStateHouseDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssStateSenateDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssStreetName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssSubAdministrativeAreaName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssSurrogateId :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo: ssTargetsmartUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssTownshipDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssUnitNumber :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssUnitType :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssVanPrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssVoterGeographicDivisionOcdIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo: ssWardDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: ssWildcard :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo: ssZip :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo: sslSegments :: Lens' StreetSegmentList [StreetSegment]
+ Network.Google.CivicInfo: streetSegment :: StreetSegment
+ Network.Google.CivicInfo: streetSegmentList :: StreetSegmentList
+ Network.Google.CivicInfo: virSegments :: Lens' VoterInfoResponse [StreetSegment]
+ Network.Google.CivicInfo.Types: conBallotTitle :: Lens' Contest (Maybe Text)
+ Network.Google.CivicInfo.Types: data FieldMetadataProto
+ Network.Google.CivicInfo.Types: data InternalFieldMetadataProto
+ Network.Google.CivicInfo.Types: data InternalSourceSummaryProto
+ Network.Google.CivicInfo.Types: data LivegraphBacktraceRecordInfo
+ Network.Google.CivicInfo.Types: data LivegraphBacktraceRecordInfoExpInfo
+ Network.Google.CivicInfo.Types: data MessageSet
+ Network.Google.CivicInfo.Types: data PointProto
+ Network.Google.CivicInfo.Types: data Provenance
+ Network.Google.CivicInfo.Types: data StreetSegment
+ Network.Google.CivicInfo.Types: data StreetSegmentList
+ Network.Google.CivicInfo.Types: fieldMetadataProto :: FieldMetadataProto
+ Network.Google.CivicInfo.Types: fmpInternal :: Lens' FieldMetadataProto (Maybe InternalFieldMetadataProto)
+ Network.Google.CivicInfo.Types: ifmpIsAuto :: Lens' InternalFieldMetadataProto (Maybe Bool)
+ Network.Google.CivicInfo.Types: ifmpSourceSummary :: Lens' InternalFieldMetadataProto (Maybe InternalSourceSummaryProto)
+ Network.Google.CivicInfo.Types: internalFieldMetadataProto :: InternalFieldMetadataProto
+ Network.Google.CivicInfo.Types: internalSourceSummaryProto :: InternalSourceSummaryProto
+ Network.Google.CivicInfo.Types: isspDataSet :: Lens' InternalSourceSummaryProto (Maybe Text)
+ Network.Google.CivicInfo.Types: isspProvider :: Lens' InternalSourceSummaryProto (Maybe Text)
+ Network.Google.CivicInfo.Types: lbriDataSourcePublishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriExpId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo.Types: lbriExpInfo :: Lens' LivegraphBacktraceRecordInfo (Maybe LivegraphBacktraceRecordInfoExpInfo)
+ Network.Google.CivicInfo.Types: lbriIsRecon :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo.Types: lbriIsWlmThrottled :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo.Types: lbriNumberOfTriples :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriPriority :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo.Types: lbriProcess :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo.Types: lbriProxyReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriProxySentMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriRecordId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo.Types: lbriShouldMonitorLatency :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)
+ Network.Google.CivicInfo.Types: lbriSubscriberReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriTopicBuildFinishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriTopicBuildStartMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)
+ Network.Google.CivicInfo.Types: lbriVersion :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)
+ Network.Google.CivicInfo.Types: lbrieiDeletedIns :: Lens' LivegraphBacktraceRecordInfoExpInfo [Text]
+ Network.Google.CivicInfo.Types: livegraphBacktraceRecordInfo :: LivegraphBacktraceRecordInfo
+ Network.Google.CivicInfo.Types: livegraphBacktraceRecordInfoExpInfo :: LivegraphBacktraceRecordInfoExpInfo
+ Network.Google.CivicInfo.Types: messageSet :: MessageSet
+ Network.Google.CivicInfo.Types: msRecordMessageSetExt :: Lens' MessageSet (Maybe LivegraphBacktraceRecordInfo)
+ Network.Google.CivicInfo.Types: pCollidedSegmentSource :: Lens' Provenance (Maybe StreetSegmentList)
+ Network.Google.CivicInfo.Types: pCtclContestUuid :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo.Types: pCtclOfficeUuid :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo.Types: pDataSetId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo.Types: pPrecinctId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo.Types: pPrecinctSplitId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo.Types: pTsStreetSegmentId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo.Types: pVIP5PrecinctId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo.Types: pVIP5StreetSegmentId :: Lens' Provenance (Maybe Text)
+ Network.Google.CivicInfo.Types: pVIPStreetSegmentId :: Lens' Provenance (Maybe Int64)
+ Network.Google.CivicInfo.Types: plLatitude :: Lens' PollingLocation (Maybe Double)
+ Network.Google.CivicInfo.Types: plLongitude :: Lens' PollingLocation (Maybe Double)
+ Network.Google.CivicInfo.Types: pointProto :: PointProto
+ Network.Google.CivicInfo.Types: ppLatE7 :: Lens' PointProto (Maybe Word32)
+ Network.Google.CivicInfo.Types: ppLngE7 :: Lens' PointProto (Maybe Word32)
+ Network.Google.CivicInfo.Types: ppMetadata :: Lens' PointProto (Maybe FieldMetadataProto)
+ Network.Google.CivicInfo.Types: ppTemporaryData :: Lens' PointProto (Maybe MessageSet)
+ Network.Google.CivicInfo.Types: provenance :: Provenance
+ Network.Google.CivicInfo.Types: ssAdministrationRegionIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssBeforeGeocodeId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssCataListUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssCity :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssCityCouncilDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssCongressionalDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssContestIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssCountyCouncilDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssCountyFips :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssDataSetId :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssEarlyVoteSiteByIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssEndHouseNumber :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssGeocodedPoint :: Lens' StreetSegment (Maybe PointProto)
+ Network.Google.CivicInfo.Types: ssGeographicDivisionOcdIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssJudicialDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssMailOnly :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo.Types: ssMunicipalDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssNcoaAddress :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssOddOrEvens :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssOriginalId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssPollinglocationByIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssPrecinctName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssPrecinctOcdId :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssProvenances :: Lens' StreetSegment [Provenance]
+ Network.Google.CivicInfo.Types: ssPublished :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo.Types: ssSchoolDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssStartHouseNumber :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssStartLatE7 :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssStartLngE7 :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssState :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssStateHouseDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssStateSenateDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssStreetName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssSubAdministrativeAreaName :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssSurrogateId :: Lens' StreetSegment (Maybe Int64)
+ Network.Google.CivicInfo.Types: ssTargetsmartUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssTownshipDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssUnitNumber :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssUnitType :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssVanPrecinctCode :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssVoterGeographicDivisionOcdIds :: Lens' StreetSegment [Text]
+ Network.Google.CivicInfo.Types: ssWardDistrict :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: ssWildcard :: Lens' StreetSegment (Maybe Bool)
+ Network.Google.CivicInfo.Types: ssZip :: Lens' StreetSegment (Maybe Text)
+ Network.Google.CivicInfo.Types: sslSegments :: Lens' StreetSegmentList [StreetSegment]
+ Network.Google.CivicInfo.Types: streetSegment :: StreetSegment
+ Network.Google.CivicInfo.Types: streetSegmentList :: StreetSegmentList
+ Network.Google.CivicInfo.Types: virSegments :: Lens' VoterInfoResponse [StreetSegment]
- Network.Google.CivicInfo: type CivicInfoAPI = ElectionsVoterInfoQueryResource :<|> (ElectionsElectionQueryResource :<|> (DivisionsSearchResource :<|> (RepresentativesRepresentativeInfoByDivisionResource :<|> RepresentativesRepresentativeInfoByAddressResource)))
+ Network.Google.CivicInfo: type CivicInfoAPI = ElectionsVoterInfoQueryResource :<|> ElectionsElectionQueryResource :<|> DivisionsSearchResource :<|> RepresentativesRepresentativeInfoByDivisionResource :<|> RepresentativesRepresentativeInfoByAddressResource
- Network.Google.Resource.CivicInfo.Divisions.Search: type DivisionsSearchResource = "civicinfo" :> ("v2" :> ("divisions" :> (QueryParam "query" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DivisionSearchRequest :> Get '[JSON] DivisionSearchResponse)))))
+ Network.Google.Resource.CivicInfo.Divisions.Search: type DivisionsSearchResource = "civicinfo" :> "v2" :> "divisions" :> QueryParam "query" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] DivisionSearchRequest :> Get '[JSON] DivisionSearchResponse
- Network.Google.Resource.CivicInfo.Elections.ElectionQuery: type ElectionsElectionQueryResource = "civicinfo" :> ("v2" :> ("elections" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ElectionsQueryRequest :> Get '[JSON] ElectionsQueryResponse))))
+ Network.Google.Resource.CivicInfo.Elections.ElectionQuery: type ElectionsElectionQueryResource = "civicinfo" :> "v2" :> "elections" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] ElectionsQueryRequest :> Get '[JSON] ElectionsQueryResponse
- Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery: 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))))))))
+ Network.Google.Resource.CivicInfo.Elections.VoterInfoQuery: 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
- Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress: 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))))))))
+ Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByAddress: 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
- Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision: 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))))))))
+ Network.Google.Resource.CivicInfo.Representatives.RepresentativeInfoByDivision: 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

Files

gen/Network/Google/CivicInfo.hs view
@@ -61,6 +61,7 @@     , virElection     , virNormalizedInput     , virMailOnly+    , virSegments     , virEarlyVoteSites     , virPollingLocations     , virPrecinctId@@ -69,6 +70,7 @@     , PollingLocation     , pollingLocation     , plVoterServices+    , plLatitude     , plEndDate     , plSources     , plAddress@@ -77,6 +79,7 @@     , plName     , plId     , plNotes+    , plLongitude      -- ** RepresentativesRepresentativeInfoByDivisionLevels     , RepresentativesRepresentativeInfoByDivisionLevels (..)@@ -88,6 +91,55 @@     , gdOfficeIndices     , gdAlsoKnownAs +    -- ** StreetSegment+    , StreetSegment+    , streetSegment+    , ssOriginalId+    , ssPollinglocationByIds+    , ssStartHouseNumber+    , ssCataListUniquePrecinctCode+    , ssState+    , ssContestIds+    , ssStateHouseDistrict+    , ssNcoaAddress+    , ssEarlyVoteSiteByIds+    , ssCountyCouncilDistrict+    , ssCityCouncilDistrict+    , ssGeocodedPoint+    , ssEndHouseNumber+    , ssSubAdministrativeAreaName+    , ssPublished+    , ssStartLatE7+    , ssZip+    , ssSurrogateId+    , ssMunicipalDistrict+    , ssWardDistrict+    , ssVoterGeographicDivisionOcdIds+    , ssStreetName+    , ssTownshipDistrict+    , ssUnitType+    , ssCongressionalDistrict+    , ssStateSenateDistrict+    , ssOddOrEvens+    , ssGeographicDivisionOcdIds+    , ssBeforeGeocodeId+    , ssDataSetId+    , ssStartLngE7+    , ssCity+    , ssWildcard+    , ssTargetsmartUniquePrecinctCode+    , ssProvenances+    , ssSchoolDistrict+    , ssMailOnly+    , ssId+    , ssUnitNumber+    , ssAdministrationRegionIds+    , ssVanPrecinctCode+    , ssJudicialDistrict+    , ssPrecinctName+    , ssCountyFips+    , ssPrecinctOcdId+     -- ** Candidate     , Candidate     , candidate@@ -116,6 +168,31 @@     -- ** RepresentativesRepresentativeInfoByDivisionRoles     , RepresentativesRepresentativeInfoByDivisionRoles (..) +    -- ** StreetSegmentList+    , StreetSegmentList+    , streetSegmentList+    , sslSegments++    -- ** LivegraphBacktraceRecordInfo+    , LivegraphBacktraceRecordInfo+    , livegraphBacktraceRecordInfo+    , lbriDataSourcePublishMsec+    , lbriTopicBuildStartMsec+    , lbriIsRecon+    , lbriPriority+    , lbriShouldMonitorLatency+    , lbriRecordId+    , lbriProxySentMsec+    , lbriExpInfo+    , lbriProcess+    , lbriTopicBuildFinishMsec+    , lbriNumberOfTriples+    , lbriProxyReceiveMsec+    , lbriVersion+    , lbriIsWlmThrottled+    , lbriExpId+    , lbriSubscriberReceiveMsec+     -- ** ElectionsQueryRequest     , ElectionsQueryRequest     , electionsQueryRequest@@ -164,6 +241,16 @@     , divisionSearchRequest     , dsrContextParams +    -- ** FieldMetadataProto+    , FieldMetadataProto+    , fieldMetadataProto+    , fmpInternal++    -- ** MessageSet+    , MessageSet+    , messageSet+    , msRecordMessageSetExt+     -- ** AdministrativeBody     , AdministrativeBody     , administrativeBody@@ -207,6 +294,7 @@     , conPrimaryParty     , conId     , conType+    , conBallotTitle     , conElectorateSpecifications     , conReferendumBrief     , conDistrict@@ -238,6 +326,14 @@     , eoEmailAddress     , eoTitle +    -- ** PointProto+    , PointProto+    , pointProto+    , ppLatE7+    , ppLngE7+    , ppMetadata+    , ppTemporaryData+     -- ** RepresentativeInfoData     , RepresentativeInfoData     , representativeInfoData@@ -281,6 +377,17 @@     , satLine1     , satLocationName +    -- ** InternalSourceSummaryProto+    , InternalSourceSummaryProto+    , internalSourceSummaryProto+    , isspDataSet+    , isspProvider++    -- ** LivegraphBacktraceRecordInfoExpInfo+    , LivegraphBacktraceRecordInfoExpInfo+    , livegraphBacktraceRecordInfoExpInfo+    , lbrieiDeletedIns+     -- ** ContextParams     , ContextParams     , contextParams@@ -296,31 +403,26 @@     , paPremiseName     , paPostalCodeNumberExtension     , paCountryNameCode-    , paDependentThoroughfaresConnector-    , paThoroughfareLeadingType     , paSubAdministrativeAreaName-    , paThoroughfareTrailingType     , paPostBoxNumber-    , paThoroughfarePreDirection     , paLocalityName-    , paDependentThoroughfaresType-    , paThoroughfarePostDirection     , paIsDisputed-    , paDependentThoroughfarePreDirection     , paThoroughfareNumber-    , paDependentThoroughfaresIndicator     , paDependentLocalityName     , paFirmName     , paCountryName-    , paDependentThoroughfareTrailingType     , paDependentThoroughfareName-    , paDependentThoroughfarePostDirection     , paAddressLines     , paPostalCodeNumber     , paThoroughfareName     , paSubPremiseName-    , paDependentThoroughfareLeadingType +    -- ** InternalFieldMetadataProto+    , InternalFieldMetadataProto+    , internalFieldMetadataProto+    , ifmpSourceSummary+    , ifmpIsAuto+     -- ** AdministrationRegion     , AdministrationRegion     , administrationRegion@@ -329,6 +431,20 @@     , arName     , arElectionAdministrationBody     , arId++    -- ** Provenance+    , Provenance+    , provenance+    , pTsStreetSegmentId+    , pVIPStreetSegmentId+    , pCollidedSegmentSource+    , pCtclContestUuid+    , pDataSetId+    , pVIP5StreetSegmentId+    , pCtclOfficeUuid+    , pVIP5PrecinctId+    , pPrecinctSplitId+    , pPrecinctId      -- ** ElectionsQueryResponse     , ElectionsQueryResponse
gen/Network/Google/CivicInfo/Types.hs view
@@ -35,6 +35,7 @@     , virElection     , virNormalizedInput     , virMailOnly+    , virSegments     , virEarlyVoteSites     , virPollingLocations     , virPrecinctId@@ -43,6 +44,7 @@     , PollingLocation     , pollingLocation     , plVoterServices+    , plLatitude     , plEndDate     , plSources     , plAddress@@ -51,6 +53,7 @@     , plName     , plId     , plNotes+    , plLongitude      -- * RepresentativesRepresentativeInfoByDivisionLevels     , RepresentativesRepresentativeInfoByDivisionLevels (..)@@ -62,6 +65,55 @@     , gdOfficeIndices     , gdAlsoKnownAs +    -- * StreetSegment+    , StreetSegment+    , streetSegment+    , ssOriginalId+    , ssPollinglocationByIds+    , ssStartHouseNumber+    , ssCataListUniquePrecinctCode+    , ssState+    , ssContestIds+    , ssStateHouseDistrict+    , ssNcoaAddress+    , ssEarlyVoteSiteByIds+    , ssCountyCouncilDistrict+    , ssCityCouncilDistrict+    , ssGeocodedPoint+    , ssEndHouseNumber+    , ssSubAdministrativeAreaName+    , ssPublished+    , ssStartLatE7+    , ssZip+    , ssSurrogateId+    , ssMunicipalDistrict+    , ssWardDistrict+    , ssVoterGeographicDivisionOcdIds+    , ssStreetName+    , ssTownshipDistrict+    , ssUnitType+    , ssCongressionalDistrict+    , ssStateSenateDistrict+    , ssOddOrEvens+    , ssGeographicDivisionOcdIds+    , ssBeforeGeocodeId+    , ssDataSetId+    , ssStartLngE7+    , ssCity+    , ssWildcard+    , ssTargetsmartUniquePrecinctCode+    , ssProvenances+    , ssSchoolDistrict+    , ssMailOnly+    , ssId+    , ssUnitNumber+    , ssAdministrationRegionIds+    , ssVanPrecinctCode+    , ssJudicialDistrict+    , ssPrecinctName+    , ssCountyFips+    , ssPrecinctOcdId+     -- * Candidate     , Candidate     , candidate@@ -90,6 +142,31 @@     -- * RepresentativesRepresentativeInfoByDivisionRoles     , RepresentativesRepresentativeInfoByDivisionRoles (..) +    -- * StreetSegmentList+    , StreetSegmentList+    , streetSegmentList+    , sslSegments++    -- * LivegraphBacktraceRecordInfo+    , LivegraphBacktraceRecordInfo+    , livegraphBacktraceRecordInfo+    , lbriDataSourcePublishMsec+    , lbriTopicBuildStartMsec+    , lbriIsRecon+    , lbriPriority+    , lbriShouldMonitorLatency+    , lbriRecordId+    , lbriProxySentMsec+    , lbriExpInfo+    , lbriProcess+    , lbriTopicBuildFinishMsec+    , lbriNumberOfTriples+    , lbriProxyReceiveMsec+    , lbriVersion+    , lbriIsWlmThrottled+    , lbriExpId+    , lbriSubscriberReceiveMsec+     -- * ElectionsQueryRequest     , ElectionsQueryRequest     , electionsQueryRequest@@ -138,6 +215,16 @@     , divisionSearchRequest     , dsrContextParams +    -- * FieldMetadataProto+    , FieldMetadataProto+    , fieldMetadataProto+    , fmpInternal++    -- * MessageSet+    , MessageSet+    , messageSet+    , msRecordMessageSetExt+     -- * AdministrativeBody     , AdministrativeBody     , administrativeBody@@ -181,6 +268,7 @@     , conPrimaryParty     , conId     , conType+    , conBallotTitle     , conElectorateSpecifications     , conReferendumBrief     , conDistrict@@ -212,6 +300,14 @@     , eoEmailAddress     , eoTitle +    -- * PointProto+    , PointProto+    , pointProto+    , ppLatE7+    , ppLngE7+    , ppMetadata+    , ppTemporaryData+     -- * RepresentativeInfoData     , RepresentativeInfoData     , representativeInfoData@@ -255,6 +351,17 @@     , satLine1     , satLocationName +    -- * InternalSourceSummaryProto+    , InternalSourceSummaryProto+    , internalSourceSummaryProto+    , isspDataSet+    , isspProvider++    -- * LivegraphBacktraceRecordInfoExpInfo+    , LivegraphBacktraceRecordInfoExpInfo+    , livegraphBacktraceRecordInfoExpInfo+    , lbrieiDeletedIns+     -- * ContextParams     , ContextParams     , contextParams@@ -270,31 +377,26 @@     , paPremiseName     , paPostalCodeNumberExtension     , paCountryNameCode-    , paDependentThoroughfaresConnector-    , paThoroughfareLeadingType     , paSubAdministrativeAreaName-    , paThoroughfareTrailingType     , paPostBoxNumber-    , paThoroughfarePreDirection     , paLocalityName-    , paDependentThoroughfaresType-    , paThoroughfarePostDirection     , paIsDisputed-    , paDependentThoroughfarePreDirection     , paThoroughfareNumber-    , paDependentThoroughfaresIndicator     , paDependentLocalityName     , paFirmName     , paCountryName-    , paDependentThoroughfareTrailingType     , paDependentThoroughfareName-    , paDependentThoroughfarePostDirection     , paAddressLines     , paPostalCodeNumber     , paThoroughfareName     , paSubPremiseName-    , paDependentThoroughfareLeadingType +    -- * InternalFieldMetadataProto+    , InternalFieldMetadataProto+    , internalFieldMetadataProto+    , ifmpSourceSummary+    , ifmpIsAuto+     -- * AdministrationRegion     , AdministrationRegion     , administrationRegion@@ -303,6 +405,20 @@     , arName     , arElectionAdministrationBody     , arId++    -- * Provenance+    , Provenance+    , provenance+    , pTsStreetSegmentId+    , pVIPStreetSegmentId+    , pCollidedSegmentSource+    , pCtclContestUuid+    , pDataSetId+    , pVIP5StreetSegmentId+    , pCtclOfficeUuid+    , pVIP5PrecinctId+    , pPrecinctSplitId+    , pPrecinctId      -- * ElectionsQueryResponse     , ElectionsQueryResponse
gen/Network/Google/CivicInfo/Types/Product.hs view
@@ -71,2637 +71,3737 @@     , _virElection         :: !(Maybe Election)     , _virNormalizedInput  :: !(Maybe SimpleAddressType)     , _virMailOnly         :: !(Maybe Bool)-    , _virEarlyVoteSites   :: !(Maybe [PollingLocation])-    , _virPollingLocations :: !(Maybe [PollingLocation])-    , _virPrecinctId       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VoterInfoResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'virOtherElections'------ * 'virContests'------ * 'virState'------ * 'virKind'------ * 'virDropOffLocations'------ * 'virElection'------ * 'virNormalizedInput'------ * 'virMailOnly'------ * 'virEarlyVoteSites'------ * 'virPollingLocations'------ * 'virPrecinctId'-voterInfoResponse-    :: VoterInfoResponse-voterInfoResponse =-    VoterInfoResponse'-    { _virOtherElections = Nothing-    , _virContests = Nothing-    , _virState = Nothing-    , _virKind = "civicinfo#voterInfoResponse"-    , _virDropOffLocations = Nothing-    , _virElection = Nothing-    , _virNormalizedInput = Nothing-    , _virMailOnly = Nothing-    , _virEarlyVoteSites = Nothing-    , _virPollingLocations = Nothing-    , _virPrecinctId = Nothing-    }---- | 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]-virOtherElections-  = lens _virOtherElections-      (\ s a -> s{_virOtherElections = a})-      . _Default-      . _Coerce---- | Contests that will appear on the voter\'s ballot.-virContests :: Lens' VoterInfoResponse [Contest]-virContests-  = lens _virContests (\ s a -> s{_virContests = a}) .-      _Default-      . _Coerce---- | 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]-virState-  = lens _virState (\ s a -> s{_virState = a}) .-      _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"civicinfo#voterInfoResponse\".-virKind :: Lens' VoterInfoResponse Text-virKind = lens _virKind (\ s a -> s{_virKind = a})---- | 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]-virDropOffLocations-  = lens _virDropOffLocations-      (\ s a -> s{_virDropOffLocations = a})-      . _Default-      . _Coerce---- | The election that was queried.-virElection :: Lens' VoterInfoResponse (Maybe Election)-virElection-  = lens _virElection (\ s a -> s{_virElection = a})---- | The normalized version of the requested address-virNormalizedInput :: Lens' VoterInfoResponse (Maybe SimpleAddressType)-virNormalizedInput-  = lens _virNormalizedInput-      (\ s a -> s{_virNormalizedInput = a})---- | 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)-virMailOnly-  = lens _virMailOnly (\ s a -> s{_virMailOnly = a})---- | Locations where the voter is eligible to vote early, prior to election--- day.-virEarlyVoteSites :: Lens' VoterInfoResponse [PollingLocation]-virEarlyVoteSites-  = lens _virEarlyVoteSites-      (\ s a -> s{_virEarlyVoteSites = a})-      . _Default-      . _Coerce---- | Locations where the voter is eligible to vote on election day.-virPollingLocations :: Lens' VoterInfoResponse [PollingLocation]-virPollingLocations-  = lens _virPollingLocations-      (\ s a -> s{_virPollingLocations = a})-      . _Default-      . _Coerce--virPrecinctId :: Lens' VoterInfoResponse (Maybe Text)-virPrecinctId-  = lens _virPrecinctId-      (\ s a -> s{_virPrecinctId = a})--instance FromJSON VoterInfoResponse where-        parseJSON-          = withObject "VoterInfoResponse"-              (\ o ->-                 VoterInfoResponse' <$>-                   (o .:? "otherElections" .!= mempty) <*>-                     (o .:? "contests" .!= mempty)-                     <*> (o .:? "state" .!= mempty)-                     <*> (o .:? "kind" .!= "civicinfo#voterInfoResponse")-                     <*> (o .:? "dropOffLocations" .!= mempty)-                     <*> (o .:? "election")-                     <*> (o .:? "normalizedInput")-                     <*> (o .:? "mailOnly")-                     <*> (o .:? "earlyVoteSites" .!= mempty)-                     <*> (o .:? "pollingLocations" .!= mempty)-                     <*> (o .:? "precinctId"))--instance ToJSON VoterInfoResponse where-        toJSON VoterInfoResponse'{..}-          = object-              (catMaybes-                 [("otherElections" .=) <$> _virOtherElections,-                  ("contests" .=) <$> _virContests,-                  ("state" .=) <$> _virState,-                  Just ("kind" .= _virKind),-                  ("dropOffLocations" .=) <$> _virDropOffLocations,-                  ("election" .=) <$> _virElection,-                  ("normalizedInput" .=) <$> _virNormalizedInput,-                  ("mailOnly" .=) <$> _virMailOnly,-                  ("earlyVoteSites" .=) <$> _virEarlyVoteSites,-                  ("pollingLocations" .=) <$> _virPollingLocations,-                  ("precinctId" .=) <$> _virPrecinctId])---- | 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.------ /See:/ 'pollingLocation' smart constructor.-data PollingLocation = PollingLocation'-    { _plVoterServices :: !(Maybe Text)-    , _plEndDate       :: !(Maybe Text)-    , _plSources       :: !(Maybe [Source])-    , _plAddress       :: !(Maybe SimpleAddressType)-    , _plStartDate     :: !(Maybe Text)-    , _plPollingHours  :: !(Maybe Text)-    , _plName          :: !(Maybe Text)-    , _plId            :: !(Maybe Text)-    , _plNotes         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'PollingLocation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plVoterServices'------ * 'plEndDate'------ * 'plSources'------ * 'plAddress'------ * 'plStartDate'------ * 'plPollingHours'------ * 'plName'------ * 'plId'------ * 'plNotes'-pollingLocation-    :: PollingLocation-pollingLocation =-    PollingLocation'-    { _plVoterServices = Nothing-    , _plEndDate = Nothing-    , _plSources = Nothing-    , _plAddress = Nothing-    , _plStartDate = Nothing-    , _plPollingHours = Nothing-    , _plName = Nothing-    , _plId = Nothing-    , _plNotes = Nothing-    }---- | 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)-plVoterServices-  = lens _plVoterServices-      (\ s a -> s{_plVoterServices = a})---- | 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)-plEndDate-  = lens _plEndDate (\ s a -> s{_plEndDate = a})---- | A list of sources for this location. If multiple sources are listed the--- data has been aggregated from those sources.-plSources :: Lens' PollingLocation [Source]-plSources-  = lens _plSources (\ s a -> s{_plSources = a}) .-      _Default-      . _Coerce---- | The address of the location.-plAddress :: Lens' PollingLocation (Maybe SimpleAddressType)-plAddress-  = lens _plAddress (\ s a -> s{_plAddress = a})---- | 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)-plStartDate-  = lens _plStartDate (\ s a -> s{_plStartDate = a})---- | A description of when this location is open.-plPollingHours :: Lens' PollingLocation (Maybe Text)-plPollingHours-  = lens _plPollingHours-      (\ s a -> s{_plPollingHours = a})---- | The name of the early vote site or drop off location. This field is not--- populated for polling locations.-plName :: Lens' PollingLocation (Maybe Text)-plName = lens _plName (\ s a -> s{_plName = a})---- | 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)-plId = lens _plId (\ s a -> s{_plId = a})---- | Notes about this location (e.g. accessibility ramp or entrance to use).-plNotes :: Lens' PollingLocation (Maybe Text)-plNotes = lens _plNotes (\ s a -> s{_plNotes = a})--instance FromJSON PollingLocation where-        parseJSON-          = withObject "PollingLocation"-              (\ o ->-                 PollingLocation' <$>-                   (o .:? "voterServices") <*> (o .:? "endDate") <*>-                     (o .:? "sources" .!= mempty)-                     <*> (o .:? "address")-                     <*> (o .:? "startDate")-                     <*> (o .:? "pollingHours")-                     <*> (o .:? "name")-                     <*> (o .:? "id")-                     <*> (o .:? "notes"))--instance ToJSON PollingLocation where-        toJSON PollingLocation'{..}-          = object-              (catMaybes-                 [("voterServices" .=) <$> _plVoterServices,-                  ("endDate" .=) <$> _plEndDate,-                  ("sources" .=) <$> _plSources,-                  ("address" .=) <$> _plAddress,-                  ("startDate" .=) <$> _plStartDate,-                  ("pollingHours" .=) <$> _plPollingHours,-                  ("name" .=) <$> _plName, ("id" .=) <$> _plId,-                  ("notes" .=) <$> _plNotes])---- | Describes a political geography.------ /See:/ 'geographicDivision' smart constructor.-data GeographicDivision = GeographicDivision'-    { _gdName          :: !(Maybe Text)-    , _gdOfficeIndices :: !(Maybe [Textual Word32])-    , _gdAlsoKnownAs   :: !(Maybe [Text])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GeographicDivision' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gdName'------ * 'gdOfficeIndices'------ * 'gdAlsoKnownAs'-geographicDivision-    :: GeographicDivision-geographicDivision =-    GeographicDivision'-    { _gdName = Nothing-    , _gdOfficeIndices = Nothing-    , _gdAlsoKnownAs = Nothing-    }---- | The name of the division.-gdName :: Lens' GeographicDivision (Maybe Text)-gdName = lens _gdName (\ s a -> s{_gdName = a})---- | 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]-gdOfficeIndices-  = lens _gdOfficeIndices-      (\ s a -> s{_gdOfficeIndices = a})-      . _Default-      . _Coerce---- | 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]-gdAlsoKnownAs-  = lens _gdAlsoKnownAs-      (\ s a -> s{_gdAlsoKnownAs = a})-      . _Default-      . _Coerce--instance FromJSON GeographicDivision where-        parseJSON-          = withObject "GeographicDivision"-              (\ o ->-                 GeographicDivision' <$>-                   (o .:? "name") <*> (o .:? "officeIndices" .!= mempty)-                     <*> (o .:? "alsoKnownAs" .!= mempty))--instance ToJSON GeographicDivision where-        toJSON GeographicDivision'{..}-          = object-              (catMaybes-                 [("name" .=) <$> _gdName,-                  ("officeIndices" .=) <$> _gdOfficeIndices,-                  ("alsoKnownAs" .=) <$> _gdAlsoKnownAs])---- | Information about a candidate running for elected office.------ /See:/ 'candidate' smart constructor.-data Candidate = Candidate'-    { _cEmail         :: !(Maybe Text)-    , _cPhone         :: !(Maybe Text)-    , _cPhotoURL      :: !(Maybe Text)-    , _cChannels      :: !(Maybe [Channel])-    , _cCandidateURL  :: !(Maybe Text)-    , _cOrderOnBallot :: !(Maybe (Textual Int64))-    , _cName          :: !(Maybe Text)-    , _cParty         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Candidate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cEmail'------ * 'cPhone'------ * 'cPhotoURL'------ * 'cChannels'------ * 'cCandidateURL'------ * 'cOrderOnBallot'------ * 'cName'------ * 'cParty'-candidate-    :: Candidate-candidate =-    Candidate'-    { _cEmail = Nothing-    , _cPhone = Nothing-    , _cPhotoURL = Nothing-    , _cChannels = Nothing-    , _cCandidateURL = Nothing-    , _cOrderOnBallot = Nothing-    , _cName = Nothing-    , _cParty = Nothing-    }---- | The email address for the candidate\'s campaign.-cEmail :: Lens' Candidate (Maybe Text)-cEmail = lens _cEmail (\ s a -> s{_cEmail = a})---- | The voice phone number for the candidate\'s campaign office.-cPhone :: Lens' Candidate (Maybe Text)-cPhone = lens _cPhone (\ s a -> s{_cPhone = a})---- | A URL for a photo of the candidate.-cPhotoURL :: Lens' Candidate (Maybe Text)-cPhotoURL-  = lens _cPhotoURL (\ s a -> s{_cPhotoURL = a})---- | A list of known (social) media channels for this candidate.-cChannels :: Lens' Candidate [Channel]-cChannels-  = lens _cChannels (\ s a -> s{_cChannels = a}) .-      _Default-      . _Coerce---- | The URL for the candidate\'s campaign web site.-cCandidateURL :: Lens' Candidate (Maybe Text)-cCandidateURL-  = lens _cCandidateURL-      (\ s a -> s{_cCandidateURL = a})---- | The order the candidate appears on the ballot for this contest.-cOrderOnBallot :: Lens' Candidate (Maybe Int64)-cOrderOnBallot-  = lens _cOrderOnBallot-      (\ s a -> s{_cOrderOnBallot = a})-      . mapping _Coerce---- | 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)-cName = lens _cName (\ s a -> s{_cName = a})---- | The full name of the party the candidate is a member of.-cParty :: Lens' Candidate (Maybe Text)-cParty = lens _cParty (\ s a -> s{_cParty = a})--instance FromJSON Candidate where-        parseJSON-          = withObject "Candidate"-              (\ o ->-                 Candidate' <$>-                   (o .:? "email") <*> (o .:? "phone") <*>-                     (o .:? "photoUrl")-                     <*> (o .:? "channels" .!= mempty)-                     <*> (o .:? "candidateUrl")-                     <*> (o .:? "orderOnBallot")-                     <*> (o .:? "name")-                     <*> (o .:? "party"))--instance ToJSON Candidate where-        toJSON Candidate'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _cEmail, ("phone" .=) <$> _cPhone,-                  ("photoUrl" .=) <$> _cPhotoURL,-                  ("channels" .=) <$> _cChannels,-                  ("candidateUrl" .=) <$> _cCandidateURL,-                  ("orderOnBallot" .=) <$> _cOrderOnBallot,-                  ("name" .=) <$> _cName, ("party" .=) <$> _cParty])---- | Information about an Office held by one or more Officials.------ /See:/ 'office' smart constructor.-data Office = Office'-    { _oDivisionId      :: !(Maybe Text)-    , _oRoles           :: !(Maybe [Text])-    , _oOfficialIndices :: !(Maybe [Textual Word32])-    , _oSources         :: !(Maybe [Source])-    , _oName            :: !(Maybe Text)-    , _oLevels          :: !(Maybe [Text])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Office' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'oDivisionId'------ * 'oRoles'------ * 'oOfficialIndices'------ * 'oSources'------ * 'oName'------ * 'oLevels'-office-    :: Office-office =-    Office'-    { _oDivisionId = Nothing-    , _oRoles = Nothing-    , _oOfficialIndices = Nothing-    , _oSources = Nothing-    , _oName = Nothing-    , _oLevels = Nothing-    }---- | The OCD ID of the division with which this office is associated.-oDivisionId :: Lens' Office (Maybe Text)-oDivisionId-  = lens _oDivisionId (\ s a -> s{_oDivisionId = a})---- | 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]-oRoles-  = lens _oRoles (\ s a -> s{_oRoles = a}) . _Default .-      _Coerce---- | List of indices in the officials array of people who presently hold this--- office.-oOfficialIndices :: Lens' Office [Word32]-oOfficialIndices-  = lens _oOfficialIndices-      (\ s a -> s{_oOfficialIndices = a})-      . _Default-      . _Coerce---- | A list of sources for this office. If multiple sources are listed, the--- data has been aggregated from those sources.-oSources :: Lens' Office [Source]-oSources-  = lens _oSources (\ s a -> s{_oSources = a}) .-      _Default-      . _Coerce---- | The human-readable name of the office.-oName :: Lens' Office (Maybe Text)-oName = lens _oName (\ s a -> s{_oName = a})---- | 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]-oLevels-  = lens _oLevels (\ s a -> s{_oLevels = a}) . _Default-      . _Coerce--instance FromJSON Office where-        parseJSON-          = withObject "Office"-              (\ o ->-                 Office' <$>-                   (o .:? "divisionId") <*> (o .:? "roles" .!= mempty)-                     <*> (o .:? "officialIndices" .!= mempty)-                     <*> (o .:? "sources" .!= mempty)-                     <*> (o .:? "name")-                     <*> (o .:? "levels" .!= mempty))--instance ToJSON Office where-        toJSON Office'{..}-          = object-              (catMaybes-                 [("divisionId" .=) <$> _oDivisionId,-                  ("roles" .=) <$> _oRoles,-                  ("officialIndices" .=) <$> _oOfficialIndices,-                  ("sources" .=) <$> _oSources, ("name" .=) <$> _oName,-                  ("levels" .=) <$> _oLevels])------- /See:/ 'electionsQueryRequest' smart constructor.-newtype ElectionsQueryRequest = ElectionsQueryRequest'-    { _eqrContextParams :: Maybe ContextParams-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ElectionsQueryRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eqrContextParams'-electionsQueryRequest-    :: ElectionsQueryRequest-electionsQueryRequest =-    ElectionsQueryRequest'-    { _eqrContextParams = Nothing-    }--eqrContextParams :: Lens' ElectionsQueryRequest (Maybe ContextParams)-eqrContextParams-  = lens _eqrContextParams-      (\ s a -> s{_eqrContextParams = a})--instance FromJSON ElectionsQueryRequest where-        parseJSON-          = withObject "ElectionsQueryRequest"-              (\ o ->-                 ElectionsQueryRequest' <$> (o .:? "contextParams"))--instance ToJSON ElectionsQueryRequest where-        toJSON ElectionsQueryRequest'{..}-          = object-              (catMaybes-                 [("contextParams" .=) <$> _eqrContextParams])---- | A social media or web channel for a candidate.------ /See:/ 'channel' smart constructor.-data Channel = Channel'-    { _cId   :: !(Maybe Text)-    , _cType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Channel' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cId'------ * 'cType'-channel-    :: Channel-channel =-    Channel'-    { _cId = Nothing-    , _cType = Nothing-    }---- | The unique public identifier for the candidate\'s channel.-cId :: Lens' Channel (Maybe Text)-cId = lens _cId (\ s a -> s{_cId = a})---- | 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)-cType = lens _cType (\ s a -> s{_cType = a})--instance FromJSON Channel where-        parseJSON-          = withObject "Channel"-              (\ o -> Channel' <$> (o .:? "id") <*> (o .:? "type"))--instance ToJSON Channel where-        toJSON Channel'{..}-          = object-              (catMaybes-                 [("id" .=) <$> _cId, ("type" .=) <$> _cType])---- | Information about the election that was queried.------ /See:/ 'election' smart constructor.-data Election = Election'-    { _eOcdDivisionId :: !(Maybe Text)-    , _eElectionDay   :: !(Maybe Text)-    , _eName          :: !(Maybe Text)-    , _eId            :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Election' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eOcdDivisionId'------ * 'eElectionDay'------ * 'eName'------ * 'eId'-election-    :: Election-election =-    Election'-    { _eOcdDivisionId = Nothing-    , _eElectionDay = Nothing-    , _eName = Nothing-    , _eId = Nothing-    }---- | 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)-eOcdDivisionId-  = lens _eOcdDivisionId-      (\ s a -> s{_eOcdDivisionId = a})---- | Day of the election in YYYY-MM-DD format.-eElectionDay :: Lens' Election (Maybe Text)-eElectionDay-  = lens _eElectionDay (\ s a -> s{_eElectionDay = a})---- | A displayable name for the election.-eName :: Lens' Election (Maybe Text)-eName = lens _eName (\ s a -> s{_eName = a})---- | The unique ID of this election.-eId :: Lens' Election (Maybe Int64)-eId-  = lens _eId (\ s a -> s{_eId = a}) . mapping _Coerce--instance FromJSON Election where-        parseJSON-          = withObject "Election"-              (\ o ->-                 Election' <$>-                   (o .:? "ocdDivisionId") <*> (o .:? "electionDay") <*>-                     (o .:? "name")-                     <*> (o .:? "id"))--instance ToJSON Election where-        toJSON Election'{..}-          = object-              (catMaybes-                 [("ocdDivisionId" .=) <$> _eOcdDivisionId,-                  ("electionDay" .=) <$> _eElectionDay,-                  ("name" .=) <$> _eName, ("id" .=) <$> _eId])---- | The result of a representative info lookup query.------ /See:/ 'representativeInfoResponse' smart constructor.-data RepresentativeInfoResponse = RepresentativeInfoResponse'-    { _rirKind            :: !Text-    , _rirNormalizedInput :: !(Maybe SimpleAddressType)-    , _rirOfficials       :: !(Maybe [Official])-    , _rirDivisions       :: !(Maybe RepresentativeInfoResponseDivisions)-    , _rirOffices         :: !(Maybe [Office])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RepresentativeInfoResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rirKind'------ * 'rirNormalizedInput'------ * 'rirOfficials'------ * 'rirDivisions'------ * 'rirOffices'-representativeInfoResponse-    :: RepresentativeInfoResponse-representativeInfoResponse =-    RepresentativeInfoResponse'-    { _rirKind = "civicinfo#representativeInfoResponse"-    , _rirNormalizedInput = Nothing-    , _rirOfficials = Nothing-    , _rirDivisions = Nothing-    , _rirOffices = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"civicinfo#representativeInfoResponse\".-rirKind :: Lens' RepresentativeInfoResponse Text-rirKind = lens _rirKind (\ s a -> s{_rirKind = a})---- | The normalized version of the requested address-rirNormalizedInput :: Lens' RepresentativeInfoResponse (Maybe SimpleAddressType)-rirNormalizedInput-  = lens _rirNormalizedInput-      (\ s a -> s{_rirNormalizedInput = a})---- | Officials holding the offices listed above. Will only be present if--- includeOffices was true in the request.-rirOfficials :: Lens' RepresentativeInfoResponse [Official]-rirOfficials-  = lens _rirOfficials (\ s a -> s{_rirOfficials = a})-      . _Default-      . _Coerce---- | Political geographic divisions that contain the requested address.-rirDivisions :: Lens' RepresentativeInfoResponse (Maybe RepresentativeInfoResponseDivisions)-rirDivisions-  = lens _rirDivisions (\ s a -> s{_rirDivisions = a})---- | Elected offices referenced by the divisions listed above. Will only be--- present if includeOffices was true in the request.-rirOffices :: Lens' RepresentativeInfoResponse [Office]-rirOffices-  = lens _rirOffices (\ s a -> s{_rirOffices = a}) .-      _Default-      . _Coerce--instance FromJSON RepresentativeInfoResponse where-        parseJSON-          = withObject "RepresentativeInfoResponse"-              (\ o ->-                 RepresentativeInfoResponse' <$>-                   (o .:? "kind" .!=-                      "civicinfo#representativeInfoResponse")-                     <*> (o .:? "normalizedInput")-                     <*> (o .:? "officials" .!= mempty)-                     <*> (o .:? "divisions")-                     <*> (o .:? "offices" .!= mempty))--instance ToJSON RepresentativeInfoResponse where-        toJSON RepresentativeInfoResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _rirKind),-                  ("normalizedInput" .=) <$> _rirNormalizedInput,-                  ("officials" .=) <$> _rirOfficials,-                  ("divisions" .=) <$> _rirDivisions,-                  ("offices" .=) <$> _rirOffices])------- /See:/ 'voterInfoSegmentResult' smart constructor.-data VoterInfoSegmentResult = VoterInfoSegmentResult'-    { _visrResponse        :: !(Maybe VoterInfoResponse)-    , _visrGeneratedMillis :: !(Maybe (Textual Int64))-    , _visrPostalAddress   :: !(Maybe PostalAddress)-    , _visrRequest         :: !(Maybe VoterInfoRequest)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VoterInfoSegmentResult' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'visrResponse'------ * 'visrGeneratedMillis'------ * 'visrPostalAddress'------ * 'visrRequest'-voterInfoSegmentResult-    :: VoterInfoSegmentResult-voterInfoSegmentResult =-    VoterInfoSegmentResult'-    { _visrResponse = Nothing-    , _visrGeneratedMillis = Nothing-    , _visrPostalAddress = Nothing-    , _visrRequest = Nothing-    }--visrResponse :: Lens' VoterInfoSegmentResult (Maybe VoterInfoResponse)-visrResponse-  = lens _visrResponse (\ s a -> s{_visrResponse = a})--visrGeneratedMillis :: Lens' VoterInfoSegmentResult (Maybe Int64)-visrGeneratedMillis-  = lens _visrGeneratedMillis-      (\ s a -> s{_visrGeneratedMillis = a})-      . mapping _Coerce--visrPostalAddress :: Lens' VoterInfoSegmentResult (Maybe PostalAddress)-visrPostalAddress-  = lens _visrPostalAddress-      (\ s a -> s{_visrPostalAddress = a})--visrRequest :: Lens' VoterInfoSegmentResult (Maybe VoterInfoRequest)-visrRequest-  = lens _visrRequest (\ s a -> s{_visrRequest = a})--instance FromJSON VoterInfoSegmentResult where-        parseJSON-          = withObject "VoterInfoSegmentResult"-              (\ o ->-                 VoterInfoSegmentResult' <$>-                   (o .:? "response") <*> (o .:? "generatedMillis") <*>-                     (o .:? "postalAddress")-                     <*> (o .:? "request"))--instance ToJSON VoterInfoSegmentResult where-        toJSON VoterInfoSegmentResult'{..}-          = object-              (catMaybes-                 [("response" .=) <$> _visrResponse,-                  ("generatedMillis" .=) <$> _visrGeneratedMillis,-                  ("postalAddress" .=) <$> _visrPostalAddress,-                  ("request" .=) <$> _visrRequest])---- | Represents a political geographic division that matches the requested--- query.------ /See:/ 'divisionSearchResult' smart constructor.-data DivisionSearchResult = DivisionSearchResult'-    { _dsrAliases :: !(Maybe [Text])-    , _dsrName    :: !(Maybe Text)-    , _dsrOcdId   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DivisionSearchResult' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsrAliases'------ * 'dsrName'------ * 'dsrOcdId'-divisionSearchResult-    :: DivisionSearchResult-divisionSearchResult =-    DivisionSearchResult'-    { _dsrAliases = Nothing-    , _dsrName = Nothing-    , _dsrOcdId = Nothing-    }---- | 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]-dsrAliases-  = lens _dsrAliases (\ s a -> s{_dsrAliases = a}) .-      _Default-      . _Coerce---- | The name of the division.-dsrName :: Lens' DivisionSearchResult (Maybe Text)-dsrName = lens _dsrName (\ s a -> s{_dsrName = a})---- | The unique Open Civic Data identifier for this division.-dsrOcdId :: Lens' DivisionSearchResult (Maybe Text)-dsrOcdId = lens _dsrOcdId (\ s a -> s{_dsrOcdId = a})--instance FromJSON DivisionSearchResult where-        parseJSON-          = withObject "DivisionSearchResult"-              (\ o ->-                 DivisionSearchResult' <$>-                   (o .:? "aliases" .!= mempty) <*> (o .:? "name") <*>-                     (o .:? "ocdId"))--instance ToJSON DivisionSearchResult where-        toJSON DivisionSearchResult'{..}-          = object-              (catMaybes-                 [("aliases" .=) <$> _dsrAliases,-                  ("name" .=) <$> _dsrName,-                  ("ocdId" .=) <$> _dsrOcdId])---- | A search request for political geographies.------ /See:/ 'divisionSearchRequest' smart constructor.-newtype DivisionSearchRequest = DivisionSearchRequest'-    { _dsrContextParams :: Maybe ContextParams-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DivisionSearchRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsrContextParams'-divisionSearchRequest-    :: DivisionSearchRequest-divisionSearchRequest =-    DivisionSearchRequest'-    { _dsrContextParams = Nothing-    }--dsrContextParams :: Lens' DivisionSearchRequest (Maybe ContextParams)-dsrContextParams-  = lens _dsrContextParams-      (\ s a -> s{_dsrContextParams = a})--instance FromJSON DivisionSearchRequest where-        parseJSON-          = withObject "DivisionSearchRequest"-              (\ o ->-                 DivisionSearchRequest' <$> (o .:? "contextParams"))--instance ToJSON DivisionSearchRequest where-        toJSON DivisionSearchRequest'{..}-          = object-              (catMaybes-                 [("contextParams" .=) <$> _dsrContextParams])---- | Information about an election administrative body (e.g. County Board of--- Elections).------ /See:/ 'administrativeBody' smart constructor.-data AdministrativeBody = AdministrativeBody'-    { _abCorrespondenceAddress               :: !(Maybe SimpleAddressType)-    , _abAbsenteeVotingInfoURL               :: !(Maybe Text)-    , _abHoursOfOperation                    :: !(Maybe Text)-    , _abBallotInfoURL                       :: !(Maybe Text)-    , _abPhysicalAddress                     :: !(Maybe SimpleAddressType)-    , _abElectionRegistrationConfirmationURL :: !(Maybe Text)-    , _abElectionInfoURL                     :: !(Maybe Text)-    , _abVotingLocationFinderURL             :: !(Maybe Text)-    , _abElectionOfficials                   :: !(Maybe [ElectionOfficial])-    , _abName                                :: !(Maybe Text)-    , _abElectionRulesURL                    :: !(Maybe Text)-    , _abAddressLines                        :: !(Maybe [Text])-    , _abVoterServices                       :: !(Maybe [Text])-    , _abElectionRegistrationURL             :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministrativeBody' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'abCorrespondenceAddress'------ * 'abAbsenteeVotingInfoURL'------ * 'abHoursOfOperation'------ * 'abBallotInfoURL'------ * 'abPhysicalAddress'------ * 'abElectionRegistrationConfirmationURL'------ * 'abElectionInfoURL'------ * 'abVotingLocationFinderURL'------ * 'abElectionOfficials'------ * 'abName'------ * 'abElectionRulesURL'------ * 'abAddressLines'------ * 'abVoterServices'------ * 'abElectionRegistrationURL'-administrativeBody-    :: AdministrativeBody-administrativeBody =-    AdministrativeBody'-    { _abCorrespondenceAddress = Nothing-    , _abAbsenteeVotingInfoURL = Nothing-    , _abHoursOfOperation = Nothing-    , _abBallotInfoURL = Nothing-    , _abPhysicalAddress = Nothing-    , _abElectionRegistrationConfirmationURL = Nothing-    , _abElectionInfoURL = Nothing-    , _abVotingLocationFinderURL = Nothing-    , _abElectionOfficials = Nothing-    , _abName = Nothing-    , _abElectionRulesURL = Nothing-    , _abAddressLines = Nothing-    , _abVoterServices = Nothing-    , _abElectionRegistrationURL = Nothing-    }---- | The mailing address of this administrative body.-abCorrespondenceAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)-abCorrespondenceAddress-  = lens _abCorrespondenceAddress-      (\ s a -> s{_abCorrespondenceAddress = a})---- | A URL provided by this administrative body for information on absentee--- voting.-abAbsenteeVotingInfoURL :: Lens' AdministrativeBody (Maybe Text)-abAbsenteeVotingInfoURL-  = lens _abAbsenteeVotingInfoURL-      (\ s a -> s{_abAbsenteeVotingInfoURL = a})---- | A description of the hours of operation for this administrative body.-abHoursOfOperation :: Lens' AdministrativeBody (Maybe Text)-abHoursOfOperation-  = lens _abHoursOfOperation-      (\ s a -> s{_abHoursOfOperation = a})---- | A URL provided by this administrative body to give contest information--- to the voter.-abBallotInfoURL :: Lens' AdministrativeBody (Maybe Text)-abBallotInfoURL-  = lens _abBallotInfoURL-      (\ s a -> s{_abBallotInfoURL = a})---- | The physical address of this administrative body.-abPhysicalAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)-abPhysicalAddress-  = lens _abPhysicalAddress-      (\ s a -> s{_abPhysicalAddress = a})---- | A URL provided by this administrative body for confirming that the voter--- is registered to vote.-abElectionRegistrationConfirmationURL :: Lens' AdministrativeBody (Maybe Text)-abElectionRegistrationConfirmationURL-  = lens _abElectionRegistrationConfirmationURL-      (\ s a ->-         s{_abElectionRegistrationConfirmationURL = a})---- | A URL provided by this administrative body for looking up general--- election information.-abElectionInfoURL :: Lens' AdministrativeBody (Maybe Text)-abElectionInfoURL-  = lens _abElectionInfoURL-      (\ s a -> s{_abElectionInfoURL = a})---- | A URL provided by this administrative body for looking up where to vote.-abVotingLocationFinderURL :: Lens' AdministrativeBody (Maybe Text)-abVotingLocationFinderURL-  = lens _abVotingLocationFinderURL-      (\ s a -> s{_abVotingLocationFinderURL = a})---- | The election officials for this election administrative body.-abElectionOfficials :: Lens' AdministrativeBody [ElectionOfficial]-abElectionOfficials-  = lens _abElectionOfficials-      (\ s a -> s{_abElectionOfficials = a})-      . _Default-      . _Coerce---- | The name of this election administrative body.-abName :: Lens' AdministrativeBody (Maybe Text)-abName = lens _abName (\ s a -> s{_abName = a})---- | A URL provided by this administrative body describing election rules to--- the voter.-abElectionRulesURL :: Lens' AdministrativeBody (Maybe Text)-abElectionRulesURL-  = lens _abElectionRulesURL-      (\ s a -> s{_abElectionRulesURL = a})--abAddressLines :: Lens' AdministrativeBody [Text]-abAddressLines-  = lens _abAddressLines-      (\ s a -> s{_abAddressLines = a})-      . _Default-      . _Coerce---- | A description of the services this administrative body may provide.-abVoterServices :: Lens' AdministrativeBody [Text]-abVoterServices-  = lens _abVoterServices-      (\ s a -> s{_abVoterServices = a})-      . _Default-      . _Coerce---- | A URL provided by this administrative body for looking up how to--- register to vote.-abElectionRegistrationURL :: Lens' AdministrativeBody (Maybe Text)-abElectionRegistrationURL-  = lens _abElectionRegistrationURL-      (\ s a -> s{_abElectionRegistrationURL = a})--instance FromJSON AdministrativeBody where-        parseJSON-          = withObject "AdministrativeBody"-              (\ o ->-                 AdministrativeBody' <$>-                   (o .:? "correspondenceAddress") <*>-                     (o .:? "absenteeVotingInfoUrl")-                     <*> (o .:? "hoursOfOperation")-                     <*> (o .:? "ballotInfoUrl")-                     <*> (o .:? "physicalAddress")-                     <*> (o .:? "electionRegistrationConfirmationUrl")-                     <*> (o .:? "electionInfoUrl")-                     <*> (o .:? "votingLocationFinderUrl")-                     <*> (o .:? "electionOfficials" .!= mempty)-                     <*> (o .:? "name")-                     <*> (o .:? "electionRulesUrl")-                     <*> (o .:? "addressLines" .!= mempty)-                     <*> (o .:? "voter_services" .!= mempty)-                     <*> (o .:? "electionRegistrationUrl"))--instance ToJSON AdministrativeBody where-        toJSON AdministrativeBody'{..}-          = object-              (catMaybes-                 [("correspondenceAddress" .=) <$>-                    _abCorrespondenceAddress,-                  ("absenteeVotingInfoUrl" .=) <$>-                    _abAbsenteeVotingInfoURL,-                  ("hoursOfOperation" .=) <$> _abHoursOfOperation,-                  ("ballotInfoUrl" .=) <$> _abBallotInfoURL,-                  ("physicalAddress" .=) <$> _abPhysicalAddress,-                  ("electionRegistrationConfirmationUrl" .=) <$>-                    _abElectionRegistrationConfirmationURL,-                  ("electionInfoUrl" .=) <$> _abElectionInfoURL,-                  ("votingLocationFinderUrl" .=) <$>-                    _abVotingLocationFinderURL,-                  ("electionOfficials" .=) <$> _abElectionOfficials,-                  ("name" .=) <$> _abName,-                  ("electionRulesUrl" .=) <$> _abElectionRulesURL,-                  ("addressLines" .=) <$> _abAddressLines,-                  ("voter_services" .=) <$> _abVoterServices,-                  ("electionRegistrationUrl" .=) <$>-                    _abElectionRegistrationURL])---- | A request for political geography and representative information for an--- address.------ /See:/ 'representativeInfoRequest' smart constructor.-newtype RepresentativeInfoRequest = RepresentativeInfoRequest'-    { _rirContextParams :: Maybe ContextParams-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RepresentativeInfoRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rirContextParams'-representativeInfoRequest-    :: RepresentativeInfoRequest-representativeInfoRequest =-    RepresentativeInfoRequest'-    { _rirContextParams = Nothing-    }--rirContextParams :: Lens' RepresentativeInfoRequest (Maybe ContextParams)-rirContextParams-  = lens _rirContextParams-      (\ s a -> s{_rirContextParams = a})--instance FromJSON RepresentativeInfoRequest where-        parseJSON-          = withObject "RepresentativeInfoRequest"-              (\ o ->-                 RepresentativeInfoRequest' <$>-                   (o .:? "contextParams"))--instance ToJSON RepresentativeInfoRequest where-        toJSON RepresentativeInfoRequest'{..}-          = object-              (catMaybes-                 [("contextParams" .=) <$> _rirContextParams])---- | Information about a contest that appears on a voter\'s ballot.------ /See:/ 'contest' smart constructor.-data Contest = Contest'-    { _conReferendumPassageThreshold :: !(Maybe Text)-    , _conRoles                      :: !(Maybe [Text])-    , _conReferendumURL              :: !(Maybe Text)-    , _conReferendumEffectOfAbstain  :: !(Maybe Text)-    , _conReferendumSubtitle         :: !(Maybe Text)-    , _conNumberVotingFor            :: !(Maybe (Textual Int64))-    , _conOffice                     :: !(Maybe Text)-    , _conReferendumConStatement     :: !(Maybe Text)-    , _conSources                    :: !(Maybe [Source])-    , _conReferendumProStatement     :: !(Maybe Text)-    , _conReferendumBallotResponses  :: !(Maybe [Text])-    , _conNumberElected              :: !(Maybe (Textual Int64))-    , _conSpecial                    :: !(Maybe Text)-    , _conReferendumText             :: !(Maybe Text)-    , _conPrimaryParty               :: !(Maybe Text)-    , _conId                         :: !(Maybe Text)-    , _conType                       :: !(Maybe Text)-    , _conElectorateSpecifications   :: !(Maybe Text)-    , _conReferendumBrief            :: !(Maybe Text)-    , _conDistrict                   :: !(Maybe ElectoralDistrict)-    , _conLevel                      :: !(Maybe [Text])-    , _conCandidates                 :: !(Maybe [Candidate])-    , _conReferendumTitle            :: !(Maybe Text)-    , _conBallotPlacement            :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Contest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'conReferendumPassageThreshold'------ * 'conRoles'------ * 'conReferendumURL'------ * 'conReferendumEffectOfAbstain'------ * 'conReferendumSubtitle'------ * 'conNumberVotingFor'------ * 'conOffice'------ * 'conReferendumConStatement'------ * 'conSources'------ * 'conReferendumProStatement'------ * 'conReferendumBallotResponses'------ * 'conNumberElected'------ * 'conSpecial'------ * 'conReferendumText'------ * 'conPrimaryParty'------ * 'conId'------ * 'conType'------ * 'conElectorateSpecifications'------ * 'conReferendumBrief'------ * 'conDistrict'------ * 'conLevel'------ * 'conCandidates'------ * 'conReferendumTitle'------ * 'conBallotPlacement'-contest-    :: Contest-contest =-    Contest'-    { _conReferendumPassageThreshold = Nothing-    , _conRoles = Nothing-    , _conReferendumURL = Nothing-    , _conReferendumEffectOfAbstain = Nothing-    , _conReferendumSubtitle = Nothing-    , _conNumberVotingFor = Nothing-    , _conOffice = Nothing-    , _conReferendumConStatement = Nothing-    , _conSources = Nothing-    , _conReferendumProStatement = Nothing-    , _conReferendumBallotResponses = Nothing-    , _conNumberElected = Nothing-    , _conSpecial = Nothing-    , _conReferendumText = Nothing-    , _conPrimaryParty = Nothing-    , _conId = Nothing-    , _conType = Nothing-    , _conElectorateSpecifications = Nothing-    , _conReferendumBrief = Nothing-    , _conDistrict = Nothing-    , _conLevel = Nothing-    , _conCandidates = Nothing-    , _conReferendumTitle = Nothing-    , _conBallotPlacement = Nothing-    }---- | 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)-conReferendumPassageThreshold-  = lens _conReferendumPassageThreshold-      (\ s a -> s{_conReferendumPassageThreshold = a})---- | The roles which this office fulfills.-conRoles :: Lens' Contest [Text]-conRoles-  = lens _conRoles (\ s a -> s{_conRoles = a}) .-      _Default-      . _Coerce---- | A link to the referendum. This field is only populated for contests of--- type \'Referendum\'.-conReferendumURL :: Lens' Contest (Maybe Text)-conReferendumURL-  = lens _conReferendumURL-      (\ s a -> s{_conReferendumURL = a})---- | 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)-conReferendumEffectOfAbstain-  = lens _conReferendumEffectOfAbstain-      (\ s a -> s{_conReferendumEffectOfAbstain = a})---- | A brief description of the referendum. This field is only populated for--- contests of type \'Referendum\'.-conReferendumSubtitle :: Lens' Contest (Maybe Text)-conReferendumSubtitle-  = lens _conReferendumSubtitle-      (\ s a -> s{_conReferendumSubtitle = a})---- | The number of candidates that a voter may vote for in this contest.-conNumberVotingFor :: Lens' Contest (Maybe Int64)-conNumberVotingFor-  = lens _conNumberVotingFor-      (\ s a -> s{_conNumberVotingFor = a})-      . mapping _Coerce---- | The name of the office for this contest.-conOffice :: Lens' Contest (Maybe Text)-conOffice-  = lens _conOffice (\ s a -> s{_conOffice = a})---- | 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)-conReferendumConStatement-  = lens _conReferendumConStatement-      (\ s a -> s{_conReferendumConStatement = a})---- | A list of sources for this contest. If multiple sources are listed, the--- data has been aggregated from those sources.-conSources :: Lens' Contest [Source]-conSources-  = lens _conSources (\ s a -> s{_conSources = a}) .-      _Default-      . _Coerce---- | 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)-conReferendumProStatement-  = lens _conReferendumProStatement-      (\ s a -> s{_conReferendumProStatement = a})---- | 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]-conReferendumBallotResponses-  = lens _conReferendumBallotResponses-      (\ s a -> s{_conReferendumBallotResponses = a})-      . _Default-      . _Coerce---- | The number of candidates that will be elected to office in this contest.-conNumberElected :: Lens' Contest (Maybe Int64)-conNumberElected-  = lens _conNumberElected-      (\ s a -> s{_conNumberElected = a})-      . mapping _Coerce---- | \"Yes\" or \"No\" depending on whether this a contest being held outside--- the normal election cycle.-conSpecial :: Lens' Contest (Maybe Text)-conSpecial-  = lens _conSpecial (\ s a -> s{_conSpecial = a})---- | The full text of the referendum. This field is only populated for--- contests of type \'Referendum\'.-conReferendumText :: Lens' Contest (Maybe Text)-conReferendumText-  = lens _conReferendumText-      (\ s a -> s{_conReferendumText = a})---- | If this is a partisan election, the name of the party it is for.-conPrimaryParty :: Lens' Contest (Maybe Text)-conPrimaryParty-  = lens _conPrimaryParty-      (\ s a -> s{_conPrimaryParty = a})---- | 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)-conId = lens _conId (\ s a -> s{_conId = a})---- | 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)-conType = lens _conType (\ s a -> s{_conType = a})---- | A description of any additional eligibility requirements for voting in--- this contest.-conElectorateSpecifications :: Lens' Contest (Maybe Text)-conElectorateSpecifications-  = lens _conElectorateSpecifications-      (\ s a -> s{_conElectorateSpecifications = a})---- | 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)-conReferendumBrief-  = lens _conReferendumBrief-      (\ s a -> s{_conReferendumBrief = a})---- | Information about the electoral district that this contest is in.-conDistrict :: Lens' Contest (Maybe ElectoralDistrict)-conDistrict-  = lens _conDistrict (\ s a -> s{_conDistrict = a})---- | 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]-conLevel-  = lens _conLevel (\ s a -> s{_conLevel = a}) .-      _Default-      . _Coerce---- | The candidate choices for this contest.-conCandidates :: Lens' Contest [Candidate]-conCandidates-  = lens _conCandidates-      (\ s a -> s{_conCandidates = a})-      . _Default-      . _Coerce---- | The title of the referendum (e.g. \'Proposition 42\'). This field is--- only populated for contests of type \'Referendum\'.-conReferendumTitle :: Lens' Contest (Maybe Text)-conReferendumTitle-  = lens _conReferendumTitle-      (\ s a -> s{_conReferendumTitle = a})---- | A number specifying the position of this contest on the voter\'s ballot.-conBallotPlacement :: Lens' Contest (Maybe Int64)-conBallotPlacement-  = lens _conBallotPlacement-      (\ s a -> s{_conBallotPlacement = a})-      . mapping _Coerce--instance FromJSON Contest where-        parseJSON-          = withObject "Contest"-              (\ o ->-                 Contest' <$>-                   (o .:? "referendumPassageThreshold") <*>-                     (o .:? "roles" .!= mempty)-                     <*> (o .:? "referendumUrl")-                     <*> (o .:? "referendumEffectOfAbstain")-                     <*> (o .:? "referendumSubtitle")-                     <*> (o .:? "numberVotingFor")-                     <*> (o .:? "office")-                     <*> (o .:? "referendumConStatement")-                     <*> (o .:? "sources" .!= mempty)-                     <*> (o .:? "referendumProStatement")-                     <*> (o .:? "referendumBallotResponses" .!= mempty)-                     <*> (o .:? "numberElected")-                     <*> (o .:? "special")-                     <*> (o .:? "referendumText")-                     <*> (o .:? "primaryParty")-                     <*> (o .:? "id")-                     <*> (o .:? "type")-                     <*> (o .:? "electorateSpecifications")-                     <*> (o .:? "referendumBrief")-                     <*> (o .:? "district")-                     <*> (o .:? "level" .!= mempty)-                     <*> (o .:? "candidates" .!= mempty)-                     <*> (o .:? "referendumTitle")-                     <*> (o .:? "ballotPlacement"))--instance ToJSON Contest where-        toJSON Contest'{..}-          = object-              (catMaybes-                 [("referendumPassageThreshold" .=) <$>-                    _conReferendumPassageThreshold,-                  ("roles" .=) <$> _conRoles,-                  ("referendumUrl" .=) <$> _conReferendumURL,-                  ("referendumEffectOfAbstain" .=) <$>-                    _conReferendumEffectOfAbstain,-                  ("referendumSubtitle" .=) <$> _conReferendumSubtitle,-                  ("numberVotingFor" .=) <$> _conNumberVotingFor,-                  ("office" .=) <$> _conOffice,-                  ("referendumConStatement" .=) <$>-                    _conReferendumConStatement,-                  ("sources" .=) <$> _conSources,-                  ("referendumProStatement" .=) <$>-                    _conReferendumProStatement,-                  ("referendumBallotResponses" .=) <$>-                    _conReferendumBallotResponses,-                  ("numberElected" .=) <$> _conNumberElected,-                  ("special" .=) <$> _conSpecial,-                  ("referendumText" .=) <$> _conReferendumText,-                  ("primaryParty" .=) <$> _conPrimaryParty,-                  ("id" .=) <$> _conId, ("type" .=) <$> _conType,-                  ("electorateSpecifications" .=) <$>-                    _conElectorateSpecifications,-                  ("referendumBrief" .=) <$> _conReferendumBrief,-                  ("district" .=) <$> _conDistrict,-                  ("level" .=) <$> _conLevel,-                  ("candidates" .=) <$> _conCandidates,-                  ("referendumTitle" .=) <$> _conReferendumTitle,-                  ("ballotPlacement" .=) <$> _conBallotPlacement])---- | The result of a division search query.------ /See:/ 'divisionSearchResponse' smart constructor.-data DivisionSearchResponse = DivisionSearchResponse'-    { _dsrResults :: !(Maybe [DivisionSearchResult])-    , _dsrKind    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DivisionSearchResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsrResults'------ * 'dsrKind'-divisionSearchResponse-    :: DivisionSearchResponse-divisionSearchResponse =-    DivisionSearchResponse'-    { _dsrResults = Nothing-    , _dsrKind = "civicinfo#divisionSearchResponse"-    }--dsrResults :: Lens' DivisionSearchResponse [DivisionSearchResult]-dsrResults-  = lens _dsrResults (\ s a -> s{_dsrResults = a}) .-      _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"civicinfo#divisionSearchResponse\".-dsrKind :: Lens' DivisionSearchResponse Text-dsrKind = lens _dsrKind (\ s a -> s{_dsrKind = a})--instance FromJSON DivisionSearchResponse where-        parseJSON-          = withObject "DivisionSearchResponse"-              (\ o ->-                 DivisionSearchResponse' <$>-                   (o .:? "results" .!= mempty) <*>-                     (o .:? "kind" .!=-                        "civicinfo#divisionSearchResponse"))--instance ToJSON DivisionSearchResponse where-        toJSON DivisionSearchResponse'{..}-          = object-              (catMaybes-                 [("results" .=) <$> _dsrResults,-                  Just ("kind" .= _dsrKind)])---- | Political geographic divisions that contain the requested address.------ /See:/ 'representativeInfoDataDivisions' smart constructor.-newtype RepresentativeInfoDataDivisions = RepresentativeInfoDataDivisions'-    { _riddAddtional :: HashMap Text GeographicDivision-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RepresentativeInfoDataDivisions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riddAddtional'-representativeInfoDataDivisions-    :: HashMap Text GeographicDivision -- ^ 'riddAddtional'-    -> RepresentativeInfoDataDivisions-representativeInfoDataDivisions pRiddAddtional_ =-    RepresentativeInfoDataDivisions'-    { _riddAddtional = _Coerce # pRiddAddtional_-    }---- | The unique Open Civic Data identifier for this division.-riddAddtional :: Lens' RepresentativeInfoDataDivisions (HashMap Text GeographicDivision)-riddAddtional-  = lens _riddAddtional-      (\ s a -> s{_riddAddtional = a})-      . _Coerce--instance FromJSON RepresentativeInfoDataDivisions-         where-        parseJSON-          = withObject "RepresentativeInfoDataDivisions"-              (\ o ->-                 RepresentativeInfoDataDivisions' <$>-                   (parseJSONObject o))--instance ToJSON RepresentativeInfoDataDivisions where-        toJSON = toJSON . _riddAddtional---- | Information about individual election officials.------ /See:/ 'electionOfficial' smart constructor.-data ElectionOfficial = ElectionOfficial'-    { _eoFaxNumber         :: !(Maybe Text)-    , _eoName              :: !(Maybe Text)-    , _eoOfficePhoneNumber :: !(Maybe Text)-    , _eoEmailAddress      :: !(Maybe Text)-    , _eoTitle             :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ElectionOfficial' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eoFaxNumber'------ * 'eoName'------ * 'eoOfficePhoneNumber'------ * 'eoEmailAddress'------ * 'eoTitle'-electionOfficial-    :: ElectionOfficial-electionOfficial =-    ElectionOfficial'-    { _eoFaxNumber = Nothing-    , _eoName = Nothing-    , _eoOfficePhoneNumber = Nothing-    , _eoEmailAddress = Nothing-    , _eoTitle = Nothing-    }---- | The fax number of the election official.-eoFaxNumber :: Lens' ElectionOfficial (Maybe Text)-eoFaxNumber-  = lens _eoFaxNumber (\ s a -> s{_eoFaxNumber = a})---- | The full name of the election official.-eoName :: Lens' ElectionOfficial (Maybe Text)-eoName = lens _eoName (\ s a -> s{_eoName = a})---- | The office phone number of the election official.-eoOfficePhoneNumber :: Lens' ElectionOfficial (Maybe Text)-eoOfficePhoneNumber-  = lens _eoOfficePhoneNumber-      (\ s a -> s{_eoOfficePhoneNumber = a})---- | The email address of the election official.-eoEmailAddress :: Lens' ElectionOfficial (Maybe Text)-eoEmailAddress-  = lens _eoEmailAddress-      (\ s a -> s{_eoEmailAddress = a})---- | The title of the election official.-eoTitle :: Lens' ElectionOfficial (Maybe Text)-eoTitle = lens _eoTitle (\ s a -> s{_eoTitle = a})--instance FromJSON ElectionOfficial where-        parseJSON-          = withObject "ElectionOfficial"-              (\ o ->-                 ElectionOfficial' <$>-                   (o .:? "faxNumber") <*> (o .:? "name") <*>-                     (o .:? "officePhoneNumber")-                     <*> (o .:? "emailAddress")-                     <*> (o .:? "title"))--instance ToJSON ElectionOfficial where-        toJSON ElectionOfficial'{..}-          = object-              (catMaybes-                 [("faxNumber" .=) <$> _eoFaxNumber,-                  ("name" .=) <$> _eoName,-                  ("officePhoneNumber" .=) <$> _eoOfficePhoneNumber,-                  ("emailAddress" .=) <$> _eoEmailAddress,-                  ("title" .=) <$> _eoTitle])------- /See:/ 'representativeInfoData' smart constructor.-data RepresentativeInfoData = RepresentativeInfoData'-    { _ridOfficials :: !(Maybe [Official])-    , _ridDivisions :: !(Maybe RepresentativeInfoDataDivisions)-    , _ridOffices   :: !(Maybe [Office])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RepresentativeInfoData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ridOfficials'------ * 'ridDivisions'------ * 'ridOffices'-representativeInfoData-    :: RepresentativeInfoData-representativeInfoData =-    RepresentativeInfoData'-    { _ridOfficials = Nothing-    , _ridDivisions = Nothing-    , _ridOffices = Nothing-    }---- | Officials holding the offices listed above. Will only be present if--- includeOffices was true in the request.-ridOfficials :: Lens' RepresentativeInfoData [Official]-ridOfficials-  = lens _ridOfficials (\ s a -> s{_ridOfficials = a})-      . _Default-      . _Coerce---- | Political geographic divisions that contain the requested address.-ridDivisions :: Lens' RepresentativeInfoData (Maybe RepresentativeInfoDataDivisions)-ridDivisions-  = lens _ridDivisions (\ s a -> s{_ridDivisions = a})---- | Elected offices referenced by the divisions listed above. Will only be--- present if includeOffices was true in the request.-ridOffices :: Lens' RepresentativeInfoData [Office]-ridOffices-  = lens _ridOffices (\ s a -> s{_ridOffices = a}) .-      _Default-      . _Coerce--instance FromJSON RepresentativeInfoData where-        parseJSON-          = withObject "RepresentativeInfoData"-              (\ o ->-                 RepresentativeInfoData' <$>-                   (o .:? "officials" .!= mempty) <*>-                     (o .:? "divisions")-                     <*> (o .:? "offices" .!= mempty))--instance ToJSON RepresentativeInfoData where-        toJSON RepresentativeInfoData'{..}-          = object-              (catMaybes-                 [("officials" .=) <$> _ridOfficials,-                  ("divisions" .=) <$> _ridDivisions,-                  ("offices" .=) <$> _ridOffices])---- | Contains information about the data source for the element containing--- it.------ /See:/ 'source' smart constructor.-data Source = Source'-    { _sName     :: !(Maybe Text)-    , _sOfficial :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Source' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sName'------ * 'sOfficial'-source-    :: Source-source =-    Source'-    { _sName = Nothing-    , _sOfficial = Nothing-    }---- | The name of the data source.-sName :: Lens' Source (Maybe Text)-sName = lens _sName (\ s a -> s{_sName = a})---- | Whether this data comes from an official government source.-sOfficial :: Lens' Source (Maybe Bool)-sOfficial-  = lens _sOfficial (\ s a -> s{_sOfficial = a})--instance FromJSON Source where-        parseJSON-          = withObject "Source"-              (\ o ->-                 Source' <$> (o .:? "name") <*> (o .:? "official"))--instance ToJSON Source where-        toJSON Source'{..}-          = object-              (catMaybes-                 [("name" .=) <$> _sName,-                  ("official" .=) <$> _sOfficial])---- | A request to look up representative information for a single division.------ /See:/ 'divisionRepresentativeInfoRequest' smart constructor.-newtype DivisionRepresentativeInfoRequest = DivisionRepresentativeInfoRequest'-    { _drirContextParams :: Maybe ContextParams-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DivisionRepresentativeInfoRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'drirContextParams'-divisionRepresentativeInfoRequest-    :: DivisionRepresentativeInfoRequest-divisionRepresentativeInfoRequest =-    DivisionRepresentativeInfoRequest'-    { _drirContextParams = Nothing-    }--drirContextParams :: Lens' DivisionRepresentativeInfoRequest (Maybe ContextParams)-drirContextParams-  = lens _drirContextParams-      (\ s a -> s{_drirContextParams = a})--instance FromJSON DivisionRepresentativeInfoRequest-         where-        parseJSON-          = withObject "DivisionRepresentativeInfoRequest"-              (\ o ->-                 DivisionRepresentativeInfoRequest' <$>-                   (o .:? "contextParams"))--instance ToJSON DivisionRepresentativeInfoRequest-         where-        toJSON DivisionRepresentativeInfoRequest'{..}-          = object-              (catMaybes-                 [("contextParams" .=) <$> _drirContextParams])---- | Describes the geographic scope of a contest.------ /See:/ 'electoralDistrict' smart constructor.-data ElectoralDistrict = ElectoralDistrict'-    { _edKgForeignKey :: !(Maybe Text)-    , _edName         :: !(Maybe Text)-    , _edScope        :: !(Maybe Text)-    , _edId           :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ElectoralDistrict' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'edKgForeignKey'------ * 'edName'------ * 'edScope'------ * 'edId'-electoralDistrict-    :: ElectoralDistrict-electoralDistrict =-    ElectoralDistrict'-    { _edKgForeignKey = Nothing-    , _edName = Nothing-    , _edScope = Nothing-    , _edId = Nothing-    }--edKgForeignKey :: Lens' ElectoralDistrict (Maybe Text)-edKgForeignKey-  = lens _edKgForeignKey-      (\ s a -> s{_edKgForeignKey = a})---- | The name of the district.-edName :: Lens' ElectoralDistrict (Maybe Text)-edName = lens _edName (\ s a -> s{_edName = a})---- | 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)-edScope = lens _edScope (\ s a -> s{_edScope = a})---- | 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)-edId = lens _edId (\ s a -> s{_edId = a})--instance FromJSON ElectoralDistrict where-        parseJSON-          = withObject "ElectoralDistrict"-              (\ o ->-                 ElectoralDistrict' <$>-                   (o .:? "kgForeignKey") <*> (o .:? "name") <*>-                     (o .:? "scope")-                     <*> (o .:? "id"))--instance ToJSON ElectoralDistrict where-        toJSON ElectoralDistrict'{..}-          = object-              (catMaybes-                 [("kgForeignKey" .=) <$> _edKgForeignKey,-                  ("name" .=) <$> _edName, ("scope" .=) <$> _edScope,-                  ("id" .=) <$> _edId])---- | A request for information about a voter.------ /See:/ 'voterInfoRequest' smart constructor.-data VoterInfoRequest = VoterInfoRequest'-    { _virVoterInfoSegmentResult :: !(Maybe VoterInfoSegmentResult)-    , _virContextParams          :: !(Maybe ContextParams)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VoterInfoRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'virVoterInfoSegmentResult'------ * 'virContextParams'-voterInfoRequest-    :: VoterInfoRequest-voterInfoRequest =-    VoterInfoRequest'-    { _virVoterInfoSegmentResult = Nothing-    , _virContextParams = Nothing-    }--virVoterInfoSegmentResult :: Lens' VoterInfoRequest (Maybe VoterInfoSegmentResult)-virVoterInfoSegmentResult-  = lens _virVoterInfoSegmentResult-      (\ s a -> s{_virVoterInfoSegmentResult = a})--virContextParams :: Lens' VoterInfoRequest (Maybe ContextParams)-virContextParams-  = lens _virContextParams-      (\ s a -> s{_virContextParams = a})--instance FromJSON VoterInfoRequest where-        parseJSON-          = withObject "VoterInfoRequest"-              (\ o ->-                 VoterInfoRequest' <$>-                   (o .:? "voterInfoSegmentResult") <*>-                     (o .:? "contextParams"))--instance ToJSON VoterInfoRequest where-        toJSON VoterInfoRequest'{..}-          = object-              (catMaybes-                 [("voterInfoSegmentResult" .=) <$>-                    _virVoterInfoSegmentResult,-                  ("contextParams" .=) <$> _virContextParams])---- | A simple representation of an address.------ /See:/ 'simpleAddressType' smart constructor.-data SimpleAddressType = SimpleAddressType'-    { _satLine2        :: !(Maybe Text)-    , _satState        :: !(Maybe Text)-    , _satLine3        :: !(Maybe Text)-    , _satZip          :: !(Maybe Text)-    , _satCity         :: !(Maybe Text)-    , _satLine1        :: !(Maybe Text)-    , _satLocationName :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SimpleAddressType' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'satLine2'------ * 'satState'------ * 'satLine3'------ * 'satZip'------ * 'satCity'------ * 'satLine1'------ * 'satLocationName'-simpleAddressType-    :: SimpleAddressType-simpleAddressType =-    SimpleAddressType'-    { _satLine2 = Nothing-    , _satState = Nothing-    , _satLine3 = Nothing-    , _satZip = Nothing-    , _satCity = Nothing-    , _satLine1 = Nothing-    , _satLocationName = Nothing-    }---- | The second line the address, if needed.-satLine2 :: Lens' SimpleAddressType (Maybe Text)-satLine2 = lens _satLine2 (\ s a -> s{_satLine2 = a})---- | The US two letter state abbreviation of the address.-satState :: Lens' SimpleAddressType (Maybe Text)-satState = lens _satState (\ s a -> s{_satState = a})---- | The third line of the address, if needed.-satLine3 :: Lens' SimpleAddressType (Maybe Text)-satLine3 = lens _satLine3 (\ s a -> s{_satLine3 = a})---- | The US Postal Zip Code of the address.-satZip :: Lens' SimpleAddressType (Maybe Text)-satZip = lens _satZip (\ s a -> s{_satZip = a})---- | The city or town for the address.-satCity :: Lens' SimpleAddressType (Maybe Text)-satCity = lens _satCity (\ s a -> s{_satCity = a})---- | The street name and number of this address.-satLine1 :: Lens' SimpleAddressType (Maybe Text)-satLine1 = lens _satLine1 (\ s a -> s{_satLine1 = a})---- | The name of the location.-satLocationName :: Lens' SimpleAddressType (Maybe Text)-satLocationName-  = lens _satLocationName-      (\ s a -> s{_satLocationName = a})--instance FromJSON SimpleAddressType where-        parseJSON-          = withObject "SimpleAddressType"-              (\ o ->-                 SimpleAddressType' <$>-                   (o .:? "line2") <*> (o .:? "state") <*>-                     (o .:? "line3")-                     <*> (o .:? "zip")-                     <*> (o .:? "city")-                     <*> (o .:? "line1")-                     <*> (o .:? "locationName"))--instance ToJSON SimpleAddressType where-        toJSON SimpleAddressType'{..}-          = object-              (catMaybes-                 [("line2" .=) <$> _satLine2,-                  ("state" .=) <$> _satState,-                  ("line3" .=) <$> _satLine3, ("zip" .=) <$> _satZip,-                  ("city" .=) <$> _satCity, ("line1" .=) <$> _satLine1,-                  ("locationName" .=) <$> _satLocationName])------- /See:/ 'contextParams' smart constructor.-newtype ContextParams = ContextParams'-    { _cpClientProFile :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ContextParams' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpClientProFile'-contextParams-    :: ContextParams-contextParams =-    ContextParams'-    { _cpClientProFile = Nothing-    }--cpClientProFile :: Lens' ContextParams (Maybe Text)-cpClientProFile-  = lens _cpClientProFile-      (\ s a -> s{_cpClientProFile = a})--instance FromJSON ContextParams where-        parseJSON-          = withObject "ContextParams"-              (\ o -> ContextParams' <$> (o .:? "clientProfile"))--instance ToJSON ContextParams where-        toJSON ContextParams'{..}-          = object-              (catMaybes-                 [("clientProfile" .=) <$> _cpClientProFile])------- /See:/ 'postalAddress' smart constructor.-data PostalAddress = PostalAddress'-    { _paAdministrativeAreaName             :: !(Maybe Text)-    , _paRecipientName                      :: !(Maybe Text)-    , _paLanguageCode                       :: !(Maybe Text)-    , _paSortingCode                        :: !(Maybe Text)-    , _paPremiseName                        :: !(Maybe Text)-    , _paPostalCodeNumberExtension          :: !(Maybe Text)-    , _paCountryNameCode                    :: !(Maybe Text)-    , _paDependentThoroughfaresConnector    :: !(Maybe Text)-    , _paThoroughfareLeadingType            :: !(Maybe Text)-    , _paSubAdministrativeAreaName          :: !(Maybe Text)-    , _paThoroughfareTrailingType           :: !(Maybe Text)-    , _paPostBoxNumber                      :: !(Maybe Text)-    , _paThoroughfarePreDirection           :: !(Maybe Text)-    , _paLocalityName                       :: !(Maybe Text)-    , _paDependentThoroughfaresType         :: !(Maybe Text)-    , _paThoroughfarePostDirection          :: !(Maybe Text)-    , _paIsDisputed                         :: !(Maybe Bool)-    , _paDependentThoroughfarePreDirection  :: !(Maybe Text)-    , _paThoroughfareNumber                 :: !(Maybe Text)-    , _paDependentThoroughfaresIndicator    :: !(Maybe Text)-    , _paDependentLocalityName              :: !(Maybe Text)-    , _paFirmName                           :: !(Maybe Text)-    , _paCountryName                        :: !(Maybe Text)-    , _paDependentThoroughfareTrailingType  :: !(Maybe Text)-    , _paDependentThoroughfareName          :: !(Maybe Text)-    , _paDependentThoroughfarePostDirection :: !(Maybe Text)-    , _paAddressLines                       :: !(Maybe [Text])-    , _paPostalCodeNumber                   :: !(Maybe Text)-    , _paThoroughfareName                   :: !(Maybe Text)-    , _paSubPremiseName                     :: !(Maybe Text)-    , _paDependentThoroughfareLeadingType   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'PostalAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'paAdministrativeAreaName'------ * 'paRecipientName'------ * 'paLanguageCode'------ * 'paSortingCode'------ * 'paPremiseName'------ * 'paPostalCodeNumberExtension'------ * 'paCountryNameCode'------ * 'paDependentThoroughfaresConnector'------ * 'paThoroughfareLeadingType'------ * 'paSubAdministrativeAreaName'------ * 'paThoroughfareTrailingType'------ * 'paPostBoxNumber'------ * 'paThoroughfarePreDirection'------ * 'paLocalityName'------ * 'paDependentThoroughfaresType'------ * 'paThoroughfarePostDirection'------ * 'paIsDisputed'------ * 'paDependentThoroughfarePreDirection'------ * 'paThoroughfareNumber'------ * 'paDependentThoroughfaresIndicator'------ * 'paDependentLocalityName'------ * 'paFirmName'------ * 'paCountryName'------ * 'paDependentThoroughfareTrailingType'------ * 'paDependentThoroughfareName'------ * 'paDependentThoroughfarePostDirection'------ * 'paAddressLines'------ * 'paPostalCodeNumber'------ * 'paThoroughfareName'------ * 'paSubPremiseName'------ * 'paDependentThoroughfareLeadingType'-postalAddress-    :: PostalAddress-postalAddress =-    PostalAddress'-    { _paAdministrativeAreaName = Nothing-    , _paRecipientName = Nothing-    , _paLanguageCode = Nothing-    , _paSortingCode = Nothing-    , _paPremiseName = Nothing-    , _paPostalCodeNumberExtension = Nothing-    , _paCountryNameCode = Nothing-    , _paDependentThoroughfaresConnector = Nothing-    , _paThoroughfareLeadingType = Nothing-    , _paSubAdministrativeAreaName = Nothing-    , _paThoroughfareTrailingType = Nothing-    , _paPostBoxNumber = Nothing-    , _paThoroughfarePreDirection = Nothing-    , _paLocalityName = Nothing-    , _paDependentThoroughfaresType = Nothing-    , _paThoroughfarePostDirection = Nothing-    , _paIsDisputed = Nothing-    , _paDependentThoroughfarePreDirection = Nothing-    , _paThoroughfareNumber = Nothing-    , _paDependentThoroughfaresIndicator = Nothing-    , _paDependentLocalityName = Nothing-    , _paFirmName = Nothing-    , _paCountryName = Nothing-    , _paDependentThoroughfareTrailingType = Nothing-    , _paDependentThoroughfareName = Nothing-    , _paDependentThoroughfarePostDirection = Nothing-    , _paAddressLines = Nothing-    , _paPostalCodeNumber = Nothing-    , _paThoroughfareName = Nothing-    , _paSubPremiseName = Nothing-    , _paDependentThoroughfareLeadingType = Nothing-    }--paAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)-paAdministrativeAreaName-  = lens _paAdministrativeAreaName-      (\ s a -> s{_paAdministrativeAreaName = a})--paRecipientName :: Lens' PostalAddress (Maybe Text)-paRecipientName-  = lens _paRecipientName-      (\ s a -> s{_paRecipientName = a})--paLanguageCode :: Lens' PostalAddress (Maybe Text)-paLanguageCode-  = lens _paLanguageCode-      (\ s a -> s{_paLanguageCode = a})--paSortingCode :: Lens' PostalAddress (Maybe Text)-paSortingCode-  = lens _paSortingCode-      (\ s a -> s{_paSortingCode = a})--paPremiseName :: Lens' PostalAddress (Maybe Text)-paPremiseName-  = lens _paPremiseName-      (\ s a -> s{_paPremiseName = a})--paPostalCodeNumberExtension :: Lens' PostalAddress (Maybe Text)-paPostalCodeNumberExtension-  = lens _paPostalCodeNumberExtension-      (\ s a -> s{_paPostalCodeNumberExtension = a})--paCountryNameCode :: Lens' PostalAddress (Maybe Text)-paCountryNameCode-  = lens _paCountryNameCode-      (\ s a -> s{_paCountryNameCode = a})--paDependentThoroughfaresConnector :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfaresConnector-  = lens _paDependentThoroughfaresConnector-      (\ s a -> s{_paDependentThoroughfaresConnector = a})--paThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)-paThoroughfareLeadingType-  = lens _paThoroughfareLeadingType-      (\ s a -> s{_paThoroughfareLeadingType = a})--paSubAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)-paSubAdministrativeAreaName-  = lens _paSubAdministrativeAreaName-      (\ s a -> s{_paSubAdministrativeAreaName = a})--paThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)-paThoroughfareTrailingType-  = lens _paThoroughfareTrailingType-      (\ s a -> s{_paThoroughfareTrailingType = a})--paPostBoxNumber :: Lens' PostalAddress (Maybe Text)-paPostBoxNumber-  = lens _paPostBoxNumber-      (\ s a -> s{_paPostBoxNumber = a})--paThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)-paThoroughfarePreDirection-  = lens _paThoroughfarePreDirection-      (\ s a -> s{_paThoroughfarePreDirection = a})--paLocalityName :: Lens' PostalAddress (Maybe Text)-paLocalityName-  = lens _paLocalityName-      (\ s a -> s{_paLocalityName = a})--paDependentThoroughfaresType :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfaresType-  = lens _paDependentThoroughfaresType-      (\ s a -> s{_paDependentThoroughfaresType = a})--paThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)-paThoroughfarePostDirection-  = lens _paThoroughfarePostDirection-      (\ s a -> s{_paThoroughfarePostDirection = a})--paIsDisputed :: Lens' PostalAddress (Maybe Bool)-paIsDisputed-  = lens _paIsDisputed (\ s a -> s{_paIsDisputed = a})--paDependentThoroughfarePreDirection :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfarePreDirection-  = lens _paDependentThoroughfarePreDirection-      (\ s a ->-         s{_paDependentThoroughfarePreDirection = a})--paThoroughfareNumber :: Lens' PostalAddress (Maybe Text)-paThoroughfareNumber-  = lens _paThoroughfareNumber-      (\ s a -> s{_paThoroughfareNumber = a})--paDependentThoroughfaresIndicator :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfaresIndicator-  = lens _paDependentThoroughfaresIndicator-      (\ s a -> s{_paDependentThoroughfaresIndicator = a})--paDependentLocalityName :: Lens' PostalAddress (Maybe Text)-paDependentLocalityName-  = lens _paDependentLocalityName-      (\ s a -> s{_paDependentLocalityName = a})--paFirmName :: Lens' PostalAddress (Maybe Text)-paFirmName-  = lens _paFirmName (\ s a -> s{_paFirmName = a})--paCountryName :: Lens' PostalAddress (Maybe Text)-paCountryName-  = lens _paCountryName-      (\ s a -> s{_paCountryName = a})--paDependentThoroughfareTrailingType :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfareTrailingType-  = lens _paDependentThoroughfareTrailingType-      (\ s a ->-         s{_paDependentThoroughfareTrailingType = a})--paDependentThoroughfareName :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfareName-  = lens _paDependentThoroughfareName-      (\ s a -> s{_paDependentThoroughfareName = a})--paDependentThoroughfarePostDirection :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfarePostDirection-  = lens _paDependentThoroughfarePostDirection-      (\ s a ->-         s{_paDependentThoroughfarePostDirection = a})--paAddressLines :: Lens' PostalAddress [Text]-paAddressLines-  = lens _paAddressLines-      (\ s a -> s{_paAddressLines = a})-      . _Default-      . _Coerce--paPostalCodeNumber :: Lens' PostalAddress (Maybe Text)-paPostalCodeNumber-  = lens _paPostalCodeNumber-      (\ s a -> s{_paPostalCodeNumber = a})--paThoroughfareName :: Lens' PostalAddress (Maybe Text)-paThoroughfareName-  = lens _paThoroughfareName-      (\ s a -> s{_paThoroughfareName = a})--paSubPremiseName :: Lens' PostalAddress (Maybe Text)-paSubPremiseName-  = lens _paSubPremiseName-      (\ s a -> s{_paSubPremiseName = a})--paDependentThoroughfareLeadingType :: Lens' PostalAddress (Maybe Text)-paDependentThoroughfareLeadingType-  = lens _paDependentThoroughfareLeadingType-      (\ s a -> s{_paDependentThoroughfareLeadingType = a})--instance FromJSON PostalAddress where-        parseJSON-          = withObject "PostalAddress"-              (\ o ->-                 PostalAddress' <$>-                   (o .:? "administrativeAreaName") <*>-                     (o .:? "recipientName")-                     <*> (o .:? "languageCode")-                     <*> (o .:? "sortingCode")-                     <*> (o .:? "premiseName")-                     <*> (o .:? "postalCodeNumberExtension")-                     <*> (o .:? "countryNameCode")-                     <*> (o .:? "dependentThoroughfaresConnector")-                     <*> (o .:? "thoroughfareLeadingType")-                     <*> (o .:? "subAdministrativeAreaName")-                     <*> (o .:? "thoroughfareTrailingType")-                     <*> (o .:? "postBoxNumber")-                     <*> (o .:? "thoroughfarePreDirection")-                     <*> (o .:? "localityName")-                     <*> (o .:? "dependentThoroughfaresType")-                     <*> (o .:? "thoroughfarePostDirection")-                     <*> (o .:? "isDisputed")-                     <*> (o .:? "dependentThoroughfarePreDirection")-                     <*> (o .:? "thoroughfareNumber")-                     <*> (o .:? "dependentThoroughfaresIndicator")-                     <*> (o .:? "dependentLocalityName")-                     <*> (o .:? "firmName")-                     <*> (o .:? "countryName")-                     <*> (o .:? "dependentThoroughfareTrailingType")-                     <*> (o .:? "dependentThoroughfareName")-                     <*> (o .:? "dependentThoroughfarePostDirection")-                     <*> (o .:? "addressLines" .!= mempty)-                     <*> (o .:? "postalCodeNumber")-                     <*> (o .:? "thoroughfareName")-                     <*> (o .:? "subPremiseName")-                     <*> (o .:? "dependentThoroughfareLeadingType"))--instance ToJSON PostalAddress where-        toJSON PostalAddress'{..}-          = object-              (catMaybes-                 [("administrativeAreaName" .=) <$>-                    _paAdministrativeAreaName,-                  ("recipientName" .=) <$> _paRecipientName,-                  ("languageCode" .=) <$> _paLanguageCode,-                  ("sortingCode" .=) <$> _paSortingCode,-                  ("premiseName" .=) <$> _paPremiseName,-                  ("postalCodeNumberExtension" .=) <$>-                    _paPostalCodeNumberExtension,-                  ("countryNameCode" .=) <$> _paCountryNameCode,-                  ("dependentThoroughfaresConnector" .=) <$>-                    _paDependentThoroughfaresConnector,-                  ("thoroughfareLeadingType" .=) <$>-                    _paThoroughfareLeadingType,-                  ("subAdministrativeAreaName" .=) <$>-                    _paSubAdministrativeAreaName,-                  ("thoroughfareTrailingType" .=) <$>-                    _paThoroughfareTrailingType,-                  ("postBoxNumber" .=) <$> _paPostBoxNumber,-                  ("thoroughfarePreDirection" .=) <$>-                    _paThoroughfarePreDirection,-                  ("localityName" .=) <$> _paLocalityName,-                  ("dependentThoroughfaresType" .=) <$>-                    _paDependentThoroughfaresType,-                  ("thoroughfarePostDirection" .=) <$>-                    _paThoroughfarePostDirection,-                  ("isDisputed" .=) <$> _paIsDisputed,-                  ("dependentThoroughfarePreDirection" .=) <$>-                    _paDependentThoroughfarePreDirection,-                  ("thoroughfareNumber" .=) <$> _paThoroughfareNumber,-                  ("dependentThoroughfaresIndicator" .=) <$>-                    _paDependentThoroughfaresIndicator,-                  ("dependentLocalityName" .=) <$>-                    _paDependentLocalityName,-                  ("firmName" .=) <$> _paFirmName,-                  ("countryName" .=) <$> _paCountryName,-                  ("dependentThoroughfareTrailingType" .=) <$>-                    _paDependentThoroughfareTrailingType,-                  ("dependentThoroughfareName" .=) <$>-                    _paDependentThoroughfareName,-                  ("dependentThoroughfarePostDirection" .=) <$>-                    _paDependentThoroughfarePostDirection,-                  ("addressLines" .=) <$> _paAddressLines,-                  ("postalCodeNumber" .=) <$> _paPostalCodeNumber,-                  ("thoroughfareName" .=) <$> _paThoroughfareName,-                  ("subPremiseName" .=) <$> _paSubPremiseName,-                  ("dependentThoroughfareLeadingType" .=) <$>-                    _paDependentThoroughfareLeadingType])---- | Describes information about a regional election administrative area.------ /See:/ 'administrationRegion' smart constructor.-data AdministrationRegion = AdministrationRegion'-    { _arLocalJurisdiction          :: !(Maybe AdministrationRegion)-    , _arSources                    :: !(Maybe [Source])-    , _arName                       :: !(Maybe Text)-    , _arElectionAdministrationBody :: !(Maybe AdministrativeBody)-    , _arId                         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministrationRegion' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arLocalJurisdiction'------ * 'arSources'------ * 'arName'------ * 'arElectionAdministrationBody'------ * 'arId'-administrationRegion-    :: AdministrationRegion-administrationRegion =-    AdministrationRegion'-    { _arLocalJurisdiction = Nothing-    , _arSources = Nothing-    , _arName = Nothing-    , _arElectionAdministrationBody = Nothing-    , _arId = Nothing-    }---- | 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)-arLocalJurisdiction-  = lens _arLocalJurisdiction-      (\ s a -> s{_arLocalJurisdiction = a})---- | A list of sources for this area. If multiple sources are listed the data--- has been aggregated from those sources.-arSources :: Lens' AdministrationRegion [Source]-arSources-  = lens _arSources (\ s a -> s{_arSources = a}) .-      _Default-      . _Coerce---- | The name of the jurisdiction.-arName :: Lens' AdministrationRegion (Maybe Text)-arName = lens _arName (\ s a -> s{_arName = a})---- | The election administration body for this area.-arElectionAdministrationBody :: Lens' AdministrationRegion (Maybe AdministrativeBody)-arElectionAdministrationBody-  = lens _arElectionAdministrationBody-      (\ s a -> s{_arElectionAdministrationBody = a})---- | 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)-arId = lens _arId (\ s a -> s{_arId = a})--instance FromJSON AdministrationRegion where-        parseJSON-          = withObject "AdministrationRegion"-              (\ o ->-                 AdministrationRegion' <$>-                   (o .:? "local_jurisdiction") <*>-                     (o .:? "sources" .!= mempty)-                     <*> (o .:? "name")-                     <*> (o .:? "electionAdministrationBody")-                     <*> (o .:? "id"))--instance ToJSON AdministrationRegion where-        toJSON AdministrationRegion'{..}-          = object-              (catMaybes-                 [("local_jurisdiction" .=) <$> _arLocalJurisdiction,-                  ("sources" .=) <$> _arSources,-                  ("name" .=) <$> _arName,-                  ("electionAdministrationBody" .=) <$>-                    _arElectionAdministrationBody,-                  ("id" .=) <$> _arId])+    , _virSegments         :: !(Maybe [StreetSegment])+    , _virEarlyVoteSites   :: !(Maybe [PollingLocation])+    , _virPollingLocations :: !(Maybe [PollingLocation])+    , _virPrecinctId       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VoterInfoResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'virOtherElections'+--+-- * 'virContests'+--+-- * 'virState'+--+-- * 'virKind'+--+-- * 'virDropOffLocations'+--+-- * 'virElection'+--+-- * 'virNormalizedInput'+--+-- * 'virMailOnly'+--+-- * 'virSegments'+--+-- * 'virEarlyVoteSites'+--+-- * 'virPollingLocations'+--+-- * 'virPrecinctId'+voterInfoResponse+    :: VoterInfoResponse+voterInfoResponse =+    VoterInfoResponse'+    { _virOtherElections = Nothing+    , _virContests = Nothing+    , _virState = Nothing+    , _virKind = "civicinfo#voterInfoResponse"+    , _virDropOffLocations = Nothing+    , _virElection = Nothing+    , _virNormalizedInput = Nothing+    , _virMailOnly = Nothing+    , _virSegments = Nothing+    , _virEarlyVoteSites = Nothing+    , _virPollingLocations = Nothing+    , _virPrecinctId = Nothing+    }++-- | When there are multiple elections for a voter address, the+-- otherElections field is populated in the API response and there are two+-- possibilities: 1. If the earliest election is not the intended election,+-- specify the election ID of the desired election in a second API request+-- using the electionId field. 2. If these elections occur on the same day,+-- the API doesn?t return any polling location, contest, or election+-- official information to ensure that an additional query is made. For+-- user-facing applications, we recommend displaying these elections to the+-- user to disambiguate. A second API request using the electionId field+-- should be made for the election that is relevant to the user.+virOtherElections :: Lens' VoterInfoResponse [Election]+virOtherElections+  = lens _virOtherElections+      (\ s a -> s{_virOtherElections = a})+      . _Default+      . _Coerce++-- | Contests that will appear on the voter\'s ballot.+virContests :: Lens' VoterInfoResponse [Contest]+virContests+  = lens _virContests (\ s a -> s{_virContests = a}) .+      _Default+      . _Coerce++-- | 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]+virState+  = lens _virState (\ s a -> s{_virState = a}) .+      _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"civicinfo#voterInfoResponse\".+virKind :: Lens' VoterInfoResponse Text+virKind = lens _virKind (\ s a -> s{_virKind = a})++-- | 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]+virDropOffLocations+  = lens _virDropOffLocations+      (\ s a -> s{_virDropOffLocations = a})+      . _Default+      . _Coerce++-- | The election that was queried.+virElection :: Lens' VoterInfoResponse (Maybe Election)+virElection+  = lens _virElection (\ s a -> s{_virElection = a})++-- | The normalized version of the requested address+virNormalizedInput :: Lens' VoterInfoResponse (Maybe SimpleAddressType)+virNormalizedInput+  = lens _virNormalizedInput+      (\ s a -> s{_virNormalizedInput = a})++-- | 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)+virMailOnly+  = lens _virMailOnly (\ s a -> s{_virMailOnly = a})++virSegments :: Lens' VoterInfoResponse [StreetSegment]+virSegments+  = lens _virSegments (\ s a -> s{_virSegments = a}) .+      _Default+      . _Coerce++-- | Locations where the voter is eligible to vote early, prior to election+-- day.+virEarlyVoteSites :: Lens' VoterInfoResponse [PollingLocation]+virEarlyVoteSites+  = lens _virEarlyVoteSites+      (\ s a -> s{_virEarlyVoteSites = a})+      . _Default+      . _Coerce++-- | Locations where the voter is eligible to vote on election day.+virPollingLocations :: Lens' VoterInfoResponse [PollingLocation]+virPollingLocations+  = lens _virPollingLocations+      (\ s a -> s{_virPollingLocations = a})+      . _Default+      . _Coerce++virPrecinctId :: Lens' VoterInfoResponse (Maybe Text)+virPrecinctId+  = lens _virPrecinctId+      (\ s a -> s{_virPrecinctId = a})++instance FromJSON VoterInfoResponse where+        parseJSON+          = withObject "VoterInfoResponse"+              (\ o ->+                 VoterInfoResponse' <$>+                   (o .:? "otherElections" .!= mempty) <*>+                     (o .:? "contests" .!= mempty)+                     <*> (o .:? "state" .!= mempty)+                     <*> (o .:? "kind" .!= "civicinfo#voterInfoResponse")+                     <*> (o .:? "dropOffLocations" .!= mempty)+                     <*> (o .:? "election")+                     <*> (o .:? "normalizedInput")+                     <*> (o .:? "mailOnly")+                     <*> (o .:? "segments" .!= mempty)+                     <*> (o .:? "earlyVoteSites" .!= mempty)+                     <*> (o .:? "pollingLocations" .!= mempty)+                     <*> (o .:? "precinctId"))++instance ToJSON VoterInfoResponse where+        toJSON VoterInfoResponse'{..}+          = object+              (catMaybes+                 [("otherElections" .=) <$> _virOtherElections,+                  ("contests" .=) <$> _virContests,+                  ("state" .=) <$> _virState,+                  Just ("kind" .= _virKind),+                  ("dropOffLocations" .=) <$> _virDropOffLocations,+                  ("election" .=) <$> _virElection,+                  ("normalizedInput" .=) <$> _virNormalizedInput,+                  ("mailOnly" .=) <$> _virMailOnly,+                  ("segments" .=) <$> _virSegments,+                  ("earlyVoteSites" .=) <$> _virEarlyVoteSites,+                  ("pollingLocations" .=) <$> _virPollingLocations,+                  ("precinctId" .=) <$> _virPrecinctId])++-- | 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.+--+-- /See:/ 'pollingLocation' smart constructor.+data PollingLocation = PollingLocation'+    { _plVoterServices :: !(Maybe Text)+    , _plLatitude      :: !(Maybe (Textual Double))+    , _plEndDate       :: !(Maybe Text)+    , _plSources       :: !(Maybe [Source])+    , _plAddress       :: !(Maybe SimpleAddressType)+    , _plStartDate     :: !(Maybe Text)+    , _plPollingHours  :: !(Maybe Text)+    , _plName          :: !(Maybe Text)+    , _plId            :: !(Maybe Text)+    , _plNotes         :: !(Maybe Text)+    , _plLongitude     :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PollingLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plVoterServices'+--+-- * 'plLatitude'+--+-- * 'plEndDate'+--+-- * 'plSources'+--+-- * 'plAddress'+--+-- * 'plStartDate'+--+-- * 'plPollingHours'+--+-- * 'plName'+--+-- * 'plId'+--+-- * 'plNotes'+--+-- * 'plLongitude'+pollingLocation+    :: PollingLocation+pollingLocation =+    PollingLocation'+    { _plVoterServices = Nothing+    , _plLatitude = Nothing+    , _plEndDate = Nothing+    , _plSources = Nothing+    , _plAddress = Nothing+    , _plStartDate = Nothing+    , _plPollingHours = Nothing+    , _plName = Nothing+    , _plId = Nothing+    , _plNotes = Nothing+    , _plLongitude = Nothing+    }++-- | 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)+plVoterServices+  = lens _plVoterServices+      (\ s a -> s{_plVoterServices = a})++-- | Latitude of the location, in degrees north of the equator. Only some+-- locations -- generally, ballot drop boxes for vote-by-mail elections --+-- will have this set; for others, use a geocoding service like the Google+-- Maps API to resolve the address to a geographic point.+plLatitude :: Lens' PollingLocation (Maybe Double)+plLatitude+  = lens _plLatitude (\ s a -> s{_plLatitude = a}) .+      mapping _Coerce++-- | 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)+plEndDate+  = lens _plEndDate (\ s a -> s{_plEndDate = a})++-- | A list of sources for this location. If multiple sources are listed the+-- data has been aggregated from those sources.+plSources :: Lens' PollingLocation [Source]+plSources+  = lens _plSources (\ s a -> s{_plSources = a}) .+      _Default+      . _Coerce++-- | The address of the location.+plAddress :: Lens' PollingLocation (Maybe SimpleAddressType)+plAddress+  = lens _plAddress (\ s a -> s{_plAddress = a})++-- | 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)+plStartDate+  = lens _plStartDate (\ s a -> s{_plStartDate = a})++-- | A description of when this location is open.+plPollingHours :: Lens' PollingLocation (Maybe Text)+plPollingHours+  = lens _plPollingHours+      (\ s a -> s{_plPollingHours = a})++-- | The name of the early vote site or drop off location. This field is not+-- populated for polling locations.+plName :: Lens' PollingLocation (Maybe Text)+plName = lens _plName (\ s a -> s{_plName = a})++-- | 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)+plId = lens _plId (\ s a -> s{_plId = a})++-- | Notes about this location (e.g. accessibility ramp or entrance to use).+plNotes :: Lens' PollingLocation (Maybe Text)+plNotes = lens _plNotes (\ s a -> s{_plNotes = a})++-- | Longitude of the location, in degrees east of the Prime Meridian. Only+-- some locations -- generally, ballot drop boxes for vote-by-mail+-- elections -- will have this set; for others, use a geocoding service+-- like the Google Maps API to resolve the address to a geographic point.+plLongitude :: Lens' PollingLocation (Maybe Double)+plLongitude+  = lens _plLongitude (\ s a -> s{_plLongitude = a}) .+      mapping _Coerce++instance FromJSON PollingLocation where+        parseJSON+          = withObject "PollingLocation"+              (\ o ->+                 PollingLocation' <$>+                   (o .:? "voterServices") <*> (o .:? "latitude") <*>+                     (o .:? "endDate")+                     <*> (o .:? "sources" .!= mempty)+                     <*> (o .:? "address")+                     <*> (o .:? "startDate")+                     <*> (o .:? "pollingHours")+                     <*> (o .:? "name")+                     <*> (o .:? "id")+                     <*> (o .:? "notes")+                     <*> (o .:? "longitude"))++instance ToJSON PollingLocation where+        toJSON PollingLocation'{..}+          = object+              (catMaybes+                 [("voterServices" .=) <$> _plVoterServices,+                  ("latitude" .=) <$> _plLatitude,+                  ("endDate" .=) <$> _plEndDate,+                  ("sources" .=) <$> _plSources,+                  ("address" .=) <$> _plAddress,+                  ("startDate" .=) <$> _plStartDate,+                  ("pollingHours" .=) <$> _plPollingHours,+                  ("name" .=) <$> _plName, ("id" .=) <$> _plId,+                  ("notes" .=) <$> _plNotes,+                  ("longitude" .=) <$> _plLongitude])++-- | Describes a political geography.+--+-- /See:/ 'geographicDivision' smart constructor.+data GeographicDivision = GeographicDivision'+    { _gdName          :: !(Maybe Text)+    , _gdOfficeIndices :: !(Maybe [Textual Word32])+    , _gdAlsoKnownAs   :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeographicDivision' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdName'+--+-- * 'gdOfficeIndices'+--+-- * 'gdAlsoKnownAs'+geographicDivision+    :: GeographicDivision+geographicDivision =+    GeographicDivision'+    { _gdName = Nothing+    , _gdOfficeIndices = Nothing+    , _gdAlsoKnownAs = Nothing+    }++-- | The name of the division.+gdName :: Lens' GeographicDivision (Maybe Text)+gdName = lens _gdName (\ s a -> s{_gdName = a})++-- | 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]+gdOfficeIndices+  = lens _gdOfficeIndices+      (\ s a -> s{_gdOfficeIndices = a})+      . _Default+      . _Coerce++-- | 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]+gdAlsoKnownAs+  = lens _gdAlsoKnownAs+      (\ s a -> s{_gdAlsoKnownAs = a})+      . _Default+      . _Coerce++instance FromJSON GeographicDivision where+        parseJSON+          = withObject "GeographicDivision"+              (\ o ->+                 GeographicDivision' <$>+                   (o .:? "name") <*> (o .:? "officeIndices" .!= mempty)+                     <*> (o .:? "alsoKnownAs" .!= mempty))++instance ToJSON GeographicDivision where+        toJSON GeographicDivision'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _gdName,+                  ("officeIndices" .=) <$> _gdOfficeIndices,+                  ("alsoKnownAs" .=) <$> _gdAlsoKnownAs])++--+-- /See:/ 'streetSegment' smart constructor.+data StreetSegment = StreetSegment'+    { _ssOriginalId                    :: !(Maybe Text)+    , _ssPollinglocationByIds          :: !(Maybe [Text])+    , _ssStartHouseNumber              :: !(Maybe (Textual Int64))+    , _ssCataListUniquePrecinctCode    :: !(Maybe Text)+    , _ssState                         :: !(Maybe Text)+    , _ssContestIds                    :: !(Maybe [Text])+    , _ssStateHouseDistrict            :: !(Maybe Text)+    , _ssNcoaAddress                   :: !(Maybe Text)+    , _ssEarlyVoteSiteByIds            :: !(Maybe [Text])+    , _ssCountyCouncilDistrict         :: !(Maybe Text)+    , _ssCityCouncilDistrict           :: !(Maybe Text)+    , _ssGeocodedPoint                 :: !(Maybe PointProto)+    , _ssEndHouseNumber                :: !(Maybe (Textual Int64))+    , _ssSubAdministrativeAreaName     :: !(Maybe Text)+    , _ssPublished                     :: !(Maybe Bool)+    , _ssStartLatE7                    :: !(Maybe (Textual Int64))+    , _ssZip                           :: !(Maybe Text)+    , _ssSurrogateId                   :: !(Maybe (Textual Int64))+    , _ssMunicipalDistrict             :: !(Maybe Text)+    , _ssWardDistrict                  :: !(Maybe Text)+    , _ssVoterGeographicDivisionOcdIds :: !(Maybe [Text])+    , _ssStreetName                    :: !(Maybe Text)+    , _ssTownshipDistrict              :: !(Maybe Text)+    , _ssUnitType                      :: !(Maybe Text)+    , _ssCongressionalDistrict         :: !(Maybe Text)+    , _ssStateSenateDistrict           :: !(Maybe Text)+    , _ssOddOrEvens                    :: !(Maybe [Text])+    , _ssGeographicDivisionOcdIds      :: !(Maybe [Text])+    , _ssBeforeGeocodeId               :: !(Maybe Text)+    , _ssDataSetId                     :: !(Maybe (Textual Int64))+    , _ssStartLngE7                    :: !(Maybe (Textual Int64))+    , _ssCity                          :: !(Maybe Text)+    , _ssWildcard                      :: !(Maybe Bool)+    , _ssTargetsmartUniquePrecinctCode :: !(Maybe Text)+    , _ssProvenances                   :: !(Maybe [Provenance])+    , _ssSchoolDistrict                :: !(Maybe Text)+    , _ssMailOnly                      :: !(Maybe Bool)+    , _ssId                            :: !(Maybe Text)+    , _ssUnitNumber                    :: !(Maybe Text)+    , _ssAdministrationRegionIds       :: !(Maybe [Text])+    , _ssVanPrecinctCode               :: !(Maybe Text)+    , _ssJudicialDistrict              :: !(Maybe Text)+    , _ssPrecinctName                  :: !(Maybe Text)+    , _ssCountyFips                    :: !(Maybe Text)+    , _ssPrecinctOcdId                 :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreetSegment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssOriginalId'+--+-- * 'ssPollinglocationByIds'+--+-- * 'ssStartHouseNumber'+--+-- * 'ssCataListUniquePrecinctCode'+--+-- * 'ssState'+--+-- * 'ssContestIds'+--+-- * 'ssStateHouseDistrict'+--+-- * 'ssNcoaAddress'+--+-- * 'ssEarlyVoteSiteByIds'+--+-- * 'ssCountyCouncilDistrict'+--+-- * 'ssCityCouncilDistrict'+--+-- * 'ssGeocodedPoint'+--+-- * 'ssEndHouseNumber'+--+-- * 'ssSubAdministrativeAreaName'+--+-- * 'ssPublished'+--+-- * 'ssStartLatE7'+--+-- * 'ssZip'+--+-- * 'ssSurrogateId'+--+-- * 'ssMunicipalDistrict'+--+-- * 'ssWardDistrict'+--+-- * 'ssVoterGeographicDivisionOcdIds'+--+-- * 'ssStreetName'+--+-- * 'ssTownshipDistrict'+--+-- * 'ssUnitType'+--+-- * 'ssCongressionalDistrict'+--+-- * 'ssStateSenateDistrict'+--+-- * 'ssOddOrEvens'+--+-- * 'ssGeographicDivisionOcdIds'+--+-- * 'ssBeforeGeocodeId'+--+-- * 'ssDataSetId'+--+-- * 'ssStartLngE7'+--+-- * 'ssCity'+--+-- * 'ssWildcard'+--+-- * 'ssTargetsmartUniquePrecinctCode'+--+-- * 'ssProvenances'+--+-- * 'ssSchoolDistrict'+--+-- * 'ssMailOnly'+--+-- * 'ssId'+--+-- * 'ssUnitNumber'+--+-- * 'ssAdministrationRegionIds'+--+-- * 'ssVanPrecinctCode'+--+-- * 'ssJudicialDistrict'+--+-- * 'ssPrecinctName'+--+-- * 'ssCountyFips'+--+-- * 'ssPrecinctOcdId'+streetSegment+    :: StreetSegment+streetSegment =+    StreetSegment'+    { _ssOriginalId = Nothing+    , _ssPollinglocationByIds = Nothing+    , _ssStartHouseNumber = Nothing+    , _ssCataListUniquePrecinctCode = Nothing+    , _ssState = Nothing+    , _ssContestIds = Nothing+    , _ssStateHouseDistrict = Nothing+    , _ssNcoaAddress = Nothing+    , _ssEarlyVoteSiteByIds = Nothing+    , _ssCountyCouncilDistrict = Nothing+    , _ssCityCouncilDistrict = Nothing+    , _ssGeocodedPoint = Nothing+    , _ssEndHouseNumber = Nothing+    , _ssSubAdministrativeAreaName = Nothing+    , _ssPublished = Nothing+    , _ssStartLatE7 = Nothing+    , _ssZip = Nothing+    , _ssSurrogateId = Nothing+    , _ssMunicipalDistrict = Nothing+    , _ssWardDistrict = Nothing+    , _ssVoterGeographicDivisionOcdIds = Nothing+    , _ssStreetName = Nothing+    , _ssTownshipDistrict = Nothing+    , _ssUnitType = Nothing+    , _ssCongressionalDistrict = Nothing+    , _ssStateSenateDistrict = Nothing+    , _ssOddOrEvens = Nothing+    , _ssGeographicDivisionOcdIds = Nothing+    , _ssBeforeGeocodeId = Nothing+    , _ssDataSetId = Nothing+    , _ssStartLngE7 = Nothing+    , _ssCity = Nothing+    , _ssWildcard = Nothing+    , _ssTargetsmartUniquePrecinctCode = Nothing+    , _ssProvenances = Nothing+    , _ssSchoolDistrict = Nothing+    , _ssMailOnly = Nothing+    , _ssId = Nothing+    , _ssUnitNumber = Nothing+    , _ssAdministrationRegionIds = Nothing+    , _ssVanPrecinctCode = Nothing+    , _ssJudicialDistrict = Nothing+    , _ssPrecinctName = Nothing+    , _ssCountyFips = Nothing+    , _ssPrecinctOcdId = Nothing+    }++ssOriginalId :: Lens' StreetSegment (Maybe Text)+ssOriginalId+  = lens _ssOriginalId (\ s a -> s{_ssOriginalId = a})++ssPollinglocationByIds :: Lens' StreetSegment [Text]+ssPollinglocationByIds+  = lens _ssPollinglocationByIds+      (\ s a -> s{_ssPollinglocationByIds = a})+      . _Default+      . _Coerce++ssStartHouseNumber :: Lens' StreetSegment (Maybe Int64)+ssStartHouseNumber+  = lens _ssStartHouseNumber+      (\ s a -> s{_ssStartHouseNumber = a})+      . mapping _Coerce++ssCataListUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)+ssCataListUniquePrecinctCode+  = lens _ssCataListUniquePrecinctCode+      (\ s a -> s{_ssCataListUniquePrecinctCode = a})++ssState :: Lens' StreetSegment (Maybe Text)+ssState = lens _ssState (\ s a -> s{_ssState = a})++ssContestIds :: Lens' StreetSegment [Text]+ssContestIds+  = lens _ssContestIds (\ s a -> s{_ssContestIds = a})+      . _Default+      . _Coerce++ssStateHouseDistrict :: Lens' StreetSegment (Maybe Text)+ssStateHouseDistrict+  = lens _ssStateHouseDistrict+      (\ s a -> s{_ssStateHouseDistrict = a})++ssNcoaAddress :: Lens' StreetSegment (Maybe Text)+ssNcoaAddress+  = lens _ssNcoaAddress+      (\ s a -> s{_ssNcoaAddress = a})++ssEarlyVoteSiteByIds :: Lens' StreetSegment [Text]+ssEarlyVoteSiteByIds+  = lens _ssEarlyVoteSiteByIds+      (\ s a -> s{_ssEarlyVoteSiteByIds = a})+      . _Default+      . _Coerce++ssCountyCouncilDistrict :: Lens' StreetSegment (Maybe Text)+ssCountyCouncilDistrict+  = lens _ssCountyCouncilDistrict+      (\ s a -> s{_ssCountyCouncilDistrict = a})++ssCityCouncilDistrict :: Lens' StreetSegment (Maybe Text)+ssCityCouncilDistrict+  = lens _ssCityCouncilDistrict+      (\ s a -> s{_ssCityCouncilDistrict = a})++ssGeocodedPoint :: Lens' StreetSegment (Maybe PointProto)+ssGeocodedPoint+  = lens _ssGeocodedPoint+      (\ s a -> s{_ssGeocodedPoint = a})++ssEndHouseNumber :: Lens' StreetSegment (Maybe Int64)+ssEndHouseNumber+  = lens _ssEndHouseNumber+      (\ s a -> s{_ssEndHouseNumber = a})+      . mapping _Coerce++ssSubAdministrativeAreaName :: Lens' StreetSegment (Maybe Text)+ssSubAdministrativeAreaName+  = lens _ssSubAdministrativeAreaName+      (\ s a -> s{_ssSubAdministrativeAreaName = a})++ssPublished :: Lens' StreetSegment (Maybe Bool)+ssPublished+  = lens _ssPublished (\ s a -> s{_ssPublished = a})++ssStartLatE7 :: Lens' StreetSegment (Maybe Int64)+ssStartLatE7+  = lens _ssStartLatE7 (\ s a -> s{_ssStartLatE7 = a})+      . mapping _Coerce++ssZip :: Lens' StreetSegment (Maybe Text)+ssZip = lens _ssZip (\ s a -> s{_ssZip = a})++ssSurrogateId :: Lens' StreetSegment (Maybe Int64)+ssSurrogateId+  = lens _ssSurrogateId+      (\ s a -> s{_ssSurrogateId = a})+      . mapping _Coerce++ssMunicipalDistrict :: Lens' StreetSegment (Maybe Text)+ssMunicipalDistrict+  = lens _ssMunicipalDistrict+      (\ s a -> s{_ssMunicipalDistrict = a})++ssWardDistrict :: Lens' StreetSegment (Maybe Text)+ssWardDistrict+  = lens _ssWardDistrict+      (\ s a -> s{_ssWardDistrict = a})++ssVoterGeographicDivisionOcdIds :: Lens' StreetSegment [Text]+ssVoterGeographicDivisionOcdIds+  = lens _ssVoterGeographicDivisionOcdIds+      (\ s a -> s{_ssVoterGeographicDivisionOcdIds = a})+      . _Default+      . _Coerce++ssStreetName :: Lens' StreetSegment (Maybe Text)+ssStreetName+  = lens _ssStreetName (\ s a -> s{_ssStreetName = a})++ssTownshipDistrict :: Lens' StreetSegment (Maybe Text)+ssTownshipDistrict+  = lens _ssTownshipDistrict+      (\ s a -> s{_ssTownshipDistrict = a})++ssUnitType :: Lens' StreetSegment (Maybe Text)+ssUnitType+  = lens _ssUnitType (\ s a -> s{_ssUnitType = a})++ssCongressionalDistrict :: Lens' StreetSegment (Maybe Text)+ssCongressionalDistrict+  = lens _ssCongressionalDistrict+      (\ s a -> s{_ssCongressionalDistrict = a})++ssStateSenateDistrict :: Lens' StreetSegment (Maybe Text)+ssStateSenateDistrict+  = lens _ssStateSenateDistrict+      (\ s a -> s{_ssStateSenateDistrict = a})++ssOddOrEvens :: Lens' StreetSegment [Text]+ssOddOrEvens+  = lens _ssOddOrEvens (\ s a -> s{_ssOddOrEvens = a})+      . _Default+      . _Coerce++ssGeographicDivisionOcdIds :: Lens' StreetSegment [Text]+ssGeographicDivisionOcdIds+  = lens _ssGeographicDivisionOcdIds+      (\ s a -> s{_ssGeographicDivisionOcdIds = a})+      . _Default+      . _Coerce++ssBeforeGeocodeId :: Lens' StreetSegment (Maybe Text)+ssBeforeGeocodeId+  = lens _ssBeforeGeocodeId+      (\ s a -> s{_ssBeforeGeocodeId = a})++ssDataSetId :: Lens' StreetSegment (Maybe Int64)+ssDataSetId+  = lens _ssDataSetId (\ s a -> s{_ssDataSetId = a}) .+      mapping _Coerce++ssStartLngE7 :: Lens' StreetSegment (Maybe Int64)+ssStartLngE7+  = lens _ssStartLngE7 (\ s a -> s{_ssStartLngE7 = a})+      . mapping _Coerce++ssCity :: Lens' StreetSegment (Maybe Text)+ssCity = lens _ssCity (\ s a -> s{_ssCity = a})++ssWildcard :: Lens' StreetSegment (Maybe Bool)+ssWildcard+  = lens _ssWildcard (\ s a -> s{_ssWildcard = a})++ssTargetsmartUniquePrecinctCode :: Lens' StreetSegment (Maybe Text)+ssTargetsmartUniquePrecinctCode+  = lens _ssTargetsmartUniquePrecinctCode+      (\ s a -> s{_ssTargetsmartUniquePrecinctCode = a})++ssProvenances :: Lens' StreetSegment [Provenance]+ssProvenances+  = lens _ssProvenances+      (\ s a -> s{_ssProvenances = a})+      . _Default+      . _Coerce++ssSchoolDistrict :: Lens' StreetSegment (Maybe Text)+ssSchoolDistrict+  = lens _ssSchoolDistrict+      (\ s a -> s{_ssSchoolDistrict = a})++ssMailOnly :: Lens' StreetSegment (Maybe Bool)+ssMailOnly+  = lens _ssMailOnly (\ s a -> s{_ssMailOnly = a})++ssId :: Lens' StreetSegment (Maybe Text)+ssId = lens _ssId (\ s a -> s{_ssId = a})++ssUnitNumber :: Lens' StreetSegment (Maybe Text)+ssUnitNumber+  = lens _ssUnitNumber (\ s a -> s{_ssUnitNumber = a})++ssAdministrationRegionIds :: Lens' StreetSegment [Text]+ssAdministrationRegionIds+  = lens _ssAdministrationRegionIds+      (\ s a -> s{_ssAdministrationRegionIds = a})+      . _Default+      . _Coerce++ssVanPrecinctCode :: Lens' StreetSegment (Maybe Text)+ssVanPrecinctCode+  = lens _ssVanPrecinctCode+      (\ s a -> s{_ssVanPrecinctCode = a})++ssJudicialDistrict :: Lens' StreetSegment (Maybe Text)+ssJudicialDistrict+  = lens _ssJudicialDistrict+      (\ s a -> s{_ssJudicialDistrict = a})++ssPrecinctName :: Lens' StreetSegment (Maybe Text)+ssPrecinctName+  = lens _ssPrecinctName+      (\ s a -> s{_ssPrecinctName = a})++ssCountyFips :: Lens' StreetSegment (Maybe Text)+ssCountyFips+  = lens _ssCountyFips (\ s a -> s{_ssCountyFips = a})++ssPrecinctOcdId :: Lens' StreetSegment (Maybe Text)+ssPrecinctOcdId+  = lens _ssPrecinctOcdId+      (\ s a -> s{_ssPrecinctOcdId = a})++instance FromJSON StreetSegment where+        parseJSON+          = withObject "StreetSegment"+              (\ o ->+                 StreetSegment' <$>+                   (o .:? "originalId") <*>+                     (o .:? "pollinglocationByIds" .!= mempty)+                     <*> (o .:? "startHouseNumber")+                     <*> (o .:? "catalistUniquePrecinctCode")+                     <*> (o .:? "state")+                     <*> (o .:? "contestIds" .!= mempty)+                     <*> (o .:? "stateHouseDistrict")+                     <*> (o .:? "ncoaAddress")+                     <*> (o .:? "earlyVoteSiteByIds" .!= mempty)+                     <*> (o .:? "countyCouncilDistrict")+                     <*> (o .:? "cityCouncilDistrict")+                     <*> (o .:? "geocodedPoint")+                     <*> (o .:? "endHouseNumber")+                     <*> (o .:? "subAdministrativeAreaName")+                     <*> (o .:? "published")+                     <*> (o .:? "startLatE7")+                     <*> (o .:? "zip")+                     <*> (o .:? "surrogateId")+                     <*> (o .:? "municipalDistrict")+                     <*> (o .:? "wardDistrict")+                     <*>+                     (o .:? "voterGeographicDivisionOcdIds" .!= mempty)+                     <*> (o .:? "streetName")+                     <*> (o .:? "townshipDistrict")+                     <*> (o .:? "unitType")+                     <*> (o .:? "congressionalDistrict")+                     <*> (o .:? "stateSenateDistrict")+                     <*> (o .:? "oddOrEvens" .!= mempty)+                     <*> (o .:? "geographicDivisionOcdIds" .!= mempty)+                     <*> (o .:? "beforeGeocodeId")+                     <*> (o .:? "datasetId")+                     <*> (o .:? "startLngE7")+                     <*> (o .:? "city")+                     <*> (o .:? "wildcard")+                     <*> (o .:? "targetsmartUniquePrecinctCode")+                     <*> (o .:? "provenances" .!= mempty)+                     <*> (o .:? "schoolDistrict")+                     <*> (o .:? "mailOnly")+                     <*> (o .:? "id")+                     <*> (o .:? "unitNumber")+                     <*> (o .:? "administrationRegionIds" .!= mempty)+                     <*> (o .:? "vanPrecinctCode")+                     <*> (o .:? "judicialDistrict")+                     <*> (o .:? "precinctName")+                     <*> (o .:? "countyFips")+                     <*> (o .:? "precinctOcdId"))++instance ToJSON StreetSegment where+        toJSON StreetSegment'{..}+          = object+              (catMaybes+                 [("originalId" .=) <$> _ssOriginalId,+                  ("pollinglocationByIds" .=) <$>+                    _ssPollinglocationByIds,+                  ("startHouseNumber" .=) <$> _ssStartHouseNumber,+                  ("catalistUniquePrecinctCode" .=) <$>+                    _ssCataListUniquePrecinctCode,+                  ("state" .=) <$> _ssState,+                  ("contestIds" .=) <$> _ssContestIds,+                  ("stateHouseDistrict" .=) <$> _ssStateHouseDistrict,+                  ("ncoaAddress" .=) <$> _ssNcoaAddress,+                  ("earlyVoteSiteByIds" .=) <$> _ssEarlyVoteSiteByIds,+                  ("countyCouncilDistrict" .=) <$>+                    _ssCountyCouncilDistrict,+                  ("cityCouncilDistrict" .=) <$>+                    _ssCityCouncilDistrict,+                  ("geocodedPoint" .=) <$> _ssGeocodedPoint,+                  ("endHouseNumber" .=) <$> _ssEndHouseNumber,+                  ("subAdministrativeAreaName" .=) <$>+                    _ssSubAdministrativeAreaName,+                  ("published" .=) <$> _ssPublished,+                  ("startLatE7" .=) <$> _ssStartLatE7,+                  ("zip" .=) <$> _ssZip,+                  ("surrogateId" .=) <$> _ssSurrogateId,+                  ("municipalDistrict" .=) <$> _ssMunicipalDistrict,+                  ("wardDistrict" .=) <$> _ssWardDistrict,+                  ("voterGeographicDivisionOcdIds" .=) <$>+                    _ssVoterGeographicDivisionOcdIds,+                  ("streetName" .=) <$> _ssStreetName,+                  ("townshipDistrict" .=) <$> _ssTownshipDistrict,+                  ("unitType" .=) <$> _ssUnitType,+                  ("congressionalDistrict" .=) <$>+                    _ssCongressionalDistrict,+                  ("stateSenateDistrict" .=) <$>+                    _ssStateSenateDistrict,+                  ("oddOrEvens" .=) <$> _ssOddOrEvens,+                  ("geographicDivisionOcdIds" .=) <$>+                    _ssGeographicDivisionOcdIds,+                  ("beforeGeocodeId" .=) <$> _ssBeforeGeocodeId,+                  ("datasetId" .=) <$> _ssDataSetId,+                  ("startLngE7" .=) <$> _ssStartLngE7,+                  ("city" .=) <$> _ssCity,+                  ("wildcard" .=) <$> _ssWildcard,+                  ("targetsmartUniquePrecinctCode" .=) <$>+                    _ssTargetsmartUniquePrecinctCode,+                  ("provenances" .=) <$> _ssProvenances,+                  ("schoolDistrict" .=) <$> _ssSchoolDistrict,+                  ("mailOnly" .=) <$> _ssMailOnly, ("id" .=) <$> _ssId,+                  ("unitNumber" .=) <$> _ssUnitNumber,+                  ("administrationRegionIds" .=) <$>+                    _ssAdministrationRegionIds,+                  ("vanPrecinctCode" .=) <$> _ssVanPrecinctCode,+                  ("judicialDistrict" .=) <$> _ssJudicialDistrict,+                  ("precinctName" .=) <$> _ssPrecinctName,+                  ("countyFips" .=) <$> _ssCountyFips,+                  ("precinctOcdId" .=) <$> _ssPrecinctOcdId])++-- | Information about a candidate running for elected office.+--+-- /See:/ 'candidate' smart constructor.+data Candidate = Candidate'+    { _cEmail         :: !(Maybe Text)+    , _cPhone         :: !(Maybe Text)+    , _cPhotoURL      :: !(Maybe Text)+    , _cChannels      :: !(Maybe [Channel])+    , _cCandidateURL  :: !(Maybe Text)+    , _cOrderOnBallot :: !(Maybe (Textual Int64))+    , _cName          :: !(Maybe Text)+    , _cParty         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Candidate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cEmail'+--+-- * 'cPhone'+--+-- * 'cPhotoURL'+--+-- * 'cChannels'+--+-- * 'cCandidateURL'+--+-- * 'cOrderOnBallot'+--+-- * 'cName'+--+-- * 'cParty'+candidate+    :: Candidate+candidate =+    Candidate'+    { _cEmail = Nothing+    , _cPhone = Nothing+    , _cPhotoURL = Nothing+    , _cChannels = Nothing+    , _cCandidateURL = Nothing+    , _cOrderOnBallot = Nothing+    , _cName = Nothing+    , _cParty = Nothing+    }++-- | The email address for the candidate\'s campaign.+cEmail :: Lens' Candidate (Maybe Text)+cEmail = lens _cEmail (\ s a -> s{_cEmail = a})++-- | The voice phone number for the candidate\'s campaign office.+cPhone :: Lens' Candidate (Maybe Text)+cPhone = lens _cPhone (\ s a -> s{_cPhone = a})++-- | A URL for a photo of the candidate.+cPhotoURL :: Lens' Candidate (Maybe Text)+cPhotoURL+  = lens _cPhotoURL (\ s a -> s{_cPhotoURL = a})++-- | A list of known (social) media channels for this candidate.+cChannels :: Lens' Candidate [Channel]+cChannels+  = lens _cChannels (\ s a -> s{_cChannels = a}) .+      _Default+      . _Coerce++-- | The URL for the candidate\'s campaign web site.+cCandidateURL :: Lens' Candidate (Maybe Text)+cCandidateURL+  = lens _cCandidateURL+      (\ s a -> s{_cCandidateURL = a})++-- | The order the candidate appears on the ballot for this contest.+cOrderOnBallot :: Lens' Candidate (Maybe Int64)+cOrderOnBallot+  = lens _cOrderOnBallot+      (\ s a -> s{_cOrderOnBallot = a})+      . mapping _Coerce++-- | 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)+cName = lens _cName (\ s a -> s{_cName = a})++-- | The full name of the party the candidate is a member of.+cParty :: Lens' Candidate (Maybe Text)+cParty = lens _cParty (\ s a -> s{_cParty = a})++instance FromJSON Candidate where+        parseJSON+          = withObject "Candidate"+              (\ o ->+                 Candidate' <$>+                   (o .:? "email") <*> (o .:? "phone") <*>+                     (o .:? "photoUrl")+                     <*> (o .:? "channels" .!= mempty)+                     <*> (o .:? "candidateUrl")+                     <*> (o .:? "orderOnBallot")+                     <*> (o .:? "name")+                     <*> (o .:? "party"))++instance ToJSON Candidate where+        toJSON Candidate'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _cEmail, ("phone" .=) <$> _cPhone,+                  ("photoUrl" .=) <$> _cPhotoURL,+                  ("channels" .=) <$> _cChannels,+                  ("candidateUrl" .=) <$> _cCandidateURL,+                  ("orderOnBallot" .=) <$> _cOrderOnBallot,+                  ("name" .=) <$> _cName, ("party" .=) <$> _cParty])++-- | Information about an Office held by one or more Officials.+--+-- /See:/ 'office' smart constructor.+data Office = Office'+    { _oDivisionId      :: !(Maybe Text)+    , _oRoles           :: !(Maybe [Text])+    , _oOfficialIndices :: !(Maybe [Textual Word32])+    , _oSources         :: !(Maybe [Source])+    , _oName            :: !(Maybe Text)+    , _oLevels          :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Office' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oDivisionId'+--+-- * 'oRoles'+--+-- * 'oOfficialIndices'+--+-- * 'oSources'+--+-- * 'oName'+--+-- * 'oLevels'+office+    :: Office+office =+    Office'+    { _oDivisionId = Nothing+    , _oRoles = Nothing+    , _oOfficialIndices = Nothing+    , _oSources = Nothing+    , _oName = Nothing+    , _oLevels = Nothing+    }++-- | The OCD ID of the division with which this office is associated.+oDivisionId :: Lens' Office (Maybe Text)+oDivisionId+  = lens _oDivisionId (\ s a -> s{_oDivisionId = a})++-- | 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]+oRoles+  = lens _oRoles (\ s a -> s{_oRoles = a}) . _Default .+      _Coerce++-- | List of indices in the officials array of people who presently hold this+-- office.+oOfficialIndices :: Lens' Office [Word32]+oOfficialIndices+  = lens _oOfficialIndices+      (\ s a -> s{_oOfficialIndices = a})+      . _Default+      . _Coerce++-- | A list of sources for this office. If multiple sources are listed, the+-- data has been aggregated from those sources.+oSources :: Lens' Office [Source]+oSources+  = lens _oSources (\ s a -> s{_oSources = a}) .+      _Default+      . _Coerce++-- | The human-readable name of the office.+oName :: Lens' Office (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | 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]+oLevels+  = lens _oLevels (\ s a -> s{_oLevels = a}) . _Default+      . _Coerce++instance FromJSON Office where+        parseJSON+          = withObject "Office"+              (\ o ->+                 Office' <$>+                   (o .:? "divisionId") <*> (o .:? "roles" .!= mempty)+                     <*> (o .:? "officialIndices" .!= mempty)+                     <*> (o .:? "sources" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "levels" .!= mempty))++instance ToJSON Office where+        toJSON Office'{..}+          = object+              (catMaybes+                 [("divisionId" .=) <$> _oDivisionId,+                  ("roles" .=) <$> _oRoles,+                  ("officialIndices" .=) <$> _oOfficialIndices,+                  ("sources" .=) <$> _oSources, ("name" .=) <$> _oName,+                  ("levels" .=) <$> _oLevels])++--+-- /See:/ 'streetSegmentList' smart constructor.+newtype StreetSegmentList = StreetSegmentList'+    { _sslSegments :: Maybe [StreetSegment]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreetSegmentList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sslSegments'+streetSegmentList+    :: StreetSegmentList+streetSegmentList =+    StreetSegmentList'+    { _sslSegments = Nothing+    }++sslSegments :: Lens' StreetSegmentList [StreetSegment]+sslSegments+  = lens _sslSegments (\ s a -> s{_sslSegments = a}) .+      _Default+      . _Coerce++instance FromJSON StreetSegmentList where+        parseJSON+          = withObject "StreetSegmentList"+              (\ o ->+                 StreetSegmentList' <$> (o .:? "segments" .!= mempty))++instance ToJSON StreetSegmentList where+        toJSON StreetSegmentList'{..}+          = object+              (catMaybes [("segments" .=) <$> _sslSegments])++--+-- /See:/ 'livegraphBacktraceRecordInfo' smart constructor.+data LivegraphBacktraceRecordInfo = LivegraphBacktraceRecordInfo'+    { _lbriDataSourcePublishMsec :: !(Maybe (Textual Int64))+    , _lbriTopicBuildStartMsec   :: !(Maybe (Textual Int64))+    , _lbriIsRecon               :: !(Maybe Bool)+    , _lbriPriority              :: !(Maybe Text)+    , _lbriShouldMonitorLatency  :: !(Maybe Bool)+    , _lbriRecordId              :: !(Maybe Text)+    , _lbriProxySentMsec         :: !(Maybe (Textual Int64))+    , _lbriExpInfo               :: !(Maybe LivegraphBacktraceRecordInfoExpInfo)+    , _lbriProcess               :: !(Maybe Text)+    , _lbriTopicBuildFinishMsec  :: !(Maybe (Textual Int64))+    , _lbriNumberOfTriples       :: !(Maybe (Textual Int64))+    , _lbriProxyReceiveMsec      :: !(Maybe (Textual Int64))+    , _lbriVersion               :: !(Maybe Text)+    , _lbriIsWlmThrottled        :: !(Maybe Bool)+    , _lbriExpId                 :: !(Maybe Text)+    , _lbriSubscriberReceiveMsec :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LivegraphBacktraceRecordInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbriDataSourcePublishMsec'+--+-- * 'lbriTopicBuildStartMsec'+--+-- * 'lbriIsRecon'+--+-- * 'lbriPriority'+--+-- * 'lbriShouldMonitorLatency'+--+-- * 'lbriRecordId'+--+-- * 'lbriProxySentMsec'+--+-- * 'lbriExpInfo'+--+-- * 'lbriProcess'+--+-- * 'lbriTopicBuildFinishMsec'+--+-- * 'lbriNumberOfTriples'+--+-- * 'lbriProxyReceiveMsec'+--+-- * 'lbriVersion'+--+-- * 'lbriIsWlmThrottled'+--+-- * 'lbriExpId'+--+-- * 'lbriSubscriberReceiveMsec'+livegraphBacktraceRecordInfo+    :: LivegraphBacktraceRecordInfo+livegraphBacktraceRecordInfo =+    LivegraphBacktraceRecordInfo'+    { _lbriDataSourcePublishMsec = Nothing+    , _lbriTopicBuildStartMsec = Nothing+    , _lbriIsRecon = Nothing+    , _lbriPriority = Nothing+    , _lbriShouldMonitorLatency = Nothing+    , _lbriRecordId = Nothing+    , _lbriProxySentMsec = Nothing+    , _lbriExpInfo = Nothing+    , _lbriProcess = Nothing+    , _lbriTopicBuildFinishMsec = Nothing+    , _lbriNumberOfTriples = Nothing+    , _lbriProxyReceiveMsec = Nothing+    , _lbriVersion = Nothing+    , _lbriIsWlmThrottled = Nothing+    , _lbriExpId = Nothing+    , _lbriSubscriberReceiveMsec = Nothing+    }++lbriDataSourcePublishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriDataSourcePublishMsec+  = lens _lbriDataSourcePublishMsec+      (\ s a -> s{_lbriDataSourcePublishMsec = a})+      . mapping _Coerce++lbriTopicBuildStartMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriTopicBuildStartMsec+  = lens _lbriTopicBuildStartMsec+      (\ s a -> s{_lbriTopicBuildStartMsec = a})+      . mapping _Coerce++lbriIsRecon :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)+lbriIsRecon+  = lens _lbriIsRecon (\ s a -> s{_lbriIsRecon = a})++lbriPriority :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)+lbriPriority+  = lens _lbriPriority (\ s a -> s{_lbriPriority = a})++lbriShouldMonitorLatency :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)+lbriShouldMonitorLatency+  = lens _lbriShouldMonitorLatency+      (\ s a -> s{_lbriShouldMonitorLatency = a})++lbriRecordId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)+lbriRecordId+  = lens _lbriRecordId (\ s a -> s{_lbriRecordId = a})++lbriProxySentMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriProxySentMsec+  = lens _lbriProxySentMsec+      (\ s a -> s{_lbriProxySentMsec = a})+      . mapping _Coerce++lbriExpInfo :: Lens' LivegraphBacktraceRecordInfo (Maybe LivegraphBacktraceRecordInfoExpInfo)+lbriExpInfo+  = lens _lbriExpInfo (\ s a -> s{_lbriExpInfo = a})++lbriProcess :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)+lbriProcess+  = lens _lbriProcess (\ s a -> s{_lbriProcess = a})++lbriTopicBuildFinishMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriTopicBuildFinishMsec+  = lens _lbriTopicBuildFinishMsec+      (\ s a -> s{_lbriTopicBuildFinishMsec = a})+      . mapping _Coerce++lbriNumberOfTriples :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriNumberOfTriples+  = lens _lbriNumberOfTriples+      (\ s a -> s{_lbriNumberOfTriples = a})+      . mapping _Coerce++lbriProxyReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriProxyReceiveMsec+  = lens _lbriProxyReceiveMsec+      (\ s a -> s{_lbriProxyReceiveMsec = a})+      . mapping _Coerce++lbriVersion :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)+lbriVersion+  = lens _lbriVersion (\ s a -> s{_lbriVersion = a})++lbriIsWlmThrottled :: Lens' LivegraphBacktraceRecordInfo (Maybe Bool)+lbriIsWlmThrottled+  = lens _lbriIsWlmThrottled+      (\ s a -> s{_lbriIsWlmThrottled = a})++lbriExpId :: Lens' LivegraphBacktraceRecordInfo (Maybe Text)+lbriExpId+  = lens _lbriExpId (\ s a -> s{_lbriExpId = a})++lbriSubscriberReceiveMsec :: Lens' LivegraphBacktraceRecordInfo (Maybe Int64)+lbriSubscriberReceiveMsec+  = lens _lbriSubscriberReceiveMsec+      (\ s a -> s{_lbriSubscriberReceiveMsec = a})+      . mapping _Coerce++instance FromJSON LivegraphBacktraceRecordInfo where+        parseJSON+          = withObject "LivegraphBacktraceRecordInfo"+              (\ o ->+                 LivegraphBacktraceRecordInfo' <$>+                   (o .:? "dataSourcePublishMsec") <*>+                     (o .:? "topicBuildStartMsec")+                     <*> (o .:? "isRecon")+                     <*> (o .:? "priority")+                     <*> (o .:? "shouldMonitorLatency")+                     <*> (o .:? "recordId")+                     <*> (o .:? "proxySentMsec")+                     <*> (o .:? "expInfo")+                     <*> (o .:? "process")+                     <*> (o .:? "topicBuildFinishMsec")+                     <*> (o .:? "numberOfTriples")+                     <*> (o .:? "proxyReceiveMsec")+                     <*> (o .:? "version")+                     <*> (o .:? "isWlmThrottled")+                     <*> (o .:? "expId")+                     <*> (o .:? "subscriberReceiveMsec"))++instance ToJSON LivegraphBacktraceRecordInfo where+        toJSON LivegraphBacktraceRecordInfo'{..}+          = object+              (catMaybes+                 [("dataSourcePublishMsec" .=) <$>+                    _lbriDataSourcePublishMsec,+                  ("topicBuildStartMsec" .=) <$>+                    _lbriTopicBuildStartMsec,+                  ("isRecon" .=) <$> _lbriIsRecon,+                  ("priority" .=) <$> _lbriPriority,+                  ("shouldMonitorLatency" .=) <$>+                    _lbriShouldMonitorLatency,+                  ("recordId" .=) <$> _lbriRecordId,+                  ("proxySentMsec" .=) <$> _lbriProxySentMsec,+                  ("expInfo" .=) <$> _lbriExpInfo,+                  ("process" .=) <$> _lbriProcess,+                  ("topicBuildFinishMsec" .=) <$>+                    _lbriTopicBuildFinishMsec,+                  ("numberOfTriples" .=) <$> _lbriNumberOfTriples,+                  ("proxyReceiveMsec" .=) <$> _lbriProxyReceiveMsec,+                  ("version" .=) <$> _lbriVersion,+                  ("isWlmThrottled" .=) <$> _lbriIsWlmThrottled,+                  ("expId" .=) <$> _lbriExpId,+                  ("subscriberReceiveMsec" .=) <$>+                    _lbriSubscriberReceiveMsec])++--+-- /See:/ 'electionsQueryRequest' smart constructor.+newtype ElectionsQueryRequest = ElectionsQueryRequest'+    { _eqrContextParams :: Maybe ContextParams+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ElectionsQueryRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eqrContextParams'+electionsQueryRequest+    :: ElectionsQueryRequest+electionsQueryRequest =+    ElectionsQueryRequest'+    { _eqrContextParams = Nothing+    }++eqrContextParams :: Lens' ElectionsQueryRequest (Maybe ContextParams)+eqrContextParams+  = lens _eqrContextParams+      (\ s a -> s{_eqrContextParams = a})++instance FromJSON ElectionsQueryRequest where+        parseJSON+          = withObject "ElectionsQueryRequest"+              (\ o ->+                 ElectionsQueryRequest' <$> (o .:? "contextParams"))++instance ToJSON ElectionsQueryRequest where+        toJSON ElectionsQueryRequest'{..}+          = object+              (catMaybes+                 [("contextParams" .=) <$> _eqrContextParams])++-- | A social media or web channel for a candidate.+--+-- /See:/ 'channel' smart constructor.+data Channel = Channel'+    { _cId   :: !(Maybe Text)+    , _cType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Channel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cId'+--+-- * 'cType'+channel+    :: Channel+channel =+    Channel'+    { _cId = Nothing+    , _cType = Nothing+    }++-- | The unique public identifier for the candidate\'s channel.+cId :: Lens' Channel (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | 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)+cType = lens _cType (\ s a -> s{_cType = a})++instance FromJSON Channel where+        parseJSON+          = withObject "Channel"+              (\ o -> Channel' <$> (o .:? "id") <*> (o .:? "type"))++instance ToJSON Channel where+        toJSON Channel'{..}+          = object+              (catMaybes+                 [("id" .=) <$> _cId, ("type" .=) <$> _cType])++-- | Information about the election that was queried.+--+-- /See:/ 'election' smart constructor.+data Election = Election'+    { _eOcdDivisionId :: !(Maybe Text)+    , _eElectionDay   :: !(Maybe Text)+    , _eName          :: !(Maybe Text)+    , _eId            :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Election' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eOcdDivisionId'+--+-- * 'eElectionDay'+--+-- * 'eName'+--+-- * 'eId'+election+    :: Election+election =+    Election'+    { _eOcdDivisionId = Nothing+    , _eElectionDay = Nothing+    , _eName = Nothing+    , _eId = Nothing+    }++-- | 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)+eOcdDivisionId+  = lens _eOcdDivisionId+      (\ s a -> s{_eOcdDivisionId = a})++-- | Day of the election in YYYY-MM-DD format.+eElectionDay :: Lens' Election (Maybe Text)+eElectionDay+  = lens _eElectionDay (\ s a -> s{_eElectionDay = a})++-- | A displayable name for the election.+eName :: Lens' Election (Maybe Text)+eName = lens _eName (\ s a -> s{_eName = a})++-- | The unique ID of this election.+eId :: Lens' Election (Maybe Int64)+eId+  = lens _eId (\ s a -> s{_eId = a}) . mapping _Coerce++instance FromJSON Election where+        parseJSON+          = withObject "Election"+              (\ o ->+                 Election' <$>+                   (o .:? "ocdDivisionId") <*> (o .:? "electionDay") <*>+                     (o .:? "name")+                     <*> (o .:? "id"))++instance ToJSON Election where+        toJSON Election'{..}+          = object+              (catMaybes+                 [("ocdDivisionId" .=) <$> _eOcdDivisionId,+                  ("electionDay" .=) <$> _eElectionDay,+                  ("name" .=) <$> _eName, ("id" .=) <$> _eId])++-- | The result of a representative info lookup query.+--+-- /See:/ 'representativeInfoResponse' smart constructor.+data RepresentativeInfoResponse = RepresentativeInfoResponse'+    { _rirKind            :: !Text+    , _rirNormalizedInput :: !(Maybe SimpleAddressType)+    , _rirOfficials       :: !(Maybe [Official])+    , _rirDivisions       :: !(Maybe RepresentativeInfoResponseDivisions)+    , _rirOffices         :: !(Maybe [Office])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepresentativeInfoResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rirKind'+--+-- * 'rirNormalizedInput'+--+-- * 'rirOfficials'+--+-- * 'rirDivisions'+--+-- * 'rirOffices'+representativeInfoResponse+    :: RepresentativeInfoResponse+representativeInfoResponse =+    RepresentativeInfoResponse'+    { _rirKind = "civicinfo#representativeInfoResponse"+    , _rirNormalizedInput = Nothing+    , _rirOfficials = Nothing+    , _rirDivisions = Nothing+    , _rirOffices = Nothing+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"civicinfo#representativeInfoResponse\".+rirKind :: Lens' RepresentativeInfoResponse Text+rirKind = lens _rirKind (\ s a -> s{_rirKind = a})++-- | The normalized version of the requested address+rirNormalizedInput :: Lens' RepresentativeInfoResponse (Maybe SimpleAddressType)+rirNormalizedInput+  = lens _rirNormalizedInput+      (\ s a -> s{_rirNormalizedInput = a})++-- | Officials holding the offices listed above. Will only be present if+-- includeOffices was true in the request.+rirOfficials :: Lens' RepresentativeInfoResponse [Official]+rirOfficials+  = lens _rirOfficials (\ s a -> s{_rirOfficials = a})+      . _Default+      . _Coerce++-- | Political geographic divisions that contain the requested address.+rirDivisions :: Lens' RepresentativeInfoResponse (Maybe RepresentativeInfoResponseDivisions)+rirDivisions+  = lens _rirDivisions (\ s a -> s{_rirDivisions = a})++-- | Elected offices referenced by the divisions listed above. Will only be+-- present if includeOffices was true in the request.+rirOffices :: Lens' RepresentativeInfoResponse [Office]+rirOffices+  = lens _rirOffices (\ s a -> s{_rirOffices = a}) .+      _Default+      . _Coerce++instance FromJSON RepresentativeInfoResponse where+        parseJSON+          = withObject "RepresentativeInfoResponse"+              (\ o ->+                 RepresentativeInfoResponse' <$>+                   (o .:? "kind" .!=+                      "civicinfo#representativeInfoResponse")+                     <*> (o .:? "normalizedInput")+                     <*> (o .:? "officials" .!= mempty)+                     <*> (o .:? "divisions")+                     <*> (o .:? "offices" .!= mempty))++instance ToJSON RepresentativeInfoResponse where+        toJSON RepresentativeInfoResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _rirKind),+                  ("normalizedInput" .=) <$> _rirNormalizedInput,+                  ("officials" .=) <$> _rirOfficials,+                  ("divisions" .=) <$> _rirDivisions,+                  ("offices" .=) <$> _rirOffices])++--+-- /See:/ 'voterInfoSegmentResult' smart constructor.+data VoterInfoSegmentResult = VoterInfoSegmentResult'+    { _visrResponse        :: !(Maybe VoterInfoResponse)+    , _visrGeneratedMillis :: !(Maybe (Textual Int64))+    , _visrPostalAddress   :: !(Maybe PostalAddress)+    , _visrRequest         :: !(Maybe VoterInfoRequest)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VoterInfoSegmentResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'visrResponse'+--+-- * 'visrGeneratedMillis'+--+-- * 'visrPostalAddress'+--+-- * 'visrRequest'+voterInfoSegmentResult+    :: VoterInfoSegmentResult+voterInfoSegmentResult =+    VoterInfoSegmentResult'+    { _visrResponse = Nothing+    , _visrGeneratedMillis = Nothing+    , _visrPostalAddress = Nothing+    , _visrRequest = Nothing+    }++visrResponse :: Lens' VoterInfoSegmentResult (Maybe VoterInfoResponse)+visrResponse+  = lens _visrResponse (\ s a -> s{_visrResponse = a})++visrGeneratedMillis :: Lens' VoterInfoSegmentResult (Maybe Int64)+visrGeneratedMillis+  = lens _visrGeneratedMillis+      (\ s a -> s{_visrGeneratedMillis = a})+      . mapping _Coerce++visrPostalAddress :: Lens' VoterInfoSegmentResult (Maybe PostalAddress)+visrPostalAddress+  = lens _visrPostalAddress+      (\ s a -> s{_visrPostalAddress = a})++visrRequest :: Lens' VoterInfoSegmentResult (Maybe VoterInfoRequest)+visrRequest+  = lens _visrRequest (\ s a -> s{_visrRequest = a})++instance FromJSON VoterInfoSegmentResult where+        parseJSON+          = withObject "VoterInfoSegmentResult"+              (\ o ->+                 VoterInfoSegmentResult' <$>+                   (o .:? "response") <*> (o .:? "generatedMillis") <*>+                     (o .:? "postalAddress")+                     <*> (o .:? "request"))++instance ToJSON VoterInfoSegmentResult where+        toJSON VoterInfoSegmentResult'{..}+          = object+              (catMaybes+                 [("response" .=) <$> _visrResponse,+                  ("generatedMillis" .=) <$> _visrGeneratedMillis,+                  ("postalAddress" .=) <$> _visrPostalAddress,+                  ("request" .=) <$> _visrRequest])++-- | Represents a political geographic division that matches the requested+-- query.+--+-- /See:/ 'divisionSearchResult' smart constructor.+data DivisionSearchResult = DivisionSearchResult'+    { _dsrAliases :: !(Maybe [Text])+    , _dsrName    :: !(Maybe Text)+    , _dsrOcdId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DivisionSearchResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrAliases'+--+-- * 'dsrName'+--+-- * 'dsrOcdId'+divisionSearchResult+    :: DivisionSearchResult+divisionSearchResult =+    DivisionSearchResult'+    { _dsrAliases = Nothing+    , _dsrName = Nothing+    , _dsrOcdId = Nothing+    }++-- | 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]+dsrAliases+  = lens _dsrAliases (\ s a -> s{_dsrAliases = a}) .+      _Default+      . _Coerce++-- | The name of the division.+dsrName :: Lens' DivisionSearchResult (Maybe Text)+dsrName = lens _dsrName (\ s a -> s{_dsrName = a})++-- | The unique Open Civic Data identifier for this division.+dsrOcdId :: Lens' DivisionSearchResult (Maybe Text)+dsrOcdId = lens _dsrOcdId (\ s a -> s{_dsrOcdId = a})++instance FromJSON DivisionSearchResult where+        parseJSON+          = withObject "DivisionSearchResult"+              (\ o ->+                 DivisionSearchResult' <$>+                   (o .:? "aliases" .!= mempty) <*> (o .:? "name") <*>+                     (o .:? "ocdId"))++instance ToJSON DivisionSearchResult where+        toJSON DivisionSearchResult'{..}+          = object+              (catMaybes+                 [("aliases" .=) <$> _dsrAliases,+                  ("name" .=) <$> _dsrName,+                  ("ocdId" .=) <$> _dsrOcdId])++-- | A search request for political geographies.+--+-- /See:/ 'divisionSearchRequest' smart constructor.+newtype DivisionSearchRequest = DivisionSearchRequest'+    { _dsrContextParams :: Maybe ContextParams+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DivisionSearchRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrContextParams'+divisionSearchRequest+    :: DivisionSearchRequest+divisionSearchRequest =+    DivisionSearchRequest'+    { _dsrContextParams = Nothing+    }++dsrContextParams :: Lens' DivisionSearchRequest (Maybe ContextParams)+dsrContextParams+  = lens _dsrContextParams+      (\ s a -> s{_dsrContextParams = a})++instance FromJSON DivisionSearchRequest where+        parseJSON+          = withObject "DivisionSearchRequest"+              (\ o ->+                 DivisionSearchRequest' <$> (o .:? "contextParams"))++instance ToJSON DivisionSearchRequest where+        toJSON DivisionSearchRequest'{..}+          = object+              (catMaybes+                 [("contextParams" .=) <$> _dsrContextParams])++--+-- /See:/ 'fieldMetadataProto' smart constructor.+newtype FieldMetadataProto = FieldMetadataProto'+    { _fmpInternal :: Maybe InternalFieldMetadataProto+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FieldMetadataProto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fmpInternal'+fieldMetadataProto+    :: FieldMetadataProto+fieldMetadataProto =+    FieldMetadataProto'+    { _fmpInternal = Nothing+    }++fmpInternal :: Lens' FieldMetadataProto (Maybe InternalFieldMetadataProto)+fmpInternal+  = lens _fmpInternal (\ s a -> s{_fmpInternal = a})++instance FromJSON FieldMetadataProto where+        parseJSON+          = withObject "FieldMetadataProto"+              (\ o -> FieldMetadataProto' <$> (o .:? "internal"))++instance ToJSON FieldMetadataProto where+        toJSON FieldMetadataProto'{..}+          = object+              (catMaybes [("internal" .=) <$> _fmpInternal])++--+-- /See:/ 'messageSet' smart constructor.+newtype MessageSet = MessageSet'+    { _msRecordMessageSetExt :: Maybe LivegraphBacktraceRecordInfo+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MessageSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msRecordMessageSetExt'+messageSet+    :: MessageSet+messageSet =+    MessageSet'+    { _msRecordMessageSetExt = Nothing+    }++msRecordMessageSetExt :: Lens' MessageSet (Maybe LivegraphBacktraceRecordInfo)+msRecordMessageSetExt+  = lens _msRecordMessageSetExt+      (\ s a -> s{_msRecordMessageSetExt = a})++instance FromJSON MessageSet where+        parseJSON+          = withObject "MessageSet"+              (\ o ->+                 MessageSet' <$> (o .:? "recordMessageSetExt"))++instance ToJSON MessageSet where+        toJSON MessageSet'{..}+          = object+              (catMaybes+                 [("recordMessageSetExt" .=) <$>+                    _msRecordMessageSetExt])++-- | Information about an election administrative body (e.g. County Board of+-- Elections).+--+-- /See:/ 'administrativeBody' smart constructor.+data AdministrativeBody = AdministrativeBody'+    { _abCorrespondenceAddress               :: !(Maybe SimpleAddressType)+    , _abAbsenteeVotingInfoURL               :: !(Maybe Text)+    , _abHoursOfOperation                    :: !(Maybe Text)+    , _abBallotInfoURL                       :: !(Maybe Text)+    , _abPhysicalAddress                     :: !(Maybe SimpleAddressType)+    , _abElectionRegistrationConfirmationURL :: !(Maybe Text)+    , _abElectionInfoURL                     :: !(Maybe Text)+    , _abVotingLocationFinderURL             :: !(Maybe Text)+    , _abElectionOfficials                   :: !(Maybe [ElectionOfficial])+    , _abName                                :: !(Maybe Text)+    , _abElectionRulesURL                    :: !(Maybe Text)+    , _abAddressLines                        :: !(Maybe [Text])+    , _abVoterServices                       :: !(Maybe [Text])+    , _abElectionRegistrationURL             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AdministrativeBody' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abCorrespondenceAddress'+--+-- * 'abAbsenteeVotingInfoURL'+--+-- * 'abHoursOfOperation'+--+-- * 'abBallotInfoURL'+--+-- * 'abPhysicalAddress'+--+-- * 'abElectionRegistrationConfirmationURL'+--+-- * 'abElectionInfoURL'+--+-- * 'abVotingLocationFinderURL'+--+-- * 'abElectionOfficials'+--+-- * 'abName'+--+-- * 'abElectionRulesURL'+--+-- * 'abAddressLines'+--+-- * 'abVoterServices'+--+-- * 'abElectionRegistrationURL'+administrativeBody+    :: AdministrativeBody+administrativeBody =+    AdministrativeBody'+    { _abCorrespondenceAddress = Nothing+    , _abAbsenteeVotingInfoURL = Nothing+    , _abHoursOfOperation = Nothing+    , _abBallotInfoURL = Nothing+    , _abPhysicalAddress = Nothing+    , _abElectionRegistrationConfirmationURL = Nothing+    , _abElectionInfoURL = Nothing+    , _abVotingLocationFinderURL = Nothing+    , _abElectionOfficials = Nothing+    , _abName = Nothing+    , _abElectionRulesURL = Nothing+    , _abAddressLines = Nothing+    , _abVoterServices = Nothing+    , _abElectionRegistrationURL = Nothing+    }++-- | The mailing address of this administrative body.+abCorrespondenceAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)+abCorrespondenceAddress+  = lens _abCorrespondenceAddress+      (\ s a -> s{_abCorrespondenceAddress = a})++-- | A URL provided by this administrative body for information on absentee+-- voting.+abAbsenteeVotingInfoURL :: Lens' AdministrativeBody (Maybe Text)+abAbsenteeVotingInfoURL+  = lens _abAbsenteeVotingInfoURL+      (\ s a -> s{_abAbsenteeVotingInfoURL = a})++-- | A description of the hours of operation for this administrative body.+abHoursOfOperation :: Lens' AdministrativeBody (Maybe Text)+abHoursOfOperation+  = lens _abHoursOfOperation+      (\ s a -> s{_abHoursOfOperation = a})++-- | A URL provided by this administrative body to give contest information+-- to the voter.+abBallotInfoURL :: Lens' AdministrativeBody (Maybe Text)+abBallotInfoURL+  = lens _abBallotInfoURL+      (\ s a -> s{_abBallotInfoURL = a})++-- | The physical address of this administrative body.+abPhysicalAddress :: Lens' AdministrativeBody (Maybe SimpleAddressType)+abPhysicalAddress+  = lens _abPhysicalAddress+      (\ s a -> s{_abPhysicalAddress = a})++-- | A URL provided by this administrative body for confirming that the voter+-- is registered to vote.+abElectionRegistrationConfirmationURL :: Lens' AdministrativeBody (Maybe Text)+abElectionRegistrationConfirmationURL+  = lens _abElectionRegistrationConfirmationURL+      (\ s a ->+         s{_abElectionRegistrationConfirmationURL = a})++-- | A URL provided by this administrative body for looking up general+-- election information.+abElectionInfoURL :: Lens' AdministrativeBody (Maybe Text)+abElectionInfoURL+  = lens _abElectionInfoURL+      (\ s a -> s{_abElectionInfoURL = a})++-- | A URL provided by this administrative body for looking up where to vote.+abVotingLocationFinderURL :: Lens' AdministrativeBody (Maybe Text)+abVotingLocationFinderURL+  = lens _abVotingLocationFinderURL+      (\ s a -> s{_abVotingLocationFinderURL = a})++-- | The election officials for this election administrative body.+abElectionOfficials :: Lens' AdministrativeBody [ElectionOfficial]+abElectionOfficials+  = lens _abElectionOfficials+      (\ s a -> s{_abElectionOfficials = a})+      . _Default+      . _Coerce++-- | The name of this election administrative body.+abName :: Lens' AdministrativeBody (Maybe Text)+abName = lens _abName (\ s a -> s{_abName = a})++-- | A URL provided by this administrative body describing election rules to+-- the voter.+abElectionRulesURL :: Lens' AdministrativeBody (Maybe Text)+abElectionRulesURL+  = lens _abElectionRulesURL+      (\ s a -> s{_abElectionRulesURL = a})++abAddressLines :: Lens' AdministrativeBody [Text]+abAddressLines+  = lens _abAddressLines+      (\ s a -> s{_abAddressLines = a})+      . _Default+      . _Coerce++-- | A description of the services this administrative body may provide.+abVoterServices :: Lens' AdministrativeBody [Text]+abVoterServices+  = lens _abVoterServices+      (\ s a -> s{_abVoterServices = a})+      . _Default+      . _Coerce++-- | A URL provided by this administrative body for looking up how to+-- register to vote.+abElectionRegistrationURL :: Lens' AdministrativeBody (Maybe Text)+abElectionRegistrationURL+  = lens _abElectionRegistrationURL+      (\ s a -> s{_abElectionRegistrationURL = a})++instance FromJSON AdministrativeBody where+        parseJSON+          = withObject "AdministrativeBody"+              (\ o ->+                 AdministrativeBody' <$>+                   (o .:? "correspondenceAddress") <*>+                     (o .:? "absenteeVotingInfoUrl")+                     <*> (o .:? "hoursOfOperation")+                     <*> (o .:? "ballotInfoUrl")+                     <*> (o .:? "physicalAddress")+                     <*> (o .:? "electionRegistrationConfirmationUrl")+                     <*> (o .:? "electionInfoUrl")+                     <*> (o .:? "votingLocationFinderUrl")+                     <*> (o .:? "electionOfficials" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "electionRulesUrl")+                     <*> (o .:? "addressLines" .!= mempty)+                     <*> (o .:? "voter_services" .!= mempty)+                     <*> (o .:? "electionRegistrationUrl"))++instance ToJSON AdministrativeBody where+        toJSON AdministrativeBody'{..}+          = object+              (catMaybes+                 [("correspondenceAddress" .=) <$>+                    _abCorrespondenceAddress,+                  ("absenteeVotingInfoUrl" .=) <$>+                    _abAbsenteeVotingInfoURL,+                  ("hoursOfOperation" .=) <$> _abHoursOfOperation,+                  ("ballotInfoUrl" .=) <$> _abBallotInfoURL,+                  ("physicalAddress" .=) <$> _abPhysicalAddress,+                  ("electionRegistrationConfirmationUrl" .=) <$>+                    _abElectionRegistrationConfirmationURL,+                  ("electionInfoUrl" .=) <$> _abElectionInfoURL,+                  ("votingLocationFinderUrl" .=) <$>+                    _abVotingLocationFinderURL,+                  ("electionOfficials" .=) <$> _abElectionOfficials,+                  ("name" .=) <$> _abName,+                  ("electionRulesUrl" .=) <$> _abElectionRulesURL,+                  ("addressLines" .=) <$> _abAddressLines,+                  ("voter_services" .=) <$> _abVoterServices,+                  ("electionRegistrationUrl" .=) <$>+                    _abElectionRegistrationURL])++-- | A request for political geography and representative information for an+-- address.+--+-- /See:/ 'representativeInfoRequest' smart constructor.+newtype RepresentativeInfoRequest = RepresentativeInfoRequest'+    { _rirContextParams :: Maybe ContextParams+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepresentativeInfoRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rirContextParams'+representativeInfoRequest+    :: RepresentativeInfoRequest+representativeInfoRequest =+    RepresentativeInfoRequest'+    { _rirContextParams = Nothing+    }++rirContextParams :: Lens' RepresentativeInfoRequest (Maybe ContextParams)+rirContextParams+  = lens _rirContextParams+      (\ s a -> s{_rirContextParams = a})++instance FromJSON RepresentativeInfoRequest where+        parseJSON+          = withObject "RepresentativeInfoRequest"+              (\ o ->+                 RepresentativeInfoRequest' <$>+                   (o .:? "contextParams"))++instance ToJSON RepresentativeInfoRequest where+        toJSON RepresentativeInfoRequest'{..}+          = object+              (catMaybes+                 [("contextParams" .=) <$> _rirContextParams])++-- | Information about a contest that appears on a voter\'s ballot.+--+-- /See:/ 'contest' smart constructor.+data Contest = Contest'+    { _conReferendumPassageThreshold :: !(Maybe Text)+    , _conRoles                      :: !(Maybe [Text])+    , _conReferendumURL              :: !(Maybe Text)+    , _conReferendumEffectOfAbstain  :: !(Maybe Text)+    , _conReferendumSubtitle         :: !(Maybe Text)+    , _conNumberVotingFor            :: !(Maybe (Textual Int64))+    , _conOffice                     :: !(Maybe Text)+    , _conReferendumConStatement     :: !(Maybe Text)+    , _conSources                    :: !(Maybe [Source])+    , _conReferendumProStatement     :: !(Maybe Text)+    , _conReferendumBallotResponses  :: !(Maybe [Text])+    , _conNumberElected              :: !(Maybe (Textual Int64))+    , _conSpecial                    :: !(Maybe Text)+    , _conReferendumText             :: !(Maybe Text)+    , _conPrimaryParty               :: !(Maybe Text)+    , _conId                         :: !(Maybe Text)+    , _conType                       :: !(Maybe Text)+    , _conBallotTitle                :: !(Maybe Text)+    , _conElectorateSpecifications   :: !(Maybe Text)+    , _conReferendumBrief            :: !(Maybe Text)+    , _conDistrict                   :: !(Maybe ElectoralDistrict)+    , _conLevel                      :: !(Maybe [Text])+    , _conCandidates                 :: !(Maybe [Candidate])+    , _conReferendumTitle            :: !(Maybe Text)+    , _conBallotPlacement            :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Contest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'conReferendumPassageThreshold'+--+-- * 'conRoles'+--+-- * 'conReferendumURL'+--+-- * 'conReferendumEffectOfAbstain'+--+-- * 'conReferendumSubtitle'+--+-- * 'conNumberVotingFor'+--+-- * 'conOffice'+--+-- * 'conReferendumConStatement'+--+-- * 'conSources'+--+-- * 'conReferendumProStatement'+--+-- * 'conReferendumBallotResponses'+--+-- * 'conNumberElected'+--+-- * 'conSpecial'+--+-- * 'conReferendumText'+--+-- * 'conPrimaryParty'+--+-- * 'conId'+--+-- * 'conType'+--+-- * 'conBallotTitle'+--+-- * 'conElectorateSpecifications'+--+-- * 'conReferendumBrief'+--+-- * 'conDistrict'+--+-- * 'conLevel'+--+-- * 'conCandidates'+--+-- * 'conReferendumTitle'+--+-- * 'conBallotPlacement'+contest+    :: Contest+contest =+    Contest'+    { _conReferendumPassageThreshold = Nothing+    , _conRoles = Nothing+    , _conReferendumURL = Nothing+    , _conReferendumEffectOfAbstain = Nothing+    , _conReferendumSubtitle = Nothing+    , _conNumberVotingFor = Nothing+    , _conOffice = Nothing+    , _conReferendumConStatement = Nothing+    , _conSources = Nothing+    , _conReferendumProStatement = Nothing+    , _conReferendumBallotResponses = Nothing+    , _conNumberElected = Nothing+    , _conSpecial = Nothing+    , _conReferendumText = Nothing+    , _conPrimaryParty = Nothing+    , _conId = Nothing+    , _conType = Nothing+    , _conBallotTitle = Nothing+    , _conElectorateSpecifications = Nothing+    , _conReferendumBrief = Nothing+    , _conDistrict = Nothing+    , _conLevel = Nothing+    , _conCandidates = Nothing+    , _conReferendumTitle = Nothing+    , _conBallotPlacement = Nothing+    }++-- | 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)+conReferendumPassageThreshold+  = lens _conReferendumPassageThreshold+      (\ s a -> s{_conReferendumPassageThreshold = a})++-- | The roles which this office fulfills.+conRoles :: Lens' Contest [Text]+conRoles+  = lens _conRoles (\ s a -> s{_conRoles = a}) .+      _Default+      . _Coerce++-- | A link to the referendum. This field is only populated for contests of+-- type \'Referendum\'.+conReferendumURL :: Lens' Contest (Maybe Text)+conReferendumURL+  = lens _conReferendumURL+      (\ s a -> s{_conReferendumURL = a})++-- | 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)+conReferendumEffectOfAbstain+  = lens _conReferendumEffectOfAbstain+      (\ s a -> s{_conReferendumEffectOfAbstain = a})++-- | A brief description of the referendum. This field is only populated for+-- contests of type \'Referendum\'.+conReferendumSubtitle :: Lens' Contest (Maybe Text)+conReferendumSubtitle+  = lens _conReferendumSubtitle+      (\ s a -> s{_conReferendumSubtitle = a})++-- | The number of candidates that a voter may vote for in this contest.+conNumberVotingFor :: Lens' Contest (Maybe Int64)+conNumberVotingFor+  = lens _conNumberVotingFor+      (\ s a -> s{_conNumberVotingFor = a})+      . mapping _Coerce++-- | The name of the office for this contest.+conOffice :: Lens' Contest (Maybe Text)+conOffice+  = lens _conOffice (\ s a -> s{_conOffice = a})++-- | 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)+conReferendumConStatement+  = lens _conReferendumConStatement+      (\ s a -> s{_conReferendumConStatement = a})++-- | A list of sources for this contest. If multiple sources are listed, the+-- data has been aggregated from those sources.+conSources :: Lens' Contest [Source]+conSources+  = lens _conSources (\ s a -> s{_conSources = a}) .+      _Default+      . _Coerce++-- | 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)+conReferendumProStatement+  = lens _conReferendumProStatement+      (\ s a -> s{_conReferendumProStatement = a})++-- | 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]+conReferendumBallotResponses+  = lens _conReferendumBallotResponses+      (\ s a -> s{_conReferendumBallotResponses = a})+      . _Default+      . _Coerce++-- | The number of candidates that will be elected to office in this contest.+conNumberElected :: Lens' Contest (Maybe Int64)+conNumberElected+  = lens _conNumberElected+      (\ s a -> s{_conNumberElected = a})+      . mapping _Coerce++-- | \"Yes\" or \"No\" depending on whether this a contest being held outside+-- the normal election cycle.+conSpecial :: Lens' Contest (Maybe Text)+conSpecial+  = lens _conSpecial (\ s a -> s{_conSpecial = a})++-- | The full text of the referendum. This field is only populated for+-- contests of type \'Referendum\'.+conReferendumText :: Lens' Contest (Maybe Text)+conReferendumText+  = lens _conReferendumText+      (\ s a -> s{_conReferendumText = a})++-- | If this is a partisan election, the name of the party it is for.+conPrimaryParty :: Lens' Contest (Maybe Text)+conPrimaryParty+  = lens _conPrimaryParty+      (\ s a -> s{_conPrimaryParty = a})++-- | 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)+conId = lens _conId (\ s a -> s{_conId = a})++-- | 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)+conType = lens _conType (\ s a -> s{_conType = a})++-- | The official title on the ballot for this contest, only where available.+conBallotTitle :: Lens' Contest (Maybe Text)+conBallotTitle+  = lens _conBallotTitle+      (\ s a -> s{_conBallotTitle = a})++-- | A description of any additional eligibility requirements for voting in+-- this contest.+conElectorateSpecifications :: Lens' Contest (Maybe Text)+conElectorateSpecifications+  = lens _conElectorateSpecifications+      (\ s a -> s{_conElectorateSpecifications = a})++-- | 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)+conReferendumBrief+  = lens _conReferendumBrief+      (\ s a -> s{_conReferendumBrief = a})++-- | Information about the electoral district that this contest is in.+conDistrict :: Lens' Contest (Maybe ElectoralDistrict)+conDistrict+  = lens _conDistrict (\ s a -> s{_conDistrict = a})++-- | 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]+conLevel+  = lens _conLevel (\ s a -> s{_conLevel = a}) .+      _Default+      . _Coerce++-- | The candidate choices for this contest.+conCandidates :: Lens' Contest [Candidate]+conCandidates+  = lens _conCandidates+      (\ s a -> s{_conCandidates = a})+      . _Default+      . _Coerce++-- | The title of the referendum (e.g. \'Proposition 42\'). This field is+-- only populated for contests of type \'Referendum\'.+conReferendumTitle :: Lens' Contest (Maybe Text)+conReferendumTitle+  = lens _conReferendumTitle+      (\ s a -> s{_conReferendumTitle = a})++-- | A number specifying the position of this contest on the voter\'s ballot.+conBallotPlacement :: Lens' Contest (Maybe Int64)+conBallotPlacement+  = lens _conBallotPlacement+      (\ s a -> s{_conBallotPlacement = a})+      . mapping _Coerce++instance FromJSON Contest where+        parseJSON+          = withObject "Contest"+              (\ o ->+                 Contest' <$>+                   (o .:? "referendumPassageThreshold") <*>+                     (o .:? "roles" .!= mempty)+                     <*> (o .:? "referendumUrl")+                     <*> (o .:? "referendumEffectOfAbstain")+                     <*> (o .:? "referendumSubtitle")+                     <*> (o .:? "numberVotingFor")+                     <*> (o .:? "office")+                     <*> (o .:? "referendumConStatement")+                     <*> (o .:? "sources" .!= mempty)+                     <*> (o .:? "referendumProStatement")+                     <*> (o .:? "referendumBallotResponses" .!= mempty)+                     <*> (o .:? "numberElected")+                     <*> (o .:? "special")+                     <*> (o .:? "referendumText")+                     <*> (o .:? "primaryParty")+                     <*> (o .:? "id")+                     <*> (o .:? "type")+                     <*> (o .:? "ballotTitle")+                     <*> (o .:? "electorateSpecifications")+                     <*> (o .:? "referendumBrief")+                     <*> (o .:? "district")+                     <*> (o .:? "level" .!= mempty)+                     <*> (o .:? "candidates" .!= mempty)+                     <*> (o .:? "referendumTitle")+                     <*> (o .:? "ballotPlacement"))++instance ToJSON Contest where+        toJSON Contest'{..}+          = object+              (catMaybes+                 [("referendumPassageThreshold" .=) <$>+                    _conReferendumPassageThreshold,+                  ("roles" .=) <$> _conRoles,+                  ("referendumUrl" .=) <$> _conReferendumURL,+                  ("referendumEffectOfAbstain" .=) <$>+                    _conReferendumEffectOfAbstain,+                  ("referendumSubtitle" .=) <$> _conReferendumSubtitle,+                  ("numberVotingFor" .=) <$> _conNumberVotingFor,+                  ("office" .=) <$> _conOffice,+                  ("referendumConStatement" .=) <$>+                    _conReferendumConStatement,+                  ("sources" .=) <$> _conSources,+                  ("referendumProStatement" .=) <$>+                    _conReferendumProStatement,+                  ("referendumBallotResponses" .=) <$>+                    _conReferendumBallotResponses,+                  ("numberElected" .=) <$> _conNumberElected,+                  ("special" .=) <$> _conSpecial,+                  ("referendumText" .=) <$> _conReferendumText,+                  ("primaryParty" .=) <$> _conPrimaryParty,+                  ("id" .=) <$> _conId, ("type" .=) <$> _conType,+                  ("ballotTitle" .=) <$> _conBallotTitle,+                  ("electorateSpecifications" .=) <$>+                    _conElectorateSpecifications,+                  ("referendumBrief" .=) <$> _conReferendumBrief,+                  ("district" .=) <$> _conDistrict,+                  ("level" .=) <$> _conLevel,+                  ("candidates" .=) <$> _conCandidates,+                  ("referendumTitle" .=) <$> _conReferendumTitle,+                  ("ballotPlacement" .=) <$> _conBallotPlacement])++-- | The result of a division search query.+--+-- /See:/ 'divisionSearchResponse' smart constructor.+data DivisionSearchResponse = DivisionSearchResponse'+    { _dsrResults :: !(Maybe [DivisionSearchResult])+    , _dsrKind    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DivisionSearchResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrResults'+--+-- * 'dsrKind'+divisionSearchResponse+    :: DivisionSearchResponse+divisionSearchResponse =+    DivisionSearchResponse'+    { _dsrResults = Nothing+    , _dsrKind = "civicinfo#divisionSearchResponse"+    }++dsrResults :: Lens' DivisionSearchResponse [DivisionSearchResult]+dsrResults+  = lens _dsrResults (\ s a -> s{_dsrResults = a}) .+      _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"civicinfo#divisionSearchResponse\".+dsrKind :: Lens' DivisionSearchResponse Text+dsrKind = lens _dsrKind (\ s a -> s{_dsrKind = a})++instance FromJSON DivisionSearchResponse where+        parseJSON+          = withObject "DivisionSearchResponse"+              (\ o ->+                 DivisionSearchResponse' <$>+                   (o .:? "results" .!= mempty) <*>+                     (o .:? "kind" .!=+                        "civicinfo#divisionSearchResponse"))++instance ToJSON DivisionSearchResponse where+        toJSON DivisionSearchResponse'{..}+          = object+              (catMaybes+                 [("results" .=) <$> _dsrResults,+                  Just ("kind" .= _dsrKind)])++-- | Political geographic divisions that contain the requested address.+--+-- /See:/ 'representativeInfoDataDivisions' smart constructor.+newtype RepresentativeInfoDataDivisions = RepresentativeInfoDataDivisions'+    { _riddAddtional :: HashMap Text GeographicDivision+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepresentativeInfoDataDivisions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riddAddtional'+representativeInfoDataDivisions+    :: HashMap Text GeographicDivision -- ^ 'riddAddtional'+    -> RepresentativeInfoDataDivisions+representativeInfoDataDivisions pRiddAddtional_ =+    RepresentativeInfoDataDivisions'+    { _riddAddtional = _Coerce # pRiddAddtional_+    }++-- | The unique Open Civic Data identifier for this division.+riddAddtional :: Lens' RepresentativeInfoDataDivisions (HashMap Text GeographicDivision)+riddAddtional+  = lens _riddAddtional+      (\ s a -> s{_riddAddtional = a})+      . _Coerce++instance FromJSON RepresentativeInfoDataDivisions+         where+        parseJSON+          = withObject "RepresentativeInfoDataDivisions"+              (\ o ->+                 RepresentativeInfoDataDivisions' <$>+                   (parseJSONObject o))++instance ToJSON RepresentativeInfoDataDivisions where+        toJSON = toJSON . _riddAddtional++-- | Information about individual election officials.+--+-- /See:/ 'electionOfficial' smart constructor.+data ElectionOfficial = ElectionOfficial'+    { _eoFaxNumber         :: !(Maybe Text)+    , _eoName              :: !(Maybe Text)+    , _eoOfficePhoneNumber :: !(Maybe Text)+    , _eoEmailAddress      :: !(Maybe Text)+    , _eoTitle             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ElectionOfficial' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoFaxNumber'+--+-- * 'eoName'+--+-- * 'eoOfficePhoneNumber'+--+-- * 'eoEmailAddress'+--+-- * 'eoTitle'+electionOfficial+    :: ElectionOfficial+electionOfficial =+    ElectionOfficial'+    { _eoFaxNumber = Nothing+    , _eoName = Nothing+    , _eoOfficePhoneNumber = Nothing+    , _eoEmailAddress = Nothing+    , _eoTitle = Nothing+    }++-- | The fax number of the election official.+eoFaxNumber :: Lens' ElectionOfficial (Maybe Text)+eoFaxNumber+  = lens _eoFaxNumber (\ s a -> s{_eoFaxNumber = a})++-- | The full name of the election official.+eoName :: Lens' ElectionOfficial (Maybe Text)+eoName = lens _eoName (\ s a -> s{_eoName = a})++-- | The office phone number of the election official.+eoOfficePhoneNumber :: Lens' ElectionOfficial (Maybe Text)+eoOfficePhoneNumber+  = lens _eoOfficePhoneNumber+      (\ s a -> s{_eoOfficePhoneNumber = a})++-- | The email address of the election official.+eoEmailAddress :: Lens' ElectionOfficial (Maybe Text)+eoEmailAddress+  = lens _eoEmailAddress+      (\ s a -> s{_eoEmailAddress = a})++-- | The title of the election official.+eoTitle :: Lens' ElectionOfficial (Maybe Text)+eoTitle = lens _eoTitle (\ s a -> s{_eoTitle = a})++instance FromJSON ElectionOfficial where+        parseJSON+          = withObject "ElectionOfficial"+              (\ o ->+                 ElectionOfficial' <$>+                   (o .:? "faxNumber") <*> (o .:? "name") <*>+                     (o .:? "officePhoneNumber")+                     <*> (o .:? "emailAddress")+                     <*> (o .:? "title"))++instance ToJSON ElectionOfficial where+        toJSON ElectionOfficial'{..}+          = object+              (catMaybes+                 [("faxNumber" .=) <$> _eoFaxNumber,+                  ("name" .=) <$> _eoName,+                  ("officePhoneNumber" .=) <$> _eoOfficePhoneNumber,+                  ("emailAddress" .=) <$> _eoEmailAddress,+                  ("title" .=) <$> _eoTitle])++--+-- /See:/ 'pointProto' smart constructor.+data PointProto = PointProto'+    { _ppLatE7         :: !(Maybe (Textual Word32))+    , _ppLngE7         :: !(Maybe (Textual Word32))+    , _ppMetadata      :: !(Maybe FieldMetadataProto)+    , _ppTemporaryData :: !(Maybe MessageSet)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PointProto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppLatE7'+--+-- * 'ppLngE7'+--+-- * 'ppMetadata'+--+-- * 'ppTemporaryData'+pointProto+    :: PointProto+pointProto =+    PointProto'+    { _ppLatE7 = Nothing+    , _ppLngE7 = Nothing+    , _ppMetadata = Nothing+    , _ppTemporaryData = Nothing+    }++ppLatE7 :: Lens' PointProto (Maybe Word32)+ppLatE7+  = lens _ppLatE7 (\ s a -> s{_ppLatE7 = a}) .+      mapping _Coerce++ppLngE7 :: Lens' PointProto (Maybe Word32)+ppLngE7+  = lens _ppLngE7 (\ s a -> s{_ppLngE7 = a}) .+      mapping _Coerce++ppMetadata :: Lens' PointProto (Maybe FieldMetadataProto)+ppMetadata+  = lens _ppMetadata (\ s a -> s{_ppMetadata = a})++ppTemporaryData :: Lens' PointProto (Maybe MessageSet)+ppTemporaryData+  = lens _ppTemporaryData+      (\ s a -> s{_ppTemporaryData = a})++instance FromJSON PointProto where+        parseJSON+          = withObject "PointProto"+              (\ o ->+                 PointProto' <$>+                   (o .:? "latE7") <*> (o .:? "lngE7") <*>+                     (o .:? "metadata")+                     <*> (o .:? "temporaryData"))++instance ToJSON PointProto where+        toJSON PointProto'{..}+          = object+              (catMaybes+                 [("latE7" .=) <$> _ppLatE7,+                  ("lngE7" .=) <$> _ppLngE7,+                  ("metadata" .=) <$> _ppMetadata,+                  ("temporaryData" .=) <$> _ppTemporaryData])++--+-- /See:/ 'representativeInfoData' smart constructor.+data RepresentativeInfoData = RepresentativeInfoData'+    { _ridOfficials :: !(Maybe [Official])+    , _ridDivisions :: !(Maybe RepresentativeInfoDataDivisions)+    , _ridOffices   :: !(Maybe [Office])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepresentativeInfoData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ridOfficials'+--+-- * 'ridDivisions'+--+-- * 'ridOffices'+representativeInfoData+    :: RepresentativeInfoData+representativeInfoData =+    RepresentativeInfoData'+    { _ridOfficials = Nothing+    , _ridDivisions = Nothing+    , _ridOffices = Nothing+    }++-- | Officials holding the offices listed above. Will only be present if+-- includeOffices was true in the request.+ridOfficials :: Lens' RepresentativeInfoData [Official]+ridOfficials+  = lens _ridOfficials (\ s a -> s{_ridOfficials = a})+      . _Default+      . _Coerce++-- | Political geographic divisions that contain the requested address.+ridDivisions :: Lens' RepresentativeInfoData (Maybe RepresentativeInfoDataDivisions)+ridDivisions+  = lens _ridDivisions (\ s a -> s{_ridDivisions = a})++-- | Elected offices referenced by the divisions listed above. Will only be+-- present if includeOffices was true in the request.+ridOffices :: Lens' RepresentativeInfoData [Office]+ridOffices+  = lens _ridOffices (\ s a -> s{_ridOffices = a}) .+      _Default+      . _Coerce++instance FromJSON RepresentativeInfoData where+        parseJSON+          = withObject "RepresentativeInfoData"+              (\ o ->+                 RepresentativeInfoData' <$>+                   (o .:? "officials" .!= mempty) <*>+                     (o .:? "divisions")+                     <*> (o .:? "offices" .!= mempty))++instance ToJSON RepresentativeInfoData where+        toJSON RepresentativeInfoData'{..}+          = object+              (catMaybes+                 [("officials" .=) <$> _ridOfficials,+                  ("divisions" .=) <$> _ridDivisions,+                  ("offices" .=) <$> _ridOffices])++-- | Contains information about the data source for the element containing+-- it.+--+-- /See:/ 'source' smart constructor.+data Source = Source'+    { _sName     :: !(Maybe Text)+    , _sOfficial :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Source' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sName'+--+-- * 'sOfficial'+source+    :: Source+source =+    Source'+    { _sName = Nothing+    , _sOfficial = Nothing+    }++-- | The name of the data source.+sName :: Lens' Source (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a})++-- | Whether this data comes from an official government source.+sOfficial :: Lens' Source (Maybe Bool)+sOfficial+  = lens _sOfficial (\ s a -> s{_sOfficial = a})++instance FromJSON Source where+        parseJSON+          = withObject "Source"+              (\ o ->+                 Source' <$> (o .:? "name") <*> (o .:? "official"))++instance ToJSON Source where+        toJSON Source'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _sName,+                  ("official" .=) <$> _sOfficial])++-- | A request to look up representative information for a single division.+--+-- /See:/ 'divisionRepresentativeInfoRequest' smart constructor.+newtype DivisionRepresentativeInfoRequest = DivisionRepresentativeInfoRequest'+    { _drirContextParams :: Maybe ContextParams+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DivisionRepresentativeInfoRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drirContextParams'+divisionRepresentativeInfoRequest+    :: DivisionRepresentativeInfoRequest+divisionRepresentativeInfoRequest =+    DivisionRepresentativeInfoRequest'+    { _drirContextParams = Nothing+    }++drirContextParams :: Lens' DivisionRepresentativeInfoRequest (Maybe ContextParams)+drirContextParams+  = lens _drirContextParams+      (\ s a -> s{_drirContextParams = a})++instance FromJSON DivisionRepresentativeInfoRequest+         where+        parseJSON+          = withObject "DivisionRepresentativeInfoRequest"+              (\ o ->+                 DivisionRepresentativeInfoRequest' <$>+                   (o .:? "contextParams"))++instance ToJSON DivisionRepresentativeInfoRequest+         where+        toJSON DivisionRepresentativeInfoRequest'{..}+          = object+              (catMaybes+                 [("contextParams" .=) <$> _drirContextParams])++-- | Describes the geographic scope of a contest.+--+-- /See:/ 'electoralDistrict' smart constructor.+data ElectoralDistrict = ElectoralDistrict'+    { _edKgForeignKey :: !(Maybe Text)+    , _edName         :: !(Maybe Text)+    , _edScope        :: !(Maybe Text)+    , _edId           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ElectoralDistrict' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edKgForeignKey'+--+-- * 'edName'+--+-- * 'edScope'+--+-- * 'edId'+electoralDistrict+    :: ElectoralDistrict+electoralDistrict =+    ElectoralDistrict'+    { _edKgForeignKey = Nothing+    , _edName = Nothing+    , _edScope = Nothing+    , _edId = Nothing+    }++edKgForeignKey :: Lens' ElectoralDistrict (Maybe Text)+edKgForeignKey+  = lens _edKgForeignKey+      (\ s a -> s{_edKgForeignKey = a})++-- | The name of the district.+edName :: Lens' ElectoralDistrict (Maybe Text)+edName = lens _edName (\ s a -> s{_edName = a})++-- | 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)+edScope = lens _edScope (\ s a -> s{_edScope = a})++-- | 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)+edId = lens _edId (\ s a -> s{_edId = a})++instance FromJSON ElectoralDistrict where+        parseJSON+          = withObject "ElectoralDistrict"+              (\ o ->+                 ElectoralDistrict' <$>+                   (o .:? "kgForeignKey") <*> (o .:? "name") <*>+                     (o .:? "scope")+                     <*> (o .:? "id"))++instance ToJSON ElectoralDistrict where+        toJSON ElectoralDistrict'{..}+          = object+              (catMaybes+                 [("kgForeignKey" .=) <$> _edKgForeignKey,+                  ("name" .=) <$> _edName, ("scope" .=) <$> _edScope,+                  ("id" .=) <$> _edId])++-- | A request for information about a voter.+--+-- /See:/ 'voterInfoRequest' smart constructor.+data VoterInfoRequest = VoterInfoRequest'+    { _virVoterInfoSegmentResult :: !(Maybe VoterInfoSegmentResult)+    , _virContextParams          :: !(Maybe ContextParams)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VoterInfoRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'virVoterInfoSegmentResult'+--+-- * 'virContextParams'+voterInfoRequest+    :: VoterInfoRequest+voterInfoRequest =+    VoterInfoRequest'+    { _virVoterInfoSegmentResult = Nothing+    , _virContextParams = Nothing+    }++virVoterInfoSegmentResult :: Lens' VoterInfoRequest (Maybe VoterInfoSegmentResult)+virVoterInfoSegmentResult+  = lens _virVoterInfoSegmentResult+      (\ s a -> s{_virVoterInfoSegmentResult = a})++virContextParams :: Lens' VoterInfoRequest (Maybe ContextParams)+virContextParams+  = lens _virContextParams+      (\ s a -> s{_virContextParams = a})++instance FromJSON VoterInfoRequest where+        parseJSON+          = withObject "VoterInfoRequest"+              (\ o ->+                 VoterInfoRequest' <$>+                   (o .:? "voterInfoSegmentResult") <*>+                     (o .:? "contextParams"))++instance ToJSON VoterInfoRequest where+        toJSON VoterInfoRequest'{..}+          = object+              (catMaybes+                 [("voterInfoSegmentResult" .=) <$>+                    _virVoterInfoSegmentResult,+                  ("contextParams" .=) <$> _virContextParams])++-- | A simple representation of an address.+--+-- /See:/ 'simpleAddressType' smart constructor.+data SimpleAddressType = SimpleAddressType'+    { _satLine2        :: !(Maybe Text)+    , _satState        :: !(Maybe Text)+    , _satLine3        :: !(Maybe Text)+    , _satZip          :: !(Maybe Text)+    , _satCity         :: !(Maybe Text)+    , _satLine1        :: !(Maybe Text)+    , _satLocationName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SimpleAddressType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'satLine2'+--+-- * 'satState'+--+-- * 'satLine3'+--+-- * 'satZip'+--+-- * 'satCity'+--+-- * 'satLine1'+--+-- * 'satLocationName'+simpleAddressType+    :: SimpleAddressType+simpleAddressType =+    SimpleAddressType'+    { _satLine2 = Nothing+    , _satState = Nothing+    , _satLine3 = Nothing+    , _satZip = Nothing+    , _satCity = Nothing+    , _satLine1 = Nothing+    , _satLocationName = Nothing+    }++-- | The second line the address, if needed.+satLine2 :: Lens' SimpleAddressType (Maybe Text)+satLine2 = lens _satLine2 (\ s a -> s{_satLine2 = a})++-- | The US two letter state abbreviation of the address.+satState :: Lens' SimpleAddressType (Maybe Text)+satState = lens _satState (\ s a -> s{_satState = a})++-- | The third line of the address, if needed.+satLine3 :: Lens' SimpleAddressType (Maybe Text)+satLine3 = lens _satLine3 (\ s a -> s{_satLine3 = a})++-- | The US Postal Zip Code of the address.+satZip :: Lens' SimpleAddressType (Maybe Text)+satZip = lens _satZip (\ s a -> s{_satZip = a})++-- | The city or town for the address.+satCity :: Lens' SimpleAddressType (Maybe Text)+satCity = lens _satCity (\ s a -> s{_satCity = a})++-- | The street name and number of this address.+satLine1 :: Lens' SimpleAddressType (Maybe Text)+satLine1 = lens _satLine1 (\ s a -> s{_satLine1 = a})++-- | The name of the location.+satLocationName :: Lens' SimpleAddressType (Maybe Text)+satLocationName+  = lens _satLocationName+      (\ s a -> s{_satLocationName = a})++instance FromJSON SimpleAddressType where+        parseJSON+          = withObject "SimpleAddressType"+              (\ o ->+                 SimpleAddressType' <$>+                   (o .:? "line2") <*> (o .:? "state") <*>+                     (o .:? "line3")+                     <*> (o .:? "zip")+                     <*> (o .:? "city")+                     <*> (o .:? "line1")+                     <*> (o .:? "locationName"))++instance ToJSON SimpleAddressType where+        toJSON SimpleAddressType'{..}+          = object+              (catMaybes+                 [("line2" .=) <$> _satLine2,+                  ("state" .=) <$> _satState,+                  ("line3" .=) <$> _satLine3, ("zip" .=) <$> _satZip,+                  ("city" .=) <$> _satCity, ("line1" .=) <$> _satLine1,+                  ("locationName" .=) <$> _satLocationName])++--+-- /See:/ 'internalSourceSummaryProto' smart constructor.+data InternalSourceSummaryProto = InternalSourceSummaryProto'+    { _isspDataSet  :: !(Maybe Text)+    , _isspProvider :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InternalSourceSummaryProto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isspDataSet'+--+-- * 'isspProvider'+internalSourceSummaryProto+    :: InternalSourceSummaryProto+internalSourceSummaryProto =+    InternalSourceSummaryProto'+    { _isspDataSet = Nothing+    , _isspProvider = Nothing+    }++isspDataSet :: Lens' InternalSourceSummaryProto (Maybe Text)+isspDataSet+  = lens _isspDataSet (\ s a -> s{_isspDataSet = a})++isspProvider :: Lens' InternalSourceSummaryProto (Maybe Text)+isspProvider+  = lens _isspProvider (\ s a -> s{_isspProvider = a})++instance FromJSON InternalSourceSummaryProto where+        parseJSON+          = withObject "InternalSourceSummaryProto"+              (\ o ->+                 InternalSourceSummaryProto' <$>+                   (o .:? "dataset") <*> (o .:? "provider"))++instance ToJSON InternalSourceSummaryProto where+        toJSON InternalSourceSummaryProto'{..}+          = object+              (catMaybes+                 [("dataset" .=) <$> _isspDataSet,+                  ("provider" .=) <$> _isspProvider])++--+-- /See:/ 'livegraphBacktraceRecordInfoExpInfo' smart constructor.+newtype LivegraphBacktraceRecordInfoExpInfo = LivegraphBacktraceRecordInfoExpInfo'+    { _lbrieiDeletedIns :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LivegraphBacktraceRecordInfoExpInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbrieiDeletedIns'+livegraphBacktraceRecordInfoExpInfo+    :: LivegraphBacktraceRecordInfoExpInfo+livegraphBacktraceRecordInfoExpInfo =+    LivegraphBacktraceRecordInfoExpInfo'+    { _lbrieiDeletedIns = Nothing+    }++lbrieiDeletedIns :: Lens' LivegraphBacktraceRecordInfoExpInfo [Text]+lbrieiDeletedIns+  = lens _lbrieiDeletedIns+      (\ s a -> s{_lbrieiDeletedIns = a})+      . _Default+      . _Coerce++instance FromJSON LivegraphBacktraceRecordInfoExpInfo+         where+        parseJSON+          = withObject "LivegraphBacktraceRecordInfoExpInfo"+              (\ o ->+                 LivegraphBacktraceRecordInfoExpInfo' <$>+                   (o .:? "deletedIns" .!= mempty))++instance ToJSON LivegraphBacktraceRecordInfoExpInfo+         where+        toJSON LivegraphBacktraceRecordInfoExpInfo'{..}+          = object+              (catMaybes [("deletedIns" .=) <$> _lbrieiDeletedIns])++--+-- /See:/ 'contextParams' smart constructor.+newtype ContextParams = ContextParams'+    { _cpClientProFile :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ContextParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpClientProFile'+contextParams+    :: ContextParams+contextParams =+    ContextParams'+    { _cpClientProFile = Nothing+    }++cpClientProFile :: Lens' ContextParams (Maybe Text)+cpClientProFile+  = lens _cpClientProFile+      (\ s a -> s{_cpClientProFile = a})++instance FromJSON ContextParams where+        parseJSON+          = withObject "ContextParams"+              (\ o -> ContextParams' <$> (o .:? "clientProfile"))++instance ToJSON ContextParams where+        toJSON ContextParams'{..}+          = object+              (catMaybes+                 [("clientProfile" .=) <$> _cpClientProFile])++--+-- /See:/ 'postalAddress' smart constructor.+data PostalAddress = PostalAddress'+    { _paAdministrativeAreaName    :: !(Maybe Text)+    , _paRecipientName             :: !(Maybe Text)+    , _paLanguageCode              :: !(Maybe Text)+    , _paSortingCode               :: !(Maybe Text)+    , _paPremiseName               :: !(Maybe Text)+    , _paPostalCodeNumberExtension :: !(Maybe Text)+    , _paCountryNameCode           :: !(Maybe Text)+    , _paSubAdministrativeAreaName :: !(Maybe Text)+    , _paPostBoxNumber             :: !(Maybe Text)+    , _paLocalityName              :: !(Maybe Text)+    , _paIsDisputed                :: !(Maybe Bool)+    , _paThoroughfareNumber        :: !(Maybe Text)+    , _paDependentLocalityName     :: !(Maybe Text)+    , _paFirmName                  :: !(Maybe Text)+    , _paCountryName               :: !(Maybe Text)+    , _paDependentThoroughfareName :: !(Maybe Text)+    , _paAddressLines              :: !(Maybe [Text])+    , _paPostalCodeNumber          :: !(Maybe Text)+    , _paThoroughfareName          :: !(Maybe Text)+    , _paSubPremiseName            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PostalAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'paAdministrativeAreaName'+--+-- * 'paRecipientName'+--+-- * 'paLanguageCode'+--+-- * 'paSortingCode'+--+-- * 'paPremiseName'+--+-- * 'paPostalCodeNumberExtension'+--+-- * 'paCountryNameCode'+--+-- * 'paSubAdministrativeAreaName'+--+-- * 'paPostBoxNumber'+--+-- * 'paLocalityName'+--+-- * 'paIsDisputed'+--+-- * 'paThoroughfareNumber'+--+-- * 'paDependentLocalityName'+--+-- * 'paFirmName'+--+-- * 'paCountryName'+--+-- * 'paDependentThoroughfareName'+--+-- * 'paAddressLines'+--+-- * 'paPostalCodeNumber'+--+-- * 'paThoroughfareName'+--+-- * 'paSubPremiseName'+postalAddress+    :: PostalAddress+postalAddress =+    PostalAddress'+    { _paAdministrativeAreaName = Nothing+    , _paRecipientName = Nothing+    , _paLanguageCode = Nothing+    , _paSortingCode = Nothing+    , _paPremiseName = Nothing+    , _paPostalCodeNumberExtension = Nothing+    , _paCountryNameCode = Nothing+    , _paSubAdministrativeAreaName = Nothing+    , _paPostBoxNumber = Nothing+    , _paLocalityName = Nothing+    , _paIsDisputed = Nothing+    , _paThoroughfareNumber = Nothing+    , _paDependentLocalityName = Nothing+    , _paFirmName = Nothing+    , _paCountryName = Nothing+    , _paDependentThoroughfareName = Nothing+    , _paAddressLines = Nothing+    , _paPostalCodeNumber = Nothing+    , _paThoroughfareName = Nothing+    , _paSubPremiseName = Nothing+    }++paAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)+paAdministrativeAreaName+  = lens _paAdministrativeAreaName+      (\ s a -> s{_paAdministrativeAreaName = a})++paRecipientName :: Lens' PostalAddress (Maybe Text)+paRecipientName+  = lens _paRecipientName+      (\ s a -> s{_paRecipientName = a})++paLanguageCode :: Lens' PostalAddress (Maybe Text)+paLanguageCode+  = lens _paLanguageCode+      (\ s a -> s{_paLanguageCode = a})++paSortingCode :: Lens' PostalAddress (Maybe Text)+paSortingCode+  = lens _paSortingCode+      (\ s a -> s{_paSortingCode = a})++paPremiseName :: Lens' PostalAddress (Maybe Text)+paPremiseName+  = lens _paPremiseName+      (\ s a -> s{_paPremiseName = a})++paPostalCodeNumberExtension :: Lens' PostalAddress (Maybe Text)+paPostalCodeNumberExtension+  = lens _paPostalCodeNumberExtension+      (\ s a -> s{_paPostalCodeNumberExtension = a})++paCountryNameCode :: Lens' PostalAddress (Maybe Text)+paCountryNameCode+  = lens _paCountryNameCode+      (\ s a -> s{_paCountryNameCode = a})++paSubAdministrativeAreaName :: Lens' PostalAddress (Maybe Text)+paSubAdministrativeAreaName+  = lens _paSubAdministrativeAreaName+      (\ s a -> s{_paSubAdministrativeAreaName = a})++paPostBoxNumber :: Lens' PostalAddress (Maybe Text)+paPostBoxNumber+  = lens _paPostBoxNumber+      (\ s a -> s{_paPostBoxNumber = a})++paLocalityName :: Lens' PostalAddress (Maybe Text)+paLocalityName+  = lens _paLocalityName+      (\ s a -> s{_paLocalityName = a})++paIsDisputed :: Lens' PostalAddress (Maybe Bool)+paIsDisputed+  = lens _paIsDisputed (\ s a -> s{_paIsDisputed = a})++paThoroughfareNumber :: Lens' PostalAddress (Maybe Text)+paThoroughfareNumber+  = lens _paThoroughfareNumber+      (\ s a -> s{_paThoroughfareNumber = a})++paDependentLocalityName :: Lens' PostalAddress (Maybe Text)+paDependentLocalityName+  = lens _paDependentLocalityName+      (\ s a -> s{_paDependentLocalityName = a})++paFirmName :: Lens' PostalAddress (Maybe Text)+paFirmName+  = lens _paFirmName (\ s a -> s{_paFirmName = a})++paCountryName :: Lens' PostalAddress (Maybe Text)+paCountryName+  = lens _paCountryName+      (\ s a -> s{_paCountryName = a})++paDependentThoroughfareName :: Lens' PostalAddress (Maybe Text)+paDependentThoroughfareName+  = lens _paDependentThoroughfareName+      (\ s a -> s{_paDependentThoroughfareName = a})++paAddressLines :: Lens' PostalAddress [Text]+paAddressLines+  = lens _paAddressLines+      (\ s a -> s{_paAddressLines = a})+      . _Default+      . _Coerce++paPostalCodeNumber :: Lens' PostalAddress (Maybe Text)+paPostalCodeNumber+  = lens _paPostalCodeNumber+      (\ s a -> s{_paPostalCodeNumber = a})++paThoroughfareName :: Lens' PostalAddress (Maybe Text)+paThoroughfareName+  = lens _paThoroughfareName+      (\ s a -> s{_paThoroughfareName = a})++paSubPremiseName :: Lens' PostalAddress (Maybe Text)+paSubPremiseName+  = lens _paSubPremiseName+      (\ s a -> s{_paSubPremiseName = a})++instance FromJSON PostalAddress where+        parseJSON+          = withObject "PostalAddress"+              (\ o ->+                 PostalAddress' <$>+                   (o .:? "administrativeAreaName") <*>+                     (o .:? "recipientName")+                     <*> (o .:? "languageCode")+                     <*> (o .:? "sortingCode")+                     <*> (o .:? "premiseName")+                     <*> (o .:? "postalCodeNumberExtension")+                     <*> (o .:? "countryNameCode")+                     <*> (o .:? "subAdministrativeAreaName")+                     <*> (o .:? "postBoxNumber")+                     <*> (o .:? "localityName")+                     <*> (o .:? "isDisputed")+                     <*> (o .:? "thoroughfareNumber")+                     <*> (o .:? "dependentLocalityName")+                     <*> (o .:? "firmName")+                     <*> (o .:? "countryName")+                     <*> (o .:? "dependentThoroughfareName")+                     <*> (o .:? "addressLines" .!= mempty)+                     <*> (o .:? "postalCodeNumber")+                     <*> (o .:? "thoroughfareName")+                     <*> (o .:? "subPremiseName"))++instance ToJSON PostalAddress where+        toJSON PostalAddress'{..}+          = object+              (catMaybes+                 [("administrativeAreaName" .=) <$>+                    _paAdministrativeAreaName,+                  ("recipientName" .=) <$> _paRecipientName,+                  ("languageCode" .=) <$> _paLanguageCode,+                  ("sortingCode" .=) <$> _paSortingCode,+                  ("premiseName" .=) <$> _paPremiseName,+                  ("postalCodeNumberExtension" .=) <$>+                    _paPostalCodeNumberExtension,+                  ("countryNameCode" .=) <$> _paCountryNameCode,+                  ("subAdministrativeAreaName" .=) <$>+                    _paSubAdministrativeAreaName,+                  ("postBoxNumber" .=) <$> _paPostBoxNumber,+                  ("localityName" .=) <$> _paLocalityName,+                  ("isDisputed" .=) <$> _paIsDisputed,+                  ("thoroughfareNumber" .=) <$> _paThoroughfareNumber,+                  ("dependentLocalityName" .=) <$>+                    _paDependentLocalityName,+                  ("firmName" .=) <$> _paFirmName,+                  ("countryName" .=) <$> _paCountryName,+                  ("dependentThoroughfareName" .=) <$>+                    _paDependentThoroughfareName,+                  ("addressLines" .=) <$> _paAddressLines,+                  ("postalCodeNumber" .=) <$> _paPostalCodeNumber,+                  ("thoroughfareName" .=) <$> _paThoroughfareName,+                  ("subPremiseName" .=) <$> _paSubPremiseName])++--+-- /See:/ 'internalFieldMetadataProto' smart constructor.+data InternalFieldMetadataProto = InternalFieldMetadataProto'+    { _ifmpSourceSummary :: !(Maybe InternalSourceSummaryProto)+    , _ifmpIsAuto        :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InternalFieldMetadataProto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ifmpSourceSummary'+--+-- * 'ifmpIsAuto'+internalFieldMetadataProto+    :: InternalFieldMetadataProto+internalFieldMetadataProto =+    InternalFieldMetadataProto'+    { _ifmpSourceSummary = Nothing+    , _ifmpIsAuto = Nothing+    }++ifmpSourceSummary :: Lens' InternalFieldMetadataProto (Maybe InternalSourceSummaryProto)+ifmpSourceSummary+  = lens _ifmpSourceSummary+      (\ s a -> s{_ifmpSourceSummary = a})++ifmpIsAuto :: Lens' InternalFieldMetadataProto (Maybe Bool)+ifmpIsAuto+  = lens _ifmpIsAuto (\ s a -> s{_ifmpIsAuto = a})++instance FromJSON InternalFieldMetadataProto where+        parseJSON+          = withObject "InternalFieldMetadataProto"+              (\ o ->+                 InternalFieldMetadataProto' <$>+                   (o .:? "sourceSummary") <*> (o .:? "isAuto"))++instance ToJSON InternalFieldMetadataProto where+        toJSON InternalFieldMetadataProto'{..}+          = object+              (catMaybes+                 [("sourceSummary" .=) <$> _ifmpSourceSummary,+                  ("isAuto" .=) <$> _ifmpIsAuto])++-- | Describes information about a regional election administrative area.+--+-- /See:/ 'administrationRegion' smart constructor.+data AdministrationRegion = AdministrationRegion'+    { _arLocalJurisdiction          :: !(Maybe AdministrationRegion)+    , _arSources                    :: !(Maybe [Source])+    , _arName                       :: !(Maybe Text)+    , _arElectionAdministrationBody :: !(Maybe AdministrativeBody)+    , _arId                         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AdministrationRegion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arLocalJurisdiction'+--+-- * 'arSources'+--+-- * 'arName'+--+-- * 'arElectionAdministrationBody'+--+-- * 'arId'+administrationRegion+    :: AdministrationRegion+administrationRegion =+    AdministrationRegion'+    { _arLocalJurisdiction = Nothing+    , _arSources = Nothing+    , _arName = Nothing+    , _arElectionAdministrationBody = Nothing+    , _arId = Nothing+    }++-- | 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)+arLocalJurisdiction+  = lens _arLocalJurisdiction+      (\ s a -> s{_arLocalJurisdiction = a})++-- | A list of sources for this area. If multiple sources are listed the data+-- has been aggregated from those sources.+arSources :: Lens' AdministrationRegion [Source]+arSources+  = lens _arSources (\ s a -> s{_arSources = a}) .+      _Default+      . _Coerce++-- | The name of the jurisdiction.+arName :: Lens' AdministrationRegion (Maybe Text)+arName = lens _arName (\ s a -> s{_arName = a})++-- | The election administration body for this area.+arElectionAdministrationBody :: Lens' AdministrationRegion (Maybe AdministrativeBody)+arElectionAdministrationBody+  = lens _arElectionAdministrationBody+      (\ s a -> s{_arElectionAdministrationBody = a})++-- | 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)+arId = lens _arId (\ s a -> s{_arId = a})++instance FromJSON AdministrationRegion where+        parseJSON+          = withObject "AdministrationRegion"+              (\ o ->+                 AdministrationRegion' <$>+                   (o .:? "local_jurisdiction") <*>+                     (o .:? "sources" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "electionAdministrationBody")+                     <*> (o .:? "id"))++instance ToJSON AdministrationRegion where+        toJSON AdministrationRegion'{..}+          = object+              (catMaybes+                 [("local_jurisdiction" .=) <$> _arLocalJurisdiction,+                  ("sources" .=) <$> _arSources,+                  ("name" .=) <$> _arName,+                  ("electionAdministrationBody" .=) <$>+                    _arElectionAdministrationBody,+                  ("id" .=) <$> _arId])++--+-- /See:/ 'provenance' smart constructor.+data Provenance = Provenance'+    { _pTsStreetSegmentId     :: !(Maybe Text)+    , _pVIPStreetSegmentId    :: !(Maybe (Textual Int64))+    , _pCollidedSegmentSource :: !(Maybe StreetSegmentList)+    , _pCtclContestUuid       :: !(Maybe Text)+    , _pDataSetId             :: !(Maybe (Textual Int64))+    , _pVIP5StreetSegmentId   :: !(Maybe Text)+    , _pCtclOfficeUuid        :: !(Maybe Text)+    , _pVIP5PrecinctId        :: !(Maybe Text)+    , _pPrecinctSplitId       :: !(Maybe (Textual Int64))+    , _pPrecinctId            :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Provenance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pTsStreetSegmentId'+--+-- * 'pVIPStreetSegmentId'+--+-- * 'pCollidedSegmentSource'+--+-- * 'pCtclContestUuid'+--+-- * 'pDataSetId'+--+-- * 'pVIP5StreetSegmentId'+--+-- * 'pCtclOfficeUuid'+--+-- * 'pVIP5PrecinctId'+--+-- * 'pPrecinctSplitId'+--+-- * 'pPrecinctId'+provenance+    :: Provenance+provenance =+    Provenance'+    { _pTsStreetSegmentId = Nothing+    , _pVIPStreetSegmentId = Nothing+    , _pCollidedSegmentSource = Nothing+    , _pCtclContestUuid = Nothing+    , _pDataSetId = Nothing+    , _pVIP5StreetSegmentId = Nothing+    , _pCtclOfficeUuid = Nothing+    , _pVIP5PrecinctId = Nothing+    , _pPrecinctSplitId = Nothing+    , _pPrecinctId = Nothing+    }++pTsStreetSegmentId :: Lens' Provenance (Maybe Text)+pTsStreetSegmentId+  = lens _pTsStreetSegmentId+      (\ s a -> s{_pTsStreetSegmentId = a})++pVIPStreetSegmentId :: Lens' Provenance (Maybe Int64)+pVIPStreetSegmentId+  = lens _pVIPStreetSegmentId+      (\ s a -> s{_pVIPStreetSegmentId = a})+      . mapping _Coerce++pCollidedSegmentSource :: Lens' Provenance (Maybe StreetSegmentList)+pCollidedSegmentSource+  = lens _pCollidedSegmentSource+      (\ s a -> s{_pCollidedSegmentSource = a})++pCtclContestUuid :: Lens' Provenance (Maybe Text)+pCtclContestUuid+  = lens _pCtclContestUuid+      (\ s a -> s{_pCtclContestUuid = a})++pDataSetId :: Lens' Provenance (Maybe Int64)+pDataSetId+  = lens _pDataSetId (\ s a -> s{_pDataSetId = a}) .+      mapping _Coerce++pVIP5StreetSegmentId :: Lens' Provenance (Maybe Text)+pVIP5StreetSegmentId+  = lens _pVIP5StreetSegmentId+      (\ s a -> s{_pVIP5StreetSegmentId = a})++pCtclOfficeUuid :: Lens' Provenance (Maybe Text)+pCtclOfficeUuid+  = lens _pCtclOfficeUuid+      (\ s a -> s{_pCtclOfficeUuid = a})++pVIP5PrecinctId :: Lens' Provenance (Maybe Text)+pVIP5PrecinctId+  = lens _pVIP5PrecinctId+      (\ s a -> s{_pVIP5PrecinctId = a})++pPrecinctSplitId :: Lens' Provenance (Maybe Int64)+pPrecinctSplitId+  = lens _pPrecinctSplitId+      (\ s a -> s{_pPrecinctSplitId = a})+      . mapping _Coerce++pPrecinctId :: Lens' Provenance (Maybe Int64)+pPrecinctId+  = lens _pPrecinctId (\ s a -> s{_pPrecinctId = a}) .+      mapping _Coerce++instance FromJSON Provenance where+        parseJSON+          = withObject "Provenance"+              (\ o ->+                 Provenance' <$>+                   (o .:? "tsStreetSegmentId") <*>+                     (o .:? "vipStreetSegmentId")+                     <*> (o .:? "collidedSegmentSource")+                     <*> (o .:? "ctclContestUuid")+                     <*> (o .:? "datasetId")+                     <*> (o .:? "vip5StreetSegmentId")+                     <*> (o .:? "ctclOfficeUuid")+                     <*> (o .:? "vip5PrecinctId")+                     <*> (o .:? "precinctSplitId")+                     <*> (o .:? "precinctId"))++instance ToJSON Provenance where+        toJSON Provenance'{..}+          = object+              (catMaybes+                 [("tsStreetSegmentId" .=) <$> _pTsStreetSegmentId,+                  ("vipStreetSegmentId" .=) <$> _pVIPStreetSegmentId,+                  ("collidedSegmentSource" .=) <$>+                    _pCollidedSegmentSource,+                  ("ctclContestUuid" .=) <$> _pCtclContestUuid,+                  ("datasetId" .=) <$> _pDataSetId,+                  ("vip5StreetSegmentId" .=) <$> _pVIP5StreetSegmentId,+                  ("ctclOfficeUuid" .=) <$> _pCtclOfficeUuid,+                  ("vip5PrecinctId" .=) <$> _pVIP5PrecinctId,+                  ("precinctSplitId" .=) <$> _pPrecinctSplitId,+                  ("precinctId" .=) <$> _pPrecinctId])  -- | The list of elections available for this version of the API. --
gen/Network/Google/CivicInfo/Types/Sum.hs view
@@ -16,7 +16,7 @@ -- module Network.Google.CivicInfo.Types.Sum where -import           Network.Google.Prelude+import           Network.Google.Prelude hiding (Bytes)  -- | 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
gen/Network/Google/Resource/CivicInfo/Elections/VoterInfoQuery.hs view
@@ -106,7 +106,10 @@  -- | 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+-- https:\/\/www.googleapis.com\/civicinfo\/{version}\/electionsIf no+-- election ID is specified in the query and there is more than one+-- election with data for the given voter, the additional elections are+-- provided in the otherElections response field. eviqElectionId :: Lens' ElectionsVoterInfoQuery Int64 eviqElectionId   = lens _eviqElectionId
gogol-civicinfo.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-civicinfo-version:               0.3.0+version:               0.4.0 synopsis:              Google Civic Information SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -48,5 +48,5 @@         , Network.Google.CivicInfo.Types.Sum      build-depends:-          gogol-core == 0.3.0.*+          gogol-core == 0.4.0.*         , base       >= 4.7 && < 5