Current section
Files
Jump to
Current section
Files
lib/graph_api/schema/physical_address.ex
# This file is auto-generated by `mix graph.gen.schema`. Do not edit manually.
defmodule GraphApi.Schema.PhysicalAddress do
@moduledoc """
Auto-generated schema for `microsoft.graph.physicalAddress`.
"""
defstruct [:street, :city, :state, :country_or_region, :postal_code]
@type t :: %__MODULE__{
street: String.t() | nil,
city: String.t() | nil,
state: String.t() | nil,
country_or_region: String.t() | nil,
postal_code: String.t() | nil
}
@field_mapping %{
{"street", :street},
{"city", :city},
{"state", :state},
{"countryOrRegion", :country_or_region},
{"postalCode", :postal_code}
}
@field_names [
"street",
"city",
"state",
"countryOrRegion",
"postalCode"
]
@doc "Mapping from camelCase API field names to snake_case struct atoms."
@spec __field_mapping__() :: %{String.t() => atom()}
def __field_mapping__, do: @field_mapping
@doc "List of camelCase API field names (for OData `$select`)."
@spec __field_names__() :: [String.t()]
def __field_names__, do: @field_names
@doc "Converts a camelCase string-key map (API response) into this struct."
@spec from_map(map()) :: t()
def from_map(map) when is_map(map) do
%__MODULE__{
street: map["street"],
city: map["city"],
state: map["state"],
country_or_region: map["countryOrRegion"],
postal_code: map["postalCode"]
}
end
@doc "Converts this struct to a camelCase string-key map. Nil fields are omitted."
@spec to_map(t()) :: map()
def to_map(%__MODULE__{} = struct) do
[
{"street", struct.street},
{"city", struct.city},
{"state", struct.state},
{"countryOrRegion", struct.country_or_region},
{"postalCode", struct.postal_code}
]
|> Enum.reject(fn {_k, v} -> is_nil(v) end)
|> Map.new()
end
end