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

# typed: true
# frozen_string_literal: true


module PlexRubySDK
  module Operations
  

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


      field :address, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('address') } }

      field :local, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('local') } }

      field :machine_identifier, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('machineIdentifier') } }

      field :model, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('model') } }

      field :platform, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('platform') } }

      field :platform_version, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('platformVersion') } }

      field :product, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('product') } }

      field :profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('profile') } }

      field :relayed, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('relayed') } }

      field :remote_public_address, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('remotePublicAddress') } }

      field :secure, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('secure') } }

      field :state, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('state') } }

      field :title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('title') } }

      field :user_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('userID') } }

      field :version, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('version') } }


      sig { params(address: T.nilable(::String), local: T.nilable(T::Boolean), machine_identifier: T.nilable(::String), model: T.nilable(::String), platform: T.nilable(::String), platform_version: T.nilable(::String), product: T.nilable(::String), profile: T.nilable(::String), relayed: T.nilable(T::Boolean), remote_public_address: T.nilable(::String), secure: T.nilable(T::Boolean), state: T.nilable(::String), title: T.nilable(::String), user_id: T.nilable(::Integer), version: T.nilable(::String)).void }
      def initialize(address: nil, local: nil, machine_identifier: nil, model: nil, platform: nil, platform_version: nil, product: nil, profile: nil, relayed: nil, remote_public_address: nil, secure: nil, state: nil, title: nil, user_id: nil, version: nil)
        @address = address
        @local = local
        @machine_identifier = machine_identifier
        @model = model
        @platform = platform
        @platform_version = platform_version
        @product = product
        @profile = profile
        @relayed = relayed
        @remote_public_address = remote_public_address
        @secure = secure
        @state = state
        @title = title
        @user_id = user_id
        @version = version
      end
    end
  end
end
