Platform Subscription API

<back to all web services

GetLicenseeContactList

Returns a list of contacts a licensee is linked to. Contacts are returned in batches.

Requires Authentication
The following routes are available for this service:
GET/api/licensee/contacts
<?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 ConnectedContactDetailModel implements JsonSerializable
{
    public function __construct(
        /** @description The type of contact detail this is (email/mobile/fax/website etc) */
        // @ApiMember(DataType="string", Description="The type of contact detail this is (email/mobile/fax/website etc)", Name="Type")
        /** @var string|null */
        public ?string $Type=null,

        /** @description The contact detail. e.g (phone number or email address) */
        // @ApiMember(DataType="string", Description="The contact detail. e.g (phone number or email address)", Name="ContactDetails")
        /** @var string|null */
        public ?string $ContactDetails=null
    ) {
    }

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

class ConnectedContactAddressModel implements JsonSerializable
{
    public function __construct(
        /** @description A full address string of the address. */
        // @ApiMember(DataType="string", Description="A full address string of the address.", Name="FullAddress")
        /** @var string|null */
        public ?string $FullAddress=null,

        /** @description If true, this is the contacts primary address. */
        // @ApiMember(DataType="bool", Description="If true, this is the contacts primary address.", Name="IsPrimary")
        /** @var bool|null */
        public ?bool $IsPrimary=null,

        /** @description If true, this is the contacts postal address. */
        // @ApiMember(DataType="bool", Description="If true, this is the contacts postal address.", Name="IsPostal")
        /** @var bool|null */
        public ?bool $IsPostal=null,

        /** @description If true, this is the contacts registered address. */
        // @ApiMember(DataType="bool", Description="If true, this is the contacts registered address.", Name="IsRegistered")
        /** @var bool|null */
        public ?bool $IsRegistered=null
    ) {
    }

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

class ConnectedContactConnectionsModel implements JsonSerializable
{
    public function __construct(
        /** @description Guid of the role within Eros */
        // @ApiMember(DataType="Guid", Description="Guid of the role within Eros", Name="RoleId")
        /** @var string */
        public string $RoleId='',

        /** @description Name of the role this contact is connected to the licensee with. */
        // @ApiMember(DataType="string", Description="Name of the role this contact is connected to the licensee with.", Name="Role")
        /** @var string|null */
        public ?string $Role=null,

        /** @description Guid of the role connections status within Eros. */
        // @ApiMember(DataType="Guid", Description="Guid of the role connections status within Eros.", Name="StatusId")
        /** @var string */
        public string $StatusId='',

        /** @description Connection status of the role. It maybe active or pending. */
        // @ApiMember(DataType="string", Description="Connection status of the role. It maybe active or pending.", Name="Status")
        /** @var string|null */
        public ?string $Status=null
    ) {
    }

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

class ContactLinkedCustomerProjectsModel implements JsonSerializable
{
    public function __construct(
        /** @description Guid of the project within Eros. */
        // @ApiMember(DataType="Guid", Description="Guid of the project within Eros.", Name="ProjectId")
        /** @var string */
        public string $ProjectId='',

        /** @description Name of the project. */
        // @ApiMember(DataType="string", Description="Name of the project.", Name="Name")
        /** @var string|null */
        public ?string $Name=null
    ) {
    }

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

class ConnectedContactSubscriptionsModel implements JsonSerializable
{
    public function __construct(
        /** @description Guid of the datasource within Eros. */
        // @ApiMember(DataType="Guid", Description="Guid of the datasource within Eros.", Name="DatasourceId")
        /** @var string */
        public string $DatasourceId='',

        /** @description Name of the datasource that is the external system with a record of this contact. */
        // @ApiMember(DataType="string", Description="Name of the datasource that is the external system with a record of this contact.", Name="Datasource")
        /** @var string|null */
        public ?string $Datasource=null,

        /** @description Foreign Key lookup of this contact in the external system the datasource represents. */
        // @ApiMember(DataType="string", Description="Foreign Key lookup of this contact in the external system the datasource represents.", Name="AlternateKey")
        /** @var string|null */
        public ?string $AlternateKey=null
    ) {
    }

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

class ConnectedContactModel implements JsonSerializable
{
    public function __construct(
        /** @description Guid of the contact object within Eros. */
        // @ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId")
        /** @var string */
        public string $ContactId='',

        /** @description The salutation(preferred name) for the contact. Applies to a person contact type. */
        // @ApiMember(DataType="string", Description="The salutation(preferred name) for the contact. Applies to a person contact type.", Name="Salutation")
        /** @var string|null */
        public ?string $Salutation=null,

        /** @description The title for the contact. Applies to a person contact type. */
        // @ApiMember(DataType="string", Description="The title for the contact. Applies to a person contact type.", Name="Title")
        /** @var string|null */
        public ?string $Title=null,

        /** @description The first given name for the contact.  Applies to a person contact type. */
        // @ApiMember(DataType="string", Description="The first given name for the contact.  Applies to a person contact type.", Name="FirstName")
        /** @var string|null */
        public ?string $FirstName=null,

        /** @description Any middle names for the contact.  Applies to a person contact type. */
        // @ApiMember(DataType="string", Description="Any middle names for the contact.  Applies to a person contact type.", Name="MiddleName")
        /** @var string|null */
        public ?string $MiddleName=null,

        /** @description The surname for the contact.  Applies to a person contact type. */
        // @ApiMember(DataType="string", Description="The surname for the contact.  Applies to a person contact type.", Name="Surname")
        /** @var string|null */
        public ?string $Surname=null,

        /** @description The full name for the contact. */
        // @ApiMember(DataType="string", Description="The full name for the contact.", Name="FullName")
        /** @var string|null */
        public ?string $FullName=null,

        /** @description A legal name for the contact. Applies to an organisation contact type. */
        // @ApiMember(DataType="string", Description="A legal name for the contact. Applies to an organisation contact type.", Name="LegalName")
        /** @var string|null */
        public ?string $LegalName=null,

        /** @description A trading name for the contact. Applies to an organisation contact type. */
        // @ApiMember(DataType="string", Description="A trading name for the contact. Applies to an organisation contact type.", Name="TradingName")
        /** @var string|null */
        public ?string $TradingName=null,

        /** @description The birth date for the contact.  Applies to a person contact type. */
        // @ApiMember(DataType="DateTime?", Description="The birth date for the contact.  Applies to a person contact type.", Name="BirthDate")
        /** @var DateTime|null */
        public ?DateTime $BirthDate=null,

        /** @description Guid of the marital status within Eros. */
        // @ApiMember(DataType="Guid?", Description="Guid of the marital status within Eros.", Name="MaritalStatusId")
        /** @var string|null */
        public ?string $MaritalStatusId=null,

        /** @description The contacts marital status if set. */
        // @ApiMember(DataType="string", Description="The contacts marital status if set.", Name="MaritalStatusName")
        /** @var string|null */
        public ?string $MaritalStatusName=null,

        /** @description Guid of the gender within Eros. */
        // @ApiMember(DataType="Guid?", Description="Guid of the gender within Eros.", Name="GenderId")
        /** @var string|null */
        public ?string $GenderId=null,

        /** @description The contacts gender if set. */
        // @ApiMember(DataType="string", Description="The contacts gender if set.", Name="GenderName")
        /** @var string|null */
        public ?string $GenderName=null,

        /** @description Preferred language of the contact. */
        // @ApiMember(DataType="string", Description="Preferred language of the contact.", Name="Language")
        /** @var string|null */
        public ?string $Language=null,

        /** @description If true, the contact requires an interpreter. */
        // @ApiMember(DataType="bool", Description="If true, the contact requires an interpreter.", Name="InterpreterRequired")
        /** @var bool|null */
        public ?bool $InterpreterRequired=null,

        /** @description Contact Type name of the contact. */
        // @ApiMember(DataType="string", Description="Contact Type name of the contact.", Name="ContactTypeName")
        /** @var string|null */
        public ?string $ContactTypeName=null,

        /** @description Guid of the Contact Type List Item object within Eros. */
        // @ApiMember(DataType="Guid", Description="Guid of the Contact Type List Item object within Eros.", Name="ContactTypeId")
        /** @var string */
        public string $ContactTypeId='',

        /** @description Description of the contact for their external profile. */
        // @ApiMember(DataType="string", Description="Description of the contact for their external profile.", Name="Description")
        /** @var string|null */
        public ?string $Description=null,

        /** @description Contact 'Profession/Trade/Industry' details for their external profile. */
        // @ApiMember(DataType="string", Description="Contact 'Profession/Trade/Industry' details for their external profile.", Name="EmploymentIndustry")
        /** @var string|null */
        public ?string $EmploymentIndustry=null,

        /** @description Contact 'Working/Subcontracting for' details for their external profile. */
        // @ApiMember(DataType="string", Description="Contact 'Working/Subcontracting for' details for their external profile.", Name="EmploymentRole")
        /** @var string|null */
        public ?string $EmploymentRole=null,

        /** @description Contact 'Work Area/Suburbs' detail for their external profile. */
        // @ApiMember(DataType="string", Description="Contact 'Work Area/Suburbs' detail for their external profile.", Name="EmploymentGeographicArea")
        /** @var string|null */
        public ?string $EmploymentGeographicArea=null,

        /** @description The A.B.N for the contact. */
        // @ApiMember(DataType="string", Description="The A.B.N for the contact.", Name="Abn")
        /** @var string|null */
        public ?string $Abn=null,

        /** @description The A.C.N for the contact. */
        // @ApiMember(DataType="string", Description="The A.C.N for the contact.", Name="Acn")
        /** @var string|null */
        public ?string $Acn=null,

        /** @description The A.R.B.N for the contact. */
        // @ApiMember(DataType="string", Description="The A.R.B.N for the contact.", Name="Arbn")
        /** @var string|null */
        public ?string $Arbn=null,

        /** @description Timezone name that applies to the contact. */
        // @ApiMember(DataType="string", Description="Timezone name that applies to the contact.", Name="TimezoneName")
        /** @var string|null */
        public ?string $TimezoneName=null,

        /** @description A list of the contact details for the contact. */
        // @ApiMember(DataType="List<ConnectedContactDetailModel>", Description="A list of the contact details for the contact.", Name="ContactDetails")
        /** @var array<ConnectedContactDetailModel>|null */
        public ?array $ContactDetails=null,

        /** @description A list of the contact addresses for the contact */
        // @ApiMember(DataType="List<ConnectedContactAddressModel>", Description="A list of the contact addresses for the contact", Name="ContactAddresses")
        /** @var array<ConnectedContactAddressModel>|null */
        public ?array $ContactAddresses=null,

        /** @description True if this contact has at least 1 active connection to the licensee. Without an active connection only public profile information for the contact is returned. */
        // @ApiMember(DataType="bool", Description="True if this contact has at least 1 active connection to the licensee. Without an active connection only public profile information for the contact is returned.", Name="IsContactConnected")
        /** @var bool|null */
        public ?bool $IsContactConnected=null,

        /** @description A list of connections this contact has with the licensee. May be active or a pending request to connect. */
        // @ApiMember(DataType="List<ConnectedContactConnectionsModel>", Description="A list of connections this contact has with the licensee. May be active or a pending request to connect.", Name="Connections")
        /** @var array<ConnectedContactConnectionsModel>|null */
        public ?array $Connections=null,

        /** @description A list of projects this contact is linked to as a customer. */
        // @ApiMember(DataType="List<ContactLinkedCustomerProjectsModel>", Description="A list of projects this contact is linked to as a customer.", Name="Projects")
        /** @var array<ContactLinkedCustomerProjectsModel>|null */
        public ?array $Projects=null,

        /** @description A list of integration subscriptions used to link this contact to external records in other licensee owned systems. */
        // @ApiMember(DataType="List<ConnectedContactSubscriptionsModel>", Description="A list of integration subscriptions used to link this contact to external records in other licensee owned systems.", Name="Subscriptions")
        /** @var array<ConnectedContactSubscriptionsModel>|null */
        public ?array $Subscriptions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['Salutation'])) $this->Salutation = $o['Salutation'];
        if (isset($o['Title'])) $this->Title = $o['Title'];
        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['LegalName'])) $this->LegalName = $o['LegalName'];
        if (isset($o['TradingName'])) $this->TradingName = $o['TradingName'];
        if (isset($o['BirthDate'])) $this->BirthDate = JsonConverters::from('DateTime', $o['BirthDate']);
        if (isset($o['MaritalStatusId'])) $this->MaritalStatusId = $o['MaritalStatusId'];
        if (isset($o['MaritalStatusName'])) $this->MaritalStatusName = $o['MaritalStatusName'];
        if (isset($o['GenderId'])) $this->GenderId = $o['GenderId'];
        if (isset($o['GenderName'])) $this->GenderName = $o['GenderName'];
        if (isset($o['Language'])) $this->Language = $o['Language'];
        if (isset($o['InterpreterRequired'])) $this->InterpreterRequired = $o['InterpreterRequired'];
        if (isset($o['ContactTypeName'])) $this->ContactTypeName = $o['ContactTypeName'];
        if (isset($o['ContactTypeId'])) $this->ContactTypeId = $o['ContactTypeId'];
        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['Abn'])) $this->Abn = $o['Abn'];
        if (isset($o['Acn'])) $this->Acn = $o['Acn'];
        if (isset($o['Arbn'])) $this->Arbn = $o['Arbn'];
        if (isset($o['TimezoneName'])) $this->TimezoneName = $o['TimezoneName'];
        if (isset($o['ContactDetails'])) $this->ContactDetails = JsonConverters::fromArray('ConnectedContactDetailModel', $o['ContactDetails']);
        if (isset($o['ContactAddresses'])) $this->ContactAddresses = JsonConverters::fromArray('ConnectedContactAddressModel', $o['ContactAddresses']);
        if (isset($o['IsContactConnected'])) $this->IsContactConnected = $o['IsContactConnected'];
        if (isset($o['Connections'])) $this->Connections = JsonConverters::fromArray('ConnectedContactConnectionsModel', $o['Connections']);
        if (isset($o['Projects'])) $this->Projects = JsonConverters::fromArray('ContactLinkedCustomerProjectsModel', $o['Projects']);
        if (isset($o['Subscriptions'])) $this->Subscriptions = JsonConverters::fromArray('ConnectedContactSubscriptionsModel', $o['Subscriptions']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->Salutation)) $o['Salutation'] = $this->Salutation;
        if (isset($this->Title)) $o['Title'] = $this->Title;
        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->LegalName)) $o['LegalName'] = $this->LegalName;
        if (isset($this->TradingName)) $o['TradingName'] = $this->TradingName;
        if (isset($this->BirthDate)) $o['BirthDate'] = JsonConverters::to('DateTime', $this->BirthDate);
        if (isset($this->MaritalStatusId)) $o['MaritalStatusId'] = $this->MaritalStatusId;
        if (isset($this->MaritalStatusName)) $o['MaritalStatusName'] = $this->MaritalStatusName;
        if (isset($this->GenderId)) $o['GenderId'] = $this->GenderId;
        if (isset($this->GenderName)) $o['GenderName'] = $this->GenderName;
        if (isset($this->Language)) $o['Language'] = $this->Language;
        if (isset($this->InterpreterRequired)) $o['InterpreterRequired'] = $this->InterpreterRequired;
        if (isset($this->ContactTypeName)) $o['ContactTypeName'] = $this->ContactTypeName;
        if (isset($this->ContactTypeId)) $o['ContactTypeId'] = $this->ContactTypeId;
        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->Abn)) $o['Abn'] = $this->Abn;
        if (isset($this->Acn)) $o['Acn'] = $this->Acn;
        if (isset($this->Arbn)) $o['Arbn'] = $this->Arbn;
        if (isset($this->TimezoneName)) $o['TimezoneName'] = $this->TimezoneName;
        if (isset($this->ContactDetails)) $o['ContactDetails'] = JsonConverters::toArray('ConnectedContactDetailModel', $this->ContactDetails);
        if (isset($this->ContactAddresses)) $o['ContactAddresses'] = JsonConverters::toArray('ConnectedContactAddressModel', $this->ContactAddresses);
        if (isset($this->IsContactConnected)) $o['IsContactConnected'] = $this->IsContactConnected;
        if (isset($this->Connections)) $o['Connections'] = JsonConverters::toArray('ConnectedContactConnectionsModel', $this->Connections);
        if (isset($this->Projects)) $o['Projects'] = JsonConverters::toArray('ContactLinkedCustomerProjectsModel', $this->Projects);
        if (isset($this->Subscriptions)) $o['Subscriptions'] = JsonConverters::toArray('ConnectedContactSubscriptionsModel', $this->Subscriptions);
        return empty($o) ? new class(){} : $o;
    }
}

// @ApiResponse(Description="List of Contacts")
class GetLicenseeContactListResponse implements JsonSerializable
{
    public function __construct(
        /** @description List of contacts. */
        // @ApiMember(DataType="List<ConnectedContactModel>", Description="List of contacts.", Name="Contacts")
        /** @var array<ConnectedContactModel>|null */
        public ?array $Contacts=null,

        /** @description Details of the api response. Success/Fail. */
        // @ApiMember(DataType="ResponseStatus", Description="Details of the api response. Success/Fail.", Name="ResponseStatus")
        /** @var ResponseStatus|null */
        public ?ResponseStatus $ResponseStatus=null
    ) {
    }

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

/** @description Returns a list of contacts a licensee is linked to. Contacts are returned in batches. */
// @Api(Description="Returns a list of contacts a licensee is linked to. Contacts are returned in batches.")
class GetLicenseeContactList implements JsonSerializable
{
    public function __construct(
        /** @description Number of contacts to retrieve per call. */
        // @ApiMember(DataType="int", Description="Number of contacts to retrieve per call.", IsRequired=true, Name="BatchSize")
        /** @var int */
        public int $BatchSize=0,

        /** @description Call number (1=1st, 2=2nd) this should progress upwards until all contacts have been retrieved. */
        // @ApiMember(DataType="int", Description="Call number (1=1st, 2=2nd) this should progress upwards until all contacts have been retrieved.", IsRequired=true, Name="BatchNumber")
        /** @var int */
        public int $BatchNumber=0
    ) {
    }

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

PHP GetLicenseeContactList DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /api/licensee/contacts HTTP/1.1 
Host: production-eros-platform-apisubscription.azurewebsites.net 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Contacts":[{"Salutation":"String","Title":"String","FirstName":"String","MiddleName":"String","Surname":"String","FullName":"String","LegalName":"String","TradingName":"String","BirthDate":"0001-01-01T00:00:00.0000000","MaritalStatusId":"00000000-0000-0000-0000-000000000000","MaritalStatusName":"String","GenderId":"00000000-0000-0000-0000-000000000000","GenderName":"String","Language":"String","InterpreterRequired":false,"ContactTypeName":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","Abn":"String","Acn":"String","Arbn":"String","TimezoneName":"String","ContactDetails":[{"Type":"String","ContactDetails":"String"}],"ContactAddresses":[{"FullAddress":"String","IsPrimary":false,"IsPostal":false,"IsRegistered":false}],"IsContactConnected":false,"Connections":[{"Role":"String","Status":"String"}],"Projects":[{"Name":"String"}],"Subscriptions":[{"Datasource":"String","AlternateKey":"String"}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}