# This file is auto-generated by `mix graph.gen.schema`. Do not edit manually. defmodule GraphApi.Schema.Beta.Event do @moduledoc """ Auto-generated schema for `microsoft.graph.event`. """ defstruct [:id, :subject, :body, :start, :end, :location, :is_all_day, :organizer, :sensitivity] @type t :: %__MODULE__{ id: String.t() | nil, subject: String.t() | nil, body: GraphApi.Schema.Beta.ItemBody.t() | nil, start: GraphApi.Schema.Beta.DateTimeTimeZone.t() | nil, end: GraphApi.Schema.Beta.DateTimeTimeZone.t() | nil, location: GraphApi.Schema.Beta.Location.t() | nil, is_all_day: boolean() | nil, organizer: GraphApi.Schema.Beta.Recipient.t() | nil, sensitivity: String.t() | nil } @field_mapping %{ {"id", :id}, {"subject", :subject}, {"body", :body}, {"start", :start}, {"end", :end}, {"location", :location}, {"isAllDay", :is_all_day}, {"organizer", :organizer}, {"sensitivity", :sensitivity} } @field_names [ "id", "subject", "body", "start", "end", "location", "isAllDay", "organizer", "sensitivity" ] @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__{ id: map["id"], subject: map["subject"], body: case map["body"] do nil -> nil val -> GraphApi.Schema.Beta.ItemBody.from_map(val) end, start: case map["start"] do nil -> nil val -> GraphApi.Schema.Beta.DateTimeTimeZone.from_map(val) end, end: case map["end"] do nil -> nil val -> GraphApi.Schema.Beta.DateTimeTimeZone.from_map(val) end, location: case map["location"] do nil -> nil val -> GraphApi.Schema.Beta.Location.from_map(val) end, is_all_day: map["isAllDay"], organizer: case map["organizer"] do nil -> nil val -> GraphApi.Schema.Beta.Recipient.from_map(val) end, sensitivity: map["sensitivity"] } 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 [ {"id", struct.id}, {"subject", struct.subject}, {"body", case struct.body do nil -> nil val -> GraphApi.Schema.Beta.ItemBody.to_map(val) end}, {"start", case struct.start do nil -> nil val -> GraphApi.Schema.Beta.DateTimeTimeZone.to_map(val) end}, {"end", case struct.end do nil -> nil val -> GraphApi.Schema.Beta.DateTimeTimeZone.to_map(val) end}, {"location", case struct.location do nil -> nil val -> GraphApi.Schema.Beta.Location.to_map(val) end}, {"isAllDay", struct.is_all_day}, {"organizer", case struct.organizer do nil -> nil val -> GraphApi.Schema.Beta.Recipient.to_map(val) end}, {"sensitivity", struct.sensitivity} ] |> Enum.reject(fn {_k, v} -> is_nil(v) end) |> Map.new() end end