Test

<back to all web services

UpdateSession

The following routes are available for this service:
All Verbs/session/edit/{CustomName}
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


/**
 * @property string|null $provider
 * @property string|null $userId
 * @property string|null $accessToken
 * @property string|null $accessTokenSecret
 * @property string|null $refreshToken
 * @property DateTime|null $refreshTokenExpiry
 * @property string|null $requestToken
 * @property string|null $requestTokenSecret
 * @property array<string,string>|null $items
 */
interface IAuthTokens
{
}

// @DataContract
class AuthUserSession implements IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var string|null */
        public ?string $referrerUrl=null,

        // @DataMember(Order=2)
        /** @var string|null */
        public ?string $id=null,

        // @DataMember(Order=3)
        /** @var string|null */
        public ?string $userAuthId=null,

        // @DataMember(Order=4)
        /** @var string|null */
        public ?string $userAuthName=null,

        // @DataMember(Order=5)
        /** @var string|null */
        public ?string $userName=null,

        // @DataMember(Order=6)
        /** @var string|null */
        public ?string $twitterUserId=null,

        // @DataMember(Order=7)
        /** @var string|null */
        public ?string $twitterScreenName=null,

        // @DataMember(Order=8)
        /** @var string|null */
        public ?string $facebookUserId=null,

        // @DataMember(Order=9)
        /** @var string|null */
        public ?string $facebookUserName=null,

        // @DataMember(Order=10)
        /** @var string|null */
        public ?string $firstName=null,

        // @DataMember(Order=11)
        /** @var string|null */
        public ?string $lastName=null,

        // @DataMember(Order=12)
        /** @var string|null */
        public ?string $displayName=null,

        // @DataMember(Order=13)
        /** @var string|null */
        public ?string $company=null,

        // @DataMember(Order=14)
        /** @var string|null */
        public ?string $email=null,

        // @DataMember(Order=15)
        /** @var string|null */
        public ?string $primaryEmail=null,

        // @DataMember(Order=16)
        /** @var string|null */
        public ?string $phoneNumber=null,

        // @DataMember(Order=17)
        /** @var DateTime|null */
        public ?DateTime $birthDate=null,

        // @DataMember(Order=18)
        /** @var string|null */
        public ?string $birthDateRaw=null,

        // @DataMember(Order=19)
        /** @var string|null */
        public ?string $address=null,

        // @DataMember(Order=20)
        /** @var string|null */
        public ?string $address2=null,

        // @DataMember(Order=21)
        /** @var string|null */
        public ?string $city=null,

        // @DataMember(Order=22)
        /** @var string|null */
        public ?string $state=null,

        // @DataMember(Order=23)
        /** @var string|null */
        public ?string $country=null,

        // @DataMember(Order=24)
        /** @var string|null */
        public ?string $culture=null,

        // @DataMember(Order=25)
        /** @var string|null */
        public ?string $fullName=null,

        // @DataMember(Order=26)
        /** @var string|null */
        public ?string $gender=null,

        // @DataMember(Order=27)
        /** @var string|null */
        public ?string $language=null,

        // @DataMember(Order=28)
        /** @var string|null */
        public ?string $mailAddress=null,

        // @DataMember(Order=29)
        /** @var string|null */
        public ?string $nickname=null,

        // @DataMember(Order=30)
        /** @var string|null */
        public ?string $postalCode=null,

        // @DataMember(Order=31)
        /** @var string|null */
        public ?string $timeZone=null,

        // @DataMember(Order=32)
        /** @var string|null */
        public ?string $requestTokenSecret=null,

        // @DataMember(Order=33)
        /** @var DateTime */
        public DateTime $createdAt=new DateTime(),

        // @DataMember(Order=34)
        /** @var DateTime */
        public DateTime $lastModified=new DateTime(),

        // @DataMember(Order=35)
        /** @var array<string>|null */
        public ?array $roles=null,

        // @DataMember(Order=36)
        /** @var array<string>|null */
        public ?array $permissions=null,

        // @DataMember(Order=37)
        /** @var bool|null */
        public ?bool $isAuthenticated=null,

        // @DataMember(Order=38)
        /** @var bool|null */
        public ?bool $fromToken=null,

        // @DataMember(Order=39)
        /** @var string|null */
        public ?string $profileUrl=null,

        // @DataMember(Order=40)
        /** @var string|null */
        public ?string $sequence=null,

        // @DataMember(Order=41)
        /** @var int */
        public int $tag=0,

        // @DataMember(Order=42)
        /** @var string|null */
        public ?string $authProvider=null,

        // @DataMember(Order=43)
        /** @var array<IAuthTokens>|null */
        public ?array $providerOAuthAccess=null,

        // @DataMember(Order=44)
        /** @var array<string,string>|null */
        public ?array $meta=null,

        // @DataMember(Order=45)
        /** @var array<string>|null */
        public ?array $audiences=null,

        // @DataMember(Order=46)
        /** @var array<string>|null */
        public ?array $scopes=null,

        // @DataMember(Order=47)
        /** @var string|null */
        public ?string $dns=null,

        // @DataMember(Order=48)
        /** @var string|null */
        public ?string $rsa=null,

        // @DataMember(Order=49)
        /** @var string|null */
        public ?string $sid=null,

        // @DataMember(Order=50)
        /** @var string|null */
        public ?string $hash=null,

        // @DataMember(Order=51)
        /** @var string|null */
        public ?string $homePhone=null,

        // @DataMember(Order=52)
        /** @var string|null */
        public ?string $mobilePhone=null,

        // @DataMember(Order=53)
        /** @var string|null */
        public ?string $webpage=null,

        // @DataMember(Order=54)
        /** @var bool|null */
        public ?bool $emailConfirmed=null,

        // @DataMember(Order=55)
        /** @var bool|null */
        public ?bool $phoneNumberConfirmed=null,

        // @DataMember(Order=56)
        /** @var bool|null */
        public ?bool $twoFactorEnabled=null,

        // @DataMember(Order=57)
        /** @var string|null */
        public ?string $securityStamp=null,

        // @DataMember(Order=58)
        /** @var string|null */
        public ?string $type=null,

        // @DataMember(Order=59)
        /** @var string|null */
        public ?string $recoveryToken=null,

        // @DataMember(Order=60)
        /** @var int|null */
        public ?int $refId=null,

        // @DataMember(Order=61)
        /** @var string|null */
        public ?string $refIdStr=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['referrerUrl'])) $this->referrerUrl = $o['referrerUrl'];
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['userAuthId'])) $this->userAuthId = $o['userAuthId'];
        if (isset($o['userAuthName'])) $this->userAuthName = $o['userAuthName'];
        if (isset($o['userName'])) $this->userName = $o['userName'];
        if (isset($o['twitterUserId'])) $this->twitterUserId = $o['twitterUserId'];
        if (isset($o['twitterScreenName'])) $this->twitterScreenName = $o['twitterScreenName'];
        if (isset($o['facebookUserId'])) $this->facebookUserId = $o['facebookUserId'];
        if (isset($o['facebookUserName'])) $this->facebookUserName = $o['facebookUserName'];
        if (isset($o['firstName'])) $this->firstName = $o['firstName'];
        if (isset($o['lastName'])) $this->lastName = $o['lastName'];
        if (isset($o['displayName'])) $this->displayName = $o['displayName'];
        if (isset($o['company'])) $this->company = $o['company'];
        if (isset($o['email'])) $this->email = $o['email'];
        if (isset($o['primaryEmail'])) $this->primaryEmail = $o['primaryEmail'];
        if (isset($o['phoneNumber'])) $this->phoneNumber = $o['phoneNumber'];
        if (isset($o['birthDate'])) $this->birthDate = JsonConverters::from('DateTime', $o['birthDate']);
        if (isset($o['birthDateRaw'])) $this->birthDateRaw = $o['birthDateRaw'];
        if (isset($o['address'])) $this->address = $o['address'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['city'])) $this->city = $o['city'];
        if (isset($o['state'])) $this->state = $o['state'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['culture'])) $this->culture = $o['culture'];
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
        if (isset($o['gender'])) $this->gender = $o['gender'];
        if (isset($o['language'])) $this->language = $o['language'];
        if (isset($o['mailAddress'])) $this->mailAddress = $o['mailAddress'];
        if (isset($o['nickname'])) $this->nickname = $o['nickname'];
        if (isset($o['postalCode'])) $this->postalCode = $o['postalCode'];
        if (isset($o['timeZone'])) $this->timeZone = $o['timeZone'];
        if (isset($o['requestTokenSecret'])) $this->requestTokenSecret = $o['requestTokenSecret'];
        if (isset($o['createdAt'])) $this->createdAt = JsonConverters::from('DateTime', $o['createdAt']);
        if (isset($o['lastModified'])) $this->lastModified = JsonConverters::from('DateTime', $o['lastModified']);
        if (isset($o['roles'])) $this->roles = JsonConverters::fromArray('string', $o['roles']);
        if (isset($o['permissions'])) $this->permissions = JsonConverters::fromArray('string', $o['permissions']);
        if (isset($o['isAuthenticated'])) $this->isAuthenticated = $o['isAuthenticated'];
        if (isset($o['fromToken'])) $this->fromToken = $o['fromToken'];
        if (isset($o['profileUrl'])) $this->profileUrl = $o['profileUrl'];
        if (isset($o['sequence'])) $this->sequence = $o['sequence'];
        if (isset($o['tag'])) $this->tag = $o['tag'];
        if (isset($o['authProvider'])) $this->authProvider = $o['authProvider'];
        if (isset($o['providerOAuthAccess'])) $this->providerOAuthAccess = JsonConverters::fromArray('IAuthTokens', $o['providerOAuthAccess']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['audiences'])) $this->audiences = JsonConverters::fromArray('string', $o['audiences']);
        if (isset($o['scopes'])) $this->scopes = JsonConverters::fromArray('string', $o['scopes']);
        if (isset($o['dns'])) $this->dns = $o['dns'];
        if (isset($o['rsa'])) $this->rsa = $o['rsa'];
        if (isset($o['sid'])) $this->sid = $o['sid'];
        if (isset($o['hash'])) $this->hash = $o['hash'];
        if (isset($o['homePhone'])) $this->homePhone = $o['homePhone'];
        if (isset($o['mobilePhone'])) $this->mobilePhone = $o['mobilePhone'];
        if (isset($o['webpage'])) $this->webpage = $o['webpage'];
        if (isset($o['emailConfirmed'])) $this->emailConfirmed = $o['emailConfirmed'];
        if (isset($o['phoneNumberConfirmed'])) $this->phoneNumberConfirmed = $o['phoneNumberConfirmed'];
        if (isset($o['twoFactorEnabled'])) $this->twoFactorEnabled = $o['twoFactorEnabled'];
        if (isset($o['securityStamp'])) $this->securityStamp = $o['securityStamp'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['recoveryToken'])) $this->recoveryToken = $o['recoveryToken'];
        if (isset($o['refId'])) $this->refId = $o['refId'];
        if (isset($o['refIdStr'])) $this->refIdStr = $o['refIdStr'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->referrerUrl)) $o['referrerUrl'] = $this->referrerUrl;
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->userAuthId)) $o['userAuthId'] = $this->userAuthId;
        if (isset($this->userAuthName)) $o['userAuthName'] = $this->userAuthName;
        if (isset($this->userName)) $o['userName'] = $this->userName;
        if (isset($this->twitterUserId)) $o['twitterUserId'] = $this->twitterUserId;
        if (isset($this->twitterScreenName)) $o['twitterScreenName'] = $this->twitterScreenName;
        if (isset($this->facebookUserId)) $o['facebookUserId'] = $this->facebookUserId;
        if (isset($this->facebookUserName)) $o['facebookUserName'] = $this->facebookUserName;
        if (isset($this->firstName)) $o['firstName'] = $this->firstName;
        if (isset($this->lastName)) $o['lastName'] = $this->lastName;
        if (isset($this->displayName)) $o['displayName'] = $this->displayName;
        if (isset($this->company)) $o['company'] = $this->company;
        if (isset($this->email)) $o['email'] = $this->email;
        if (isset($this->primaryEmail)) $o['primaryEmail'] = $this->primaryEmail;
        if (isset($this->phoneNumber)) $o['phoneNumber'] = $this->phoneNumber;
        if (isset($this->birthDate)) $o['birthDate'] = JsonConverters::to('DateTime', $this->birthDate);
        if (isset($this->birthDateRaw)) $o['birthDateRaw'] = $this->birthDateRaw;
        if (isset($this->address)) $o['address'] = $this->address;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->city)) $o['city'] = $this->city;
        if (isset($this->state)) $o['state'] = $this->state;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->culture)) $o['culture'] = $this->culture;
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        if (isset($this->gender)) $o['gender'] = $this->gender;
        if (isset($this->language)) $o['language'] = $this->language;
        if (isset($this->mailAddress)) $o['mailAddress'] = $this->mailAddress;
        if (isset($this->nickname)) $o['nickname'] = $this->nickname;
        if (isset($this->postalCode)) $o['postalCode'] = $this->postalCode;
        if (isset($this->timeZone)) $o['timeZone'] = $this->timeZone;
        if (isset($this->requestTokenSecret)) $o['requestTokenSecret'] = $this->requestTokenSecret;
        if (isset($this->createdAt)) $o['createdAt'] = JsonConverters::to('DateTime', $this->createdAt);
        if (isset($this->lastModified)) $o['lastModified'] = JsonConverters::to('DateTime', $this->lastModified);
        if (isset($this->roles)) $o['roles'] = JsonConverters::toArray('string', $this->roles);
        if (isset($this->permissions)) $o['permissions'] = JsonConverters::toArray('string', $this->permissions);
        if (isset($this->isAuthenticated)) $o['isAuthenticated'] = $this->isAuthenticated;
        if (isset($this->fromToken)) $o['fromToken'] = $this->fromToken;
        if (isset($this->profileUrl)) $o['profileUrl'] = $this->profileUrl;
        if (isset($this->sequence)) $o['sequence'] = $this->sequence;
        if (isset($this->tag)) $o['tag'] = $this->tag;
        if (isset($this->authProvider)) $o['authProvider'] = $this->authProvider;
        if (isset($this->providerOAuthAccess)) $o['providerOAuthAccess'] = JsonConverters::toArray('IAuthTokens', $this->providerOAuthAccess);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->audiences)) $o['audiences'] = JsonConverters::toArray('string', $this->audiences);
        if (isset($this->scopes)) $o['scopes'] = JsonConverters::toArray('string', $this->scopes);
        if (isset($this->dns)) $o['dns'] = $this->dns;
        if (isset($this->rsa)) $o['rsa'] = $this->rsa;
        if (isset($this->sid)) $o['sid'] = $this->sid;
        if (isset($this->hash)) $o['hash'] = $this->hash;
        if (isset($this->homePhone)) $o['homePhone'] = $this->homePhone;
        if (isset($this->mobilePhone)) $o['mobilePhone'] = $this->mobilePhone;
        if (isset($this->webpage)) $o['webpage'] = $this->webpage;
        if (isset($this->emailConfirmed)) $o['emailConfirmed'] = $this->emailConfirmed;
        if (isset($this->phoneNumberConfirmed)) $o['phoneNumberConfirmed'] = $this->phoneNumberConfirmed;
        if (isset($this->twoFactorEnabled)) $o['twoFactorEnabled'] = $this->twoFactorEnabled;
        if (isset($this->securityStamp)) $o['securityStamp'] = $this->securityStamp;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->recoveryToken)) $o['recoveryToken'] = $this->recoveryToken;
        if (isset($this->refId)) $o['refId'] = $this->refId;
        if (isset($this->refIdStr)) $o['refIdStr'] = $this->refIdStr;
        return empty($o) ? new class(){} : $o;
    }
}

class CustomUserSession extends AuthUserSession implements JsonSerializable
{
    /**
     * @param string|null $referrerUrl
     * @param string|null $id
     * @param string|null $userAuthId
     * @param string|null $userAuthName
     * @param string|null $userName
     * @param string|null $twitterUserId
     * @param string|null $twitterScreenName
     * @param string|null $facebookUserId
     * @param string|null $facebookUserName
     * @param string|null $firstName
     * @param string|null $lastName
     * @param string|null $displayName
     * @param string|null $company
     * @param string|null $email
     * @param string|null $primaryEmail
     * @param string|null $phoneNumber
     * @param DateTime|null $birthDate
     * @param string|null $birthDateRaw
     * @param string|null $address
     * @param string|null $address2
     * @param string|null $city
     * @param string|null $state
     * @param string|null $country
     * @param string|null $culture
     * @param string|null $fullName
     * @param string|null $gender
     * @param string|null $language
     * @param string|null $mailAddress
     * @param string|null $nickname
     * @param string|null $postalCode
     * @param string|null $timeZone
     * @param string|null $requestTokenSecret
     * @param DateTime $createdAt
     * @param DateTime $lastModified
     * @param array<string>|null $roles
     * @param array<string>|null $permissions
     * @param bool|null $isAuthenticated
     * @param bool|null $fromToken
     * @param string|null $profileUrl
     * @param string|null $sequence
     * @param int $tag
     * @param string|null $authProvider
     * @param array<IAuthTokens>|null $providerOAuthAccess
     * @param array<string,string>|null $meta
     * @param array<string>|null $audiences
     * @param array<string>|null $scopes
     * @param string|null $dns
     * @param string|null $rsa
     * @param string|null $sid
     * @param string|null $hash
     * @param string|null $homePhone
     * @param string|null $mobilePhone
     * @param string|null $webpage
     * @param bool|null $emailConfirmed
     * @param bool|null $phoneNumberConfirmed
     * @param bool|null $twoFactorEnabled
     * @param string|null $securityStamp
     * @param string|null $type
     * @param string|null $recoveryToken
     * @param int|null $refId
     * @param string|null $refIdStr
     */
    public function __construct(
        ?string $referrerUrl=null,
        ?string $id=null,
        ?string $userAuthId=null,
        ?string $userAuthName=null,
        ?string $userName=null,
        ?string $twitterUserId=null,
        ?string $twitterScreenName=null,
        ?string $facebookUserId=null,
        ?string $facebookUserName=null,
        ?string $firstName=null,
        ?string $lastName=null,
        ?string $displayName=null,
        ?string $company=null,
        ?string $email=null,
        ?string $primaryEmail=null,
        ?string $phoneNumber=null,
        ?DateTime $birthDate=null,
        ?string $birthDateRaw=null,
        ?string $address=null,
        ?string $address2=null,
        ?string $city=null,
        ?string $state=null,
        ?string $country=null,
        ?string $culture=null,
        ?string $fullName=null,
        ?string $gender=null,
        ?string $language=null,
        ?string $mailAddress=null,
        ?string $nickname=null,
        ?string $postalCode=null,
        ?string $timeZone=null,
        ?string $requestTokenSecret=null,
        DateTime $createdAt=new DateTime(),
        DateTime $lastModified=new DateTime(),
        ?array $roles=null,
        ?array $permissions=null,
        ?bool $isAuthenticated=null,
        ?bool $fromToken=null,
        ?string $profileUrl=null,
        ?string $sequence=null,
        int $tag=0,
        ?string $authProvider=null,
        ?array $providerOAuthAccess=null,
        ?array $meta=null,
        ?array $audiences=null,
        ?array $scopes=null,
        ?string $dns=null,
        ?string $rsa=null,
        ?string $sid=null,
        ?string $hash=null,
        ?string $homePhone=null,
        ?string $mobilePhone=null,
        ?string $webpage=null,
        ?bool $emailConfirmed=null,
        ?bool $phoneNumberConfirmed=null,
        ?bool $twoFactorEnabled=null,
        ?string $securityStamp=null,
        ?string $type=null,
        ?string $recoveryToken=null,
        ?int $refId=null,
        ?string $refIdStr=null,
        // @DataMember
        /** @var string|null */
        public ?string $customName=null,

        // @DataMember
        /** @var string|null */
        public ?string $customInfo=null
    ) {
        parent::__construct($referrerUrl,$id,$userAuthId,$userAuthName,$userName,$twitterUserId,$twitterScreenName,$facebookUserId,$facebookUserName,$firstName,$lastName,$displayName,$company,$email,$primaryEmail,$phoneNumber,$birthDate,$birthDateRaw,$address,$address2,$city,$state,$country,$culture,$fullName,$gender,$language,$mailAddress,$nickname,$postalCode,$timeZone,$requestTokenSecret,$createdAt,$lastModified,$roles,$permissions,$isAuthenticated,$fromToken,$profileUrl,$sequence,$tag,$authProvider,$providerOAuthAccess,$meta,$audiences,$scopes,$dns,$rsa,$sid,$hash,$homePhone,$mobilePhone,$webpage,$emailConfirmed,$phoneNumberConfirmed,$twoFactorEnabled,$securityStamp,$type,$recoveryToken,$refId,$refIdStr);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['customName'])) $this->customName = $o['customName'];
        if (isset($o['customInfo'])) $this->customInfo = $o['customInfo'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->customName)) $o['customName'] = $this->customName;
        if (isset($this->customInfo)) $o['customInfo'] = $this->customInfo;
        return empty($o) ? new class(){} : $o;
    }
}

class UnAuthInfo implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $customInfo=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['customInfo'])) $this->customInfo = $o['customInfo'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->customInfo)) $o['customInfo'] = $this->customInfo;
        return empty($o) ? new class(){} : $o;
    }
}

class GetSessionResponse implements JsonSerializable
{
    public function __construct(
        /** @var CustomUserSession|null */
        public ?CustomUserSession $result=null,
        /** @var UnAuthInfo|null */
        public ?UnAuthInfo $unAuthInfo=null,
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['result'])) $this->result = JsonConverters::from('CustomUserSession', $o['result']);
        if (isset($o['unAuthInfo'])) $this->unAuthInfo = JsonConverters::from('UnAuthInfo', $o['unAuthInfo']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->result)) $o['result'] = JsonConverters::to('CustomUserSession', $this->result);
        if (isset($this->unAuthInfo)) $o['unAuthInfo'] = JsonConverters::to('UnAuthInfo', $this->unAuthInfo);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

class UpdateSession implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $customName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['customName'])) $this->customName = $o['customName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->customName)) $o['customName'] = $this->customName;
        return empty($o) ? new class(){} : $o;
    }
}

PHP UpdateSession DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /session/edit/{CustomName} HTTP/1.1 
Host: test.servicestack.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UpdateSession xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Test.ServiceInterface">
  <CustomName>String</CustomName>
</UpdateSession>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetSessionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Test.ServiceInterface">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Result>
    <ReferrerUrl xmlns="http://schemas.servicestack.net/types">String</ReferrerUrl>
    <Id xmlns="http://schemas.servicestack.net/types">String</Id>
    <UserAuthId xmlns="http://schemas.servicestack.net/types">String</UserAuthId>
    <UserAuthName xmlns="http://schemas.servicestack.net/types">String</UserAuthName>
    <UserName xmlns="http://schemas.servicestack.net/types">String</UserName>
    <TwitterUserId xmlns="http://schemas.servicestack.net/types">String</TwitterUserId>
    <TwitterScreenName xmlns="http://schemas.servicestack.net/types">String</TwitterScreenName>
    <FacebookUserId xmlns="http://schemas.servicestack.net/types">String</FacebookUserId>
    <FacebookUserName xmlns="http://schemas.servicestack.net/types">String</FacebookUserName>
    <FirstName xmlns="http://schemas.servicestack.net/types">String</FirstName>
    <LastName xmlns="http://schemas.servicestack.net/types">String</LastName>
    <DisplayName xmlns="http://schemas.servicestack.net/types">String</DisplayName>
    <Company xmlns="http://schemas.servicestack.net/types">String</Company>
    <Email xmlns="http://schemas.servicestack.net/types">String</Email>
    <PrimaryEmail xmlns="http://schemas.servicestack.net/types">String</PrimaryEmail>
    <PhoneNumber xmlns="http://schemas.servicestack.net/types">String</PhoneNumber>
    <BirthDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</BirthDate>
    <BirthDateRaw xmlns="http://schemas.servicestack.net/types">String</BirthDateRaw>
    <Address xmlns="http://schemas.servicestack.net/types">String</Address>
    <Address2 xmlns="http://schemas.servicestack.net/types">String</Address2>
    <City xmlns="http://schemas.servicestack.net/types">String</City>
    <State xmlns="http://schemas.servicestack.net/types">String</State>
    <Country xmlns="http://schemas.servicestack.net/types">String</Country>
    <Culture xmlns="http://schemas.servicestack.net/types">String</Culture>
    <FullName xmlns="http://schemas.servicestack.net/types">String</FullName>
    <Gender xmlns="http://schemas.servicestack.net/types">String</Gender>
    <Language xmlns="http://schemas.servicestack.net/types">String</Language>
    <MailAddress xmlns="http://schemas.servicestack.net/types">String</MailAddress>
    <Nickname xmlns="http://schemas.servicestack.net/types">String</Nickname>
    <PostalCode xmlns="http://schemas.servicestack.net/types">String</PostalCode>
    <TimeZone xmlns="http://schemas.servicestack.net/types">String</TimeZone>
    <RequestTokenSecret xmlns="http://schemas.servicestack.net/types">String</RequestTokenSecret>
    <CreatedAt xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</CreatedAt>
    <LastModified xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</LastModified>
    <Roles xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:string>String</d3p1:string>
    </Roles>
    <Permissions xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:string>String</d3p1:string>
    </Permissions>
    <IsAuthenticated xmlns="http://schemas.servicestack.net/types">false</IsAuthenticated>
    <FromToken xmlns="http://schemas.servicestack.net/types">false</FromToken>
    <ProfileUrl xmlns="http://schemas.servicestack.net/types">String</ProfileUrl>
    <Sequence xmlns="http://schemas.servicestack.net/types">String</Sequence>
    <Tag xmlns="http://schemas.servicestack.net/types">0</Tag>
    <AuthProvider xmlns="http://schemas.servicestack.net/types">String</AuthProvider>
    <ProviderOAuthAccess xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:anyType i:nil="true" />
    </ProviderOAuthAccess>
    <Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </Meta>
    <Audiences xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:string>String</d3p1:string>
    </Audiences>
    <Scopes xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
      <d3p1:string>String</d3p1:string>
    </Scopes>
    <Dns xmlns="http://schemas.servicestack.net/types">String</Dns>
    <Rsa xmlns="http://schemas.servicestack.net/types">String</Rsa>
    <Sid xmlns="http://schemas.servicestack.net/types">String</Sid>
    <Hash xmlns="http://schemas.servicestack.net/types">String</Hash>
    <HomePhone xmlns="http://schemas.servicestack.net/types">String</HomePhone>
    <MobilePhone xmlns="http://schemas.servicestack.net/types">String</MobilePhone>
    <Webpage xmlns="http://schemas.servicestack.net/types">String</Webpage>
    <EmailConfirmed xmlns="http://schemas.servicestack.net/types">false</EmailConfirmed>
    <PhoneNumberConfirmed xmlns="http://schemas.servicestack.net/types">false</PhoneNumberConfirmed>
    <TwoFactorEnabled xmlns="http://schemas.servicestack.net/types">false</TwoFactorEnabled>
    <SecurityStamp xmlns="http://schemas.servicestack.net/types">String</SecurityStamp>
    <Type xmlns="http://schemas.servicestack.net/types">String</Type>
    <RecoveryToken xmlns="http://schemas.servicestack.net/types">String</RecoveryToken>
    <RefId xmlns="http://schemas.servicestack.net/types">0</RefId>
    <RefIdStr xmlns="http://schemas.servicestack.net/types">String</RefIdStr>
    <CustomInfo>String</CustomInfo>
    <CustomName>String</CustomName>
  </Result>
  <UnAuthInfo>
    <CustomInfo>String</CustomInfo>
  </UnAuthInfo>
</GetSessionResponse>