defmodule GeolocationClient.Entities.Geocode do @moduledoc """ Geocode entity representing an address from Google Geocoding API Contains all possible address component types that may be returned by the API. """ defstruct [ :street_number, :street_address, :route, :intersection, :political, :country, :administrative_area_level_1, :administrative_area_level_2, :administrative_area_level_3, :administrative_area_level_4, :administrative_area_level_5, :administrative_area_level_6, :administrative_area_level_7, :colloquial_area, :locality, :sublocality, :sublocality_level_1, :sublocality_level_2, :sublocality_level_3, :sublocality_level_4, :sublocality_level_5, :neighborhood, :premise, :subpremise, :plus_code, :postal_code, :natural_feature, :airport, :park, :point_of_interest, :formatted_address ] @type t :: %__MODULE__{ street_number: String.t() | nil, street_address: String.t() | nil, route: String.t() | nil, intersection: String.t() | nil, political: String.t() | nil, country: String.t() | nil, administrative_area_level_1: String.t() | nil, administrative_area_level_2: String.t() | nil, administrative_area_level_3: String.t() | nil, administrative_area_level_4: String.t() | nil, administrative_area_level_5: String.t() | nil, administrative_area_level_6: String.t() | nil, administrative_area_level_7: String.t() | nil, colloquial_area: String.t() | nil, locality: String.t() | nil, sublocality: String.t() | nil, sublocality_level_1: String.t() | nil, sublocality_level_2: String.t() | nil, sublocality_level_3: String.t() | nil, sublocality_level_4: String.t() | nil, sublocality_level_5: String.t() | nil, neighborhood: String.t() | nil, premise: String.t() | nil, subpremise: String.t() | nil, plus_code: String.t() | nil, postal_code: String.t() | nil, natural_feature: String.t() | nil, airport: String.t() | nil, park: String.t() | nil, point_of_interest: String.t() | nil, formatted_address: String.t() | nil } end