//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
    using LukeHagar.PlexAPI.SDK.Utils;
    
    public class GetPinRequest
    {

        /// <summary>
        /// Determines the kind of code returned by the API call<br/>
        /// 
        /// <remarks>
        /// Strong codes are used for Pin authentication flows<br/>
        /// Non-Strong codes are used for `Plex.tv/link`<br/>
        /// 
        /// </remarks>
        /// </summary>
        [SpeakeasyMetadata("queryParam:style=form,explode=true,name=strong")]
        public bool? Strong { get; set; } = false;

        /// <summary>
        /// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
        /// </summary>
        [SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
        public string ClientID { get; set; } = default!;

        /// <summary>
        /// The name of the client application. (Plex Web, Plex Media Server, etc.)
        /// </summary>
        [SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Product")]
        public string? ClientName { get; set; }

        /// <summary>
        /// A relatively friendly name for the client device
        /// </summary>
        [SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device")]
        public string? DeviceNickname { get; set; }

        /// <summary>
        /// The version of the client application.
        /// </summary>
        [SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Version")]
        public string? ClientVersion { get; set; }

        /// <summary>
        /// The platform of the client application.
        /// </summary>
        [SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform")]
        public string? Platform { get; set; }
    }
}