Test

<back to all web services

DummyTypes

<?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};


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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['tag'])) $this->tag = $o['tag'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->tag)) $o['tag'] = $this->tag;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

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

        // @DataMember(Order=4)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['tag'])) $this->tag = $o['tag'];
        if (isset($o['elapsed'])) $this->elapsed = JsonConverters::from('DateInterval', $o['elapsed']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->tag)) $o['tag'] = $this->tag;
        if (isset($this->elapsed)) $o['elapsed'] = JsonConverters::to('DateInterval', $this->elapsed);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

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

        // @DataMember(Order=2)
        /** @var string[]|null */
        public ?array $subscribeChannels=null,

        // @DataMember(Order=3)
        /** @var string[]|null */
        public ?array $unsubscribeChannels=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['subscribeChannels'])) $this->subscribeChannels = JsonConverters::fromArray('string', $o['subscribeChannels']);
        if (isset($o['unsubscribeChannels'])) $this->unsubscribeChannels = JsonConverters::fromArray('string', $o['unsubscribeChannels']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->subscribeChannels)) $o['subscribeChannels'] = JsonConverters::toArray('string', $this->subscribeChannels);
        if (isset($this->unsubscribeChannels)) $o['unsubscribeChannels'] = JsonConverters::toArray('string', $this->unsubscribeChannels);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class UpdateEventSubscriberResponse implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['environment'])) $this->environment = $o['environment'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->environment)) $o['environment'] = $this->environment;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['key'])) $this->key = $o['key'];
        if (isset($o['keyType'])) $this->keyType = $o['keyType'];
        if (isset($o['expiryDate'])) $this->expiryDate = JsonConverters::from('DateTime', $o['expiryDate']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->key)) $o['key'] = $this->key;
        if (isset($this->keyType)) $o['keyType'] = $this->keyType;
        if (isset($this->expiryDate)) $o['expiryDate'] = JsonConverters::to('DateTime', $this->expiryDate);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetApiKeysResponse implements IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var array<UserApiKey>|null */
        public ?array $results=null,

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

        // @DataMember(Order=3)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['results'])) $this->results = JsonConverters::fromArray('UserApiKey', $o['results']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->results)) $o['results'] = JsonConverters::toArray('UserApiKey', $this->results);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['environment'])) $this->environment = $o['environment'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->environment)) $o['environment'] = $this->environment;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class RegenerateApiKeysResponse implements IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var array<UserApiKey>|null */
        public ?array $results=null,

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

        // @DataMember(Order=3)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['results'])) $this->results = JsonConverters::fromArray('UserApiKey', $o['results']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->results)) $o['results'] = JsonConverters::toArray('UserApiKey', $this->results);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ConvertSessionToToken implements IPost, IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var bool|null */
        public ?bool $preserveSession=null,

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['preserveSession'])) $this->preserveSession = $o['preserveSession'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->preserveSession)) $o['preserveSession'] = $this->preserveSession;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ConvertSessionToTokenResponse implements IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var array<string,string>|null */
        public ?array $meta=null,

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

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

        // @DataMember(Order=4)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['accessToken'])) $this->accessToken = $o['accessToken'];
        if (isset($o['refreshToken'])) $this->refreshToken = $o['refreshToken'];
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->accessToken)) $o['accessToken'] = $this->accessToken;
        if (isset($this->refreshToken)) $o['refreshToken'] = $this->refreshToken;
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['refreshToken'])) $this->refreshToken = $o['refreshToken'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->refreshToken)) $o['refreshToken'] = $this->refreshToken;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

        // @DataMember(Order=3)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['accessToken'])) $this->accessToken = $o['accessToken'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->accessToken)) $o['accessToken'] = $this->accessToken;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

class NavItem implements IMeta, JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $label=null,
        /** @var string|null */
        public ?string $href=null,
        /** @var bool|null */
        public ?bool $exact=null,
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $className=null,
        /** @var string|null */
        public ?string $iconClass=null,
        /** @var string|null */
        public ?string $iconSrc=null,
        /** @var string|null */
        public ?string $show=null,
        /** @var string|null */
        public ?string $hide=null,
        /** @var array<NavItem>|null */
        public ?array $children=null,
        /** @var array<string,string>|null */
        public ?array $meta=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['label'])) $this->label = $o['label'];
        if (isset($o['href'])) $this->href = $o['href'];
        if (isset($o['exact'])) $this->exact = $o['exact'];
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['className'])) $this->className = $o['className'];
        if (isset($o['iconClass'])) $this->iconClass = $o['iconClass'];
        if (isset($o['iconSrc'])) $this->iconSrc = $o['iconSrc'];
        if (isset($o['show'])) $this->show = $o['show'];
        if (isset($o['hide'])) $this->hide = $o['hide'];
        if (isset($o['children'])) $this->children = JsonConverters::fromArray('NavItem', $o['children']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->label)) $o['label'] = $this->label;
        if (isset($this->href)) $o['href'] = $this->href;
        if (isset($this->exact)) $o['exact'] = $this->exact;
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->className)) $o['className'] = $this->className;
        if (isset($this->iconClass)) $o['iconClass'] = $this->iconClass;
        if (isset($this->iconSrc)) $o['iconSrc'] = $this->iconSrc;
        if (isset($this->show)) $o['show'] = $this->show;
        if (isset($this->hide)) $o['hide'] = $this->hide;
        if (isset($this->children)) $o['children'] = JsonConverters::toArray('NavItem', $this->children);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetNavItems implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var string|null */
        public ?string $name=null
    ) {
    }

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

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

        // @DataMember(Order=2)
        /** @var array<NavItem>|null */
        public ?array $results=null,

        // @DataMember(Order=3)
        /** @var array<string,NavItem[]>|null */
        public ?array $navItemsMap=null,

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

        // @DataMember(Order=5)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['baseUrl'])) $this->baseUrl = $o['baseUrl'];
        if (isset($o['results'])) $this->results = JsonConverters::fromArray('NavItem', $o['results']);
        if (isset($o['navItemsMap'])) $this->navItemsMap = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','List<NavItem>']), $o['navItemsMap']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->baseUrl)) $o['baseUrl'] = $this->baseUrl;
        if (isset($this->results)) $o['results'] = JsonConverters::toArray('NavItem', $this->results);
        if (isset($this->navItemsMap)) $o['navItemsMap'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','List<NavItem>']), $this->navItemsMap);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class EmptyResponse implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

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

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

        // @DataMember(Order=2)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

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

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

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

        // @DataMember(Order=3)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

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

// @DataContract
class StringsResponse implements IMeta, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var array<string>|null */
        public ?array $results=null,

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

        // @DataMember(Order=3)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['results'])) $this->results = JsonConverters::fromArray('string', $o['results']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->results)) $o['results'] = JsonConverters::toArray('string', $this->results);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class AuditBase implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var DateTime */
        public DateTime $createdDate=new DateTime(),

        // @DataMember(Order=2)
        // @Required()
        /** @var string */
        public string $createdBy='',

        // @DataMember(Order=3)
        /** @var DateTime */
        public DateTime $modifiedDate=new DateTime(),

        // @DataMember(Order=4)
        // @Required()
        /** @var string */
        public string $modifiedBy='',

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['createdDate'])) $this->createdDate = JsonConverters::from('DateTime', $o['createdDate']);
        if (isset($o['createdBy'])) $this->createdBy = $o['createdBy'];
        if (isset($o['modifiedDate'])) $this->modifiedDate = JsonConverters::from('DateTime', $o['modifiedDate']);
        if (isset($o['modifiedBy'])) $this->modifiedBy = $o['modifiedBy'];
        if (isset($o['deletedDate'])) $this->deletedDate = JsonConverters::from('DateTime', $o['deletedDate']);
        if (isset($o['deletedBy'])) $this->deletedBy = $o['deletedBy'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->createdDate)) $o['createdDate'] = JsonConverters::to('DateTime', $this->createdDate);
        if (isset($this->createdBy)) $o['createdBy'] = $this->createdBy;
        if (isset($this->modifiedDate)) $o['modifiedDate'] = JsonConverters::to('DateTime', $this->modifiedDate);
        if (isset($this->modifiedBy)) $o['modifiedBy'] = $this->modifiedBy;
        if (isset($this->deletedDate)) $o['deletedDate'] = JsonConverters::to('DateTime', $this->deletedDate);
        if (isset($this->deletedBy)) $o['deletedBy'] = $this->deletedBy;
        return empty($o) ? new class(){} : $o;
    }
}

class DummyTypes implements JsonSerializable
{
    public function __construct(
        /** @var array<HelloResponse>|null */
        public ?array $helloResponses=null,
        /** @var array<ListResult>|null */
        public ?array $listResult=null,
        /** @var ArrayResult[]|null */
        public ?array $arrayResult=null,
        /** @var CancelRequest|null */
        public ?CancelRequest $cancelRequest=null,
        /** @var CancelRequestResponse|null */
        public ?CancelRequestResponse $cancelRequestResponse=null,
        /** @var UpdateEventSubscriber|null */
        public ?UpdateEventSubscriber $updateEventSubscriber=null,
        /** @var UpdateEventSubscriberResponse|null */
        public ?UpdateEventSubscriberResponse $updateEventSubscriberResponse=null,
        /** @var GetApiKeys|null */
        public ?GetApiKeys $getApiKeys=null,
        /** @var GetApiKeysResponse|null */
        public ?GetApiKeysResponse $getApiKeysResponse=null,
        /** @var RegenerateApiKeys|null */
        public ?RegenerateApiKeys $regenerateApiKeys=null,
        /** @var RegenerateApiKeysResponse|null */
        public ?RegenerateApiKeysResponse $regenerateApiKeysResponse=null,
        /** @var UserApiKey|null */
        public ?UserApiKey $userApiKey=null,
        /** @var ConvertSessionToToken|null */
        public ?ConvertSessionToToken $convertSessionToToken=null,
        /** @var ConvertSessionToTokenResponse|null */
        public ?ConvertSessionToTokenResponse $convertSessionToTokenResponse=null,
        /** @var GetAccessToken|null */
        public ?GetAccessToken $getAccessToken=null,
        /** @var GetAccessTokenResponse|null */
        public ?GetAccessTokenResponse $getAccessTokenResponse=null,
        /** @var NavItem|null */
        public ?NavItem $navItem=null,
        /** @var GetNavItems|null */
        public ?GetNavItems $getNavItems=null,
        /** @var GetNavItemsResponse|null */
        public ?GetNavItemsResponse $getNavItemsResponse=null,
        /** @var EmptyResponse|null */
        public ?EmptyResponse $emptyResponse=null,
        /** @var IdResponse|null */
        public ?IdResponse $idResponse=null,
        /** @var StringResponse|null */
        public ?StringResponse $stringResponse=null,
        /** @var StringsResponse|null */
        public ?StringsResponse $stringsResponse=null,
        /** @var AuditBase|null */
        public ?AuditBase $auditBase=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['helloResponses'])) $this->helloResponses = JsonConverters::fromArray('HelloResponse', $o['helloResponses']);
        if (isset($o['listResult'])) $this->listResult = JsonConverters::fromArray('ListResult', $o['listResult']);
        if (isset($o['arrayResult'])) $this->arrayResult = JsonConverters::fromArray('ArrayResult', $o['arrayResult']);
        if (isset($o['cancelRequest'])) $this->cancelRequest = JsonConverters::from('CancelRequest', $o['cancelRequest']);
        if (isset($o['cancelRequestResponse'])) $this->cancelRequestResponse = JsonConverters::from('CancelRequestResponse', $o['cancelRequestResponse']);
        if (isset($o['updateEventSubscriber'])) $this->updateEventSubscriber = JsonConverters::from('UpdateEventSubscriber', $o['updateEventSubscriber']);
        if (isset($o['updateEventSubscriberResponse'])) $this->updateEventSubscriberResponse = JsonConverters::from('UpdateEventSubscriberResponse', $o['updateEventSubscriberResponse']);
        if (isset($o['getApiKeys'])) $this->getApiKeys = JsonConverters::from('GetApiKeys', $o['getApiKeys']);
        if (isset($o['getApiKeysResponse'])) $this->getApiKeysResponse = JsonConverters::from('GetApiKeysResponse', $o['getApiKeysResponse']);
        if (isset($o['regenerateApiKeys'])) $this->regenerateApiKeys = JsonConverters::from('RegenerateApiKeys', $o['regenerateApiKeys']);
        if (isset($o['regenerateApiKeysResponse'])) $this->regenerateApiKeysResponse = JsonConverters::from('RegenerateApiKeysResponse', $o['regenerateApiKeysResponse']);
        if (isset($o['userApiKey'])) $this->userApiKey = JsonConverters::from('UserApiKey', $o['userApiKey']);
        if (isset($o['convertSessionToToken'])) $this->convertSessionToToken = JsonConverters::from('ConvertSessionToToken', $o['convertSessionToToken']);
        if (isset($o['convertSessionToTokenResponse'])) $this->convertSessionToTokenResponse = JsonConverters::from('ConvertSessionToTokenResponse', $o['convertSessionToTokenResponse']);
        if (isset($o['getAccessToken'])) $this->getAccessToken = JsonConverters::from('GetAccessToken', $o['getAccessToken']);
        if (isset($o['getAccessTokenResponse'])) $this->getAccessTokenResponse = JsonConverters::from('GetAccessTokenResponse', $o['getAccessTokenResponse']);
        if (isset($o['navItem'])) $this->navItem = JsonConverters::from('NavItem', $o['navItem']);
        if (isset($o['getNavItems'])) $this->getNavItems = JsonConverters::from('GetNavItems', $o['getNavItems']);
        if (isset($o['getNavItemsResponse'])) $this->getNavItemsResponse = JsonConverters::from('GetNavItemsResponse', $o['getNavItemsResponse']);
        if (isset($o['emptyResponse'])) $this->emptyResponse = JsonConverters::from('EmptyResponse', $o['emptyResponse']);
        if (isset($o['idResponse'])) $this->idResponse = JsonConverters::from('IdResponse', $o['idResponse']);
        if (isset($o['stringResponse'])) $this->stringResponse = JsonConverters::from('StringResponse', $o['stringResponse']);
        if (isset($o['stringsResponse'])) $this->stringsResponse = JsonConverters::from('StringsResponse', $o['stringsResponse']);
        if (isset($o['auditBase'])) $this->auditBase = JsonConverters::from('AuditBase', $o['auditBase']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->helloResponses)) $o['helloResponses'] = JsonConverters::toArray('HelloResponse', $this->helloResponses);
        if (isset($this->listResult)) $o['listResult'] = JsonConverters::toArray('ListResult', $this->listResult);
        if (isset($this->arrayResult)) $o['arrayResult'] = JsonConverters::toArray('ArrayResult', $this->arrayResult);
        if (isset($this->cancelRequest)) $o['cancelRequest'] = JsonConverters::to('CancelRequest', $this->cancelRequest);
        if (isset($this->cancelRequestResponse)) $o['cancelRequestResponse'] = JsonConverters::to('CancelRequestResponse', $this->cancelRequestResponse);
        if (isset($this->updateEventSubscriber)) $o['updateEventSubscriber'] = JsonConverters::to('UpdateEventSubscriber', $this->updateEventSubscriber);
        if (isset($this->updateEventSubscriberResponse)) $o['updateEventSubscriberResponse'] = JsonConverters::to('UpdateEventSubscriberResponse', $this->updateEventSubscriberResponse);
        if (isset($this->getApiKeys)) $o['getApiKeys'] = JsonConverters::to('GetApiKeys', $this->getApiKeys);
        if (isset($this->getApiKeysResponse)) $o['getApiKeysResponse'] = JsonConverters::to('GetApiKeysResponse', $this->getApiKeysResponse);
        if (isset($this->regenerateApiKeys)) $o['regenerateApiKeys'] = JsonConverters::to('RegenerateApiKeys', $this->regenerateApiKeys);
        if (isset($this->regenerateApiKeysResponse)) $o['regenerateApiKeysResponse'] = JsonConverters::to('RegenerateApiKeysResponse', $this->regenerateApiKeysResponse);
        if (isset($this->userApiKey)) $o['userApiKey'] = JsonConverters::to('UserApiKey', $this->userApiKey);
        if (isset($this->convertSessionToToken)) $o['convertSessionToToken'] = JsonConverters::to('ConvertSessionToToken', $this->convertSessionToToken);
        if (isset($this->convertSessionToTokenResponse)) $o['convertSessionToTokenResponse'] = JsonConverters::to('ConvertSessionToTokenResponse', $this->convertSessionToTokenResponse);
        if (isset($this->getAccessToken)) $o['getAccessToken'] = JsonConverters::to('GetAccessToken', $this->getAccessToken);
        if (isset($this->getAccessTokenResponse)) $o['getAccessTokenResponse'] = JsonConverters::to('GetAccessTokenResponse', $this->getAccessTokenResponse);
        if (isset($this->navItem)) $o['navItem'] = JsonConverters::to('NavItem', $this->navItem);
        if (isset($this->getNavItems)) $o['getNavItems'] = JsonConverters::to('GetNavItems', $this->getNavItems);
        if (isset($this->getNavItemsResponse)) $o['getNavItemsResponse'] = JsonConverters::to('GetNavItemsResponse', $this->getNavItemsResponse);
        if (isset($this->emptyResponse)) $o['emptyResponse'] = JsonConverters::to('EmptyResponse', $this->emptyResponse);
        if (isset($this->idResponse)) $o['idResponse'] = JsonConverters::to('IdResponse', $this->idResponse);
        if (isset($this->stringResponse)) $o['stringResponse'] = JsonConverters::to('StringResponse', $this->stringResponse);
        if (isset($this->stringsResponse)) $o['stringsResponse'] = JsonConverters::to('StringsResponse', $this->stringsResponse);
        if (isset($this->auditBase)) $o['auditBase'] = JsonConverters::to('AuditBase', $this->auditBase);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

PHP DummyTypes 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 /xml/oneway/DummyTypes HTTP/1.1 
Host: test.servicestack.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<DummyTypes xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Test.ServiceInterface">
  <ArrayResult xmlns:d2p1="http://schemas.datacontract.org/2004/07/Test.ServiceModel">
    <d2p1:ArrayResult>
      <d2p1:Result>String</d2p1:Result>
    </d2p1:ArrayResult>
  </ArrayResult>
  <AuditBase xmlns:d2p1="http://schemas.servicestack.net/types" i:nil="true" />
  <CancelRequest xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Tag>String</d2p1:Tag>
    <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>
  </CancelRequest>
  <CancelRequestResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Tag>String</d2p1:Tag>
    <d2p1:Elapsed>PT0S</d2p1:Elapsed>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </CancelRequestResponse>
  <ConvertSessionToToken xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:PreserveSession>false</d2p1:PreserveSession>
    <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>
  </ConvertSessionToToken>
  <ConvertSessionToTokenResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <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>
    <d2p1:AccessToken>String</d2p1:AccessToken>
    <d2p1:RefreshToken>String</d2p1:RefreshToken>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </ConvertSessionToTokenResponse>
  <EmptyResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </EmptyResponse>
  <GetAccessToken xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:RefreshToken>String</d2p1:RefreshToken>
    <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>
  </GetAccessToken>
  <GetAccessTokenResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:AccessToken>String</d2p1:AccessToken>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </GetAccessTokenResponse>
  <GetApiKeys xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Environment>String</d2p1:Environment>
    <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>
  </GetApiKeys>
  <GetApiKeysResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Results>
      <d2p1:UserApiKey>
        <d2p1:Key>String</d2p1:Key>
        <d2p1:KeyType>String</d2p1:KeyType>
        <d2p1:ExpiryDate>0001-01-01T00:00:00</d2p1:ExpiryDate>
        <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:UserApiKey>
    </d2p1:Results>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </GetApiKeysResponse>
  <GetNavItems xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Name>String</d2p1:Name>
  </GetNavItems>
  <GetNavItemsResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:BaseUrl>String</d2p1:BaseUrl>
    <d2p1:Results>
      <d2p1:NavItem>
        <d2p1:Children>
          <d2p1:NavItem>
            <d2p1:Children>
              <d2p1:NavItem>
                <d2p1:Children i:nil="true" />
                <d2p1:ClassName>String</d2p1:ClassName>
                <d2p1:Exact>false</d2p1:Exact>
                <d2p1:Hide>String</d2p1:Hide>
                <d2p1:Href>String</d2p1:Href>
                <d2p1:IconClass>String</d2p1:IconClass>
                <d2p1:IconSrc>String</d2p1:IconSrc>
                <d2p1:Id>String</d2p1:Id>
                <d2p1:Label>String</d2p1:Label>
                <d2p1:Meta xmlns:d9p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                  <d9p1:KeyValueOfstringstring>
                    <d9p1:Key>String</d9p1:Key>
                    <d9p1:Value>String</d9p1:Value>
                  </d9p1:KeyValueOfstringstring>
                </d2p1:Meta>
                <d2p1:Show>String</d2p1:Show>
              </d2p1:NavItem>
            </d2p1:Children>
            <d2p1:ClassName>String</d2p1:ClassName>
            <d2p1:Exact>false</d2p1:Exact>
            <d2p1:Hide>String</d2p1:Hide>
            <d2p1:Href>String</d2p1:Href>
            <d2p1:IconClass>String</d2p1:IconClass>
            <d2p1:IconSrc>String</d2p1:IconSrc>
            <d2p1:Id>String</d2p1:Id>
            <d2p1:Label>String</d2p1:Label>
            <d2p1:Meta xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:KeyValueOfstringstring>
                <d7p1:Key>String</d7p1:Key>
                <d7p1:Value>String</d7p1:Value>
              </d7p1:KeyValueOfstringstring>
            </d2p1:Meta>
            <d2p1:Show>String</d2p1:Show>
          </d2p1:NavItem>
        </d2p1:Children>
        <d2p1:ClassName>String</d2p1:ClassName>
        <d2p1:Exact>false</d2p1:Exact>
        <d2p1:Hide>String</d2p1:Hide>
        <d2p1:Href>String</d2p1:Href>
        <d2p1:IconClass>String</d2p1:IconClass>
        <d2p1:IconSrc>String</d2p1:IconSrc>
        <d2p1:Id>String</d2p1:Id>
        <d2p1:Label>String</d2p1:Label>
        <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:Show>String</d2p1:Show>
      </d2p1:NavItem>
    </d2p1:Results>
    <d2p1:NavItemsMap xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringArrayOfNavItemEdXdwojR>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>
          <d2p1:NavItem>
            <d2p1:Children>
              <d2p1:NavItem>
                <d2p1:Children>
                  <d2p1:NavItem>
                    <d2p1:Children i:nil="true" />
                    <d2p1:ClassName>String</d2p1:ClassName>
                    <d2p1:Exact>false</d2p1:Exact>
                    <d2p1:Hide>String</d2p1:Hide>
                    <d2p1:Href>String</d2p1:Href>
                    <d2p1:IconClass>String</d2p1:IconClass>
                    <d2p1:IconSrc>String</d2p1:IconSrc>
                    <d2p1:Id>String</d2p1:Id>
                    <d2p1:Label>String</d2p1:Label>
                    <d2p1:Meta>
                      <d3p1:KeyValueOfstringstring>
                        <d3p1:Key>String</d3p1:Key>
                        <d3p1:Value>String</d3p1:Value>
                      </d3p1:KeyValueOfstringstring>
                    </d2p1:Meta>
                    <d2p1:Show>String</d2p1:Show>
                  </d2p1:NavItem>
                </d2p1:Children>
                <d2p1:ClassName>String</d2p1:ClassName>
                <d2p1:Exact>false</d2p1:Exact>
                <d2p1:Hide>String</d2p1:Hide>
                <d2p1:Href>String</d2p1:Href>
                <d2p1:IconClass>String</d2p1:IconClass>
                <d2p1:IconSrc>String</d2p1:IconSrc>
                <d2p1:Id>String</d2p1:Id>
                <d2p1:Label>String</d2p1:Label>
                <d2p1:Meta>
                  <d3p1:KeyValueOfstringstring>
                    <d3p1:Key>String</d3p1:Key>
                    <d3p1:Value>String</d3p1:Value>
                  </d3p1:KeyValueOfstringstring>
                </d2p1:Meta>
                <d2p1:Show>String</d2p1:Show>
              </d2p1:NavItem>
            </d2p1:Children>
            <d2p1:ClassName>String</d2p1:ClassName>
            <d2p1:Exact>false</d2p1:Exact>
            <d2p1:Hide>String</d2p1:Hide>
            <d2p1:Href>String</d2p1:Href>
            <d2p1:IconClass>String</d2p1:IconClass>
            <d2p1:IconSrc>String</d2p1:IconSrc>
            <d2p1:Id>String</d2p1:Id>
            <d2p1:Label>String</d2p1:Label>
            <d2p1:Meta>
              <d3p1:KeyValueOfstringstring>
                <d3p1:Key>String</d3p1:Key>
                <d3p1:Value>String</d3p1:Value>
              </d3p1:KeyValueOfstringstring>
            </d2p1:Meta>
            <d2p1:Show>String</d2p1:Show>
          </d2p1:NavItem>
        </d3p1:Value>
      </d3p1:KeyValueOfstringArrayOfNavItemEdXdwojR>
    </d2p1:NavItemsMap>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </GetNavItemsResponse>
  <HelloResponses xmlns:d2p1="http://schemas.datacontract.org/2004/07/Test.ServiceModel">
    <d2p1:HelloResponse>
      <d2p1:Result>String</d2p1:Result>
    </d2p1:HelloResponse>
  </HelloResponses>
  <IdResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Id>String</d2p1:Id>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </IdResponse>
  <ListResult xmlns:d2p1="http://schemas.datacontract.org/2004/07/Test.ServiceModel">
    <d2p1:ListResult>
      <d2p1:Result>String</d2p1:Result>
    </d2p1:ListResult>
  </ListResult>
  <NavItem xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Children>
      <d2p1:NavItem>
        <d2p1:Children>
          <d2p1:NavItem>
            <d2p1:Children>
              <d2p1:NavItem i:nil="true" />
            </d2p1:Children>
            <d2p1:ClassName>String</d2p1:ClassName>
            <d2p1:Exact>false</d2p1:Exact>
            <d2p1:Hide>String</d2p1:Hide>
            <d2p1:Href>String</d2p1:Href>
            <d2p1:IconClass>String</d2p1:IconClass>
            <d2p1:IconSrc>String</d2p1:IconSrc>
            <d2p1:Id>String</d2p1:Id>
            <d2p1:Label>String</d2p1:Label>
            <d2p1:Meta xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:KeyValueOfstringstring>
                <d7p1:Key>String</d7p1:Key>
                <d7p1:Value>String</d7p1:Value>
              </d7p1:KeyValueOfstringstring>
            </d2p1:Meta>
            <d2p1:Show>String</d2p1:Show>
          </d2p1:NavItem>
        </d2p1:Children>
        <d2p1:ClassName>String</d2p1:ClassName>
        <d2p1:Exact>false</d2p1:Exact>
        <d2p1:Hide>String</d2p1:Hide>
        <d2p1:Href>String</d2p1:Href>
        <d2p1:IconClass>String</d2p1:IconClass>
        <d2p1:IconSrc>String</d2p1:IconSrc>
        <d2p1:Id>String</d2p1:Id>
        <d2p1:Label>String</d2p1:Label>
        <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:Show>String</d2p1:Show>
      </d2p1:NavItem>
    </d2p1:Children>
    <d2p1:ClassName>String</d2p1:ClassName>
    <d2p1:Exact>false</d2p1:Exact>
    <d2p1:Hide>String</d2p1:Hide>
    <d2p1:Href>String</d2p1:Href>
    <d2p1:IconClass>String</d2p1:IconClass>
    <d2p1:IconSrc>String</d2p1:IconSrc>
    <d2p1:Id>String</d2p1:Id>
    <d2p1:Label>String</d2p1:Label>
    <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>
    <d2p1:Show>String</d2p1:Show>
  </NavItem>
  <RegenerateApiKeys xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Environment>String</d2p1:Environment>
    <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>
  </RegenerateApiKeys>
  <RegenerateApiKeysResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Results>
      <d2p1:UserApiKey>
        <d2p1:Key>String</d2p1:Key>
        <d2p1:KeyType>String</d2p1:KeyType>
        <d2p1:ExpiryDate>0001-01-01T00:00:00</d2p1:ExpiryDate>
        <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:UserApiKey>
    </d2p1:Results>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </RegenerateApiKeysResponse>
  <StringResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Result>String</d2p1:Result>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </StringResponse>
  <StringsResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Results xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </d2p1:Results>
    <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>
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </StringsResponse>
  <UpdateEventSubscriber xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Id>String</d2p1:Id>
    <d2p1:SubscribeChannels xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </d2p1:SubscribeChannels>
    <d2p1:UnsubscribeChannels xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </d2p1:UnsubscribeChannels>
  </UpdateEventSubscriber>
  <UpdateEventSubscriberResponse xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ResponseStatus>
      <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:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d2p1:Meta>
        </d2p1:ResponseError>
      </d2p1:Errors>
      <d2p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Meta>
    </d2p1:ResponseStatus>
  </UpdateEventSubscriberResponse>
  <UserApiKey xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:Key>String</d2p1:Key>
    <d2p1:KeyType>String</d2p1:KeyType>
    <d2p1:ExpiryDate>0001-01-01T00:00:00</d2p1:ExpiryDate>
    <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>
  </UserApiKey>
</DummyTypes>