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

# typed: true
# frozen_string_literal: true


module PlexRubySDK
  module Operations
  

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

      # whether the playlist is smart or not
      field :smart, ::PlexRubySDK::Operations::Smart, { 'query_param': { 'field_name': 'smart', 'style': 'form', 'explode': true } }
      # name of the playlist
      field :title, ::String, { 'query_param': { 'field_name': 'title', 'style': 'form', 'explode': true } }
      # type of playlist to create
      field :type, ::PlexRubySDK::Operations::CreatePlaylistQueryParamType, { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
      # the content URI for the playlist
      field :uri, ::String, { 'query_param': { 'field_name': 'uri', 'style': 'form', 'explode': true } }
      # the play queue to copy to a playlist
      field :play_queue_id, T.nilable(::Float), { 'query_param': { 'field_name': 'playQueueID', 'style': 'form', 'explode': true } }


      sig { params(smart: ::PlexRubySDK::Operations::Smart, title: ::String, type: ::PlexRubySDK::Operations::CreatePlaylistQueryParamType, uri: ::String, play_queue_id: T.nilable(::Float)).void }
      def initialize(smart: nil, title: nil, type: nil, uri: nil, play_queue_id: nil)
        @smart = smart
        @title = title
        @type = type
        @uri = uri
        @play_queue_id = play_queue_id
      end
    end
  end
end
