<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="civicinfo_v2.html">Google Civic Information API</a> . <a href="civicinfo_v2.elections.html">elections</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#electionQuery">electionQuery(x__xgafv=None)</a></code></p>
<p class="firstline">List of available elections to query.</p>
<p class="toc_element">
  <code><a href="#voterInfoQuery">voterInfoQuery(address, electionId=None, officialOnly=None, returnAllAvailableData=None, x__xgafv=None)</a></code></p>
<p class="firstline">Looks up information relevant to a voter based on the voter's registered address.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="electionQuery">electionQuery(x__xgafv=None)</code>
  <pre>List of available elections to query.

Args:
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The list of elections available for this version of the API.
  &quot;elections&quot;: [ # A list of available elections
    { # Information about the election that was queried.
      &quot;electionDay&quot;: &quot;A String&quot;, # Day of the election in YYYY-MM-DD format.
      &quot;id&quot;: &quot;A String&quot;, # The unique ID of this election.
      &quot;name&quot;: &quot;A String&quot;, # A displayable name for the election.
      &quot;ocdDivisionId&quot;: &quot;A String&quot;, # 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).
    },
  ],
  &quot;kind&quot;: &quot;civicinfo#electionsQueryResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;civicinfo#electionsQueryResponse&quot;.
}</pre>
</div>

<div class="method">
    <code class="details" id="voterInfoQuery">voterInfoQuery(address, electionId=None, officialOnly=None, returnAllAvailableData=None, x__xgafv=None)</code>
  <pre>Looks up information relevant to a voter based on the voter&#x27;s registered address.

Args:
  address: string, The registered address of the voter to look up. (required)
  electionId: string, 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. If 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.
  officialOnly: boolean, If set to true, only data from official state sources will be returned.
  returnAllAvailableData: boolean, If set to true, the query will return the success code and include any partial information when it is unable to determine a matching address or unable to determine the election for electionId=0 queries.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The result of a voter info lookup query.
  &quot;contests&quot;: [ # Contests that will appear on the voter&#x27;s ballot.
    { # Information about a contest that appears on a voter&#x27;s ballot.
      &quot;ballotPlacement&quot;: &quot;A String&quot;, # A number specifying the position of this contest on the voter&#x27;s ballot.
      &quot;ballotTitle&quot;: &quot;A String&quot;, # The official title on the ballot for this contest, only where available.
      &quot;candidates&quot;: [ # The candidate choices for this contest.
        { # Information about a candidate running for elected office.
          &quot;candidateUrl&quot;: &quot;A String&quot;, # The URL for the candidate&#x27;s campaign web site.
          &quot;channels&quot;: [ # A list of known (social) media channels for this candidate.
            { # A social media or web channel for a candidate.
              &quot;id&quot;: &quot;A String&quot;, # The unique public identifier for the candidate&#x27;s channel.
              &quot;type&quot;: &quot;A String&quot;, # 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
            },
          ],
          &quot;email&quot;: &quot;A String&quot;, # The email address for the candidate&#x27;s campaign.
          &quot;name&quot;: &quot;A String&quot;, # The candidate&#x27;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. &quot;Mitt Romney / Paul Ryan&quot;
          &quot;orderOnBallot&quot;: &quot;A String&quot;, # The order the candidate appears on the ballot for this contest.
          &quot;party&quot;: &quot;A String&quot;, # The full name of the party the candidate is a member of.
          &quot;phone&quot;: &quot;A String&quot;, # The voice phone number for the candidate&#x27;s campaign office.
          &quot;photoUrl&quot;: &quot;A String&quot;, # A URL for a photo of the candidate.
        },
      ],
      &quot;district&quot;: { # Describes the geographic scope of a contest. # Information about the electoral district that this contest is in.
        &quot;id&quot;: &quot;A String&quot;, # An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id &quot;34&quot; and a scope of stateUpper.
        &quot;name&quot;: &quot;A String&quot;, # The name of the district.
        &quot;scope&quot;: &quot;A String&quot;, # The geographic scope of this district. If unspecified the district&#x27;s geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special
      },
      &quot;electorateSpecifications&quot;: &quot;A String&quot;, # A description of any additional eligibility requirements for voting in this contest.
      &quot;level&quot;: [ # 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 &quot;locality&quot; level, but also effectively at both &quot;administrative-area-2&quot; and &quot;administrative-area-1&quot;.
        &quot;A String&quot;,
      ],
      &quot;numberElected&quot;: &quot;A String&quot;, # The number of candidates that will be elected to office in this contest.
      &quot;numberVotingFor&quot;: &quot;A String&quot;, # The number of candidates that a voter may vote for in this contest.
      &quot;office&quot;: &quot;A String&quot;, # The name of the office for this contest.
      &quot;primaryParties&quot;: [ # If this is a partisan election, the name of the party/parties it is for.
        &quot;A String&quot;,
      ],
      &quot;primaryParty&quot;: &quot;A String&quot;, # [DEPRECATED] If this is a partisan election, the name of the party it is for. This field as deprecated in favor of the array &quot;primaryParties&quot;, as contests may contain more than one party.
      &quot;referendumBallotResponses&quot;: [ # The set of ballot responses for the referendum. A ballot response represents a line on the ballot. Common examples might include &quot;yes&quot; or &quot;no&quot; for referenda. This field is only populated for contests of type &#x27;Referendum&#x27;.
        &quot;A String&quot;,
      ],
      &quot;referendumBrief&quot;: &quot;A String&quot;, # 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 &#x27;Referendum&#x27;.
      &quot;referendumConStatement&quot;: &quot;A String&quot;, # A statement in opposition to the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumEffectOfAbstain&quot;: &quot;A String&quot;, # 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 &#x27;Referendum&#x27;.
      &quot;referendumPassageThreshold&quot;: &quot;A String&quot;, # The threshold of votes that the referendum needs in order to pass, e.g. &quot;two-thirds&quot;. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumProStatement&quot;: &quot;A String&quot;, # A statement in favor of the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumSubtitle&quot;: &quot;A String&quot;, # A brief description of the referendum. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumText&quot;: &quot;A String&quot;, # The full text of the referendum. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumTitle&quot;: &quot;A String&quot;, # The title of the referendum (e.g. &#x27;Proposition 42&#x27;). This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;referendumUrl&quot;: &quot;A String&quot;, # A link to the referendum. This field is only populated for contests of type &#x27;Referendum&#x27;.
      &quot;roles&quot;: [ # The roles which this office fulfills.
        &quot;A String&quot;,
      ],
      &quot;sources&quot;: [ # A list of sources for this contest. If multiple sources are listed, the data has been aggregated from those sources.
        { # Contains information about the data source for the element containing it.
          &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
      &quot;special&quot;: &quot;A String&quot;, # &quot;Yes&quot; or &quot;No&quot; depending on whether this a contest being held outside the normal election cycle.
      &quot;type&quot;: &quot;A String&quot;, # The type of contest. Usually this will be &#x27;General&#x27;, &#x27;Primary&#x27;, or &#x27;Run-off&#x27; for contests with candidates. For referenda this will be &#x27;Referendum&#x27;. For Retention contests this will typically be &#x27;Retention&#x27;.
    },
  ],
  &quot;dropOffLocations&quot;: [ # 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.
    { # 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.
      &quot;address&quot;: { # A simple representation of an address. # The address of the location.
        &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
        &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
        &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
        &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
        &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
        &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
        &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
      },
      &quot;endDate&quot;: &quot;A String&quot;, # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;latitude&quot;: 3.14, # Latitude of the location, in degrees north of the equator. Note this field may not be available for some locations.
      &quot;longitude&quot;: 3.14, # Longitude of the location, in degrees east of the Prime Meridian. Note this field may not be available for some locations.
      &quot;name&quot;: &quot;A String&quot;, # The name of the early vote site or drop off location. This field is not populated for polling locations.
      &quot;notes&quot;: &quot;A String&quot;, # Notes about this location (e.g. accessibility ramp or entrance to use).
      &quot;pollingHours&quot;: &quot;A String&quot;, # A description of when this location is open.
      &quot;sources&quot;: [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
        { # Contains information about the data source for the element containing it.
          &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
      &quot;startDate&quot;: &quot;A String&quot;, # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;voterServices&quot;: &quot;A String&quot;, # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
    },
  ],
  &quot;earlyVoteSites&quot;: [ # Locations where the voter is eligible to vote early, prior to election day.
    { # 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.
      &quot;address&quot;: { # A simple representation of an address. # The address of the location.
        &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
        &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
        &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
        &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
        &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
        &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
        &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
      },
      &quot;endDate&quot;: &quot;A String&quot;, # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;latitude&quot;: 3.14, # Latitude of the location, in degrees north of the equator. Note this field may not be available for some locations.
      &quot;longitude&quot;: 3.14, # Longitude of the location, in degrees east of the Prime Meridian. Note this field may not be available for some locations.
      &quot;name&quot;: &quot;A String&quot;, # The name of the early vote site or drop off location. This field is not populated for polling locations.
      &quot;notes&quot;: &quot;A String&quot;, # Notes about this location (e.g. accessibility ramp or entrance to use).
      &quot;pollingHours&quot;: &quot;A String&quot;, # A description of when this location is open.
      &quot;sources&quot;: [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
        { # Contains information about the data source for the element containing it.
          &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
      &quot;startDate&quot;: &quot;A String&quot;, # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;voterServices&quot;: &quot;A String&quot;, # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
    },
  ],
  &quot;election&quot;: { # Information about the election that was queried. # The election that was queried.
    &quot;electionDay&quot;: &quot;A String&quot;, # Day of the election in YYYY-MM-DD format.
    &quot;id&quot;: &quot;A String&quot;, # The unique ID of this election.
    &quot;name&quot;: &quot;A String&quot;, # A displayable name for the election.
    &quot;ocdDivisionId&quot;: &quot;A String&quot;, # 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).
  },
  &quot;kind&quot;: &quot;civicinfo#voterInfoResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;civicinfo#voterInfoResponse&quot;.
  &quot;mailOnly&quot;: True or False, # Specifies whether voters in the precinct vote only by mailing their ballots (with the possible option of dropping off their ballots as well).
  &quot;normalizedInput&quot;: { # A simple representation of an address. # The normalized version of the requested address
    &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
    &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
    &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
    &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
    &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
    &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
    &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
  },
  &quot;otherElections&quot;: [ # 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.
    { # Information about the election that was queried.
      &quot;electionDay&quot;: &quot;A String&quot;, # Day of the election in YYYY-MM-DD format.
      &quot;id&quot;: &quot;A String&quot;, # The unique ID of this election.
      &quot;name&quot;: &quot;A String&quot;, # A displayable name for the election.
      &quot;ocdDivisionId&quot;: &quot;A String&quot;, # 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).
    },
  ],
  &quot;pollingLocations&quot;: [ # Locations where the voter is eligible to vote on election day.
    { # 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.
      &quot;address&quot;: { # A simple representation of an address. # The address of the location.
        &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
        &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
        &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
        &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
        &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
        &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
        &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
      },
      &quot;endDate&quot;: &quot;A String&quot;, # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;latitude&quot;: 3.14, # Latitude of the location, in degrees north of the equator. Note this field may not be available for some locations.
      &quot;longitude&quot;: 3.14, # Longitude of the location, in degrees east of the Prime Meridian. Note this field may not be available for some locations.
      &quot;name&quot;: &quot;A String&quot;, # The name of the early vote site or drop off location. This field is not populated for polling locations.
      &quot;notes&quot;: &quot;A String&quot;, # Notes about this location (e.g. accessibility ramp or entrance to use).
      &quot;pollingHours&quot;: &quot;A String&quot;, # A description of when this location is open.
      &quot;sources&quot;: [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
        { # Contains information about the data source for the element containing it.
          &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
      &quot;startDate&quot;: &quot;A String&quot;, # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
      &quot;voterServices&quot;: &quot;A String&quot;, # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
    },
  ],
  &quot;precinctId&quot;: &quot;A String&quot;,
  &quot;state&quot;: [ # Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.
    { # Describes information about a regional election administrative area.
      &quot;electionAdministrationBody&quot;: { # Information about an election administrative body (e.g. County Board of Elections). # The election administration body for this area.
        &quot;absenteeVotingInfoUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for information on absentee voting.
        &quot;ballotInfoUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body to give contest information to the voter.
        &quot;correspondenceAddress&quot;: { # A simple representation of an address. # The mailing address of this administrative body.
          &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
          &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
          &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
          &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
          &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
          &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
          &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
        },
        &quot;electionInfoUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for looking up general election information.
        &quot;electionNoticeText&quot;: &quot;A String&quot;, # A last minute or emergency notification text provided by this administrative body.
        &quot;electionNoticeUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for additional information related to the last minute or emergency notification.
        &quot;electionOfficials&quot;: [ # The election officials for this election administrative body.
          { # Information about individual election officials.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the election official.
            &quot;faxNumber&quot;: &quot;A String&quot;, # The fax number of the election official.
            &quot;name&quot;: &quot;A String&quot;, # The full name of the election official.
            &quot;officePhoneNumber&quot;: &quot;A String&quot;, # The office phone number of the election official.
            &quot;title&quot;: &quot;A String&quot;, # The title of the election official.
          },
        ],
        &quot;electionRegistrationConfirmationUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for confirming that the voter is registered to vote.
        &quot;electionRegistrationUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for looking up how to register to vote.
        &quot;electionRulesUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body describing election rules to the voter.
        &quot;hoursOfOperation&quot;: &quot;A String&quot;, # A description of the hours of operation for this administrative body.
        &quot;name&quot;: &quot;A String&quot;, # The name of this election administrative body.
        &quot;physicalAddress&quot;: { # A simple representation of an address. # The physical address of this administrative body.
          &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
          &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
          &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
          &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
          &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
          &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
          &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
        },
        &quot;voter_services&quot;: [ # A description of the services this administrative body may provide.
          &quot;A String&quot;,
        ],
        &quot;votingLocationFinderUrl&quot;: &quot;A String&quot;, # A URL provided by this administrative body for looking up where to vote.
      },
      &quot;local_jurisdiction&quot;: # Object with schema name: AdministrationRegion # The city or county that provides election information for this voter. This object can have the same elements as state.
      &quot;name&quot;: &quot;A String&quot;, # The name of the jurisdiction.
      &quot;sources&quot;: [ # A list of sources for this area. If multiple sources are listed the data has been aggregated from those sources.
        { # Contains information about the data source for the element containing it.
          &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
    },
  ],
}</pre>
</div>

</body></html>