lib/vr_chat/model/api_config.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 VRChat.Model.ApiConfig do
  @moduledoc """
  
  """

  @derive [Poison.Encoder]
  defstruct [
    :VoiceEnableDegradation,
    :VoiceEnableReceiverLimiting,
    :address,
    :announcements,
    :apiKey,
    :appName,
    :buildVersionTag,
    :clientApiKey,
    :clientBPSCeiling,
    :clientDisconnectTimeout,
    :clientReservedPlayerBPS,
    :clientSentCountAllowance,
    :contactEmail,
    :copyrightEmail,
    :currentTOSVersion,
    :defaultAvatar,
    :deploymentGroup,
    :devAppVersionStandalone,
    :devDownloadLinkWindows,
    :devSdkUrl,
    :devSdkVersion,
    :devServerVersionStandalone,
    :"dis-countdown",
    :disableAvatarCopying,
    :disableAvatarGating,
    :disableCommunityLabs,
    :disableCommunityLabsPromotion,
    :disableEmail,
    :disableEventStream,
    :disableFeedbackGating,
    :disableFrontendBuilds,
    :disableHello,
    :disableOculusSubs,
    :disableRegistration,
    :disableSteamNetworking,
    :disableTwoFactorAuth,
    :disableUdon,
    :disableUpgradeAccount,
    :downloadLinkWindows,
    :downloadUrls,
    :dynamicWorldRows,
    :events,
    :gearDemoRoomId,
    :homeWorldId,
    :homepageRedirectTarget,
    :hubWorldId,
    :jobsEmail,
    :messageOfTheDay,
    :moderationEmail,
    :moderationQueryPeriod,
    :notAllowedToSelectAvatarInPrivateWorldMessage,
    :plugin,
    :releaseAppVersionStandalone,
    :releaseSdkUrl,
    :releaseSdkVersion,
    :releaseServerVersionStandalone,
    :sdkDeveloperFaqUrl,
    :sdkDiscordUrl,
    :sdkNotAllowedToPublishMessage,
    :sdkUnityVersion,
    :serverName,
    :supportEmail,
    :timeOutWorldId,
    :tutorialWorldId,
    :updateRateMsMaximum,
    :updateRateMsMinimum,
    :updateRateMsNormal,
    :updateRateMsUdonManual,
    :uploadAnalysisPercent,
    :urlList,
    :useReliableUdpForVoice,
    :userUpdatePeriod,
    :userVerificationDelay,
    :userVerificationRetry,
    :userVerificationTimeout,
    :viveWindowsUrl,
    :whiteListedAssetUrls,
    :worldUpdatePeriod,
    :"youtubedl-hash",
    :"youtubedl-version"
  ]

  @type t :: %__MODULE__{
    :VoiceEnableDegradation => boolean(),
    :VoiceEnableReceiverLimiting => boolean(),
    :address => String.t,
    :announcements => [VRChat.Model.PublicAnnouncement.t],
    :apiKey => String.t,
    :appName => String.t,
    :buildVersionTag => String.t,
    :clientApiKey => String.t,
    :clientBPSCeiling => integer(),
    :clientDisconnectTimeout => integer(),
    :clientReservedPlayerBPS => integer(),
    :clientSentCountAllowance => integer(),
    :contactEmail => String.t,
    :copyrightEmail => String.t,
    :currentTOSVersion => integer(),
    :defaultAvatar => String.t,
    :deploymentGroup => VRChat.Model.DeploymentGroup.t,
    :devAppVersionStandalone => String.t,
    :devDownloadLinkWindows => String.t,
    :devSdkUrl => String.t,
    :devSdkVersion => String.t,
    :devServerVersionStandalone => String.t,
    :"dis-countdown" => DateTime.t,
    :disableAvatarCopying => boolean(),
    :disableAvatarGating => boolean(),
    :disableCommunityLabs => boolean(),
    :disableCommunityLabsPromotion => boolean(),
    :disableEmail => boolean(),
    :disableEventStream => boolean(),
    :disableFeedbackGating => boolean(),
    :disableFrontendBuilds => boolean(),
    :disableHello => boolean(),
    :disableOculusSubs => boolean(),
    :disableRegistration => boolean(),
    :disableSteamNetworking => boolean(),
    :disableTwoFactorAuth => boolean(),
    :disableUdon => boolean(),
    :disableUpgradeAccount => boolean(),
    :downloadLinkWindows => String.t,
    :downloadUrls => VRChat.Model.DownloadUrlList.t,
    :dynamicWorldRows => [VRChat.Model.DynamicContentRow.t],
    :events => VRChat.Model.ApiEventConfig.t,
    :gearDemoRoomId => String.t,
    :homeWorldId => String.t,
    :homepageRedirectTarget => String.t,
    :hubWorldId => String.t,
    :jobsEmail => String.t,
    :messageOfTheDay => String.t,
    :moderationEmail => String.t,
    :moderationQueryPeriod => integer(),
    :notAllowedToSelectAvatarInPrivateWorldMessage => String.t,
    :plugin => String.t,
    :releaseAppVersionStandalone => String.t,
    :releaseSdkUrl => String.t,
    :releaseSdkVersion => String.t,
    :releaseServerVersionStandalone => String.t,
    :sdkDeveloperFaqUrl => String.t,
    :sdkDiscordUrl => String.t,
    :sdkNotAllowedToPublishMessage => String.t,
    :sdkUnityVersion => String.t,
    :serverName => String.t,
    :supportEmail => String.t,
    :timeOutWorldId => String.t,
    :tutorialWorldId => String.t,
    :updateRateMsMaximum => integer(),
    :updateRateMsMinimum => integer(),
    :updateRateMsNormal => integer(),
    :updateRateMsUdonManual => integer(),
    :uploadAnalysisPercent => integer(),
    :urlList => [String.t],
    :useReliableUdpForVoice => boolean(),
    :userUpdatePeriod => integer(),
    :userVerificationDelay => integer(),
    :userVerificationRetry => integer(),
    :userVerificationTimeout => integer(),
    :viveWindowsUrl => String.t,
    :whiteListedAssetUrls => [String.t],
    :worldUpdatePeriod => integer(),
    :"youtubedl-hash" => String.t,
    :"youtubedl-version" => String.t
  }
end

defimpl Poison.Decoder, for: VRChat.Model.ApiConfig do
  import VRChat.Deserializer
  def decode(value, options) do
    value
    |> deserialize(:announcements, :list, VRChat.Model.PublicAnnouncement, options)
    |> deserialize(:deploymentGroup, :struct, VRChat.Model.DeploymentGroup, options)
    |> deserialize(:downloadUrls, :struct, VRChat.Model.DownloadUrlList, options)
    |> deserialize(:dynamicWorldRows, :list, VRChat.Model.DynamicContentRow, options)
    |> deserialize(:events, :struct, VRChat.Model.ApiEventConfig, options)
  end
end