Evo Voice

<back to all web services

AppBuyPhoneNumber

Requires Authentication
The following routes are available for this service:
POST/portal/phone-numbers
<?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 EntityInfo implements JsonSerializable
{
    public function __construct(
        /** @description The ID of the object */
        // @ApiMember(Description="The ID of the object")
        /** @var string|null */
        public ?string $id=null,

        /** @description The date the object was created */
        // @ApiMember(Description="The date the object was created")
        /** @var string|null */
        public ?string $dateCreated=null,

        /** @description The date the object was last modified */
        // @ApiMember(Description="The date the object was last modified")
        /** @var string|null */
        public ?string $dateLastModified=null,

        /** @description The user that created this object */
        // @ApiMember(Description="The user that created this object")
        /** @var string|null */
        public ?string $createdBy=null,

        /** @description The user that last modified this object */
        // @ApiMember(Description="The user that last modified this object")
        /** @var string|null */
        public ?string $lastModifiedBy=null
    ) {
    }

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

class CustomerBreadcrumb implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $name=null
    ) {
    }

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

enum EndpointTypes : string
{
    case PhoneNumber = 'PhoneNumber';
    case User = 'User';
    case FaxNumber = 'FaxNumber';
    case EmailAddress = 'EmailAddress';
    case Unused_1 = 'Unused_1';
    case Unused_2 = 'Unused_2';
    case Unused_3 = 'Unused_3';
    case Unused_4 = 'Unused_4';
    case Unused_5 = 'Unused_5';
    case Team = 'Team';
    case Assistant = 'Assistant';
}

class Value implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $boolValue=null,
        /** @var string|null */
        public ?string $stringValue=null,
        /** @var float|null */
        public ?float $numberValue=null,
        /** @var array<Struct>|null */
        public ?array $listValue=null,
        /** @var Struct|null */
        public ?Struct $structValue=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['boolValue'])) $this->boolValue = $o['boolValue'];
        if (isset($o['stringValue'])) $this->stringValue = $o['stringValue'];
        if (isset($o['numberValue'])) $this->numberValue = $o['numberValue'];
        if (isset($o['listValue'])) $this->listValue = JsonConverters::fromArray('Struct', $o['listValue']);
        if (isset($o['structValue'])) $this->structValue = JsonConverters::from('Struct', $o['structValue']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->boolValue)) $o['boolValue'] = $this->boolValue;
        if (isset($this->stringValue)) $o['stringValue'] = $this->stringValue;
        if (isset($this->numberValue)) $o['numberValue'] = $this->numberValue;
        if (isset($this->listValue)) $o['listValue'] = JsonConverters::toArray('Struct', $this->listValue);
        if (isset($this->structValue)) $o['structValue'] = JsonConverters::to('Struct', $this->structValue);
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template array of String
 * @template array1 of Value
 */
class Struct extends array implements JsonSerializable
{
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        return empty($o) ? new class(){} : $o;
    }
}

enum EndpointFlowSchedules : string
{
    case Always = 'Always';
    case Scheduled = 'Scheduled';
    case Simple = 'Simple';
}

enum SimpleSchedulingRuleTypes : string
{
    case Always = 'Always';
    case CustomerState = 'CustomerState';
    case Time = 'Time';
}

class ScheduleDay implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $offset=0,
        /** @var DayOfWeek|null */
        public ?DayOfWeek $dayOfWeek=null
    ) {
    }

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

enum SchedulingRuleFrequency : string
{
    case None = 'None';
    case Secondly = 'Secondly';
    case Minutely = 'Minutely';
    case Hourly = 'Hourly';
    case Daily = 'Daily';
    case Weekly = 'Weekly';
    case Monthly = 'Monthly';
    case Yearly = 'Yearly';
}

class SchedulingRule implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $name=null,
        /** @var int */
        public int $priority=0,
        /** @var string|null */
        public ?string $state=null,
        /** @var string|null */
        public ?string $source=null,
        /** @var string|null */
        public ?string $condition=null,
        /** @var SimpleSchedulingRuleTypes|null */
        public ?SimpleSchedulingRuleTypes $simpleRuleType=null,
        /** @var string|null */
        public ?string $customerState=null,
        /** @var string|null */
        public ?string $flowId=null,
        /** @var Struct|null */
        public ?Struct $flowParams=null,
        /** @var bool|null */
        public ?bool $isAllDay=null,
        /** @var string|null */
        public ?string $startDate=null,
        /** @var string|null */
        public ?string $startTime=null,
        /** @var string|null */
        public ?string $endTime=null,
        /** @var array<int>|null */
        public ?array $bySetPosition=null,
        /** @var array<int>|null */
        public ?array $byMonth=null,
        /** @var array<int>|null */
        public ?array $byWeekNo=null,
        /** @var array<int>|null */
        public ?array $byYearDay=null,
        /** @var array<int>|null */
        public ?array $byMonthDay=null,
        /** @var array<ScheduleDay>|null */
        public ?array $byDay=null,
        /** @var array<int>|null */
        public ?array $byHour=null,
        /** @var array<int>|null */
        public ?array $byMinute=null,
        /** @var int */
        public int $interval=0,
        /** @var int */
        public int $count=0,
        /** @var string|null */
        public ?string $untilDate=null,
        /** @var SchedulingRuleFrequency|null */
        public ?SchedulingRuleFrequency $frequency=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['priority'])) $this->priority = $o['priority'];
        if (isset($o['state'])) $this->state = $o['state'];
        if (isset($o['source'])) $this->source = $o['source'];
        if (isset($o['condition'])) $this->condition = $o['condition'];
        if (isset($o['simpleRuleType'])) $this->simpleRuleType = JsonConverters::from('SimpleSchedulingRuleTypes', $o['simpleRuleType']);
        if (isset($o['customerState'])) $this->customerState = $o['customerState'];
        if (isset($o['flowId'])) $this->flowId = $o['flowId'];
        if (isset($o['flowParams'])) $this->flowParams = JsonConverters::from('Struct', $o['flowParams']);
        if (isset($o['isAllDay'])) $this->isAllDay = $o['isAllDay'];
        if (isset($o['startDate'])) $this->startDate = $o['startDate'];
        if (isset($o['startTime'])) $this->startTime = $o['startTime'];
        if (isset($o['endTime'])) $this->endTime = $o['endTime'];
        if (isset($o['bySetPosition'])) $this->bySetPosition = JsonConverters::fromArray('int', $o['bySetPosition']);
        if (isset($o['byMonth'])) $this->byMonth = JsonConverters::fromArray('int', $o['byMonth']);
        if (isset($o['byWeekNo'])) $this->byWeekNo = JsonConverters::fromArray('int', $o['byWeekNo']);
        if (isset($o['byYearDay'])) $this->byYearDay = JsonConverters::fromArray('int', $o['byYearDay']);
        if (isset($o['byMonthDay'])) $this->byMonthDay = JsonConverters::fromArray('int', $o['byMonthDay']);
        if (isset($o['byDay'])) $this->byDay = JsonConverters::fromArray('ScheduleDay', $o['byDay']);
        if (isset($o['byHour'])) $this->byHour = JsonConverters::fromArray('int', $o['byHour']);
        if (isset($o['byMinute'])) $this->byMinute = JsonConverters::fromArray('int', $o['byMinute']);
        if (isset($o['interval'])) $this->interval = $o['interval'];
        if (isset($o['count'])) $this->count = $o['count'];
        if (isset($o['untilDate'])) $this->untilDate = $o['untilDate'];
        if (isset($o['frequency'])) $this->frequency = JsonConverters::from('SchedulingRuleFrequency', $o['frequency']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->priority)) $o['priority'] = $this->priority;
        if (isset($this->state)) $o['state'] = $this->state;
        if (isset($this->source)) $o['source'] = $this->source;
        if (isset($this->condition)) $o['condition'] = $this->condition;
        if (isset($this->simpleRuleType)) $o['simpleRuleType'] = JsonConverters::to('SimpleSchedulingRuleTypes', $this->simpleRuleType);
        if (isset($this->customerState)) $o['customerState'] = $this->customerState;
        if (isset($this->flowId)) $o['flowId'] = $this->flowId;
        if (isset($this->flowParams)) $o['flowParams'] = JsonConverters::to('Struct', $this->flowParams);
        if (isset($this->isAllDay)) $o['isAllDay'] = $this->isAllDay;
        if (isset($this->startDate)) $o['startDate'] = $this->startDate;
        if (isset($this->startTime)) $o['startTime'] = $this->startTime;
        if (isset($this->endTime)) $o['endTime'] = $this->endTime;
        if (isset($this->bySetPosition)) $o['bySetPosition'] = JsonConverters::toArray('int', $this->bySetPosition);
        if (isset($this->byMonth)) $o['byMonth'] = JsonConverters::toArray('int', $this->byMonth);
        if (isset($this->byWeekNo)) $o['byWeekNo'] = JsonConverters::toArray('int', $this->byWeekNo);
        if (isset($this->byYearDay)) $o['byYearDay'] = JsonConverters::toArray('int', $this->byYearDay);
        if (isset($this->byMonthDay)) $o['byMonthDay'] = JsonConverters::toArray('int', $this->byMonthDay);
        if (isset($this->byDay)) $o['byDay'] = JsonConverters::toArray('ScheduleDay', $this->byDay);
        if (isset($this->byHour)) $o['byHour'] = JsonConverters::toArray('int', $this->byHour);
        if (isset($this->byMinute)) $o['byMinute'] = JsonConverters::toArray('int', $this->byMinute);
        if (isset($this->interval)) $o['interval'] = $this->interval;
        if (isset($this->count)) $o['count'] = $this->count;
        if (isset($this->untilDate)) $o['untilDate'] = $this->untilDate;
        if (isset($this->frequency)) $o['frequency'] = JsonConverters::to('SchedulingRuleFrequency', $this->frequency);
        return empty($o) ? new class(){} : $o;
    }
}

class Schedule implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $timeZoneId=null,
        /** @var bool|null */
        public ?bool $inherit=null,
        /** @var bool|null */
        public ?bool $forceClosed=null,
        /** @var array<SchedulingRule>|null */
        public ?array $rules=null,
        /** @var string|null */
        public ?string $defaultState=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['timeZoneId'])) $this->timeZoneId = $o['timeZoneId'];
        if (isset($o['inherit'])) $this->inherit = $o['inherit'];
        if (isset($o['forceClosed'])) $this->forceClosed = $o['forceClosed'];
        if (isset($o['rules'])) $this->rules = JsonConverters::fromArray('SchedulingRule', $o['rules']);
        if (isset($o['defaultState'])) $this->defaultState = $o['defaultState'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->timeZoneId)) $o['timeZoneId'] = $this->timeZoneId;
        if (isset($this->inherit)) $o['inherit'] = $this->inherit;
        if (isset($this->forceClosed)) $o['forceClosed'] = $this->forceClosed;
        if (isset($this->rules)) $o['rules'] = JsonConverters::toArray('SchedulingRule', $this->rules);
        if (isset($this->defaultState)) $o['defaultState'] = $this->defaultState;
        return empty($o) ? new class(){} : $o;
    }
}

class ScheduledFlow implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $stateName=null,
        /** @var string|null */
        public ?string $flowId=null,
        /** @var Struct|null */
        public ?Struct $flowParams=null
    ) {
    }

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

enum TwilioSipRegions : string
{
    case NorthAmericaVirginia = 'NorthAmericaVirginia';
    case NorthAmericaOregon = 'NorthAmericaOregon';
    case EuropeIreland = 'EuropeIreland';
    case EuropeFrankfurt = 'EuropeFrankfurt';
    case AsiaPacificSingapore = 'AsiaPacificSingapore';
    case AsiaPacificTokyo = 'AsiaPacificTokyo';
    case AsiaPacificSydney = 'AsiaPacificSydney';
    case SouthAmericaSanPaolo = 'SouthAmericaSanPaolo';
}

enum AgentStates : string
{
    case Unknown = 'Unknown';
    case Ready = 'Ready';
    case NotReady = 'NotReady';
    case LoggedOut = 'LoggedOut';
    case WrapUp = 'WrapUp';
    case Outgoing = 'Outgoing';
    case Other = 'Other';
}

enum AgentStateReasons : string
{
    case Unknown = 'Unknown';
    case SetByUser = 'SetByUser';
    case MissedCall = 'MissedCall';
    case SetBySystem = 'SetBySystem';
}

enum UserModes : string
{
    case SoftPhone = 'SoftPhone';
    case Sip = 'Sip';
    case Flow = 'Flow';
    case DataOnly = 'DataOnly';
    case ThirdParty = 'ThirdParty';
}

enum UserManagerRoles : string
{
    case None = 'None';
    case Manager = 'Manager';
    case VoicemailAndCallHistory = 'VoicemailAndCallHistory';
    case Custom = 'Custom';
}

enum DashboardPermissions : string
{
    case ViewFiles = 'ViewFiles';
    case ViewNotifications = 'ViewNotifications';
    case ViewSessions = 'ViewSessions';
    case ViewEndpoints = 'ViewEndpoints';
    case ViewReports = 'ViewReports';
    case ViewCustomers = 'ViewCustomers';
    case ViewFlows = 'ViewFlows';
}

enum UserDataFieldModes : string
{
    case Hidden = 'Hidden';
    case ReadOnly = 'ReadOnly';
    case ReadWrite = 'ReadWrite';
}

enum TagColors : string
{
    case Magenta = 'Magenta';
    case Red = 'Red';
    case Volcano = 'Volcano';
    case Orange = 'Orange';
    case Gold = 'Gold';
    case Lime = 'Lime';
    case Green = 'Green';
    case Cyan = 'Cyan';
    case Blue = 'Blue';
    case GeekBlue = 'GeekBlue';
    case Purple = 'Purple';
}

class Tag implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $name=null,
        /** @var TagColors|null */
        public ?TagColors $color=null
    ) {
    }

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

enum ActionUrlHttpMethods : string
{
    case GET = 'GET';
    case POST = 'POST';
}

class EndpointActionUrl implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $url=null,
        /** @var ActionUrlHttpMethods|null */
        public ?ActionUrlHttpMethods $method=null
    ) {
    }

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

enum CustomerVisibility : string
{
    case None = 'None';
    case CurrentCustomer = 'CurrentCustomer';
    case CurrentAndChildCustomers = 'CurrentAndChildCustomers';
}

class EndpointContact implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $id=null,
        /** @var string|null */
        public ?string $displayName=null,
        /** @var string|null */
        public ?string $address=null
    ) {
    }

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

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

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

/**
 * @template array of String
 * @template array1 of IntegrationData
 */
class EntityIntegrationData extends array implements JsonSerializable
{
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        return empty($o) ? new class(){} : $o;
    }
}

enum ThirdPartyPhoneSystemTypes : string
{
    case Demo = 'Demo';
    case Sip = 'Sip';
}

enum TransportTypes : string
{
    case UDP = 'UDP';
    case TLS = 'TLS';
    case TCP = 'TCP';
    case PERS = 'PERS';
}

enum AudioCodecTypes : int
{
    case PCMU = 0;
    case GSM = 3;
    case PCMA = 8;
    case G722 = 9;
    case G729 = 18;
    case ILBC = 97;
    case AMR = 98;
    case AMRWB = 99;
    case SPEEX = 100;
    case DTMF = 101;
    case SPEEXWB = 102;
    case ISACWB = 103;
    case ISACSWB = 104;
    case OPUS = 105;
    case G7221 = 121;
    case NONE = -1;
}

enum DtmfMethods : string
{
    case RFC2833 = 'RFC2833';
    case INFO = 'INFO';
}

class ThirdPartySipAccountSettings implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $number=null,
        /** @var string|null */
        public ?string $agent=null,
        /** @var string|null */
        public ?string $authName=null,
        /** @var string|null */
        public ?string $userName=null,
        /** @var string|null */
        public ?string $displayName=null,
        /** @var string|null */
        public ?string $password=null,
        /** @var string|null */
        public ?string $userDomain=null,
        /** @var int */
        public int $registrationExpires=0,
        /** @var TransportTypes|null */
        public ?TransportTypes $transportType=null,
        /** @var string|null */
        public ?string $localIP=null,
        /** @var int */
        public int $localPort=0,
        /** @var string|null */
        public ?string $sipServer=null,
        /** @var int */
        public int $sipServerPort=0,
        /** @var string|null */
        public ?string $outboundServer=null,
        /** @var int */
        public int $outboundServerPort=0,
        /** @var string|null */
        public ?string $stunServer=null,
        /** @var int */
        public int $stunPort=0,
        /** @var string|null */
        public ?string $audioPlaybackDeviceName=null,
        /** @var string|null */
        public ?string $audioRecordingDeviceName=null,
        /** @var array<AudioCodecTypes>|null */
        public ?array $audioCodecs=null,
        /** @var DtmfMethods|null */
        public ?DtmfMethods $dtmfMethod=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['number'])) $this->number = $o['number'];
        if (isset($o['agent'])) $this->agent = $o['agent'];
        if (isset($o['authName'])) $this->authName = $o['authName'];
        if (isset($o['userName'])) $this->userName = $o['userName'];
        if (isset($o['displayName'])) $this->displayName = $o['displayName'];
        if (isset($o['password'])) $this->password = $o['password'];
        if (isset($o['userDomain'])) $this->userDomain = $o['userDomain'];
        if (isset($o['registrationExpires'])) $this->registrationExpires = $o['registrationExpires'];
        if (isset($o['transportType'])) $this->transportType = JsonConverters::from('TransportTypes', $o['transportType']);
        if (isset($o['localIP'])) $this->localIP = $o['localIP'];
        if (isset($o['localPort'])) $this->localPort = $o['localPort'];
        if (isset($o['sipServer'])) $this->sipServer = $o['sipServer'];
        if (isset($o['sipServerPort'])) $this->sipServerPort = $o['sipServerPort'];
        if (isset($o['outboundServer'])) $this->outboundServer = $o['outboundServer'];
        if (isset($o['outboundServerPort'])) $this->outboundServerPort = $o['outboundServerPort'];
        if (isset($o['stunServer'])) $this->stunServer = $o['stunServer'];
        if (isset($o['stunPort'])) $this->stunPort = $o['stunPort'];
        if (isset($o['audioPlaybackDeviceName'])) $this->audioPlaybackDeviceName = $o['audioPlaybackDeviceName'];
        if (isset($o['audioRecordingDeviceName'])) $this->audioRecordingDeviceName = $o['audioRecordingDeviceName'];
        if (isset($o['audioCodecs'])) $this->audioCodecs = JsonConverters::fromArray('AudioCodecTypes', $o['audioCodecs']);
        if (isset($o['dtmfMethod'])) $this->dtmfMethod = JsonConverters::from('DtmfMethods', $o['dtmfMethod']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->number)) $o['number'] = $this->number;
        if (isset($this->agent)) $o['agent'] = $this->agent;
        if (isset($this->authName)) $o['authName'] = $this->authName;
        if (isset($this->userName)) $o['userName'] = $this->userName;
        if (isset($this->displayName)) $o['displayName'] = $this->displayName;
        if (isset($this->password)) $o['password'] = $this->password;
        if (isset($this->userDomain)) $o['userDomain'] = $this->userDomain;
        if (isset($this->registrationExpires)) $o['registrationExpires'] = $this->registrationExpires;
        if (isset($this->transportType)) $o['transportType'] = JsonConverters::to('TransportTypes', $this->transportType);
        if (isset($this->localIP)) $o['localIP'] = $this->localIP;
        if (isset($this->localPort)) $o['localPort'] = $this->localPort;
        if (isset($this->sipServer)) $o['sipServer'] = $this->sipServer;
        if (isset($this->sipServerPort)) $o['sipServerPort'] = $this->sipServerPort;
        if (isset($this->outboundServer)) $o['outboundServer'] = $this->outboundServer;
        if (isset($this->outboundServerPort)) $o['outboundServerPort'] = $this->outboundServerPort;
        if (isset($this->stunServer)) $o['stunServer'] = $this->stunServer;
        if (isset($this->stunPort)) $o['stunPort'] = $this->stunPort;
        if (isset($this->audioPlaybackDeviceName)) $o['audioPlaybackDeviceName'] = $this->audioPlaybackDeviceName;
        if (isset($this->audioRecordingDeviceName)) $o['audioRecordingDeviceName'] = $this->audioRecordingDeviceName;
        if (isset($this->audioCodecs)) $o['audioCodecs'] = JsonConverters::toArray('AudioCodecTypes', $this->audioCodecs);
        if (isset($this->dtmfMethod)) $o['dtmfMethod'] = JsonConverters::to('DtmfMethods', $this->dtmfMethod);
        return empty($o) ? new class(){} : $o;
    }
}

class ThirdPartySipSettings implements JsonSerializable
{
    public function __construct(
        /** @var array<ThirdPartySipAccountSettings>|null */
        public ?array $accounts=null
    ) {
    }

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

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

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

class ThirdPartyPhoneSystemSettings implements JsonSerializable
{
    public function __construct(
        /** @var ThirdPartyPhoneSystemTypes|null */
        public ?ThirdPartyPhoneSystemTypes $type=null,
        /** @var ThirdPartySipSettings|null */
        public ?ThirdPartySipSettings $sipSettings=null,
        /** @var ThirdPartyDemoSettings|null */
        public ?ThirdPartyDemoSettings $demoSettings=null
    ) {
    }

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

class AppSettings implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $enablePhoneNumberManagement=null,
        /** @var bool|null */
        public ?bool $enableDeviceManagement=null,
        /** @var bool|null */
        public ?bool $enableDialer=null,
        /** @var bool|null */
        public ?bool $enableCallHistory=null,
        /** @var bool|null */
        public ?bool $enableAssistants=null,
        /** @var bool|null */
        public ?bool $showFileNameInMessageCenter=null,
        /** @var string|null */
        public ?string $chakraTheme=null,
        /** @var string|null */
        public ?string $customCss=null,
        /** @var string|null */
        public ?string $pageTitle=null,
        /** @var string|null */
        public ?string $stringMappings=null,
        /** @var string|null */
        public ?string $logoutUrl=null,
        /** @var string|null */
        public ?string $portMyNumberUrl=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['enablePhoneNumberManagement'])) $this->enablePhoneNumberManagement = $o['enablePhoneNumberManagement'];
        if (isset($o['enableDeviceManagement'])) $this->enableDeviceManagement = $o['enableDeviceManagement'];
        if (isset($o['enableDialer'])) $this->enableDialer = $o['enableDialer'];
        if (isset($o['enableCallHistory'])) $this->enableCallHistory = $o['enableCallHistory'];
        if (isset($o['enableAssistants'])) $this->enableAssistants = $o['enableAssistants'];
        if (isset($o['showFileNameInMessageCenter'])) $this->showFileNameInMessageCenter = $o['showFileNameInMessageCenter'];
        if (isset($o['chakraTheme'])) $this->chakraTheme = $o['chakraTheme'];
        if (isset($o['customCss'])) $this->customCss = $o['customCss'];
        if (isset($o['pageTitle'])) $this->pageTitle = $o['pageTitle'];
        if (isset($o['stringMappings'])) $this->stringMappings = $o['stringMappings'];
        if (isset($o['logoutUrl'])) $this->logoutUrl = $o['logoutUrl'];
        if (isset($o['portMyNumberUrl'])) $this->portMyNumberUrl = $o['portMyNumberUrl'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->enablePhoneNumberManagement)) $o['enablePhoneNumberManagement'] = $this->enablePhoneNumberManagement;
        if (isset($this->enableDeviceManagement)) $o['enableDeviceManagement'] = $this->enableDeviceManagement;
        if (isset($this->enableDialer)) $o['enableDialer'] = $this->enableDialer;
        if (isset($this->enableCallHistory)) $o['enableCallHistory'] = $this->enableCallHistory;
        if (isset($this->enableAssistants)) $o['enableAssistants'] = $this->enableAssistants;
        if (isset($this->showFileNameInMessageCenter)) $o['showFileNameInMessageCenter'] = $this->showFileNameInMessageCenter;
        if (isset($this->chakraTheme)) $o['chakraTheme'] = $this->chakraTheme;
        if (isset($this->customCss)) $o['customCss'] = $this->customCss;
        if (isset($this->pageTitle)) $o['pageTitle'] = $this->pageTitle;
        if (isset($this->stringMappings)) $o['stringMappings'] = $this->stringMappings;
        if (isset($this->logoutUrl)) $o['logoutUrl'] = $this->logoutUrl;
        if (isset($this->portMyNumberUrl)) $o['portMyNumberUrl'] = $this->portMyNumberUrl;
        return empty($o) ? new class(){} : $o;
    }
}

enum AssistantTunings : string
{
    case Accuracy = 'Accuracy';
    case Speed = 'Speed';
}

class AssistantWord implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $word=null,
        /** @var string|null */
        public ?string $pronounced=null
    ) {
    }

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

class AssistantLink implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $url=null,
        /** @var string|null */
        public ?string $description=null
    ) {
    }

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

enum AssistantTransferTypes : string
{
    case Blind = 'Blind';
    case Supervised = 'Supervised';
    case MessagesOnly = 'MessagesOnly';
}

class AssistantTakeMessageField implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $description=null,
        /** @var bool|null */
        public ?bool $required=null
    ) {
    }

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

class AssistantContact implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $phoneNumber=null,
        /** @var AssistantTransferTypes|null */
        public ?AssistantTransferTypes $transferType=null,
        /** @var string|null */
        public ?string $about=null,
        /** @var string|null */
        public ?string $emailAddress=null,
        /** @var array<AssistantTakeMessageField>|null */
        public ?array $takeMessageFields=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['phoneNumber'])) $this->phoneNumber = $o['phoneNumber'];
        if (isset($o['transferType'])) $this->transferType = JsonConverters::from('AssistantTransferTypes', $o['transferType']);
        if (isset($o['about'])) $this->about = $o['about'];
        if (isset($o['emailAddress'])) $this->emailAddress = $o['emailAddress'];
        if (isset($o['takeMessageFields'])) $this->takeMessageFields = JsonConverters::fromArray('AssistantTakeMessageField', $o['takeMessageFields']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->phoneNumber)) $o['phoneNumber'] = $this->phoneNumber;
        if (isset($this->transferType)) $o['transferType'] = JsonConverters::to('AssistantTransferTypes', $this->transferType);
        if (isset($this->about)) $o['about'] = $this->about;
        if (isset($this->emailAddress)) $o['emailAddress'] = $this->emailAddress;
        if (isset($this->takeMessageFields)) $o['takeMessageFields'] = JsonConverters::toArray('AssistantTakeMessageField', $this->takeMessageFields);
        return empty($o) ? new class(){} : $o;
    }
}

class AssistantIntegration implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $uri=null,
        /** @var string|null */
        public ?string $httpMethod=null,
        /** @var string|null */
        public ?string $authToken=null
    ) {
    }

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

class AssistantSettings implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $companyName=null,
        /** @var string|null */
        public ?string $greeting=null,
        /** @var string|null */
        public ?string $companyInformation=null,
        /** @var string|null */
        public ?string $customPrompt=null,
        /** @var string|null */
        public ?string $voice=null,
        /** @var string|null */
        public ?string $voiceStyle=null,
        /** @var AssistantTunings|null */
        public ?AssistantTunings $tuning=null,
        /** @var array<AssistantWord>|null */
        public ?array $words=null,
        /** @var array<AssistantLink>|null */
        public ?array $links=null,
        /** @var array<AssistantContact>|null */
        public ?array $contacts=null,
        /** @var array<AssistantIntegration>|null */
        public ?array $integrations=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['companyName'])) $this->companyName = $o['companyName'];
        if (isset($o['greeting'])) $this->greeting = $o['greeting'];
        if (isset($o['companyInformation'])) $this->companyInformation = $o['companyInformation'];
        if (isset($o['customPrompt'])) $this->customPrompt = $o['customPrompt'];
        if (isset($o['voice'])) $this->voice = $o['voice'];
        if (isset($o['voiceStyle'])) $this->voiceStyle = $o['voiceStyle'];
        if (isset($o['tuning'])) $this->tuning = JsonConverters::from('AssistantTunings', $o['tuning']);
        if (isset($o['words'])) $this->words = JsonConverters::fromArray('AssistantWord', $o['words']);
        if (isset($o['links'])) $this->links = JsonConverters::fromArray('AssistantLink', $o['links']);
        if (isset($o['contacts'])) $this->contacts = JsonConverters::fromArray('AssistantContact', $o['contacts']);
        if (isset($o['integrations'])) $this->integrations = JsonConverters::fromArray('AssistantIntegration', $o['integrations']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->companyName)) $o['companyName'] = $this->companyName;
        if (isset($this->greeting)) $o['greeting'] = $this->greeting;
        if (isset($this->companyInformation)) $o['companyInformation'] = $this->companyInformation;
        if (isset($this->customPrompt)) $o['customPrompt'] = $this->customPrompt;
        if (isset($this->voice)) $o['voice'] = $this->voice;
        if (isset($this->voiceStyle)) $o['voiceStyle'] = $this->voiceStyle;
        if (isset($this->tuning)) $o['tuning'] = JsonConverters::to('AssistantTunings', $this->tuning);
        if (isset($this->words)) $o['words'] = JsonConverters::toArray('AssistantWord', $this->words);
        if (isset($this->links)) $o['links'] = JsonConverters::toArray('AssistantLink', $this->links);
        if (isset($this->contacts)) $o['contacts'] = JsonConverters::toArray('AssistantContact', $this->contacts);
        if (isset($this->integrations)) $o['integrations'] = JsonConverters::toArray('AssistantIntegration', $this->integrations);
        return empty($o) ? new class(){} : $o;
    }
}

class EmbedSettings implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $enabled=null,
        /** @var string|null */
        public ?string $allowedHosts=null
    ) {
    }

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

class EndpointInfo extends EntityInfo implements JsonSerializable
{
    /**
     * @param string|null $id
     * @param string|null $dateCreated
     * @param string|null $dateLastModified
     * @param string|null $createdBy
     * @param string|null $lastModifiedBy
     */
    public function __construct(
        ?string $id=null,
        ?string $dateCreated=null,
        ?string $dateLastModified=null,
        ?string $createdBy=null,
        ?string $lastModifiedBy=null,
        /** @description The account ID this endpoint is associated with */
        // @ApiMember(Description="The account ID this endpoint is associated with")
        /** @var string|null */
        public ?string $accountId=null,

        /** @description The name of the account this endpoint is associated with */
        // @ApiMember(Description="The name of the account this endpoint is associated with")
        /** @var string|null */
        public ?string $accountName=null,

        /** @description The ID of the customer this endpoint is associated with */
        // @ApiMember(Description="The ID of the customer this endpoint is associated with")
        /** @var string|null */
        public ?string $customerId=null,

        /** @description The name of the customer this endpoint is associated with */
        // @ApiMember(Description="The name of the customer this endpoint is associated with")
        /** @var string|null */
        public ?string $customerName=null,

        /** @description The third party reference ID for the endpoint */
        // @ApiMember(Description="The third party reference ID for the endpoint")
        /** @var string|null */
        public ?string $referenceId=null,

        /** @description The breadcrumb to the customer for this endpoint */
        // @ApiMember(Description="The breadcrumb to the customer for this endpoint")
        /** @var array<CustomerBreadcrumb>|null */
        public ?array $customerBreadcrumb=null,

        /** @description The display name of the endpoint */
        // @ApiMember(Description="The display name of the endpoint")
        /** @var string|null */
        public ?string $displayName=null,

        /** @description The type of endpoint */
        // @ApiMember(Description="The type of endpoint")
        /** @var EndpointTypes|null */
        public ?EndpointTypes $type=null,

        /** @description Extra info for this endpoint (typically to show in grid) */
        // @ApiMember(Description="Extra info for this endpoint (typically to show in grid)")
        /** @var string|null */
        public ?string $extraInformation=null,

        /** @description The ID of the flow to use for voice */
        // @ApiMember(Description="The ID of the flow to use for voice")
        /** @var string|null */
        public ?string $flowId=null,

        /** @description The name of the flow to use for voice */
        // @ApiMember(Description="The name of the flow to use for voice")
        /** @var string|null */
        public ?string $flowName=null,

        /** @description The params for the voice flow */
        // @ApiMember(Description="The params for the voice flow")
        /** @var Struct|null */
        public ?Struct $flowParams=null,

        /** @description Whether to use a single flow always or use scheduled flow system */
        // @ApiMember(Description="Whether to use a single flow always or use scheduled flow system")
        /** @var EndpointFlowSchedules|null */
        public ?EndpointFlowSchedules $flowSchedule=null,

        /** @description This endpoint's schedule */
        // @ApiMember(Description="This endpoint's schedule")
        /** @var Schedule|null */
        public ?Schedule $schedule=null,

        /** @description The list of scheduled flows when using scheduling */
        // @ApiMember(Description="The list of scheduled flows when using scheduling")
        /** @var array<ScheduledFlow>|null */
        public ?array $scheduledFlows=null,

        /** @description Disable SMS */
        // @ApiMember(Description="Disable SMS")
        /** @var bool|null */
        public ?bool $disableSms=null,

        /** @description Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number */
        // @ApiMember(Description="Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number")
        /** @var bool|null */
        public ?bool $useExternal10DlcCampaign=null,

        /** @description Is this a virtual phone number? */
        // @ApiMember(Description="Is this a virtual phone number?")
        /** @var bool|null */
        public ?bool $isVirtualPhoneNumber=null,

        /** @description Is caller ID verified for this virtual number? */
        // @ApiMember(Description="Is caller ID verified for this virtual number?")
        /** @var bool|null */
        public ?bool $isCallerIdVerified=null,

        /** @description The verification code for this number */
        // @ApiMember(Description="The verification code for this number")
        /** @var string|null */
        public ?string $callerIdVerificationCode=null,

        /** @description The phone number */
        // @ApiMember(Description="The phone number")
        /** @var string|null */
        public ?string $phoneNumber=null,

        /** @description The Sid of the phone number */
        // @ApiMember(Description="The Sid of the phone number")
        /** @var string|null */
        public ?string $phoneNumberSid=null,

        /** @description The caller ID Name (CNAM) for the phone number */
        // @ApiMember(Description="The caller ID Name (CNAM) for the phone number")
        /** @var string|null */
        public ?string $callerIdName=null,

        /** @description The address SID associated with the phone number */
        // @ApiMember(Description="The address SID associated with the phone number")
        /** @var string|null */
        public ?string $addressSid=null,

        /** @description Do not touch this phone number - for BYOA accounts */
        // @ApiMember(Description="Do not touch this phone number - for BYOA accounts")
        /** @var bool|null */
        public ?bool $doNotTouchPhoneNumber=null,

        /** @description Is this number enrolled in a 10DLC messaging service campaign */
        // @ApiMember(Description="Is this number enrolled in a 10DLC messaging service campaign")
        /** @var bool|null */
        public ?bool $isEnrolledIn10DlcService=null,

        /** @description Whether we look up caller ID or not */
        // @ApiMember(Description="Whether we look up caller ID or not")
        /** @var bool|null */
        public ?bool $enableCallerIdLookup=null,

        /** @description The email address of the user */
        // @ApiMember(Description="The email address of the user")
        /** @var string|null */
        public ?string $userEmailAddress=null,

        /** @description The Twilio Region for the SIP endpoint */
        // @ApiMember(Description="The Twilio Region for the SIP endpoint")
        /** @var TwilioSipRegions|null */
        public ?TwilioSipRegions $sipRegion=null,

        /** @description The Twilio Sid of the credentials for Sip */
        // @ApiMember(Description="The Twilio Sid of the credentials for Sip")
        /** @var string|null */
        public ?string $sipCredentialSid=null,

        /** @description The Twilio SIP user name */
        // @ApiMember(Description="The Twilio SIP user name")
        /** @var string|null */
        public ?string $sipUserName=null,

        /** @description The Twilio SIP password */
        // @ApiMember(Description="The Twilio SIP password")
        /** @var string|null */
        public ?string $sipPassword=null,

        /** @description The SIP domain */
        // @ApiMember(Description="The SIP domain")
        /** @var string|null */
        public ?string $sipDomain=null,

        /** @description Is emergency calling enabled on this number? */
        // @ApiMember(Description="Is emergency calling enabled on this number?")
        /** @var bool|null */
        public ?bool $enableEmergencyCalling=null,

        /** @description The SID of the emergency address for this number */
        // @ApiMember(Description="The SID of the emergency address for this number")
        /** @var string|null */
        public ?string $emergencyAddressSid=null,

        /** @description The ID of the phone number to use for emergency dialing */
        // @ApiMember(Description="The ID of the phone number to use for emergency dialing")
        /** @var string|null */
        public ?string $emergencyPhoneNumberId=null,

        /** @description The current agent state of this user endpoint */
        // @ApiMember(Description="The current agent state of this user endpoint")
        /** @var AgentStates|null */
        public ?AgentStates $agentState=null,

        /** @description The current agent state reason of this user endpoint */
        // @ApiMember(Description="The current agent state reason of this user endpoint")
        /** @var AgentStateReasons|null */
        public ?AgentStateReasons $agentStateReason=null,

        /** @description The mode for this user */
        // @ApiMember(Description="The mode for this user")
        /** @var UserModes|null */
        public ?UserModes $userMode=null,

        /** @description The ID of the file to use for voicemail greeting */
        // @ApiMember(Description="The ID of the file to use for voicemail greeting")
        /** @var string|null */
        public ?string $voicemailGreetingId=null,

        /** @description The endpoint's data */
        // @ApiMember(Description="The endpoint's data")
        /** @var Struct|null */
        public ?Struct $data=null,

        /** @description The email address for email endpoints */
        // @ApiMember(Description="The email address for email endpoints")
        /** @var string|null */
        public ?string $emailAddress=null,

        /** @description The first name of the user (for user endpoints) */
        // @ApiMember(Description="The first name of the user (for user endpoints)")
        /** @var string|null */
        public ?string $userFirstName=null,

        /** @description The last name of the user (for user endpoints) */
        // @ApiMember(Description="The last name of the user (for user endpoints)")
        /** @var string|null */
        public ?string $userLastName=null,

        /** @description The URL of an image for this user's avatar */
        // @ApiMember(Description="The URL of an image for this user's avatar")
        /** @var string|null */
        public ?string $avatarUrl=null,

        /** @description Does this user have manager role? */
        // @ApiMember(Description="Does this user have manager role?")
        /** @var UserManagerRoles|null */
        public ?UserManagerRoles $managerRole=null,

        /** @description The list of dashboard permissions for when the manager role is custom */
        // @ApiMember(Description="The list of dashboard permissions for when the manager role is custom")
        /** @var array<DashboardPermissions>|null */
        public ?array $dashboardPermissions=null,

        /** @description The type of visibility this user has to their own fields */
        // @ApiMember(Description="The type of visibility this user has to their own fields")
        /** @var UserDataFieldModes|null */
        public ?UserDataFieldModes $myFieldPermissions=null,

        /** @description The type of visibility this user has to customer fields */
        // @ApiMember(Description="The type of visibility this user has to customer fields")
        /** @var UserDataFieldModes|null */
        public ?UserDataFieldModes $customerFieldPermissions=null,

        /** @description The type of visibility this user has to other user fields */
        // @ApiMember(Description="The type of visibility this user has to other user fields")
        /** @var UserDataFieldModes|null */
        public ?UserDataFieldModes $otherUserFieldPermissions=null,

        /** @description The type of visibility this user has to other endpoint fields */
        // @ApiMember(Description="The type of visibility this user has to other endpoint fields")
        /** @var UserDataFieldModes|null */
        public ?UserDataFieldModes $otherEndpointFieldPermissions=null,

        /** @description The name of this endpoint (for bots etc.) */
        // @ApiMember(Description="The name of this endpoint (for bots etc.)")
        /** @var string|null */
        public ?string $name=null,

        /** @description The list of tags for this endpoint */
        // @ApiMember(Description="The list of tags for this endpoint")
        /** @var array<Tag>|null */
        public ?array $tags=null,

        /** @description The list of action URLs */
        // @ApiMember(Description="The list of action URLs")
        /** @var array<EndpointActionUrl>|null */
        public ?array $actionUrls=null,

        /** @description The list of members in this team */
        // @ApiMember(Description="The list of members in this team")
        /** @var array<string>|null */
        public ?array $teamMemberIds=null,

        /** @description Visibility of this user/team in contact lists */
        // @ApiMember(Description="Visibility of this user/team in contact lists")
        /** @var CustomerVisibility|null */
        public ?CustomerVisibility $contactListVisibility=null,

        /** @description The list of contacts personal to this user */
        // @ApiMember(Description="The list of contacts personal to this user")
        /** @var array<EndpointContact>|null */
        public ?array $contacts=null,

        /** @description The documo ID for this number */
        // @ApiMember(Description="The documo ID for this number")
        /** @var string|null */
        public ?string $documoId=null,

        /** @description Integration data for this endpoint */
        // @ApiMember(Description="Integration data for this endpoint")
        /** @var EntityIntegrationData|null */
        public ?EntityIntegrationData $integrationData=null,

        /** @description Settings for third party phone system */
        // @ApiMember(Description="Settings for third party phone system")
        /** @var ThirdPartyPhoneSystemSettings|null */
        public ?ThirdPartyPhoneSystemSettings $thirdPartyPhoneSystemSettings=null,

        /** @description Should this user override the parent customer's app settings */
        // @ApiMember(Description="Should this user override the parent customer's app settings")
        /** @var bool|null */
        public ?bool $overrideAppSettings=null,

        /** @description App / Portal settings for this user */
        // @ApiMember(Description="App / Portal settings for this user")
        /** @var AppSettings|null */
        public ?AppSettings $appSettings=null,

        /** @description Configuration for the AI assistant */
        // @ApiMember(Description="Configuration for the AI assistant")
        /** @var AssistantSettings|null */
        public ?AssistantSettings $assistantSettings=null,

        /** @description Configuration for the embed */
        // @ApiMember(Description="Configuration for the embed")
        /** @var EmbedSettings|null */
        public ?EmbedSettings $embedSettings=null
    ) {
        parent::__construct($id,$dateCreated,$dateLastModified,$createdBy,$lastModifiedBy);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['accountId'])) $this->accountId = $o['accountId'];
        if (isset($o['accountName'])) $this->accountName = $o['accountName'];
        if (isset($o['customerId'])) $this->customerId = $o['customerId'];
        if (isset($o['customerName'])) $this->customerName = $o['customerName'];
        if (isset($o['referenceId'])) $this->referenceId = $o['referenceId'];
        if (isset($o['customerBreadcrumb'])) $this->customerBreadcrumb = JsonConverters::fromArray('CustomerBreadcrumb', $o['customerBreadcrumb']);
        if (isset($o['displayName'])) $this->displayName = $o['displayName'];
        if (isset($o['type'])) $this->type = JsonConverters::from('EndpointTypes', $o['type']);
        if (isset($o['extraInformation'])) $this->extraInformation = $o['extraInformation'];
        if (isset($o['flowId'])) $this->flowId = $o['flowId'];
        if (isset($o['flowName'])) $this->flowName = $o['flowName'];
        if (isset($o['flowParams'])) $this->flowParams = JsonConverters::from('Struct', $o['flowParams']);
        if (isset($o['flowSchedule'])) $this->flowSchedule = JsonConverters::from('EndpointFlowSchedules', $o['flowSchedule']);
        if (isset($o['schedule'])) $this->schedule = JsonConverters::from('Schedule', $o['schedule']);
        if (isset($o['scheduledFlows'])) $this->scheduledFlows = JsonConverters::fromArray('ScheduledFlow', $o['scheduledFlows']);
        if (isset($o['disableSms'])) $this->disableSms = $o['disableSms'];
        if (isset($o['useExternal10DlcCampaign'])) $this->useExternal10DlcCampaign = $o['useExternal10DlcCampaign'];
        if (isset($o['isVirtualPhoneNumber'])) $this->isVirtualPhoneNumber = $o['isVirtualPhoneNumber'];
        if (isset($o['isCallerIdVerified'])) $this->isCallerIdVerified = $o['isCallerIdVerified'];
        if (isset($o['callerIdVerificationCode'])) $this->callerIdVerificationCode = $o['callerIdVerificationCode'];
        if (isset($o['phoneNumber'])) $this->phoneNumber = $o['phoneNumber'];
        if (isset($o['phoneNumberSid'])) $this->phoneNumberSid = $o['phoneNumberSid'];
        if (isset($o['callerIdName'])) $this->callerIdName = $o['callerIdName'];
        if (isset($o['addressSid'])) $this->addressSid = $o['addressSid'];
        if (isset($o['doNotTouchPhoneNumber'])) $this->doNotTouchPhoneNumber = $o['doNotTouchPhoneNumber'];
        if (isset($o['isEnrolledIn10DlcService'])) $this->isEnrolledIn10DlcService = $o['isEnrolledIn10DlcService'];
        if (isset($o['enableCallerIdLookup'])) $this->enableCallerIdLookup = $o['enableCallerIdLookup'];
        if (isset($o['userEmailAddress'])) $this->userEmailAddress = $o['userEmailAddress'];
        if (isset($o['sipRegion'])) $this->sipRegion = JsonConverters::from('TwilioSipRegions', $o['sipRegion']);
        if (isset($o['sipCredentialSid'])) $this->sipCredentialSid = $o['sipCredentialSid'];
        if (isset($o['sipUserName'])) $this->sipUserName = $o['sipUserName'];
        if (isset($o['sipPassword'])) $this->sipPassword = $o['sipPassword'];
        if (isset($o['sipDomain'])) $this->sipDomain = $o['sipDomain'];
        if (isset($o['enableEmergencyCalling'])) $this->enableEmergencyCalling = $o['enableEmergencyCalling'];
        if (isset($o['emergencyAddressSid'])) $this->emergencyAddressSid = $o['emergencyAddressSid'];
        if (isset($o['emergencyPhoneNumberId'])) $this->emergencyPhoneNumberId = $o['emergencyPhoneNumberId'];
        if (isset($o['agentState'])) $this->agentState = JsonConverters::from('AgentStates', $o['agentState']);
        if (isset($o['agentStateReason'])) $this->agentStateReason = JsonConverters::from('AgentStateReasons', $o['agentStateReason']);
        if (isset($o['userMode'])) $this->userMode = JsonConverters::from('UserModes', $o['userMode']);
        if (isset($o['voicemailGreetingId'])) $this->voicemailGreetingId = $o['voicemailGreetingId'];
        if (isset($o['data'])) $this->data = JsonConverters::from('Struct', $o['data']);
        if (isset($o['emailAddress'])) $this->emailAddress = $o['emailAddress'];
        if (isset($o['userFirstName'])) $this->userFirstName = $o['userFirstName'];
        if (isset($o['userLastName'])) $this->userLastName = $o['userLastName'];
        if (isset($o['avatarUrl'])) $this->avatarUrl = $o['avatarUrl'];
        if (isset($o['managerRole'])) $this->managerRole = JsonConverters::from('UserManagerRoles', $o['managerRole']);
        if (isset($o['dashboardPermissions'])) $this->dashboardPermissions = JsonConverters::fromArray('DashboardPermissions', $o['dashboardPermissions']);
        if (isset($o['myFieldPermissions'])) $this->myFieldPermissions = JsonConverters::from('UserDataFieldModes', $o['myFieldPermissions']);
        if (isset($o['customerFieldPermissions'])) $this->customerFieldPermissions = JsonConverters::from('UserDataFieldModes', $o['customerFieldPermissions']);
        if (isset($o['otherUserFieldPermissions'])) $this->otherUserFieldPermissions = JsonConverters::from('UserDataFieldModes', $o['otherUserFieldPermissions']);
        if (isset($o['otherEndpointFieldPermissions'])) $this->otherEndpointFieldPermissions = JsonConverters::from('UserDataFieldModes', $o['otherEndpointFieldPermissions']);
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['tags'])) $this->tags = JsonConverters::fromArray('Tag', $o['tags']);
        if (isset($o['actionUrls'])) $this->actionUrls = JsonConverters::fromArray('EndpointActionUrl', $o['actionUrls']);
        if (isset($o['teamMemberIds'])) $this->teamMemberIds = JsonConverters::fromArray('string', $o['teamMemberIds']);
        if (isset($o['contactListVisibility'])) $this->contactListVisibility = JsonConverters::from('CustomerVisibility', $o['contactListVisibility']);
        if (isset($o['contacts'])) $this->contacts = JsonConverters::fromArray('EndpointContact', $o['contacts']);
        if (isset($o['documoId'])) $this->documoId = $o['documoId'];
        if (isset($o['integrationData'])) $this->integrationData = JsonConverters::from('EntityIntegrationData', $o['integrationData']);
        if (isset($o['thirdPartyPhoneSystemSettings'])) $this->thirdPartyPhoneSystemSettings = JsonConverters::from('ThirdPartyPhoneSystemSettings', $o['thirdPartyPhoneSystemSettings']);
        if (isset($o['overrideAppSettings'])) $this->overrideAppSettings = $o['overrideAppSettings'];
        if (isset($o['appSettings'])) $this->appSettings = JsonConverters::from('AppSettings', $o['appSettings']);
        if (isset($o['assistantSettings'])) $this->assistantSettings = JsonConverters::from('AssistantSettings', $o['assistantSettings']);
        if (isset($o['embedSettings'])) $this->embedSettings = JsonConverters::from('EmbedSettings', $o['embedSettings']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->accountId)) $o['accountId'] = $this->accountId;
        if (isset($this->accountName)) $o['accountName'] = $this->accountName;
        if (isset($this->customerId)) $o['customerId'] = $this->customerId;
        if (isset($this->customerName)) $o['customerName'] = $this->customerName;
        if (isset($this->referenceId)) $o['referenceId'] = $this->referenceId;
        if (isset($this->customerBreadcrumb)) $o['customerBreadcrumb'] = JsonConverters::toArray('CustomerBreadcrumb', $this->customerBreadcrumb);
        if (isset($this->displayName)) $o['displayName'] = $this->displayName;
        if (isset($this->type)) $o['type'] = JsonConverters::to('EndpointTypes', $this->type);
        if (isset($this->extraInformation)) $o['extraInformation'] = $this->extraInformation;
        if (isset($this->flowId)) $o['flowId'] = $this->flowId;
        if (isset($this->flowName)) $o['flowName'] = $this->flowName;
        if (isset($this->flowParams)) $o['flowParams'] = JsonConverters::to('Struct', $this->flowParams);
        if (isset($this->flowSchedule)) $o['flowSchedule'] = JsonConverters::to('EndpointFlowSchedules', $this->flowSchedule);
        if (isset($this->schedule)) $o['schedule'] = JsonConverters::to('Schedule', $this->schedule);
        if (isset($this->scheduledFlows)) $o['scheduledFlows'] = JsonConverters::toArray('ScheduledFlow', $this->scheduledFlows);
        if (isset($this->disableSms)) $o['disableSms'] = $this->disableSms;
        if (isset($this->useExternal10DlcCampaign)) $o['useExternal10DlcCampaign'] = $this->useExternal10DlcCampaign;
        if (isset($this->isVirtualPhoneNumber)) $o['isVirtualPhoneNumber'] = $this->isVirtualPhoneNumber;
        if (isset($this->isCallerIdVerified)) $o['isCallerIdVerified'] = $this->isCallerIdVerified;
        if (isset($this->callerIdVerificationCode)) $o['callerIdVerificationCode'] = $this->callerIdVerificationCode;
        if (isset($this->phoneNumber)) $o['phoneNumber'] = $this->phoneNumber;
        if (isset($this->phoneNumberSid)) $o['phoneNumberSid'] = $this->phoneNumberSid;
        if (isset($this->callerIdName)) $o['callerIdName'] = $this->callerIdName;
        if (isset($this->addressSid)) $o['addressSid'] = $this->addressSid;
        if (isset($this->doNotTouchPhoneNumber)) $o['doNotTouchPhoneNumber'] = $this->doNotTouchPhoneNumber;
        if (isset($this->isEnrolledIn10DlcService)) $o['isEnrolledIn10DlcService'] = $this->isEnrolledIn10DlcService;
        if (isset($this->enableCallerIdLookup)) $o['enableCallerIdLookup'] = $this->enableCallerIdLookup;
        if (isset($this->userEmailAddress)) $o['userEmailAddress'] = $this->userEmailAddress;
        if (isset($this->sipRegion)) $o['sipRegion'] = JsonConverters::to('TwilioSipRegions', $this->sipRegion);
        if (isset($this->sipCredentialSid)) $o['sipCredentialSid'] = $this->sipCredentialSid;
        if (isset($this->sipUserName)) $o['sipUserName'] = $this->sipUserName;
        if (isset($this->sipPassword)) $o['sipPassword'] = $this->sipPassword;
        if (isset($this->sipDomain)) $o['sipDomain'] = $this->sipDomain;
        if (isset($this->enableEmergencyCalling)) $o['enableEmergencyCalling'] = $this->enableEmergencyCalling;
        if (isset($this->emergencyAddressSid)) $o['emergencyAddressSid'] = $this->emergencyAddressSid;
        if (isset($this->emergencyPhoneNumberId)) $o['emergencyPhoneNumberId'] = $this->emergencyPhoneNumberId;
        if (isset($this->agentState)) $o['agentState'] = JsonConverters::to('AgentStates', $this->agentState);
        if (isset($this->agentStateReason)) $o['agentStateReason'] = JsonConverters::to('AgentStateReasons', $this->agentStateReason);
        if (isset($this->userMode)) $o['userMode'] = JsonConverters::to('UserModes', $this->userMode);
        if (isset($this->voicemailGreetingId)) $o['voicemailGreetingId'] = $this->voicemailGreetingId;
        if (isset($this->data)) $o['data'] = JsonConverters::to('Struct', $this->data);
        if (isset($this->emailAddress)) $o['emailAddress'] = $this->emailAddress;
        if (isset($this->userFirstName)) $o['userFirstName'] = $this->userFirstName;
        if (isset($this->userLastName)) $o['userLastName'] = $this->userLastName;
        if (isset($this->avatarUrl)) $o['avatarUrl'] = $this->avatarUrl;
        if (isset($this->managerRole)) $o['managerRole'] = JsonConverters::to('UserManagerRoles', $this->managerRole);
        if (isset($this->dashboardPermissions)) $o['dashboardPermissions'] = JsonConverters::toArray('DashboardPermissions', $this->dashboardPermissions);
        if (isset($this->myFieldPermissions)) $o['myFieldPermissions'] = JsonConverters::to('UserDataFieldModes', $this->myFieldPermissions);
        if (isset($this->customerFieldPermissions)) $o['customerFieldPermissions'] = JsonConverters::to('UserDataFieldModes', $this->customerFieldPermissions);
        if (isset($this->otherUserFieldPermissions)) $o['otherUserFieldPermissions'] = JsonConverters::to('UserDataFieldModes', $this->otherUserFieldPermissions);
        if (isset($this->otherEndpointFieldPermissions)) $o['otherEndpointFieldPermissions'] = JsonConverters::to('UserDataFieldModes', $this->otherEndpointFieldPermissions);
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->tags)) $o['tags'] = JsonConverters::toArray('Tag', $this->tags);
        if (isset($this->actionUrls)) $o['actionUrls'] = JsonConverters::toArray('EndpointActionUrl', $this->actionUrls);
        if (isset($this->teamMemberIds)) $o['teamMemberIds'] = JsonConverters::toArray('string', $this->teamMemberIds);
        if (isset($this->contactListVisibility)) $o['contactListVisibility'] = JsonConverters::to('CustomerVisibility', $this->contactListVisibility);
        if (isset($this->contacts)) $o['contacts'] = JsonConverters::toArray('EndpointContact', $this->contacts);
        if (isset($this->documoId)) $o['documoId'] = $this->documoId;
        if (isset($this->integrationData)) $o['integrationData'] = JsonConverters::to('EntityIntegrationData', $this->integrationData);
        if (isset($this->thirdPartyPhoneSystemSettings)) $o['thirdPartyPhoneSystemSettings'] = JsonConverters::to('ThirdPartyPhoneSystemSettings', $this->thirdPartyPhoneSystemSettings);
        if (isset($this->overrideAppSettings)) $o['overrideAppSettings'] = $this->overrideAppSettings;
        if (isset($this->appSettings)) $o['appSettings'] = JsonConverters::to('AppSettings', $this->appSettings);
        if (isset($this->assistantSettings)) $o['assistantSettings'] = JsonConverters::to('AssistantSettings', $this->assistantSettings);
        if (isset($this->embedSettings)) $o['embedSettings'] = JsonConverters::to('EmbedSettings', $this->embedSettings);
        return empty($o) ? new class(){} : $o;
    }
}

class AppBuyPhoneNumber implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $accountId=null,
        /** @var string|null */
        public ?string $customerId=null,
        /** @var EndpointTypes|null */
        public ?EndpointTypes $phoneNumberType=null,
        /** @var string|null */
        public ?string $phoneNumber=null
    ) {
    }

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

PHP AppBuyPhoneNumber DTOs

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

HTTP + OTHER

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

POST /portal/phone-numbers HTTP/1.1 
Host: team.evovoice.io 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"accountId":"String","customerId":"String","phoneNumberType":"PhoneNumber","phoneNumber":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"accountId":"String","accountName":"String","customerId":"String","customerName":"String","referenceId":"String","customerBreadcrumb":[{"id":"String","name":"String"}],"displayName":"String","type":"PhoneNumber","extraInformation":"String","flowId":"String","flowName":"String","flowSchedule":"Always","schedule":{"timeZoneId":"String","inherit":false,"forceClosed":false,"rules":[{"id":"String","name":"String","priority":0,"state":"String","source":"String","condition":"String","simpleRuleType":"Always","customerState":"String","flowId":"String","isAllDay":false,"startDate":"String","startTime":"String","endTime":"String","bySetPosition":[0],"byMonth":[0],"byWeekNo":[0],"byYearDay":[0],"byMonthDay":[0],"byDay":[{"offset":0,"dayOfWeek":"Sunday"}],"byHour":[0],"byMinute":[0],"interval":0,"count":0,"untilDate":"String","frequency":"None"}],"defaultState":"String"},"scheduledFlows":[{"stateName":"String","flowId":"String"}],"disableSms":false,"useExternal10DlcCampaign":false,"isVirtualPhoneNumber":false,"isCallerIdVerified":false,"callerIdVerificationCode":"String","phoneNumber":"String","phoneNumberSid":"String","callerIdName":"String","addressSid":"String","doNotTouchPhoneNumber":false,"isEnrolledIn10DlcService":false,"enableCallerIdLookup":false,"userEmailAddress":"String","sipRegion":"NorthAmericaVirginia","sipCredentialSid":"String","sipUserName":"String","sipPassword":"String","sipDomain":"String","enableEmergencyCalling":false,"emergencyAddressSid":"String","emergencyPhoneNumberId":"String","agentState":"Unknown","agentStateReason":"Unknown","userMode":"SoftPhone","voicemailGreetingId":"String","emailAddress":"String","userFirstName":"String","userLastName":"String","avatarUrl":"String","managerRole":"None","dashboardPermissions":["ViewFiles"],"myFieldPermissions":"Hidden","customerFieldPermissions":"Hidden","otherUserFieldPermissions":"Hidden","otherEndpointFieldPermissions":"Hidden","name":"String","tags":[{"id":"String","name":"String","color":"Magenta"}],"actionUrls":[{"id":"String","url":"String","method":"GET"}],"teamMemberIds":["String"],"contactListVisibility":"None","contacts":[{"id":"String","displayName":"String","address":"String"}],"documoId":"String","integrationData":{"String":{"thirdPartyId":"String"}},"thirdPartyPhoneSystemSettings":{"type":"Demo","sipSettings":{"accounts":[{"number":"String","agent":"String","authName":"String","userName":"String","displayName":"String","password":"String","userDomain":"String","registrationExpires":0,"transportType":"UDP","localIP":"String","localPort":0,"sipServer":"String","sipServerPort":0,"outboundServer":"String","outboundServerPort":0,"stunServer":"String","stunPort":0,"audioPlaybackDeviceName":"String","audioRecordingDeviceName":"String","audioCodecs":["PCMU"],"dtmfMethod":"RFC2833"}]},"demoSettings":{"extension":"String"}},"overrideAppSettings":false,"appSettings":{"enablePhoneNumberManagement":false,"enableDeviceManagement":false,"enableDialer":false,"enableCallHistory":false,"enableAssistants":false,"showFileNameInMessageCenter":false,"chakraTheme":"String","customCss":"String","pageTitle":"String","stringMappings":"String","logoutUrl":"String","portMyNumberUrl":"String"},"assistantSettings":{"companyName":"String","greeting":"String","companyInformation":"String","customPrompt":"String","voice":"String","voiceStyle":"String","tuning":"Accuracy","words":[{"word":"String","pronounced":"String"}],"links":[{"url":"String","description":"String"}],"contacts":[{"name":"String","phoneNumber":"String","transferType":"Blind","about":"String","emailAddress":"String","takeMessageFields":[{"name":"String","description":"String","required":false}]}],"integrations":[{"uri":"String","httpMethod":"String","authToken":"String"}]},"embedSettings":{"enabled":false,"allowedHosts":"String"},"id":"String","dateCreated":"String","dateLastModified":"String","createdBy":"String","lastModifiedBy":"String"}