# 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