lib/open_xchange_client/model/event.ex

# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.

defmodule OpenXchangeClient.Model.Event do
  @moduledoc """
  The event this timeslot belongs to if known.
  """

  @derive [Poison.Encoder]
  defstruct [
    :startDate,
    :endDate,
    :created,
    :timestamp,
    :categories,
    :filename,
    :uid,
    :description,
    :attendees,
    :alarms,
    :lastModified,
    :modifiedBy,
    :summary,
    :sequence,
    :id,
    :class,
    :organizer,
    :transp,
    :color,
    :folder,
    :createdBy,
    :changeExceptionDates,
    :deleteExceptionDates,
    :recurrenceId,
    :calendarUser,
    :rrule,
    :attachments,
    :extendedProperties,
    :geo,
    :attendeePrivileges,
    :url,
    :seriesId,
    :status,
    :location,
    :flags,
    :relatedTo
  ]

  @type t :: %__MODULE__{
          :startDate => OpenXchangeClient.Model.DateTimeData.t() | nil,
          :endDate => OpenXchangeClient.Model.DateTimeData.t() | nil,
          :created => integer() | nil,
          :timestamp => integer() | nil,
          :categories => [String.t()] | nil,
          :filename => String.t() | nil,
          :uid => String.t() | nil,
          :description => String.t() | nil,
          :attendees => [OpenXchangeClient.Model.Attendee.t()] | nil,
          :alarms => [OpenXchangeClient.Model.Alarm.t()] | nil,
          :lastModified => integer() | nil,
          :modifiedBy => OpenXchangeClient.Model.CalendarUser.t() | nil,
          :summary => String.t() | nil,
          :sequence => integer() | nil,
          :id => String.t() | nil,
          :class => String.t() | nil,
          :organizer => OpenXchangeClient.Model.CalendarUser.t() | nil,
          :transp => String.t() | nil,
          :color => String.t() | nil,
          :folder => String.t() | nil,
          :createdBy => OpenXchangeClient.Model.CalendarUser.t() | nil,
          :changeExceptionDates => [String.t()] | nil,
          :deleteExceptionDates => [String.t()] | nil,
          :recurrenceId => String.t() | nil,
          :calendarUser => OpenXchangeClient.Model.CalendarUser.t() | nil,
          :rrule => String.t() | nil,
          :attachments => [OpenXchangeClient.Model.ChronosAttachment.t()] | nil,
          :extendedProperties =>
            %{optional(String.t()) => %{optional(String.t()) => String.t()}} | nil,
          :geo => OpenXchangeClient.Model.Geo.t() | nil,
          :attendeePrivileges => String.t() | nil,
          :url => String.t() | nil,
          :seriesId => String.t() | nil,
          :status => String.t() | nil,
          :location => String.t() | nil,
          :flags => [String.t()] | nil,
          :relatedTo => String.t() | nil
        }
end

defimpl Poison.Decoder, for: OpenXchangeClient.Model.Event do
  import OpenXchangeClient.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:startDate, :struct, OpenXchangeClient.Model.DateTimeData, options)
    |> deserialize(:endDate, :struct, OpenXchangeClient.Model.DateTimeData, options)
    |> deserialize(:attendees, :list, OpenXchangeClient.Model.Attendee, options)
    |> deserialize(:alarms, :list, OpenXchangeClient.Model.Alarm, options)
    |> deserialize(:modifiedBy, :struct, OpenXchangeClient.Model.CalendarUser, options)
    |> deserialize(:organizer, :struct, OpenXchangeClient.Model.CalendarUser, options)
    |> deserialize(:createdBy, :struct, OpenXchangeClient.Model.CalendarUser, options)
    |> deserialize(:calendarUser, :struct, OpenXchangeClient.Model.CalendarUser, options)
    |> deserialize(:attachments, :list, OpenXchangeClient.Model.ChronosAttachment, options)
    |> deserialize(:geo, :struct, OpenXchangeClient.Model.Geo, options)
  end
end