# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

# typed: true
# frozen_string_literal: true


module PlexRubySDK
  module Operations
    POST_USERS_SIGN_IN_DATA_USER_PROFILE_SERVERS = [
      'https://plex.tv/api/v2/'
    ].freeze
  

    class PostUsersSignInDataUserProfile < ::PlexRubySDK::Utils::FieldAugmented
      extend T::Sig

      # The preferred audio language for the account
      field :default_audio_language, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('defaultAudioLanguage') } }
      # The preferred subtitle language for the account
      field :default_subtitle_language, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('defaultSubtitleLanguage') } }
      # If the account has automatically select audio and subtitle tracks enabled
      field :auto_select_audio, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('autoSelectAudio') } }
      # The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
      field :auto_select_subtitle, T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataAutoSelectSubtitle), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('autoSelectSubtitle'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::PostUsersSignInDataAutoSelectSubtitle, true) } }
      # The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles)
      field :default_subtitle_accessibility, T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleAccessibility), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('defaultSubtitleAccessibility'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleAccessibility, true) } }
      # The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles)
      field :default_subtitle_forced, T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleForced), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('defaultSubtitleForced'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleForced, true) } }

      field :media_reviews_visibility, T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataMediaReviewsVisibility), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaReviewsVisibility'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::PostUsersSignInDataMediaReviewsVisibility, true) } }

      field :watched_indicator, T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataWatchedIndicator), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('watchedIndicator'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::PostUsersSignInDataWatchedIndicator, true) } }


      sig { params(default_audio_language: ::String, default_subtitle_language: ::String, auto_select_audio: T.nilable(T::Boolean), auto_select_subtitle: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataAutoSelectSubtitle), default_subtitle_accessibility: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleAccessibility), default_subtitle_forced: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataDefaultSubtitleForced), media_reviews_visibility: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataMediaReviewsVisibility), watched_indicator: T.nilable(::PlexRubySDK::Operations::PostUsersSignInDataWatchedIndicator)).void }
      def initialize(default_audio_language: nil, default_subtitle_language: nil, auto_select_audio: nil, auto_select_subtitle: nil, default_subtitle_accessibility: nil, default_subtitle_forced: nil, media_reviews_visibility: nil, watched_indicator: nil)
        @default_audio_language = default_audio_language
        @default_subtitle_language = default_subtitle_language
        @auto_select_audio = auto_select_audio
        @auto_select_subtitle = auto_select_subtitle
        @default_subtitle_accessibility = default_subtitle_accessibility
        @default_subtitle_forced = default_subtitle_forced
        @media_reviews_visibility = media_reviews_visibility
        @watched_indicator = watched_indicator
      end
    end
  end
end
