Platform API

<back to all web services

UpdateCustomerGroup

Update customer group details

Requires Authentication
The following routes are available for this service:
All Verbs/api/updatecustomergroup
<?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 StringResponse 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 ContactBanking implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $ContactId='',
        /** @var string|null */
        public ?string $BankName=null,
        /** @var string|null */
        public ?string $BankLocation=null,
        /** @var string|null */
        public ?string $Bsb=null,
        /** @var string|null */
        public ?string $AccountNumber=null,
        /** @var string|null */
        public ?string $AccountName=null,
        /** @var string|null */
        public ?string $TermOfTradeId=null,
        /** @var string|null */
        public ?string $TermOfTradeName=null,
        /** @var string */
        public string $OwnerContactId='',
        /** @var string|null */
        public ?string $RecordStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['BankName'])) $this->BankName = $o['BankName'];
        if (isset($o['BankLocation'])) $this->BankLocation = $o['BankLocation'];
        if (isset($o['Bsb'])) $this->Bsb = $o['Bsb'];
        if (isset($o['AccountNumber'])) $this->AccountNumber = $o['AccountNumber'];
        if (isset($o['AccountName'])) $this->AccountName = $o['AccountName'];
        if (isset($o['TermOfTradeId'])) $this->TermOfTradeId = $o['TermOfTradeId'];
        if (isset($o['TermOfTradeName'])) $this->TermOfTradeName = $o['TermOfTradeName'];
        if (isset($o['OwnerContactId'])) $this->OwnerContactId = $o['OwnerContactId'];
        if (isset($o['RecordStatus'])) $this->RecordStatus = $o['RecordStatus'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->BankName)) $o['BankName'] = $this->BankName;
        if (isset($this->BankLocation)) $o['BankLocation'] = $this->BankLocation;
        if (isset($this->Bsb)) $o['Bsb'] = $this->Bsb;
        if (isset($this->AccountNumber)) $o['AccountNumber'] = $this->AccountNumber;
        if (isset($this->AccountName)) $o['AccountName'] = $this->AccountName;
        if (isset($this->TermOfTradeId)) $o['TermOfTradeId'] = $this->TermOfTradeId;
        if (isset($this->TermOfTradeName)) $o['TermOfTradeName'] = $this->TermOfTradeName;
        if (isset($this->OwnerContactId)) $o['OwnerContactId'] = $this->OwnerContactId;
        if (isset($this->RecordStatus)) $o['RecordStatus'] = $this->RecordStatus;
        return empty($o) ? new class(){} : $o;
    }
}

class UserRole implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $ConnectionId='',
        /** @var string */
        public string $ContactRoleId='',
        /** @var string */
        public string $ContactId='',
        /** @var string */
        public string $RoleId='',
        /** @var string|null */
        public ?string $RoleName=null,
        /** @var DateTime */
        public DateTime $StartDate=new DateTime(),
        /** @var DateTime|null */
        public ?DateTime $EndDate=null,
        /** @var bool|null */
        public ?bool $IsLicenseeRole=null,
        /** @var bool|null */
        public ?bool $IsCustomerRole=null,
        /** @var bool|null */
        public ?bool $IsPlatformRole=null,
        /** @var bool|null */
        public ?bool $IsAdministerContactsRole=null,
        /** @var string|null */
        public ?string $RolePrimaryImageURL=null,
        /** @var string|null */
        public ?string $RolePrimaryImageThumbnailURL=null,
        /** @var string */
        public string $RolePrimaryImageId='',
        /** @var string */
        public string $ConnectionStatusId='',
        /** @var string|null */
        public ?string $ConnectionStatusName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ConnectionId'])) $this->ConnectionId = $o['ConnectionId'];
        if (isset($o['ContactRoleId'])) $this->ContactRoleId = $o['ContactRoleId'];
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['RoleId'])) $this->RoleId = $o['RoleId'];
        if (isset($o['RoleName'])) $this->RoleName = $o['RoleName'];
        if (isset($o['StartDate'])) $this->StartDate = JsonConverters::from('DateTime', $o['StartDate']);
        if (isset($o['EndDate'])) $this->EndDate = JsonConverters::from('DateTime', $o['EndDate']);
        if (isset($o['IsLicenseeRole'])) $this->IsLicenseeRole = $o['IsLicenseeRole'];
        if (isset($o['IsCustomerRole'])) $this->IsCustomerRole = $o['IsCustomerRole'];
        if (isset($o['IsPlatformRole'])) $this->IsPlatformRole = $o['IsPlatformRole'];
        if (isset($o['IsAdministerContactsRole'])) $this->IsAdministerContactsRole = $o['IsAdministerContactsRole'];
        if (isset($o['RolePrimaryImageURL'])) $this->RolePrimaryImageURL = $o['RolePrimaryImageURL'];
        if (isset($o['RolePrimaryImageThumbnailURL'])) $this->RolePrimaryImageThumbnailURL = $o['RolePrimaryImageThumbnailURL'];
        if (isset($o['RolePrimaryImageId'])) $this->RolePrimaryImageId = $o['RolePrimaryImageId'];
        if (isset($o['ConnectionStatusId'])) $this->ConnectionStatusId = $o['ConnectionStatusId'];
        if (isset($o['ConnectionStatusName'])) $this->ConnectionStatusName = $o['ConnectionStatusName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ConnectionId)) $o['ConnectionId'] = $this->ConnectionId;
        if (isset($this->ContactRoleId)) $o['ContactRoleId'] = $this->ContactRoleId;
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->RoleId)) $o['RoleId'] = $this->RoleId;
        if (isset($this->RoleName)) $o['RoleName'] = $this->RoleName;
        if (isset($this->StartDate)) $o['StartDate'] = JsonConverters::to('DateTime', $this->StartDate);
        if (isset($this->EndDate)) $o['EndDate'] = JsonConverters::to('DateTime', $this->EndDate);
        if (isset($this->IsLicenseeRole)) $o['IsLicenseeRole'] = $this->IsLicenseeRole;
        if (isset($this->IsCustomerRole)) $o['IsCustomerRole'] = $this->IsCustomerRole;
        if (isset($this->IsPlatformRole)) $o['IsPlatformRole'] = $this->IsPlatformRole;
        if (isset($this->IsAdministerContactsRole)) $o['IsAdministerContactsRole'] = $this->IsAdministerContactsRole;
        if (isset($this->RolePrimaryImageURL)) $o['RolePrimaryImageURL'] = $this->RolePrimaryImageURL;
        if (isset($this->RolePrimaryImageThumbnailURL)) $o['RolePrimaryImageThumbnailURL'] = $this->RolePrimaryImageThumbnailURL;
        if (isset($this->RolePrimaryImageId)) $o['RolePrimaryImageId'] = $this->RolePrimaryImageId;
        if (isset($this->ConnectionStatusId)) $o['ConnectionStatusId'] = $this->ConnectionStatusId;
        if (isset($this->ConnectionStatusName)) $o['ConnectionStatusName'] = $this->ConnectionStatusName;
        return empty($o) ? new class(){} : $o;
    }
}

class GeoEstateStage implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $GeoEstateStageId='',
        /** @var string */
        public string $GeoEstateId='',
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var string|null */
        public ?string $RecordStatus=null
    ) {
    }

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

class GeoEstate implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $GeoEstateId='',
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var string */
        public string $DeveloperContactId='',
        /** @var string|null */
        public ?string $DeveloperName=null,
        /** @var string|null */
        public ?string $DeveloperProfilePhotoUrl=null,
        /** @var string|null */
        public ?string $DeveloperProfilePhotoThumbnail=null,
        /** @var string|null */
        public ?string $RecordStatus=null,
        /** @var array<GeoEstateStage>|null */
        public ?array $Stages=null,
        /** @var string */
        public string $CurrentEstateStageId='',
        /** @var string|null */
        public ?string $CurrentEstateStageName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['GeoEstateId'])) $this->GeoEstateId = $o['GeoEstateId'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['DeveloperContactId'])) $this->DeveloperContactId = $o['DeveloperContactId'];
        if (isset($o['DeveloperName'])) $this->DeveloperName = $o['DeveloperName'];
        if (isset($o['DeveloperProfilePhotoUrl'])) $this->DeveloperProfilePhotoUrl = $o['DeveloperProfilePhotoUrl'];
        if (isset($o['DeveloperProfilePhotoThumbnail'])) $this->DeveloperProfilePhotoThumbnail = $o['DeveloperProfilePhotoThumbnail'];
        if (isset($o['RecordStatus'])) $this->RecordStatus = $o['RecordStatus'];
        if (isset($o['Stages'])) $this->Stages = JsonConverters::fromArray('GeoEstateStage', $o['Stages']);
        if (isset($o['CurrentEstateStageId'])) $this->CurrentEstateStageId = $o['CurrentEstateStageId'];
        if (isset($o['CurrentEstateStageName'])) $this->CurrentEstateStageName = $o['CurrentEstateStageName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->GeoEstateId)) $o['GeoEstateId'] = $this->GeoEstateId;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->DeveloperContactId)) $o['DeveloperContactId'] = $this->DeveloperContactId;
        if (isset($this->DeveloperName)) $o['DeveloperName'] = $this->DeveloperName;
        if (isset($this->DeveloperProfilePhotoUrl)) $o['DeveloperProfilePhotoUrl'] = $this->DeveloperProfilePhotoUrl;
        if (isset($this->DeveloperProfilePhotoThumbnail)) $o['DeveloperProfilePhotoThumbnail'] = $this->DeveloperProfilePhotoThumbnail;
        if (isset($this->RecordStatus)) $o['RecordStatus'] = $this->RecordStatus;
        if (isset($this->Stages)) $o['Stages'] = JsonConverters::toArray('GeoEstateStage', $this->Stages);
        if (isset($this->CurrentEstateStageId)) $o['CurrentEstateStageId'] = $this->CurrentEstateStageId;
        if (isset($this->CurrentEstateStageName)) $o['CurrentEstateStageName'] = $this->CurrentEstateStageName;
        return empty($o) ? new class(){} : $o;
    }
}

class GeoLocation implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $GeoLocationId='',
        /** @var string|null */
        public ?string $StateId=null,
        /** @var string|null */
        public ?string $StateName=null,
        /** @var string|null */
        public ?string $StateNameShort=null,
        /** @var string|null */
        public ?string $SuburbId=null,
        /** @var string|null */
        public ?string $SuburbName=null,
        /** @var string|null */
        public ?string $CountryId=null,
        /** @var string|null */
        public ?string $CountryName=null,
        /** @var string|null */
        public ?string $Timezone=null,
        /** @var string|null */
        public ?string $TimezoneName=null,
        /** @var string|null */
        public ?string $LotNumber=null,
        /** @var string|null */
        public ?string $SubUnit=null,
        /** @var string|null */
        public ?string $BuildingNumber=null,
        /** @var string|null */
        public ?string $PostalDeliveryNumber=null,
        /** @var string|null */
        public ?string $StreetNumber=null,
        /** @var string|null */
        public ?string $StreetName=null,
        /** @var string|null */
        public ?string $AddressLineOne=null,
        /** @var string|null */
        public ?string $AddressLineTwo=null,
        /** @var string|null */
        public ?string $PostCode=null,
        /** @var bool|null */
        public ?bool $IsPhysical=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var string|null */
        public ?string $AddressFull=null,
        /** @var string */
        public string $AddressFormatId='',
        /** @var string|null */
        public ?string $PostalDeliveryTypeId=null,
        /** @var float */
        public float $Latitude=0.0,
        /** @var float */
        public float $Longitude=0.0,
        /** @var int */
        public int $Accuracy=0,
        /** @var float */
        public float $DistanceAway=0.0,
        /** @var bool|null */
        public ?bool $AutoMapCoordinates=null,
        /** @var bool|null */
        public ?bool $IsAddressCleared=null,
        /** @var bool|null */
        public ?bool $IsValidated=null,
        /** @var GeoEstate|null */
        public ?GeoEstate $Estate=null,
        /** @var string */
        public string $GeoEstateId='',
        /** @var string */
        public string $GeoEstateStageId='',
        /** @var string|null */
        public ?string $GeoEstateStageName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['GeoLocationId'])) $this->GeoLocationId = $o['GeoLocationId'];
        if (isset($o['StateId'])) $this->StateId = $o['StateId'];
        if (isset($o['StateName'])) $this->StateName = $o['StateName'];
        if (isset($o['StateNameShort'])) $this->StateNameShort = $o['StateNameShort'];
        if (isset($o['SuburbId'])) $this->SuburbId = $o['SuburbId'];
        if (isset($o['SuburbName'])) $this->SuburbName = $o['SuburbName'];
        if (isset($o['CountryId'])) $this->CountryId = $o['CountryId'];
        if (isset($o['CountryName'])) $this->CountryName = $o['CountryName'];
        if (isset($o['Timezone'])) $this->Timezone = $o['Timezone'];
        if (isset($o['TimezoneName'])) $this->TimezoneName = $o['TimezoneName'];
        if (isset($o['LotNumber'])) $this->LotNumber = $o['LotNumber'];
        if (isset($o['SubUnit'])) $this->SubUnit = $o['SubUnit'];
        if (isset($o['BuildingNumber'])) $this->BuildingNumber = $o['BuildingNumber'];
        if (isset($o['PostalDeliveryNumber'])) $this->PostalDeliveryNumber = $o['PostalDeliveryNumber'];
        if (isset($o['StreetNumber'])) $this->StreetNumber = $o['StreetNumber'];
        if (isset($o['StreetName'])) $this->StreetName = $o['StreetName'];
        if (isset($o['AddressLineOne'])) $this->AddressLineOne = $o['AddressLineOne'];
        if (isset($o['AddressLineTwo'])) $this->AddressLineTwo = $o['AddressLineTwo'];
        if (isset($o['PostCode'])) $this->PostCode = $o['PostCode'];
        if (isset($o['IsPhysical'])) $this->IsPhysical = $o['IsPhysical'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['AddressFull'])) $this->AddressFull = $o['AddressFull'];
        if (isset($o['AddressFormatId'])) $this->AddressFormatId = $o['AddressFormatId'];
        if (isset($o['PostalDeliveryTypeId'])) $this->PostalDeliveryTypeId = $o['PostalDeliveryTypeId'];
        if (isset($o['Latitude'])) $this->Latitude = $o['Latitude'];
        if (isset($o['Longitude'])) $this->Longitude = $o['Longitude'];
        if (isset($o['Accuracy'])) $this->Accuracy = $o['Accuracy'];
        if (isset($o['DistanceAway'])) $this->DistanceAway = $o['DistanceAway'];
        if (isset($o['AutoMapCoordinates'])) $this->AutoMapCoordinates = $o['AutoMapCoordinates'];
        if (isset($o['IsAddressCleared'])) $this->IsAddressCleared = $o['IsAddressCleared'];
        if (isset($o['IsValidated'])) $this->IsValidated = $o['IsValidated'];
        if (isset($o['Estate'])) $this->Estate = JsonConverters::from('GeoEstate', $o['Estate']);
        if (isset($o['GeoEstateId'])) $this->GeoEstateId = $o['GeoEstateId'];
        if (isset($o['GeoEstateStageId'])) $this->GeoEstateStageId = $o['GeoEstateStageId'];
        if (isset($o['GeoEstateStageName'])) $this->GeoEstateStageName = $o['GeoEstateStageName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->GeoLocationId)) $o['GeoLocationId'] = $this->GeoLocationId;
        if (isset($this->StateId)) $o['StateId'] = $this->StateId;
        if (isset($this->StateName)) $o['StateName'] = $this->StateName;
        if (isset($this->StateNameShort)) $o['StateNameShort'] = $this->StateNameShort;
        if (isset($this->SuburbId)) $o['SuburbId'] = $this->SuburbId;
        if (isset($this->SuburbName)) $o['SuburbName'] = $this->SuburbName;
        if (isset($this->CountryId)) $o['CountryId'] = $this->CountryId;
        if (isset($this->CountryName)) $o['CountryName'] = $this->CountryName;
        if (isset($this->Timezone)) $o['Timezone'] = $this->Timezone;
        if (isset($this->TimezoneName)) $o['TimezoneName'] = $this->TimezoneName;
        if (isset($this->LotNumber)) $o['LotNumber'] = $this->LotNumber;
        if (isset($this->SubUnit)) $o['SubUnit'] = $this->SubUnit;
        if (isset($this->BuildingNumber)) $o['BuildingNumber'] = $this->BuildingNumber;
        if (isset($this->PostalDeliveryNumber)) $o['PostalDeliveryNumber'] = $this->PostalDeliveryNumber;
        if (isset($this->StreetNumber)) $o['StreetNumber'] = $this->StreetNumber;
        if (isset($this->StreetName)) $o['StreetName'] = $this->StreetName;
        if (isset($this->AddressLineOne)) $o['AddressLineOne'] = $this->AddressLineOne;
        if (isset($this->AddressLineTwo)) $o['AddressLineTwo'] = $this->AddressLineTwo;
        if (isset($this->PostCode)) $o['PostCode'] = $this->PostCode;
        if (isset($this->IsPhysical)) $o['IsPhysical'] = $this->IsPhysical;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->AddressFull)) $o['AddressFull'] = $this->AddressFull;
        if (isset($this->AddressFormatId)) $o['AddressFormatId'] = $this->AddressFormatId;
        if (isset($this->PostalDeliveryTypeId)) $o['PostalDeliveryTypeId'] = $this->PostalDeliveryTypeId;
        if (isset($this->Latitude)) $o['Latitude'] = $this->Latitude;
        if (isset($this->Longitude)) $o['Longitude'] = $this->Longitude;
        if (isset($this->Accuracy)) $o['Accuracy'] = $this->Accuracy;
        if (isset($this->DistanceAway)) $o['DistanceAway'] = $this->DistanceAway;
        if (isset($this->AutoMapCoordinates)) $o['AutoMapCoordinates'] = $this->AutoMapCoordinates;
        if (isset($this->IsAddressCleared)) $o['IsAddressCleared'] = $this->IsAddressCleared;
        if (isset($this->IsValidated)) $o['IsValidated'] = $this->IsValidated;
        if (isset($this->Estate)) $o['Estate'] = JsonConverters::to('GeoEstate', $this->Estate);
        if (isset($this->GeoEstateId)) $o['GeoEstateId'] = $this->GeoEstateId;
        if (isset($this->GeoEstateStageId)) $o['GeoEstateStageId'] = $this->GeoEstateStageId;
        if (isset($this->GeoEstateStageName)) $o['GeoEstateStageName'] = $this->GeoEstateStageName;
        return empty($o) ? new class(){} : $o;
    }
}

class ContactAddress implements JsonSerializable
{
    public function __construct(
        /** @var GeoLocation|null */
        public ?GeoLocation $Location=null,
        /** @var bool|null */
        public ?bool $IsPostal=null,
        /** @var bool|null */
        public ?bool $IsPrimaryLocation=null,
        /** @var bool|null */
        public ?bool $IsRegisteredLocation=null,
        /** @var string */
        public string $ContactAddressId='',
        /** @var string|null */
        public ?string $SuburbName=null,
        /** @var string|null */
        public ?string $StateName=null,
        /** @var string|null */
        public ?string $CountryName=null,
        /** @var string|null */
        public ?string $AddressFull=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Location'])) $this->Location = JsonConverters::from('GeoLocation', $o['Location']);
        if (isset($o['IsPostal'])) $this->IsPostal = $o['IsPostal'];
        if (isset($o['IsPrimaryLocation'])) $this->IsPrimaryLocation = $o['IsPrimaryLocation'];
        if (isset($o['IsRegisteredLocation'])) $this->IsRegisteredLocation = $o['IsRegisteredLocation'];
        if (isset($o['ContactAddressId'])) $this->ContactAddressId = $o['ContactAddressId'];
        if (isset($o['SuburbName'])) $this->SuburbName = $o['SuburbName'];
        if (isset($o['StateName'])) $this->StateName = $o['StateName'];
        if (isset($o['CountryName'])) $this->CountryName = $o['CountryName'];
        if (isset($o['AddressFull'])) $this->AddressFull = $o['AddressFull'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Location)) $o['Location'] = JsonConverters::to('GeoLocation', $this->Location);
        if (isset($this->IsPostal)) $o['IsPostal'] = $this->IsPostal;
        if (isset($this->IsPrimaryLocation)) $o['IsPrimaryLocation'] = $this->IsPrimaryLocation;
        if (isset($this->IsRegisteredLocation)) $o['IsRegisteredLocation'] = $this->IsRegisteredLocation;
        if (isset($this->ContactAddressId)) $o['ContactAddressId'] = $this->ContactAddressId;
        if (isset($this->SuburbName)) $o['SuburbName'] = $this->SuburbName;
        if (isset($this->StateName)) $o['StateName'] = $this->StateName;
        if (isset($this->CountryName)) $o['CountryName'] = $this->CountryName;
        if (isset($this->AddressFull)) $o['AddressFull'] = $this->AddressFull;
        return empty($o) ? new class(){} : $o;
    }
}

class ContactPhone implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $CountryCode=null,
        /** @var string|null */
        public ?string $AreaCode=null,
        /** @var string|null */
        public ?string $LocalNumber=null,
        /** @var string|null */
        public ?string $PhoneNumber=null
    ) {
    }

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

class ContactDetail implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $ContactContactDetailId='',
        /** @var string */
        public string $ContactId='',
        /** @var string */
        public string $ContactDetailId='',
        /** @var string */
        public string $ContactMethodId='',
        /** @var string|null */
        public ?string $ContactMethodName=null,
        /** @var ContactAddress|null */
        public ?ContactAddress $Address=null,
        /** @var ContactPhone|null */
        public ?ContactPhone $Phone=null,
        /** @var string|null */
        public ?string $CountryId=null,
        /** @var string|null */
        public ?string $ContactDetails=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var string|null */
        public ?string $ContactDetailsCode=null,
        /** @var int */
        public int $OrderContactMethod=0,
        /** @var bool|null */
        public ?bool $IsPrimaryContactMethod=null,
        /** @var bool|null */
        public ?bool $IsPrimaryLocation=null,
        /** @var bool|null */
        public ?bool $IsRegisteredLocation=null,
        /** @var bool|null */
        public ?bool $IsPostal=null,
        /** @var bool|null */
        public ?bool $IsAddress=null,
        /** @var bool|null */
        public ?bool $IsPhone=null,
        /** @var string */
        public string $EmailSignatureId='',
        /** @var string|null */
        public ?string $EmailSignatureHTML=null,
        /** @var string|null */
        public ?string $EmailSignatureText=null,
        /** @var string|null */
        public ?string $ApiKey=null,
        /** @var string|null */
        public ?string $FrameworkAlternateKey=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContactContactDetailId'])) $this->ContactContactDetailId = $o['ContactContactDetailId'];
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['ContactDetailId'])) $this->ContactDetailId = $o['ContactDetailId'];
        if (isset($o['ContactMethodId'])) $this->ContactMethodId = $o['ContactMethodId'];
        if (isset($o['ContactMethodName'])) $this->ContactMethodName = $o['ContactMethodName'];
        if (isset($o['Address'])) $this->Address = JsonConverters::from('ContactAddress', $o['Address']);
        if (isset($o['Phone'])) $this->Phone = JsonConverters::from('ContactPhone', $o['Phone']);
        if (isset($o['CountryId'])) $this->CountryId = $o['CountryId'];
        if (isset($o['ContactDetails'])) $this->ContactDetails = $o['ContactDetails'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['ContactDetailsCode'])) $this->ContactDetailsCode = $o['ContactDetailsCode'];
        if (isset($o['OrderContactMethod'])) $this->OrderContactMethod = $o['OrderContactMethod'];
        if (isset($o['IsPrimaryContactMethod'])) $this->IsPrimaryContactMethod = $o['IsPrimaryContactMethod'];
        if (isset($o['IsPrimaryLocation'])) $this->IsPrimaryLocation = $o['IsPrimaryLocation'];
        if (isset($o['IsRegisteredLocation'])) $this->IsRegisteredLocation = $o['IsRegisteredLocation'];
        if (isset($o['IsPostal'])) $this->IsPostal = $o['IsPostal'];
        if (isset($o['IsAddress'])) $this->IsAddress = $o['IsAddress'];
        if (isset($o['IsPhone'])) $this->IsPhone = $o['IsPhone'];
        if (isset($o['EmailSignatureId'])) $this->EmailSignatureId = $o['EmailSignatureId'];
        if (isset($o['EmailSignatureHTML'])) $this->EmailSignatureHTML = $o['EmailSignatureHTML'];
        if (isset($o['EmailSignatureText'])) $this->EmailSignatureText = $o['EmailSignatureText'];
        if (isset($o['ApiKey'])) $this->ApiKey = $o['ApiKey'];
        if (isset($o['FrameworkAlternateKey'])) $this->FrameworkAlternateKey = $o['FrameworkAlternateKey'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContactContactDetailId)) $o['ContactContactDetailId'] = $this->ContactContactDetailId;
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->ContactDetailId)) $o['ContactDetailId'] = $this->ContactDetailId;
        if (isset($this->ContactMethodId)) $o['ContactMethodId'] = $this->ContactMethodId;
        if (isset($this->ContactMethodName)) $o['ContactMethodName'] = $this->ContactMethodName;
        if (isset($this->Address)) $o['Address'] = JsonConverters::to('ContactAddress', $this->Address);
        if (isset($this->Phone)) $o['Phone'] = JsonConverters::to('ContactPhone', $this->Phone);
        if (isset($this->CountryId)) $o['CountryId'] = $this->CountryId;
        if (isset($this->ContactDetails)) $o['ContactDetails'] = $this->ContactDetails;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->ContactDetailsCode)) $o['ContactDetailsCode'] = $this->ContactDetailsCode;
        if (isset($this->OrderContactMethod)) $o['OrderContactMethod'] = $this->OrderContactMethod;
        if (isset($this->IsPrimaryContactMethod)) $o['IsPrimaryContactMethod'] = $this->IsPrimaryContactMethod;
        if (isset($this->IsPrimaryLocation)) $o['IsPrimaryLocation'] = $this->IsPrimaryLocation;
        if (isset($this->IsRegisteredLocation)) $o['IsRegisteredLocation'] = $this->IsRegisteredLocation;
        if (isset($this->IsPostal)) $o['IsPostal'] = $this->IsPostal;
        if (isset($this->IsAddress)) $o['IsAddress'] = $this->IsAddress;
        if (isset($this->IsPhone)) $o['IsPhone'] = $this->IsPhone;
        if (isset($this->EmailSignatureId)) $o['EmailSignatureId'] = $this->EmailSignatureId;
        if (isset($this->EmailSignatureHTML)) $o['EmailSignatureHTML'] = $this->EmailSignatureHTML;
        if (isset($this->EmailSignatureText)) $o['EmailSignatureText'] = $this->EmailSignatureText;
        if (isset($this->ApiKey)) $o['ApiKey'] = $this->ApiKey;
        if (isset($this->FrameworkAlternateKey)) $o['FrameworkAlternateKey'] = $this->FrameworkAlternateKey;
        return empty($o) ? new class(){} : $o;
    }
}

class CustomContentFieldValue implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $FieldName=null,
        /** @var string */
        public string $FieldDataTypeId='',
        /** @var string|null */
        public ?string $FieldValue=null,
        /** @var string|null */
        public ?string $AlternateKey=null
    ) {
    }

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

class Contact implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $ContactId='',
        /** @var string|null */
        public ?string $PrimaryStreetAddressId=null,
        /** @var string|null */
        public ?string $PrimaryPostalAddressId=null,
        /** @var string|null */
        public ?string $PrimaryTaxRegisteredAddressId=null,
        /** @var string|null */
        public ?string $PrimaryNonMobileId=null,
        /** @var string|null */
        public ?string $PrimaryMobileId=null,
        /** @var string|null */
        public ?string $PrimaryEmailId=null,
        /** @var string|null */
        public ?string $Mobile=null,
        /** @var string|null */
        public ?string $Phone=null,
        /** @var string|null */
        public ?string $PrimaryEmail=null,
        /** @var string|null */
        public ?string $PrimaryAddress=null,
        /** @var string|null */
        public ?string $PrimaryFaxId=null,
        /** @var string|null */
        public ?string $PrimaryWebId=null,
        /** @var string|null */
        public ?string $PrimarySocialMediaId=null,
        /** @var string|null */
        public ?string $FirstName=null,
        /** @var string|null */
        public ?string $MiddleName=null,
        /** @var string|null */
        public ?string $Surname=null,
        /** @var string|null */
        public ?string $FullName=null,
        /** @var string|null */
        public ?string $ShortName=null,
        /** @var DateTime|null */
        public ?DateTime $BirthDate=null,
        /** @var string|null */
        public ?string $Title=null,
        /** @var string|null */
        public ?string $Salutation=null,
        /** @var string|null */
        public ?string $MaritalStatus=null,
        /** @var string|null */
        public ?string $MaritalStatusName=null,
        /** @var string|null */
        public ?string $Gender=null,
        /** @var string|null */
        public ?string $GenderName=null,
        /** @var string|null */
        public ?string $Abn=null,
        /** @var string|null */
        public ?string $Acn=null,
        /** @var string|null */
        public ?string $Arbn=null,
        /** @var ContactBanking|null */
        public ?ContactBanking $ContactBankingDetails=null,
        /** @var string|null */
        public ?string $LegalName=null,
        /** @var string|null */
        public ?string $TradingName=null,
        /** @var string|null */
        public ?string $ContactType=null,
        /** @var string|null */
        public ?string $ContactTypeName=null,
        /** @var string|null */
        public ?string $ContactTypePhotoUrl=null,
        /** @var string|null */
        public ?string $ContactTypePhotoThumbnailUrl=null,
        /** @var string|null */
        public ?string $Timezone=null,
        /** @var string|null */
        public ?string $TimezoneName=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var string|null */
        public ?string $EmploymentIndustry=null,
        /** @var string|null */
        public ?string $EmploymentRole=null,
        /** @var string|null */
        public ?string $EmploymentGeographicArea=null,
        /** @var bool|null */
        public ?bool $GstRegistered=null,
        /** @var string|null */
        public ?string $DriversLicence=null,
        /** @var string|null */
        public ?string $ContactGroupIdStaff=null,
        /** @var string|null */
        public ?string $StaffGroupName=null,
        /** @var string|null */
        public ?string $ContactGroupIdVendor=null,
        /** @var string|null */
        public ?string $VendorGroupName=null,
        /** @var string|null */
        public ?string $ContactGroupIdCustomer=null,
        /** @var string|null */
        public ?string $CustomerGroupName=null,
        /** @var string|null */
        public ?string $PrimaryMediaFileId=null,
        /** @var string|null */
        public ?string $ProfilePhotoUrl=null,
        /** @var string|null */
        public ?string $ProfilePhotoThumbnailUrl=null,
        /** @var string */
        public string $ProfileImageId='',
        /** @var string|null */
        public ?string $RecordStatus=null,
        /** @var string */
        public string $ConnectionStatusId='',
        /** @var string|null */
        public ?string $SubscriptionAlternateKey=null,
        /** @var array<UserRole>|null */
        public ?array $ContactRoles=null,
        /** @var array<ContactDetail>|null */
        public ?array $ContactDetails=null,
        /** @var array<CustomContentFieldValue>|null */
        public ?array $CustomContent=null,
        /** @var array<Contact>|null */
        public ?array $ConnectedContacts=null,
        /** @var string|null */
        public ?string $CustomContentXML=null,
        /** @var string|null */
        public ?string $ContactDetailsXML=null,
        /** @var string */
        public string $ConnectionContactId='',
        /** @var string|null */
        public ?string $ConnectionContactName=null,
        /** @var string|null */
        public ?string $UserProfileIdDefault=null,
        /** @var string */
        public string $UserId='',
        /** @var string|null */
        public ?string $Username=null,
        /** @var bool|null */
        public ?bool $IsRegistered=null,
        /** @var bool|null */
        public ?bool $ESL=null,
        /** @var string|null */
        public ?string $Language=null,
        /** @var bool|null */
        public ?bool $InterpreterRequired=null,
        /** @var string|null */
        public ?string $LicenseeNotes=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var string */
        public string $ObjectSubscriptionId='',
        /** @var string|null */
        public ?string $ObjectHash=null,
        /** @var string */
        public string $OwnerContactId=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['PrimaryStreetAddressId'])) $this->PrimaryStreetAddressId = $o['PrimaryStreetAddressId'];
        if (isset($o['PrimaryPostalAddressId'])) $this->PrimaryPostalAddressId = $o['PrimaryPostalAddressId'];
        if (isset($o['PrimaryTaxRegisteredAddressId'])) $this->PrimaryTaxRegisteredAddressId = $o['PrimaryTaxRegisteredAddressId'];
        if (isset($o['PrimaryNonMobileId'])) $this->PrimaryNonMobileId = $o['PrimaryNonMobileId'];
        if (isset($o['PrimaryMobileId'])) $this->PrimaryMobileId = $o['PrimaryMobileId'];
        if (isset($o['PrimaryEmailId'])) $this->PrimaryEmailId = $o['PrimaryEmailId'];
        if (isset($o['Mobile'])) $this->Mobile = $o['Mobile'];
        if (isset($o['Phone'])) $this->Phone = $o['Phone'];
        if (isset($o['PrimaryEmail'])) $this->PrimaryEmail = $o['PrimaryEmail'];
        if (isset($o['PrimaryAddress'])) $this->PrimaryAddress = $o['PrimaryAddress'];
        if (isset($o['PrimaryFaxId'])) $this->PrimaryFaxId = $o['PrimaryFaxId'];
        if (isset($o['PrimaryWebId'])) $this->PrimaryWebId = $o['PrimaryWebId'];
        if (isset($o['PrimarySocialMediaId'])) $this->PrimarySocialMediaId = $o['PrimarySocialMediaId'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['MiddleName'])) $this->MiddleName = $o['MiddleName'];
        if (isset($o['Surname'])) $this->Surname = $o['Surname'];
        if (isset($o['FullName'])) $this->FullName = $o['FullName'];
        if (isset($o['ShortName'])) $this->ShortName = $o['ShortName'];
        if (isset($o['BirthDate'])) $this->BirthDate = JsonConverters::from('DateTime', $o['BirthDate']);
        if (isset($o['Title'])) $this->Title = $o['Title'];
        if (isset($o['Salutation'])) $this->Salutation = $o['Salutation'];
        if (isset($o['MaritalStatus'])) $this->MaritalStatus = $o['MaritalStatus'];
        if (isset($o['MaritalStatusName'])) $this->MaritalStatusName = $o['MaritalStatusName'];
        if (isset($o['Gender'])) $this->Gender = $o['Gender'];
        if (isset($o['GenderName'])) $this->GenderName = $o['GenderName'];
        if (isset($o['Abn'])) $this->Abn = $o['Abn'];
        if (isset($o['Acn'])) $this->Acn = $o['Acn'];
        if (isset($o['Arbn'])) $this->Arbn = $o['Arbn'];
        if (isset($o['ContactBankingDetails'])) $this->ContactBankingDetails = JsonConverters::from('ContactBanking', $o['ContactBankingDetails']);
        if (isset($o['LegalName'])) $this->LegalName = $o['LegalName'];
        if (isset($o['TradingName'])) $this->TradingName = $o['TradingName'];
        if (isset($o['ContactType'])) $this->ContactType = $o['ContactType'];
        if (isset($o['ContactTypeName'])) $this->ContactTypeName = $o['ContactTypeName'];
        if (isset($o['ContactTypePhotoUrl'])) $this->ContactTypePhotoUrl = $o['ContactTypePhotoUrl'];
        if (isset($o['ContactTypePhotoThumbnailUrl'])) $this->ContactTypePhotoThumbnailUrl = $o['ContactTypePhotoThumbnailUrl'];
        if (isset($o['Timezone'])) $this->Timezone = $o['Timezone'];
        if (isset($o['TimezoneName'])) $this->TimezoneName = $o['TimezoneName'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['EmploymentIndustry'])) $this->EmploymentIndustry = $o['EmploymentIndustry'];
        if (isset($o['EmploymentRole'])) $this->EmploymentRole = $o['EmploymentRole'];
        if (isset($o['EmploymentGeographicArea'])) $this->EmploymentGeographicArea = $o['EmploymentGeographicArea'];
        if (isset($o['GstRegistered'])) $this->GstRegistered = $o['GstRegistered'];
        if (isset($o['DriversLicence'])) $this->DriversLicence = $o['DriversLicence'];
        if (isset($o['ContactGroupIdStaff'])) $this->ContactGroupIdStaff = $o['ContactGroupIdStaff'];
        if (isset($o['StaffGroupName'])) $this->StaffGroupName = $o['StaffGroupName'];
        if (isset($o['ContactGroupIdVendor'])) $this->ContactGroupIdVendor = $o['ContactGroupIdVendor'];
        if (isset($o['VendorGroupName'])) $this->VendorGroupName = $o['VendorGroupName'];
        if (isset($o['ContactGroupIdCustomer'])) $this->ContactGroupIdCustomer = $o['ContactGroupIdCustomer'];
        if (isset($o['CustomerGroupName'])) $this->CustomerGroupName = $o['CustomerGroupName'];
        if (isset($o['PrimaryMediaFileId'])) $this->PrimaryMediaFileId = $o['PrimaryMediaFileId'];
        if (isset($o['ProfilePhotoUrl'])) $this->ProfilePhotoUrl = $o['ProfilePhotoUrl'];
        if (isset($o['ProfilePhotoThumbnailUrl'])) $this->ProfilePhotoThumbnailUrl = $o['ProfilePhotoThumbnailUrl'];
        if (isset($o['ProfileImageId'])) $this->ProfileImageId = $o['ProfileImageId'];
        if (isset($o['RecordStatus'])) $this->RecordStatus = $o['RecordStatus'];
        if (isset($o['ConnectionStatusId'])) $this->ConnectionStatusId = $o['ConnectionStatusId'];
        if (isset($o['SubscriptionAlternateKey'])) $this->SubscriptionAlternateKey = $o['SubscriptionAlternateKey'];
        if (isset($o['ContactRoles'])) $this->ContactRoles = JsonConverters::fromArray('UserRole', $o['ContactRoles']);
        if (isset($o['ContactDetails'])) $this->ContactDetails = JsonConverters::fromArray('ContactDetail', $o['ContactDetails']);
        if (isset($o['CustomContent'])) $this->CustomContent = JsonConverters::fromArray('CustomContentFieldValue', $o['CustomContent']);
        if (isset($o['ConnectedContacts'])) $this->ConnectedContacts = JsonConverters::fromArray('Contact', $o['ConnectedContacts']);
        if (isset($o['CustomContentXML'])) $this->CustomContentXML = $o['CustomContentXML'];
        if (isset($o['ContactDetailsXML'])) $this->ContactDetailsXML = $o['ContactDetailsXML'];
        if (isset($o['ConnectionContactId'])) $this->ConnectionContactId = $o['ConnectionContactId'];
        if (isset($o['ConnectionContactName'])) $this->ConnectionContactName = $o['ConnectionContactName'];
        if (isset($o['UserProfileIdDefault'])) $this->UserProfileIdDefault = $o['UserProfileIdDefault'];
        if (isset($o['UserId'])) $this->UserId = $o['UserId'];
        if (isset($o['Username'])) $this->Username = $o['Username'];
        if (isset($o['IsRegistered'])) $this->IsRegistered = $o['IsRegistered'];
        if (isset($o['ESL'])) $this->ESL = $o['ESL'];
        if (isset($o['Language'])) $this->Language = $o['Language'];
        if (isset($o['InterpreterRequired'])) $this->InterpreterRequired = $o['InterpreterRequired'];
        if (isset($o['LicenseeNotes'])) $this->LicenseeNotes = $o['LicenseeNotes'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['ObjectSubscriptionId'])) $this->ObjectSubscriptionId = $o['ObjectSubscriptionId'];
        if (isset($o['ObjectHash'])) $this->ObjectHash = $o['ObjectHash'];
        if (isset($o['OwnerContactId'])) $this->OwnerContactId = $o['OwnerContactId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->PrimaryStreetAddressId)) $o['PrimaryStreetAddressId'] = $this->PrimaryStreetAddressId;
        if (isset($this->PrimaryPostalAddressId)) $o['PrimaryPostalAddressId'] = $this->PrimaryPostalAddressId;
        if (isset($this->PrimaryTaxRegisteredAddressId)) $o['PrimaryTaxRegisteredAddressId'] = $this->PrimaryTaxRegisteredAddressId;
        if (isset($this->PrimaryNonMobileId)) $o['PrimaryNonMobileId'] = $this->PrimaryNonMobileId;
        if (isset($this->PrimaryMobileId)) $o['PrimaryMobileId'] = $this->PrimaryMobileId;
        if (isset($this->PrimaryEmailId)) $o['PrimaryEmailId'] = $this->PrimaryEmailId;
        if (isset($this->Mobile)) $o['Mobile'] = $this->Mobile;
        if (isset($this->Phone)) $o['Phone'] = $this->Phone;
        if (isset($this->PrimaryEmail)) $o['PrimaryEmail'] = $this->PrimaryEmail;
        if (isset($this->PrimaryAddress)) $o['PrimaryAddress'] = $this->PrimaryAddress;
        if (isset($this->PrimaryFaxId)) $o['PrimaryFaxId'] = $this->PrimaryFaxId;
        if (isset($this->PrimaryWebId)) $o['PrimaryWebId'] = $this->PrimaryWebId;
        if (isset($this->PrimarySocialMediaId)) $o['PrimarySocialMediaId'] = $this->PrimarySocialMediaId;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->MiddleName)) $o['MiddleName'] = $this->MiddleName;
        if (isset($this->Surname)) $o['Surname'] = $this->Surname;
        if (isset($this->FullName)) $o['FullName'] = $this->FullName;
        if (isset($this->ShortName)) $o['ShortName'] = $this->ShortName;
        if (isset($this->BirthDate)) $o['BirthDate'] = JsonConverters::to('DateTime', $this->BirthDate);
        if (isset($this->Title)) $o['Title'] = $this->Title;
        if (isset($this->Salutation)) $o['Salutation'] = $this->Salutation;
        if (isset($this->MaritalStatus)) $o['MaritalStatus'] = $this->MaritalStatus;
        if (isset($this->MaritalStatusName)) $o['MaritalStatusName'] = $this->MaritalStatusName;
        if (isset($this->Gender)) $o['Gender'] = $this->Gender;
        if (isset($this->GenderName)) $o['GenderName'] = $this->GenderName;
        if (isset($this->Abn)) $o['Abn'] = $this->Abn;
        if (isset($this->Acn)) $o['Acn'] = $this->Acn;
        if (isset($this->Arbn)) $o['Arbn'] = $this->Arbn;
        if (isset($this->ContactBankingDetails)) $o['ContactBankingDetails'] = JsonConverters::to('ContactBanking', $this->ContactBankingDetails);
        if (isset($this->LegalName)) $o['LegalName'] = $this->LegalName;
        if (isset($this->TradingName)) $o['TradingName'] = $this->TradingName;
        if (isset($this->ContactType)) $o['ContactType'] = $this->ContactType;
        if (isset($this->ContactTypeName)) $o['ContactTypeName'] = $this->ContactTypeName;
        if (isset($this->ContactTypePhotoUrl)) $o['ContactTypePhotoUrl'] = $this->ContactTypePhotoUrl;
        if (isset($this->ContactTypePhotoThumbnailUrl)) $o['ContactTypePhotoThumbnailUrl'] = $this->ContactTypePhotoThumbnailUrl;
        if (isset($this->Timezone)) $o['Timezone'] = $this->Timezone;
        if (isset($this->TimezoneName)) $o['TimezoneName'] = $this->TimezoneName;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->EmploymentIndustry)) $o['EmploymentIndustry'] = $this->EmploymentIndustry;
        if (isset($this->EmploymentRole)) $o['EmploymentRole'] = $this->EmploymentRole;
        if (isset($this->EmploymentGeographicArea)) $o['EmploymentGeographicArea'] = $this->EmploymentGeographicArea;
        if (isset($this->GstRegistered)) $o['GstRegistered'] = $this->GstRegistered;
        if (isset($this->DriversLicence)) $o['DriversLicence'] = $this->DriversLicence;
        if (isset($this->ContactGroupIdStaff)) $o['ContactGroupIdStaff'] = $this->ContactGroupIdStaff;
        if (isset($this->StaffGroupName)) $o['StaffGroupName'] = $this->StaffGroupName;
        if (isset($this->ContactGroupIdVendor)) $o['ContactGroupIdVendor'] = $this->ContactGroupIdVendor;
        if (isset($this->VendorGroupName)) $o['VendorGroupName'] = $this->VendorGroupName;
        if (isset($this->ContactGroupIdCustomer)) $o['ContactGroupIdCustomer'] = $this->ContactGroupIdCustomer;
        if (isset($this->CustomerGroupName)) $o['CustomerGroupName'] = $this->CustomerGroupName;
        if (isset($this->PrimaryMediaFileId)) $o['PrimaryMediaFileId'] = $this->PrimaryMediaFileId;
        if (isset($this->ProfilePhotoUrl)) $o['ProfilePhotoUrl'] = $this->ProfilePhotoUrl;
        if (isset($this->ProfilePhotoThumbnailUrl)) $o['ProfilePhotoThumbnailUrl'] = $this->ProfilePhotoThumbnailUrl;
        if (isset($this->ProfileImageId)) $o['ProfileImageId'] = $this->ProfileImageId;
        if (isset($this->RecordStatus)) $o['RecordStatus'] = $this->RecordStatus;
        if (isset($this->ConnectionStatusId)) $o['ConnectionStatusId'] = $this->ConnectionStatusId;
        if (isset($this->SubscriptionAlternateKey)) $o['SubscriptionAlternateKey'] = $this->SubscriptionAlternateKey;
        if (isset($this->ContactRoles)) $o['ContactRoles'] = JsonConverters::toArray('UserRole', $this->ContactRoles);
        if (isset($this->ContactDetails)) $o['ContactDetails'] = JsonConverters::toArray('ContactDetail', $this->ContactDetails);
        if (isset($this->CustomContent)) $o['CustomContent'] = JsonConverters::toArray('CustomContentFieldValue', $this->CustomContent);
        if (isset($this->ConnectedContacts)) $o['ConnectedContacts'] = JsonConverters::toArray('Contact', $this->ConnectedContacts);
        if (isset($this->CustomContentXML)) $o['CustomContentXML'] = $this->CustomContentXML;
        if (isset($this->ContactDetailsXML)) $o['ContactDetailsXML'] = $this->ContactDetailsXML;
        if (isset($this->ConnectionContactId)) $o['ConnectionContactId'] = $this->ConnectionContactId;
        if (isset($this->ConnectionContactName)) $o['ConnectionContactName'] = $this->ConnectionContactName;
        if (isset($this->UserProfileIdDefault)) $o['UserProfileIdDefault'] = $this->UserProfileIdDefault;
        if (isset($this->UserId)) $o['UserId'] = $this->UserId;
        if (isset($this->Username)) $o['Username'] = $this->Username;
        if (isset($this->IsRegistered)) $o['IsRegistered'] = $this->IsRegistered;
        if (isset($this->ESL)) $o['ESL'] = $this->ESL;
        if (isset($this->Language)) $o['Language'] = $this->Language;
        if (isset($this->InterpreterRequired)) $o['InterpreterRequired'] = $this->InterpreterRequired;
        if (isset($this->LicenseeNotes)) $o['LicenseeNotes'] = $this->LicenseeNotes;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->ObjectSubscriptionId)) $o['ObjectSubscriptionId'] = $this->ObjectSubscriptionId;
        if (isset($this->ObjectHash)) $o['ObjectHash'] = $this->ObjectHash;
        if (isset($this->OwnerContactId)) $o['OwnerContactId'] = $this->OwnerContactId;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Update customer group details */
// @Api(Description="Update customer group details")
class UpdateCustomerGroup implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $CustomerGroupId='',
        /** @var bool|null */
        public ?bool $AutoGenerateName=null,
        /** @var string|null */
        public ?string $CustomerName=null,
        /** @var array<Contact>|null */
        public ?array $Contacts=null
    ) {
    }

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

PHP UpdateCustomerGroup 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 /api/updatecustomergroup HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CustomerGroupId":"00000000-0000-0000-0000-000000000000","AutoGenerateName":false,"CustomerName":"String","Contacts":[{"ContactId":"00000000-0000-0000-0000-000000000000","PrimaryStreetAddressId":"00000000000000000000000000000000","PrimaryPostalAddressId":"00000000000000000000000000000000","PrimaryTaxRegisteredAddressId":"00000000000000000000000000000000","PrimaryNonMobileId":"00000000000000000000000000000000","PrimaryMobileId":"00000000000000000000000000000000","PrimaryEmailId":"00000000000000000000000000000000","Mobile":"String","Phone":"String","PrimaryEmail":"String","PrimaryAddress":"String","PrimaryFaxId":"00000000000000000000000000000000","PrimaryWebId":"00000000000000000000000000000000","PrimarySocialMediaId":"00000000000000000000000000000000","FirstName":"String","MiddleName":"String","Surname":"String","FullName":"String","ShortName":"String","BirthDate":"0001-01-01T00:00:00.0000000","Title":"String","Salutation":"String","MaritalStatus":"00000000000000000000000000000000","MaritalStatusName":"String","Gender":"00000000000000000000000000000000","GenderName":"String","Abn":"String","Acn":"String","Arbn":"String","ContactBankingDetails":{"ContactId":"00000000-0000-0000-0000-000000000000","BankName":"String","BankLocation":"String","Bsb":"String","AccountNumber":"String","AccountName":"String","TermOfTradeId":"00000000000000000000000000000000","TermOfTradeName":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String"},"LegalName":"String","TradingName":"String","ContactType":"00000000000000000000000000000000","ContactTypeName":"String","ContactTypePhotoUrl":"String","ContactTypePhotoThumbnailUrl":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","GstRegistered":false,"DriversLicence":"String","ContactGroupIdStaff":"00000000000000000000000000000000","StaffGroupName":"String","ContactGroupIdVendor":"00000000000000000000000000000000","VendorGroupName":"String","ContactGroupIdCustomer":"00000000000000000000000000000000","CustomerGroupName":"String","PrimaryMediaFileId":"00000000000000000000000000000000","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","ProfileImageId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","SubscriptionAlternateKey":"String","ContactRoles":[{"ConnectionId":"00000000-0000-0000-0000-000000000000","ContactRoleId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","RoleId":"00000000-0000-0000-0000-000000000000","RoleName":"String","StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","IsLicenseeRole":false,"IsCustomerRole":false,"IsPlatformRole":false,"IsAdministerContactsRole":false,"RolePrimaryImageURL":"String","RolePrimaryImageThumbnailURL":"String","RolePrimaryImageId":"00000000-0000-0000-0000-000000000000","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","ConnectionStatusName":"String"}],"ContactDetails":[{"ContactContactDetailId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","ContactDetailId":"00000000-0000-0000-0000-000000000000","ContactMethodId":"00000000-0000-0000-0000-000000000000","ContactMethodName":"String","Address":{"Location":{"GeoLocationId":"00000000-0000-0000-0000-000000000000","StateId":"00000000000000000000000000000000","StateName":"String","StateNameShort":"String","SuburbId":"00000000000000000000000000000000","SuburbName":"String","CountryId":"00000000000000000000000000000000","CountryName":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","LotNumber":"String","SubUnit":"String","BuildingNumber":"String","PostalDeliveryNumber":"String","StreetNumber":"String","StreetName":"String","AddressLineOne":"String","AddressLineTwo":"String","PostCode":"String","IsPhysical":false,"Notes":"String","AddressFull":"String","AddressFormatId":"00000000-0000-0000-0000-000000000000","PostalDeliveryTypeId":"00000000000000000000000000000000","Latitude":0,"Longitude":0,"Accuracy":0,"DistanceAway":0,"AutoMapCoordinates":false,"IsAddressCleared":false,"IsValidated":false,"Estate":{"GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","DeveloperContactId":"00000000-0000-0000-0000-000000000000","DeveloperName":"String","DeveloperProfilePhotoUrl":"String","DeveloperProfilePhotoThumbnail":"String","RecordStatus":"String","Stages":[{"GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","RecordStatus":"String"}],"CurrentEstateStageId":"00000000-0000-0000-0000-000000000000","CurrentEstateStageName":"String"},"GeoEstateId":"00000000-0000-0000-0000-000000000000","GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateStageName":"String"},"IsPostal":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"ContactAddressId":"00000000-0000-0000-0000-000000000000","SuburbName":"String","StateName":"String","CountryName":"String","AddressFull":"String\r\nString\r\nString\r\nString String\r\nString"},"Phone":{"CountryCode":"String","AreaCode":"String","LocalNumber":"String","PhoneNumber":"String String String"},"CountryId":"00000000000000000000000000000000","ContactDetails":"String","Notes":"String","ContactDetailsCode":"String","OrderContactMethod":0,"IsPrimaryContactMethod":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"IsPostal":false,"IsAddress":true,"IsPhone":false,"EmailSignatureId":"00000000-0000-0000-0000-000000000000","EmailSignatureHTML":"String","EmailSignatureText":"String","ApiKey":"String","FrameworkAlternateKey":"String"}],"CustomContent":[{"FieldName":"String","FieldDataTypeId":"00000000-0000-0000-0000-000000000000","FieldValue":"String","AlternateKey":"String"}],"ConnectedContacts":[{"ContactId":"00000000-0000-0000-0000-000000000000","PrimaryStreetAddressId":"00000000000000000000000000000000","PrimaryPostalAddressId":"00000000000000000000000000000000","PrimaryTaxRegisteredAddressId":"00000000000000000000000000000000","PrimaryNonMobileId":"00000000000000000000000000000000","PrimaryMobileId":"00000000000000000000000000000000","PrimaryEmailId":"00000000000000000000000000000000","Mobile":"String","Phone":"String","PrimaryEmail":"String","PrimaryAddress":"String","PrimaryFaxId":"00000000000000000000000000000000","PrimaryWebId":"00000000000000000000000000000000","PrimarySocialMediaId":"00000000000000000000000000000000","FirstName":"String","MiddleName":"String","Surname":"String","FullName":"String","ShortName":"String","BirthDate":"0001-01-01T00:00:00.0000000","Title":"String","Salutation":"String","MaritalStatus":"00000000000000000000000000000000","MaritalStatusName":"String","Gender":"00000000000000000000000000000000","GenderName":"String","Abn":"String","Acn":"String","Arbn":"String","ContactBankingDetails":{"ContactId":"00000000-0000-0000-0000-000000000000","BankName":"String","BankLocation":"String","Bsb":"String","AccountNumber":"String","AccountName":"String","TermOfTradeId":"00000000000000000000000000000000","TermOfTradeName":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String"},"LegalName":"String","TradingName":"String","ContactType":"00000000000000000000000000000000","ContactTypeName":"String","ContactTypePhotoUrl":"String","ContactTypePhotoThumbnailUrl":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","GstRegistered":false,"DriversLicence":"String","ContactGroupIdStaff":"00000000000000000000000000000000","StaffGroupName":"String","ContactGroupIdVendor":"00000000000000000000000000000000","VendorGroupName":"String","ContactGroupIdCustomer":"00000000000000000000000000000000","CustomerGroupName":"String","PrimaryMediaFileId":"00000000000000000000000000000000","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","ProfileImageId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","SubscriptionAlternateKey":"String","ContactRoles":[{"ConnectionId":"00000000-0000-0000-0000-000000000000","ContactRoleId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","RoleId":"00000000-0000-0000-0000-000000000000","RoleName":"String","StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","IsLicenseeRole":false,"IsCustomerRole":false,"IsPlatformRole":false,"IsAdministerContactsRole":false,"RolePrimaryImageURL":"String","RolePrimaryImageThumbnailURL":"String","RolePrimaryImageId":"00000000-0000-0000-0000-000000000000","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","ConnectionStatusName":"String"}],"ContactDetails":[{"ContactContactDetailId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","ContactDetailId":"00000000-0000-0000-0000-000000000000","ContactMethodId":"00000000-0000-0000-0000-000000000000","ContactMethodName":"String","Address":{"Location":{"GeoLocationId":"00000000-0000-0000-0000-000000000000","StateId":"00000000000000000000000000000000","StateName":"String","StateNameShort":"String","SuburbId":"00000000000000000000000000000000","SuburbName":"String","CountryId":"00000000000000000000000000000000","CountryName":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","LotNumber":"String","SubUnit":"String","BuildingNumber":"String","PostalDeliveryNumber":"String","StreetNumber":"String","StreetName":"String","AddressLineOne":"String","AddressLineTwo":"String","PostCode":"String","IsPhysical":false,"Notes":"String","AddressFull":"String","AddressFormatId":"00000000-0000-0000-0000-000000000000","PostalDeliveryTypeId":"00000000000000000000000000000000","Latitude":0,"Longitude":0,"Accuracy":0,"DistanceAway":0,"AutoMapCoordinates":false,"IsAddressCleared":false,"IsValidated":false,"Estate":{"GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","DeveloperContactId":"00000000-0000-0000-0000-000000000000","DeveloperName":"String","DeveloperProfilePhotoUrl":"String","DeveloperProfilePhotoThumbnail":"String","RecordStatus":"String","Stages":[{"GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","RecordStatus":"String"}],"CurrentEstateStageId":"00000000-0000-0000-0000-000000000000","CurrentEstateStageName":"String"},"GeoEstateId":"00000000-0000-0000-0000-000000000000","GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateStageName":"String"},"IsPostal":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"ContactAddressId":"00000000-0000-0000-0000-000000000000","SuburbName":"String","StateName":"String","CountryName":"String","AddressFull":"String\r\nString\r\nString\r\nString String\r\nString"},"Phone":{"CountryCode":"String","AreaCode":"String","LocalNumber":"String","PhoneNumber":"String String String"},"CountryId":"00000000000000000000000000000000","ContactDetails":"String","Notes":"String","ContactDetailsCode":"String","OrderContactMethod":0,"IsPrimaryContactMethod":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"IsPostal":false,"IsAddress":true,"IsPhone":false,"EmailSignatureId":"00000000-0000-0000-0000-000000000000","EmailSignatureHTML":"String","EmailSignatureText":"String","ApiKey":"String","FrameworkAlternateKey":"String"}],"CustomContent":[{"FieldName":"String","FieldDataTypeId":"00000000-0000-0000-0000-000000000000","FieldValue":"String","AlternateKey":"String"}],"ConnectedContacts":[{"ContactId":"00000000-0000-0000-0000-000000000000","PrimaryStreetAddressId":"00000000000000000000000000000000","PrimaryPostalAddressId":"00000000000000000000000000000000","PrimaryTaxRegisteredAddressId":"00000000000000000000000000000000","PrimaryNonMobileId":"00000000000000000000000000000000","PrimaryMobileId":"00000000000000000000000000000000","PrimaryEmailId":"00000000000000000000000000000000","Mobile":"String","Phone":"String","PrimaryEmail":"String","PrimaryAddress":"String","PrimaryFaxId":"00000000000000000000000000000000","PrimaryWebId":"00000000000000000000000000000000","PrimarySocialMediaId":"00000000000000000000000000000000","FirstName":"String","MiddleName":"String","Surname":"String","FullName":"String","ShortName":"String","BirthDate":"0001-01-01T00:00:00.0000000","Title":"String","Salutation":"String","MaritalStatus":"00000000000000000000000000000000","MaritalStatusName":"String","Gender":"00000000000000000000000000000000","GenderName":"String","Abn":"String","Acn":"String","Arbn":"String","ContactBankingDetails":{"ContactId":"00000000-0000-0000-0000-000000000000","BankName":"String","BankLocation":"String","Bsb":"String","AccountNumber":"String","AccountName":"String","TermOfTradeId":"00000000000000000000000000000000","TermOfTradeName":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String"},"LegalName":"String","TradingName":"String","ContactType":"00000000000000000000000000000000","ContactTypeName":"String","ContactTypePhotoUrl":"String","ContactTypePhotoThumbnailUrl":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","GstRegistered":false,"DriversLicence":"String","ContactGroupIdStaff":"00000000000000000000000000000000","StaffGroupName":"String","ContactGroupIdVendor":"00000000000000000000000000000000","VendorGroupName":"String","ContactGroupIdCustomer":"00000000000000000000000000000000","CustomerGroupName":"String","PrimaryMediaFileId":"00000000000000000000000000000000","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","ProfileImageId":"00000000-0000-0000-0000-000000000000","RecordStatus":"String","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","SubscriptionAlternateKey":"String","ContactRoles":[{"ConnectionId":"00000000-0000-0000-0000-000000000000","ContactRoleId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","RoleId":"00000000-0000-0000-0000-000000000000","RoleName":"String","StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","IsLicenseeRole":false,"IsCustomerRole":false,"IsPlatformRole":false,"IsAdministerContactsRole":false,"RolePrimaryImageURL":"String","RolePrimaryImageThumbnailURL":"String","RolePrimaryImageId":"00000000-0000-0000-0000-000000000000","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","ConnectionStatusName":"String"}],"ContactDetails":[{"ContactContactDetailId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","ContactDetailId":"00000000-0000-0000-0000-000000000000","ContactMethodId":"00000000-0000-0000-0000-000000000000","ContactMethodName":"String","Address":{"Location":{"GeoLocationId":"00000000-0000-0000-0000-000000000000","StateId":"00000000000000000000000000000000","StateName":"String","StateNameShort":"String","SuburbId":"00000000000000000000000000000000","SuburbName":"String","CountryId":"00000000000000000000000000000000","CountryName":"String","Timezone":"00000000000000000000000000000000","TimezoneName":"String","LotNumber":"String","SubUnit":"String","BuildingNumber":"String","PostalDeliveryNumber":"String","StreetNumber":"String","StreetName":"String","AddressLineOne":"String","AddressLineTwo":"String","PostCode":"String","IsPhysical":false,"Notes":"String","AddressFull":"String","AddressFormatId":"00000000-0000-0000-0000-000000000000","PostalDeliveryTypeId":"00000000000000000000000000000000","Latitude":0,"Longitude":0,"Accuracy":0,"DistanceAway":0,"AutoMapCoordinates":false,"IsAddressCleared":false,"IsValidated":false,"Estate":{"GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","DeveloperContactId":"00000000-0000-0000-0000-000000000000","DeveloperName":"String","DeveloperProfilePhotoUrl":"String","DeveloperProfilePhotoThumbnail":"String","RecordStatus":"String","Stages":[{"GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateId":"00000000-0000-0000-0000-000000000000","Name":"String","Notes":"String","RecordStatus":"String"}],"CurrentEstateStageId":"00000000-0000-0000-0000-000000000000","CurrentEstateStageName":"String"},"GeoEstateId":"00000000-0000-0000-0000-000000000000","GeoEstateStageId":"00000000-0000-0000-0000-000000000000","GeoEstateStageName":"String"},"IsPostal":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"ContactAddressId":"00000000-0000-0000-0000-000000000000","SuburbName":"String","StateName":"String","CountryName":"String","AddressFull":"String\r\nString\r\nString\r\nString String\r\nString"},"Phone":{"CountryCode":"String","AreaCode":"String","LocalNumber":"String","PhoneNumber":"String String String"},"CountryId":"00000000000000000000000000000000","ContactDetails":"String","Notes":"String","ContactDetailsCode":"String","OrderContactMethod":0,"IsPrimaryContactMethod":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"IsPostal":false,"IsAddress":true,"IsPhone":false,"EmailSignatureId":"00000000-0000-0000-0000-000000000000","EmailSignatureHTML":"String","EmailSignatureText":"String","ApiKey":"String","FrameworkAlternateKey":"String"}],"CustomContent":[{"FieldName":"String","FieldDataTypeId":"00000000-0000-0000-0000-000000000000","FieldValue":"String","AlternateKey":"String"}],"ConnectedContacts":null,"CustomContentXML":"String","ContactDetailsXML":"String","ConnectionContactId":"00000000-0000-0000-0000-000000000000","ConnectionContactName":"String","UserProfileIdDefault":"00000000000000000000000000000000","UserId":"00000000-0000-0000-0000-000000000000","Username":"String","IsRegistered":false,"ESL":false,"Language":"String","InterpreterRequired":false,"LicenseeNotes":"String","Notes":"String","ObjectSubscriptionId":"00000000-0000-0000-0000-000000000000","ObjectHash":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000"}],"CustomContentXML":"String","ContactDetailsXML":"String","ConnectionContactId":"00000000-0000-0000-0000-000000000000","ConnectionContactName":"String","UserProfileIdDefault":"00000000000000000000000000000000","UserId":"00000000-0000-0000-0000-000000000000","Username":"String","IsRegistered":false,"ESL":false,"Language":"String","InterpreterRequired":false,"LicenseeNotes":"String","Notes":"String","ObjectSubscriptionId":"00000000-0000-0000-0000-000000000000","ObjectHash":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000"}],"CustomContentXML":"String","ContactDetailsXML":"String","ConnectionContactId":"00000000-0000-0000-0000-000000000000","ConnectionContactName":"String","UserProfileIdDefault":"00000000000000000000000000000000","UserId":"00000000-0000-0000-0000-000000000000","Username":"String","IsRegistered":false,"ESL":false,"Language":"String","InterpreterRequired":false,"LicenseeNotes":"String","Notes":"String","ObjectSubscriptionId":"00000000-0000-0000-0000-000000000000","ObjectHash":"String","OwnerContactId":"00000000-0000-0000-0000-000000000000"}]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Result":"String"}