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

package operations

import (
	"encoding/json"
	"fmt"
	"github.com/LukeHagar/plexgo/internal/utils"
	"github.com/LukeHagar/plexgo/models/components"
	"net/http"
)

var PostUsersSignInDataServerList = []string{
	"https://plex.tv/api/v2",
}

type PostUsersSignInDataGlobals struct {
	// Indicates the client accepts the indicated media types
	Accepts *components.Accepts `default:"application/xml" header:"style=simple,explode=false,name=accepts"`
	// An opaque identifier unique to the client
	ClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
	// The name of the client product
	Product *string `header:"style=simple,explode=false,name=X-Plex-Product"`
	// The version of the client application
	Version *string `header:"style=simple,explode=false,name=X-Plex-Version"`
	// The platform of the client
	Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"`
	// The version of the platform
	PlatformVersion *string `header:"style=simple,explode=false,name=X-Plex-Platform-Version"`
	// A relatively friendly name for the client device
	Device *string `header:"style=simple,explode=false,name=X-Plex-Device"`
	// A potentially less friendly identifier for the device model
	Model *string `header:"style=simple,explode=false,name=X-Plex-Model"`
	// The device vendor
	DeviceVendor *string `header:"style=simple,explode=false,name=X-Plex-Device-Vendor"`
	// A friendly name for the client
	DeviceName *string `header:"style=simple,explode=false,name=X-Plex-Device-Name"`
	// The marketplace on which the client application is distributed
	Marketplace *string `header:"style=simple,explode=false,name=X-Plex-Marketplace"`
}

func (p PostUsersSignInDataGlobals) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(p, "", false)
}

func (p *PostUsersSignInDataGlobals) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil {
		return err
	}
	return nil
}

func (p *PostUsersSignInDataGlobals) GetAccepts() *components.Accepts {
	if p == nil {
		return nil
	}
	return p.Accepts
}

func (p *PostUsersSignInDataGlobals) GetClientIdentifier() *string {
	if p == nil {
		return nil
	}
	return p.ClientIdentifier
}

func (p *PostUsersSignInDataGlobals) GetProduct() *string {
	if p == nil {
		return nil
	}
	return p.Product
}

func (p *PostUsersSignInDataGlobals) GetVersion() *string {
	if p == nil {
		return nil
	}
	return p.Version
}

func (p *PostUsersSignInDataGlobals) GetPlatform() *string {
	if p == nil {
		return nil
	}
	return p.Platform
}

func (p *PostUsersSignInDataGlobals) GetPlatformVersion() *string {
	if p == nil {
		return nil
	}
	return p.PlatformVersion
}

func (p *PostUsersSignInDataGlobals) GetDevice() *string {
	if p == nil {
		return nil
	}
	return p.Device
}

func (p *PostUsersSignInDataGlobals) GetModel() *string {
	if p == nil {
		return nil
	}
	return p.Model
}

func (p *PostUsersSignInDataGlobals) GetDeviceVendor() *string {
	if p == nil {
		return nil
	}
	return p.DeviceVendor
}

func (p *PostUsersSignInDataGlobals) GetDeviceName() *string {
	if p == nil {
		return nil
	}
	return p.DeviceName
}

func (p *PostUsersSignInDataGlobals) GetMarketplace() *string {
	if p == nil {
		return nil
	}
	return p.Marketplace
}

// PostUsersSignInDataRequestBody - Login credentials
type PostUsersSignInDataRequestBody struct {
	Login            string  `form:"name=login"`
	Password         string  `form:"name=password"`
	RememberMe       *bool   `default:"false" form:"name=rememberMe"`
	VerificationCode *string `form:"name=verificationCode"`
}

func (p PostUsersSignInDataRequestBody) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(p, "", false)
}

func (p *PostUsersSignInDataRequestBody) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &p, "", false, []string{"login", "password"}); err != nil {
		return err
	}
	return nil
}

func (p *PostUsersSignInDataRequestBody) GetLogin() string {
	if p == nil {
		return ""
	}
	return p.Login
}

func (p *PostUsersSignInDataRequestBody) GetPassword() string {
	if p == nil {
		return ""
	}
	return p.Password
}

func (p *PostUsersSignInDataRequestBody) GetRememberMe() *bool {
	if p == nil {
		return nil
	}
	return p.RememberMe
}

func (p *PostUsersSignInDataRequestBody) GetVerificationCode() *string {
	if p == nil {
		return nil
	}
	return p.VerificationCode
}

type PostUsersSignInDataRequest struct {
	// Indicates the client accepts the indicated media types
	Accepts *components.Accepts `default:"application/xml" header:"style=simple,explode=false,name=accepts"`
	// An opaque identifier unique to the client
	ClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
	// The name of the client product
	Product *string `header:"style=simple,explode=false,name=X-Plex-Product"`
	// The version of the client application
	Version *string `header:"style=simple,explode=false,name=X-Plex-Version"`
	// The platform of the client
	Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"`
	// The version of the platform
	PlatformVersion *string `header:"style=simple,explode=false,name=X-Plex-Platform-Version"`
	// A relatively friendly name for the client device
	Device *string `header:"style=simple,explode=false,name=X-Plex-Device"`
	// A potentially less friendly identifier for the device model
	Model *string `header:"style=simple,explode=false,name=X-Plex-Model"`
	// The device vendor
	DeviceVendor *string `header:"style=simple,explode=false,name=X-Plex-Device-Vendor"`
	// A friendly name for the client
	DeviceName *string `header:"style=simple,explode=false,name=X-Plex-Device-Name"`
	// The marketplace on which the client application is distributed
	Marketplace *string `header:"style=simple,explode=false,name=X-Plex-Marketplace"`
	// Login credentials
	RequestBody *PostUsersSignInDataRequestBody `request:"mediaType=application/x-www-form-urlencoded"`
}

func (p PostUsersSignInDataRequest) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(p, "", false)
}

func (p *PostUsersSignInDataRequest) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil {
		return err
	}
	return nil
}

func (p *PostUsersSignInDataRequest) GetAccepts() *components.Accepts {
	if p == nil {
		return nil
	}
	return p.Accepts
}

func (p *PostUsersSignInDataRequest) GetClientIdentifier() *string {
	if p == nil {
		return nil
	}
	return p.ClientIdentifier
}

func (p *PostUsersSignInDataRequest) GetProduct() *string {
	if p == nil {
		return nil
	}
	return p.Product
}

func (p *PostUsersSignInDataRequest) GetVersion() *string {
	if p == nil {
		return nil
	}
	return p.Version
}

func (p *PostUsersSignInDataRequest) GetPlatform() *string {
	if p == nil {
		return nil
	}
	return p.Platform
}

func (p *PostUsersSignInDataRequest) GetPlatformVersion() *string {
	if p == nil {
		return nil
	}
	return p.PlatformVersion
}

func (p *PostUsersSignInDataRequest) GetDevice() *string {
	if p == nil {
		return nil
	}
	return p.Device
}

func (p *PostUsersSignInDataRequest) GetModel() *string {
	if p == nil {
		return nil
	}
	return p.Model
}

func (p *PostUsersSignInDataRequest) GetDeviceVendor() *string {
	if p == nil {
		return nil
	}
	return p.DeviceVendor
}

func (p *PostUsersSignInDataRequest) GetDeviceName() *string {
	if p == nil {
		return nil
	}
	return p.DeviceName
}

func (p *PostUsersSignInDataRequest) GetMarketplace() *string {
	if p == nil {
		return nil
	}
	return p.Marketplace
}

func (p *PostUsersSignInDataRequest) GetRequestBody() *PostUsersSignInDataRequestBody {
	if p == nil {
		return nil
	}
	return p.RequestBody
}

// MailingListStatus - Your current mailing list status
type MailingListStatus string

const (
	MailingListStatusActive       MailingListStatus = "active"
	MailingListStatusUnsubscribed MailingListStatus = "unsubscribed"
	MailingListStatusRemoved      MailingListStatus = "removed"
)

func (e MailingListStatus) ToPointer() *MailingListStatus {
	return &e
}
func (e *MailingListStatus) UnmarshalJSON(data []byte) error {
	var v string
	if err := json.Unmarshal(data, &v); err != nil {
		return err
	}
	switch v {
	case "active":
		fallthrough
	case "unsubscribed":
		fallthrough
	case "removed":
		*e = MailingListStatus(v)
		return nil
	default:
		return fmt.Errorf("invalid value for MailingListStatus: %v", v)
	}
}

type Status string

const (
	StatusOnline  Status = "online"
	StatusOffline Status = "offline"
)

func (e Status) ToPointer() *Status {
	return &e
}

// IsExact returns true if the value matches a known enum value, false otherwise.
func (e *Status) IsExact() bool {
	if e != nil {
		switch *e {
		case "online", "offline":
			return true
		}
	}
	return false
}

type Services struct {
	Identifier string  `json:"identifier"`
	Endpoint   string  `json:"endpoint"`
	Token      *string `json:"token"`
	Secret     *string `json:"secret"`
	Status     Status  `json:"status"`
}

func (s *Services) GetIdentifier() string {
	if s == nil {
		return ""
	}
	return s.Identifier
}

func (s *Services) GetEndpoint() string {
	if s == nil {
		return ""
	}
	return s.Endpoint
}

func (s *Services) GetToken() *string {
	if s == nil {
		return nil
	}
	return s.Token
}

func (s *Services) GetSecret() *string {
	if s == nil {
		return nil
	}
	return s.Secret
}

func (s *Services) GetStatus() Status {
	if s == nil {
		return Status("")
	}
	return s.Status
}

// PostUsersSignInDataStatus - String representation of subscriptionActive
type PostUsersSignInDataStatus string

const (
	PostUsersSignInDataStatusInactive PostUsersSignInDataStatus = "Inactive"
	PostUsersSignInDataStatusActive   PostUsersSignInDataStatus = "Active"
)

func (e PostUsersSignInDataStatus) ToPointer() *PostUsersSignInDataStatus {
	return &e
}

// IsExact returns true if the value matches a known enum value, false otherwise.
func (e *PostUsersSignInDataStatus) IsExact() bool {
	if e != nil {
		switch *e {
		case "Inactive", "Active":
			return true
		}
	}
	return false
}

// Subscription - If the account's Plex Pass subscription is active
type Subscription struct {
	// List of features allowed on your Plex Pass subscription
	Features []string `json:"features,omitempty"`
	// If the account's Plex Pass subscription is active
	Active *bool `json:"active,omitempty"`
	// Date the account subscribed to Plex Pass
	SubscribedAt *string `json:"subscribedAt,omitempty"`
	// String representation of subscriptionActive
	Status *PostUsersSignInDataStatus `json:"status,omitempty"`
	// Payment service used for your Plex Pass subscription
	PaymentService *string `json:"paymentService,omitempty"`
	// Name of Plex Pass subscription plan
	Plan *string `json:"plan,omitempty"`
}

func (s *Subscription) GetFeatures() []string {
	if s == nil {
		return nil
	}
	return s.Features
}

func (s *Subscription) GetActive() *bool {
	if s == nil {
		return nil
	}
	return s.Active
}

func (s *Subscription) GetSubscribedAt() *string {
	if s == nil {
		return nil
	}
	return s.SubscribedAt
}

func (s *Subscription) GetStatus() *PostUsersSignInDataStatus {
	if s == nil {
		return nil
	}
	return s.Status
}

func (s *Subscription) GetPaymentService() *string {
	if s == nil {
		return nil
	}
	return s.PaymentService
}

func (s *Subscription) GetPlan() *string {
	if s == nil {
		return nil
	}
	return s.Plan
}

// PostUsersSignInDataAuthenticationStatus - String representation of subscriptionActive
type PostUsersSignInDataAuthenticationStatus string

const (
	PostUsersSignInDataAuthenticationStatusInactive PostUsersSignInDataAuthenticationStatus = "Inactive"
	PostUsersSignInDataAuthenticationStatusActive   PostUsersSignInDataAuthenticationStatus = "Active"
)

func (e PostUsersSignInDataAuthenticationStatus) ToPointer() *PostUsersSignInDataAuthenticationStatus {
	return &e
}

// IsExact returns true if the value matches a known enum value, false otherwise.
func (e *PostUsersSignInDataAuthenticationStatus) IsExact() bool {
	if e != nil {
		switch *e {
		case "Inactive", "Active":
			return true
		}
	}
	return false
}

type PostUsersSignInDataSubscription struct {
	// List of features allowed on your Plex Pass subscription
	Features []string `json:"features,omitempty"`
	// If the account's Plex Pass subscription is active
	Active *bool `json:"active,omitempty"`
	// Date the account subscribed to Plex Pass
	SubscribedAt *string `json:"subscribedAt,omitempty"`
	// String representation of subscriptionActive
	Status *PostUsersSignInDataAuthenticationStatus `json:"status,omitempty"`
	// Payment service used for your Plex Pass subscription
	PaymentService *string `json:"paymentService,omitempty"`
	// Name of Plex Pass subscription plan
	Plan *string `json:"plan,omitempty"`
}

func (p *PostUsersSignInDataSubscription) GetFeatures() []string {
	if p == nil {
		return nil
	}
	return p.Features
}

func (p *PostUsersSignInDataSubscription) GetActive() *bool {
	if p == nil {
		return nil
	}
	return p.Active
}

func (p *PostUsersSignInDataSubscription) GetSubscribedAt() *string {
	if p == nil {
		return nil
	}
	return p.SubscribedAt
}

func (p *PostUsersSignInDataSubscription) GetStatus() *PostUsersSignInDataAuthenticationStatus {
	if p == nil {
		return nil
	}
	return p.Status
}

func (p *PostUsersSignInDataSubscription) GetPaymentService() *string {
	if p == nil {
		return nil
	}
	return p.PaymentService
}

func (p *PostUsersSignInDataSubscription) GetPlan() *string {
	if p == nil {
		return nil
	}
	return p.Plan
}

type PostUsersSignInDataState string

const (
	PostUsersSignInDataStateEnded PostUsersSignInDataState = "ended"
)

func (e PostUsersSignInDataState) ToPointer() *PostUsersSignInDataState {
	return &e
}

// IsExact returns true if the value matches a known enum value, false otherwise.
func (e *PostUsersSignInDataState) IsExact() bool {
	if e != nil {
		switch *e {
		case "ended":
			return true
		}
	}
	return false
}

type InternalPaymentMethod struct {
}

type Billing struct {
	InternalPaymentMethod InternalPaymentMethod `json:"internalPaymentMethod"`
	PaymentMethodID       *int64                `json:"paymentMethodId"`
}

func (b *Billing) GetInternalPaymentMethod() InternalPaymentMethod {
	if b == nil {
		return InternalPaymentMethod{}
	}
	return b.InternalPaymentMethod
}

func (b *Billing) GetPaymentMethodID() *int64 {
	if b == nil {
		return nil
	}
	return b.PaymentMethodID
}

type PastSubscription struct {
	ID            *string                  `json:"id"`
	Mode          *string                  `json:"mode"`
	RenewsAt      *int64                   `json:"renewsAt"`
	EndsAt        *int64                   `json:"endsAt"`
	Canceled      *bool                    `default:"false" json:"canceled"`
	GracePeriod   *bool                    `default:"false" json:"gracePeriod"`
	OnHold        *bool                    `default:"false" json:"onHold"`
	CanReactivate *bool                    `default:"false" json:"canReactivate"`
	CanUpgrade    *bool                    `default:"false" json:"canUpgrade"`
	CanDowngrade  *bool                    `default:"false" json:"canDowngrade"`
	CanConvert    *bool                    `default:"false" json:"canConvert"`
	Type          string                   `json:"type"`
	Transfer      *string                  `json:"transfer"`
	State         PostUsersSignInDataState `json:"state"`
	Billing       Billing                  `json:"billing"`
}

func (p PastSubscription) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(p, "", false)
}

func (p *PastSubscription) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &p, "", false, []string{"type", "state", "billing"}); err != nil {
		return err
	}
	return nil
}

func (p *PastSubscription) GetID() *string {
	if p == nil {
		return nil
	}
	return p.ID
}

func (p *PastSubscription) GetMode() *string {
	if p == nil {
		return nil
	}
	return p.Mode
}

func (p *PastSubscription) GetRenewsAt() *int64 {
	if p == nil {
		return nil
	}
	return p.RenewsAt
}

func (p *PastSubscription) GetEndsAt() *int64 {
	if p == nil {
		return nil
	}
	return p.EndsAt
}

func (p *PastSubscription) GetCanceled() *bool {
	if p == nil {
		return nil
	}
	return p.Canceled
}

func (p *PastSubscription) GetGracePeriod() *bool {
	if p == nil {
		return nil
	}
	return p.GracePeriod
}

func (p *PastSubscription) GetOnHold() *bool {
	if p == nil {
		return nil
	}
	return p.OnHold
}

func (p *PastSubscription) GetCanReactivate() *bool {
	if p == nil {
		return nil
	}
	return p.CanReactivate
}

func (p *PastSubscription) GetCanUpgrade() *bool {
	if p == nil {
		return nil
	}
	return p.CanUpgrade
}

func (p *PastSubscription) GetCanDowngrade() *bool {
	if p == nil {
		return nil
	}
	return p.CanDowngrade
}

func (p *PastSubscription) GetCanConvert() *bool {
	if p == nil {
		return nil
	}
	return p.CanConvert
}

func (p *PastSubscription) GetType() string {
	if p == nil {
		return ""
	}
	return p.Type
}

func (p *PastSubscription) GetTransfer() *string {
	if p == nil {
		return nil
	}
	return p.Transfer
}

func (p *PastSubscription) GetState() PostUsersSignInDataState {
	if p == nil {
		return PostUsersSignInDataState("")
	}
	return p.State
}

func (p *PastSubscription) GetBilling() Billing {
	if p == nil {
		return Billing{}
	}
	return p.Billing
}

type Trials struct {
}

// PostUsersSignInDataUserPlexAccount - Returns the user account data with a valid auth token
type PostUsersSignInDataUserPlexAccount struct {
	// Unknown
	AdsConsent           *bool  `json:"adsConsent,omitempty"`
	AdsConsentReminderAt *int64 `json:"adsConsentReminderAt,omitempty"`
	AdsConsentSetAt      *int64 `json:"adsConsentSetAt,omitempty"`
	// Unknown
	Anonymous *bool `default:"false" json:"anonymous"`
	// The account token
	AuthToken string `json:"authToken"`
	// If the two-factor authentication backup codes have been created
	BackupCodesCreated *bool `default:"false" json:"backupCodesCreated"`
	// If the account has been confirmed
	Confirmed *bool `default:"false" json:"confirmed"`
	// The account country
	Country *string `json:"country,omitempty"`
	// The account email address
	Email string `json:"email"`
	// If login with email only is enabled
	EmailOnlyAuth *bool `default:"false" json:"emailOnlyAuth"`
	// If experimental features are enabled
	ExperimentalFeatures *bool `default:"false" json:"experimentalFeatures"`
	// Your account full name
	FriendlyName string `json:"friendlyName"`
	// List of devices your allowed to use with this account
	Entitlements []string `json:"entitlements,omitempty"`
	// If the account is a Plex Home guest user
	Guest *bool `default:"false" json:"guest"`
	// If the account has a password
	HasPassword *bool `default:"true" json:"hasPassword"`
	// If the account is a Plex Home user
	Home *bool `default:"false" json:"home"`
	// If the account is the Plex Home admin
	HomeAdmin *bool `default:"false" json:"homeAdmin"`
	// The number of accounts in the Plex Home
	HomeSize *int `json:"homeSize,omitempty"`
	// The Plex account ID
	ID int `json:"id"`
	// Unix epoch datetime in seconds
	JoinedAt int64 `json:"joinedAt"`
	// The account locale
	Locale *string `json:"locale,omitempty"`
	// If you are subscribed to the Plex newsletter
	MailingListActive *bool `default:"false" json:"mailingListActive"`
	// Your current mailing list status
	MailingListStatus *MailingListStatus `json:"mailingListStatus,omitempty"`
	// The maximum number of accounts allowed in the Plex Home
	MaxHomeSize *int `json:"maxHomeSize,omitempty"`
	// [Might be removed] The hashed Plex Home PIN
	//
	// Deprecated: This will be removed in a future release, please migrate away from it as soon as possible.
	Pin     *string                 `json:"pin,omitempty"`
	Profile *components.UserProfile `json:"profile,omitempty"`
	// If the account has a Plex Home PIN enabled
	Protected *bool `default:"false" json:"protected"`
	// Unix epoch datetime in seconds
	RememberExpiresAt *int64 `json:"rememberExpiresAt,omitempty"`
	// If the account is a Plex Home managed user
	Restricted *bool `default:"false" json:"restricted"`
	// [Might be removed] List of account roles. Plexpass membership listed here
	Roles []string `json:"roles,omitempty"`
	// Unknown
	ScrobbleTypes *string    `json:"scrobbleTypes,omitempty"`
	Services      []Services `json:"services,omitempty"`
	// If the account's Plex Pass subscription is active
	Subscription *Subscription `json:"subscription,omitempty"`
	// Description of the Plex Pass subscription
	SubscriptionDescription *string                           `json:"subscriptionDescription,omitempty"`
	Subscriptions           []PostUsersSignInDataSubscription `json:"subscriptions,omitempty"`
	// URL of the account thumbnail
	Thumb *string `json:"thumb,omitempty"`
	// The title of the account (username or friendly name)
	Title string `json:"title"`
	// If two-factor authentication is enabled
	TwoFactorEnabled *bool `default:"false" json:"twoFactorEnabled"`
	// The account username
	Username string `json:"username"`
	// The account UUID
	UUID               string             `json:"uuid"`
	AttributionPartner *string            `json:"attributionPartner,omitempty"`
	PastSubscriptions  []PastSubscription `json:"pastSubscriptions"`
	Trials             []Trials           `json:"trials"`
}

func (p PostUsersSignInDataUserPlexAccount) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(p, "", false)
}

func (p *PostUsersSignInDataUserPlexAccount) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &p, "", false, []string{"authToken", "email", "friendlyName", "id", "joinedAt", "title", "username", "uuid", "pastSubscriptions", "trials"}); err != nil {
		return err
	}
	return nil
}

func (p *PostUsersSignInDataUserPlexAccount) GetAdsConsent() *bool {
	if p == nil {
		return nil
	}
	return p.AdsConsent
}

func (p *PostUsersSignInDataUserPlexAccount) GetAdsConsentReminderAt() *int64 {
	if p == nil {
		return nil
	}
	return p.AdsConsentReminderAt
}

func (p *PostUsersSignInDataUserPlexAccount) GetAdsConsentSetAt() *int64 {
	if p == nil {
		return nil
	}
	return p.AdsConsentSetAt
}

func (p *PostUsersSignInDataUserPlexAccount) GetAnonymous() *bool {
	if p == nil {
		return nil
	}
	return p.Anonymous
}

func (p *PostUsersSignInDataUserPlexAccount) GetAuthToken() string {
	if p == nil {
		return ""
	}
	return p.AuthToken
}

func (p *PostUsersSignInDataUserPlexAccount) GetBackupCodesCreated() *bool {
	if p == nil {
		return nil
	}
	return p.BackupCodesCreated
}

func (p *PostUsersSignInDataUserPlexAccount) GetConfirmed() *bool {
	if p == nil {
		return nil
	}
	return p.Confirmed
}

func (p *PostUsersSignInDataUserPlexAccount) GetCountry() *string {
	if p == nil {
		return nil
	}
	return p.Country
}

func (p *PostUsersSignInDataUserPlexAccount) GetEmail() string {
	if p == nil {
		return ""
	}
	return p.Email
}

func (p *PostUsersSignInDataUserPlexAccount) GetEmailOnlyAuth() *bool {
	if p == nil {
		return nil
	}
	return p.EmailOnlyAuth
}

func (p *PostUsersSignInDataUserPlexAccount) GetExperimentalFeatures() *bool {
	if p == nil {
		return nil
	}
	return p.ExperimentalFeatures
}

func (p *PostUsersSignInDataUserPlexAccount) GetFriendlyName() string {
	if p == nil {
		return ""
	}
	return p.FriendlyName
}

func (p *PostUsersSignInDataUserPlexAccount) GetEntitlements() []string {
	if p == nil {
		return nil
	}
	return p.Entitlements
}

func (p *PostUsersSignInDataUserPlexAccount) GetGuest() *bool {
	if p == nil {
		return nil
	}
	return p.Guest
}

func (p *PostUsersSignInDataUserPlexAccount) GetHasPassword() *bool {
	if p == nil {
		return nil
	}
	return p.HasPassword
}

func (p *PostUsersSignInDataUserPlexAccount) GetHome() *bool {
	if p == nil {
		return nil
	}
	return p.Home
}

func (p *PostUsersSignInDataUserPlexAccount) GetHomeAdmin() *bool {
	if p == nil {
		return nil
	}
	return p.HomeAdmin
}

func (p *PostUsersSignInDataUserPlexAccount) GetHomeSize() *int {
	if p == nil {
		return nil
	}
	return p.HomeSize
}

func (p *PostUsersSignInDataUserPlexAccount) GetID() int {
	if p == nil {
		return 0
	}
	return p.ID
}

func (p *PostUsersSignInDataUserPlexAccount) GetJoinedAt() int64 {
	if p == nil {
		return 0
	}
	return p.JoinedAt
}

func (p *PostUsersSignInDataUserPlexAccount) GetLocale() *string {
	if p == nil {
		return nil
	}
	return p.Locale
}

func (p *PostUsersSignInDataUserPlexAccount) GetMailingListActive() *bool {
	if p == nil {
		return nil
	}
	return p.MailingListActive
}

func (p *PostUsersSignInDataUserPlexAccount) GetMailingListStatus() *MailingListStatus {
	if p == nil {
		return nil
	}
	return p.MailingListStatus
}

func (p *PostUsersSignInDataUserPlexAccount) GetMaxHomeSize() *int {
	if p == nil {
		return nil
	}
	return p.MaxHomeSize
}

func (p *PostUsersSignInDataUserPlexAccount) GetPin() *string {
	if p == nil {
		return nil
	}
	return p.Pin
}

func (p *PostUsersSignInDataUserPlexAccount) GetProfile() *components.UserProfile {
	if p == nil {
		return nil
	}
	return p.Profile
}

func (p *PostUsersSignInDataUserPlexAccount) GetProtected() *bool {
	if p == nil {
		return nil
	}
	return p.Protected
}

func (p *PostUsersSignInDataUserPlexAccount) GetRememberExpiresAt() *int64 {
	if p == nil {
		return nil
	}
	return p.RememberExpiresAt
}

func (p *PostUsersSignInDataUserPlexAccount) GetRestricted() *bool {
	if p == nil {
		return nil
	}
	return p.Restricted
}

func (p *PostUsersSignInDataUserPlexAccount) GetRoles() []string {
	if p == nil {
		return nil
	}
	return p.Roles
}

func (p *PostUsersSignInDataUserPlexAccount) GetScrobbleTypes() *string {
	if p == nil {
		return nil
	}
	return p.ScrobbleTypes
}

func (p *PostUsersSignInDataUserPlexAccount) GetServices() []Services {
	if p == nil {
		return nil
	}
	return p.Services
}

func (p *PostUsersSignInDataUserPlexAccount) GetSubscription() *Subscription {
	if p == nil {
		return nil
	}
	return p.Subscription
}

func (p *PostUsersSignInDataUserPlexAccount) GetSubscriptionDescription() *string {
	if p == nil {
		return nil
	}
	return p.SubscriptionDescription
}

func (p *PostUsersSignInDataUserPlexAccount) GetSubscriptions() []PostUsersSignInDataSubscription {
	if p == nil {
		return nil
	}
	return p.Subscriptions
}

func (p *PostUsersSignInDataUserPlexAccount) GetThumb() *string {
	if p == nil {
		return nil
	}
	return p.Thumb
}

func (p *PostUsersSignInDataUserPlexAccount) GetTitle() string {
	if p == nil {
		return ""
	}
	return p.Title
}

func (p *PostUsersSignInDataUserPlexAccount) GetTwoFactorEnabled() *bool {
	if p == nil {
		return nil
	}
	return p.TwoFactorEnabled
}

func (p *PostUsersSignInDataUserPlexAccount) GetUsername() string {
	if p == nil {
		return ""
	}
	return p.Username
}

func (p *PostUsersSignInDataUserPlexAccount) GetUUID() string {
	if p == nil {
		return ""
	}
	return p.UUID
}

func (p *PostUsersSignInDataUserPlexAccount) GetAttributionPartner() *string {
	if p == nil {
		return nil
	}
	return p.AttributionPartner
}

func (p *PostUsersSignInDataUserPlexAccount) GetPastSubscriptions() []PastSubscription {
	if p == nil {
		return []PastSubscription{}
	}
	return p.PastSubscriptions
}

func (p *PostUsersSignInDataUserPlexAccount) GetTrials() []Trials {
	if p == nil {
		return []Trials{}
	}
	return p.Trials
}

type PostUsersSignInDataResponse struct {
	// HTTP response content type for this operation
	ContentType string
	// HTTP response status code for this operation
	StatusCode int
	// Raw HTTP response; suitable for custom response parsing
	RawResponse *http.Response
	// Returns the user account data with a valid auth token
	UserPlexAccount *PostUsersSignInDataUserPlexAccount
}

func (p *PostUsersSignInDataResponse) GetContentType() string {
	if p == nil {
		return ""
	}
	return p.ContentType
}

func (p *PostUsersSignInDataResponse) GetStatusCode() int {
	if p == nil {
		return 0
	}
	return p.StatusCode
}

func (p *PostUsersSignInDataResponse) GetRawResponse() *http.Response {
	if p == nil {
		return nil
	}
	return p.RawResponse
}

func (p *PostUsersSignInDataResponse) GetUserPlexAccount() *PostUsersSignInDataUserPlexAccount {
	if p == nil {
		return nil
	}
	return p.UserPlexAccount
}
