digitaluapi

<back to all web services

GetCampaignCustomerCertificateByCommsGuid

The following routes are available for this service:
GET/campaign/certbycommsguid/{CampaignInstanceCommsPublicAccessGuid}Get Campaign Certificate By Comms Guid
<?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 CampaignActionsView implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

        // @DataMember(Order=2)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.Campaigns)")
        /** @var int */
        public int $CampaignsId=0,

        // @DataMember(Order=3)
        // @References("typeof(digitaluapi.ServiceModel.Types.Actions)")
        /** @var int|null */
        public ?int $ActionsId=null,

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

        // @DataMember(Order=5)
        // @References("typeof(digitaluapi.ServiceModel.Types.ActionTypes)")
        /** @var int|null */
        public ?int $ActionTypesId=null,

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

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

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

        // @DataMember(Order=9)
        // @Required()
        /** @var string */
        public string $PublicAccessGuid='',

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

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

        // @DataMember(Order=12)
        /** @var bool|null */
        public ?bool $IsEnabled=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['CampaignsId'])) $this->CampaignsId = $o['CampaignsId'];
        if (isset($o['ActionsId'])) $this->ActionsId = $o['ActionsId'];
        if (isset($o['ButtonName'])) $this->ButtonName = $o['ButtonName'];
        if (isset($o['ActionTypesId'])) $this->ActionTypesId = $o['ActionTypesId'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['OfferOrder'])) $this->OfferOrder = $o['OfferOrder'];
        if (isset($o['StandOut'])) $this->StandOut = $o['StandOut'];
        if (isset($o['PublicAccessGuid'])) $this->PublicAccessGuid = $o['PublicAccessGuid'];
        if (isset($o['IsPayment'])) $this->IsPayment = $o['IsPayment'];
        if (isset($o['IsPayOff'])) $this->IsPayOff = $o['IsPayOff'];
        if (isset($o['IsEnabled'])) $this->IsEnabled = $o['IsEnabled'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->CampaignsId)) $o['CampaignsId'] = $this->CampaignsId;
        if (isset($this->ActionsId)) $o['ActionsId'] = $this->ActionsId;
        if (isset($this->ButtonName)) $o['ButtonName'] = $this->ButtonName;
        if (isset($this->ActionTypesId)) $o['ActionTypesId'] = $this->ActionTypesId;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->OfferOrder)) $o['OfferOrder'] = $this->OfferOrder;
        if (isset($this->StandOut)) $o['StandOut'] = $this->StandOut;
        if (isset($this->PublicAccessGuid)) $o['PublicAccessGuid'] = $this->PublicAccessGuid;
        if (isset($this->IsPayment)) $o['IsPayment'] = $this->IsPayment;
        if (isset($this->IsPayOff)) $o['IsPayOff'] = $this->IsPayOff;
        if (isset($this->IsEnabled)) $o['IsEnabled'] = $this->IsEnabled;
        return empty($o) ? new class(){} : $o;
    }
}

class Campaigns implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

        // @DataMember(Order=2)
        // @Required()
        /** @var int */
        public int $TenantsId=0,

        // @DataMember(Order=3)
        // @Required()
        /** @var string */
        public string $Name='',

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

        // @DataMember(Order=5)
        // @References("typeof(digitaluapi.ServiceModel.Types.Avatars)")
        /** @var int|null */
        public ?int $AvatarsId=null,

        // @DataMember(Order=6)
        // @References("typeof(digitaluapi.ServiceModel.Types.Schedules)")
        /** @var int|null */
        public ?int $SchedulesId=null,

        // @DataMember(Order=7)
        // @References("typeof(digitaluapi.ServiceModel.Types.MessageTones)")
        /** @var int|null */
        public ?int $MessageTonesId=null,

        // @DataMember(Order=8)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.StatusCodes)")
        /** @var int */
        public int $StatusCodesId=0,

        // @DataMember(Order=9)
        // @Required()
        /** @var string */
        public string $PublicAccessGuid='',

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

        // @DataMember(Order=11)
        /** @var array<CampaignActionsView>|null */
        public ?array $CampaignActions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['TenantsId'])) $this->TenantsId = $o['TenantsId'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['AvatarsId'])) $this->AvatarsId = $o['AvatarsId'];
        if (isset($o['SchedulesId'])) $this->SchedulesId = $o['SchedulesId'];
        if (isset($o['MessageTonesId'])) $this->MessageTonesId = $o['MessageTonesId'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['PublicAccessGuid'])) $this->PublicAccessGuid = $o['PublicAccessGuid'];
        if (isset($o['ViewHeading'])) $this->ViewHeading = $o['ViewHeading'];
        if (isset($o['CampaignActions'])) $this->CampaignActions = JsonConverters::fromArray('CampaignActionsView', $o['CampaignActions']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->TenantsId)) $o['TenantsId'] = $this->TenantsId;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->AvatarsId)) $o['AvatarsId'] = $this->AvatarsId;
        if (isset($this->SchedulesId)) $o['SchedulesId'] = $this->SchedulesId;
        if (isset($this->MessageTonesId)) $o['MessageTonesId'] = $this->MessageTonesId;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->PublicAccessGuid)) $o['PublicAccessGuid'] = $this->PublicAccessGuid;
        if (isset($this->ViewHeading)) $o['ViewHeading'] = $this->ViewHeading;
        if (isset($this->CampaignActions)) $o['CampaignActions'] = JsonConverters::toArray('CampaignActionsView', $this->CampaignActions);
        return empty($o) ? new class(){} : $o;
    }
}

class Customers implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

        // @DataMember(Order=2)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.Tenants)")
        /** @var int */
        public int $TenantsId=0,

        // @DataMember(Order=3)
        // @References("typeof(digitaluapi.ServiceModel.Types.AppUser)")
        /** @var int|null */
        public ?int $UserAuthId=null,

        // @DataMember(Order=4)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.Segments)")
        /** @var int */
        public int $SegmentsId=0,

        // @DataMember(Order=5)
        // @References("typeof(digitaluapi.ServiceModel.Types.Companies)")
        /** @var int|null */
        public ?int $CompaniesId=null,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        // @DataMember(Order=26)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.StatusCodes)")
        /** @var int */
        public int $StatusCodesId=0,

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

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

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

        // @DataMember(Order=31)
        // @Computed()
        /** @var string */
        public string $PublicAccessGuid='',

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

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

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

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

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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['TenantsId'])) $this->TenantsId = $o['TenantsId'];
        if (isset($o['UserAuthId'])) $this->UserAuthId = $o['UserAuthId'];
        if (isset($o['SegmentsId'])) $this->SegmentsId = $o['SegmentsId'];
        if (isset($o['CompaniesId'])) $this->CompaniesId = $o['CompaniesId'];
        if (isset($o['CurrenciesId'])) $this->CurrenciesId = $o['CurrenciesId'];
        if (isset($o['Address'])) $this->Address = $o['Address'];
        if (isset($o['Age'])) $this->Age = $o['Age'];
        if (isset($o['City'])) $this->City = $o['City'];
        if (isset($o['ContactNumber'])) $this->ContactNumber = $o['ContactNumber'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['EthnicGroup'])) $this->EthnicGroup = $o['EthnicGroup'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['Gender'])) $this->Gender = $o['Gender'];
        if (isset($o['HomeLanguage'])) $this->HomeLanguage = $o['HomeLanguage'];
        if (isset($o['IdNumber'])) $this->IdNumber = $o['IdNumber'];
        if (isset($o['LastName'])) $this->LastName = $o['LastName'];
        if (isset($o['PostalCode'])) $this->PostalCode = $o['PostalCode'];
        if (isset($o['Region'])) $this->Region = $o['Region'];
        if (isset($o['Suburb'])) $this->Suburb = $o['Suburb'];
        if (isset($o['UniqueIdentifier'])) $this->UniqueIdentifier = $o['UniqueIdentifier'];
        if (isset($o['BirthDate'])) $this->BirthDate = JsonConverters::from('DateTime', $o['BirthDate']);
        if (isset($o['Classifications'])) $this->Classifications = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Classifications']);
        if (isset($o['Country'])) $this->Country = $o['Country'];
        if (isset($o['PassportNumber'])) $this->PassportNumber = $o['PassportNumber'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['Reason'])) $this->Reason = $o['Reason'];
        if (isset($o['VulnerabilityFlag'])) $this->VulnerabilityFlag = $o['VulnerabilityFlag'];
        if (isset($o['Meta'])) $this->Meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Meta']);
        if (isset($o['PublicAccessGuid'])) $this->PublicAccessGuid = $o['PublicAccessGuid'];
        if (isset($o['CustomField1'])) $this->CustomField1 = $o['CustomField1'];
        if (isset($o['CustomField2'])) $this->CustomField2 = $o['CustomField2'];
        if (isset($o['CustomField3'])) $this->CustomField3 = $o['CustomField3'];
        if (isset($o['CustomField4'])) $this->CustomField4 = $o['CustomField4'];
        if (isset($o['CustomField5'])) $this->CustomField5 = $o['CustomField5'];
        if (isset($o['CustomField6'])) $this->CustomField6 = $o['CustomField6'];
        if (isset($o['CustomField7'])) $this->CustomField7 = $o['CustomField7'];
        if (isset($o['CustomField8'])) $this->CustomField8 = $o['CustomField8'];
        if (isset($o['CustomField9'])) $this->CustomField9 = $o['CustomField9'];
        if (isset($o['CustomField10'])) $this->CustomField10 = $o['CustomField10'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->TenantsId)) $o['TenantsId'] = $this->TenantsId;
        if (isset($this->UserAuthId)) $o['UserAuthId'] = $this->UserAuthId;
        if (isset($this->SegmentsId)) $o['SegmentsId'] = $this->SegmentsId;
        if (isset($this->CompaniesId)) $o['CompaniesId'] = $this->CompaniesId;
        if (isset($this->CurrenciesId)) $o['CurrenciesId'] = $this->CurrenciesId;
        if (isset($this->Address)) $o['Address'] = $this->Address;
        if (isset($this->Age)) $o['Age'] = $this->Age;
        if (isset($this->City)) $o['City'] = $this->City;
        if (isset($this->ContactNumber)) $o['ContactNumber'] = $this->ContactNumber;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->EthnicGroup)) $o['EthnicGroup'] = $this->EthnicGroup;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->Gender)) $o['Gender'] = $this->Gender;
        if (isset($this->HomeLanguage)) $o['HomeLanguage'] = $this->HomeLanguage;
        if (isset($this->IdNumber)) $o['IdNumber'] = $this->IdNumber;
        if (isset($this->LastName)) $o['LastName'] = $this->LastName;
        if (isset($this->PostalCode)) $o['PostalCode'] = $this->PostalCode;
        if (isset($this->Region)) $o['Region'] = $this->Region;
        if (isset($this->Suburb)) $o['Suburb'] = $this->Suburb;
        if (isset($this->UniqueIdentifier)) $o['UniqueIdentifier'] = $this->UniqueIdentifier;
        if (isset($this->BirthDate)) $o['BirthDate'] = JsonConverters::to('DateTime', $this->BirthDate);
        if (isset($this->Classifications)) $o['Classifications'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Classifications);
        if (isset($this->Country)) $o['Country'] = $this->Country;
        if (isset($this->PassportNumber)) $o['PassportNumber'] = $this->PassportNumber;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->Reason)) $o['Reason'] = $this->Reason;
        if (isset($this->VulnerabilityFlag)) $o['VulnerabilityFlag'] = $this->VulnerabilityFlag;
        if (isset($this->Meta)) $o['Meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Meta);
        if (isset($this->PublicAccessGuid)) $o['PublicAccessGuid'] = $this->PublicAccessGuid;
        if (isset($this->CustomField1)) $o['CustomField1'] = $this->CustomField1;
        if (isset($this->CustomField2)) $o['CustomField2'] = $this->CustomField2;
        if (isset($this->CustomField3)) $o['CustomField3'] = $this->CustomField3;
        if (isset($this->CustomField4)) $o['CustomField4'] = $this->CustomField4;
        if (isset($this->CustomField5)) $o['CustomField5'] = $this->CustomField5;
        if (isset($this->CustomField6)) $o['CustomField6'] = $this->CustomField6;
        if (isset($this->CustomField7)) $o['CustomField7'] = $this->CustomField7;
        if (isset($this->CustomField8)) $o['CustomField8'] = $this->CustomField8;
        if (isset($this->CustomField9)) $o['CustomField9'] = $this->CustomField9;
        if (isset($this->CustomField10)) $o['CustomField10'] = $this->CustomField10;
        return empty($o) ? new class(){} : $o;
    }
}

class CampaignInstanceComms implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

        // @DataMember(Order=2)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.CampaignInstanceCustomers)")
        /** @var int */
        public int $CampaignInstanceCustomersId=0,

        // @DataMember(Order=3)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.Channels)")
        /** @var int */
        public int $ChannelsId=0,

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

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

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

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

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

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

        // @DataMember(Order=10)
        // @Required()
        /** @var string */
        public string $PublicAccessGuid='',

        // @DataMember(Order=11)
        // @Required()
        // @References("typeof(digitaluapi.ServiceModel.Types.Campaigns)")
        /** @var int */
        public int $CampaignsId=0,

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

        // @DataMember(Order=13)
        // @Required()
        /** @var bool|null */
        public ?bool $IsPaymentCampaign=null,

        // @DataMember(Order=14)
        // @References("typeof(digitaluapi.ServiceModel.Types.SchedulesInstances)")
        /** @var int|null */
        public ?int $ScheduleInstancesId=null,

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

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

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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['CampaignInstanceCustomersId'])) $this->CampaignInstanceCustomersId = $o['CampaignInstanceCustomersId'];
        if (isset($o['ChannelsId'])) $this->ChannelsId = $o['ChannelsId'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['MobileNumber'])) $this->MobileNumber = $o['MobileNumber'];
        if (isset($o['EmailAttachmentTemplate'])) $this->EmailAttachmentTemplate = $o['EmailAttachmentTemplate'];
        if (isset($o['EmailTemplate'])) $this->EmailTemplate = $o['EmailTemplate'];
        if (isset($o['EmailHtmlTemplate'])) $this->EmailHtmlTemplate = $o['EmailHtmlTemplate'];
        if (isset($o['SmsTemplate'])) $this->SmsTemplate = $o['SmsTemplate'];
        if (isset($o['PublicAccessGuid'])) $this->PublicAccessGuid = $o['PublicAccessGuid'];
        if (isset($o['CampaignsId'])) $this->CampaignsId = $o['CampaignsId'];
        if (isset($o['DebtsId'])) $this->DebtsId = $o['DebtsId'];
        if (isset($o['IsPaymentCampaign'])) $this->IsPaymentCampaign = $o['IsPaymentCampaign'];
        if (isset($o['ScheduleInstancesId'])) $this->ScheduleInstancesId = $o['ScheduleInstancesId'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['EmailTemplatesId'])) $this->EmailTemplatesId = $o['EmailTemplatesId'];
        if (isset($o['AvatarTemplateText'])) $this->AvatarTemplateText = $o['AvatarTemplateText'];
        if (isset($o['HeadingTemplateText'])) $this->HeadingTemplateText = $o['HeadingTemplateText'];
        if (isset($o['SubheadingTemplateText'])) $this->SubheadingTemplateText = $o['SubheadingTemplateText'];
        if (isset($o['Sent'])) $this->Sent = $o['Sent'];
        if (isset($o['Failed'])) $this->Failed = $o['Failed'];
        if (isset($o['CommsUrl'])) $this->CommsUrl = $o['CommsUrl'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->CampaignInstanceCustomersId)) $o['CampaignInstanceCustomersId'] = $this->CampaignInstanceCustomersId;
        if (isset($this->ChannelsId)) $o['ChannelsId'] = $this->ChannelsId;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->MobileNumber)) $o['MobileNumber'] = $this->MobileNumber;
        if (isset($this->EmailAttachmentTemplate)) $o['EmailAttachmentTemplate'] = $this->EmailAttachmentTemplate;
        if (isset($this->EmailTemplate)) $o['EmailTemplate'] = $this->EmailTemplate;
        if (isset($this->EmailHtmlTemplate)) $o['EmailHtmlTemplate'] = $this->EmailHtmlTemplate;
        if (isset($this->SmsTemplate)) $o['SmsTemplate'] = $this->SmsTemplate;
        if (isset($this->PublicAccessGuid)) $o['PublicAccessGuid'] = $this->PublicAccessGuid;
        if (isset($this->CampaignsId)) $o['CampaignsId'] = $this->CampaignsId;
        if (isset($this->DebtsId)) $o['DebtsId'] = $this->DebtsId;
        if (isset($this->IsPaymentCampaign)) $o['IsPaymentCampaign'] = $this->IsPaymentCampaign;
        if (isset($this->ScheduleInstancesId)) $o['ScheduleInstancesId'] = $this->ScheduleInstancesId;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->EmailTemplatesId)) $o['EmailTemplatesId'] = $this->EmailTemplatesId;
        if (isset($this->AvatarTemplateText)) $o['AvatarTemplateText'] = $this->AvatarTemplateText;
        if (isset($this->HeadingTemplateText)) $o['HeadingTemplateText'] = $this->HeadingTemplateText;
        if (isset($this->SubheadingTemplateText)) $o['SubheadingTemplateText'] = $this->SubheadingTemplateText;
        if (isset($this->Sent)) $o['Sent'] = $this->Sent;
        if (isset($this->Failed)) $o['Failed'] = $this->Failed;
        if (isset($this->CommsUrl)) $o['CommsUrl'] = $this->CommsUrl;
        return empty($o) ? new class(){} : $o;
    }
}

class EmailEventsView implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var int|null */
        public ?int $Id=null,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        // @DataMember(Order=38)
        /** @var int|null */
        public ?int $CampaignsId=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['TimestampDate'])) $this->TimestampDate = JsonConverters::from('DateTimeOffset', $o['TimestampDate']);
        if (isset($o['Event'])) $this->Event = $o['Event'];
        if (isset($o['Category'])) $this->Category = $o['Category'];
        if (isset($o['SgEventId'])) $this->SgEventId = $o['SgEventId'];
        if (isset($o['SgMessageId'])) $this->SgMessageId = $o['SgMessageId'];
        if (isset($o['UserAgent'])) $this->UserAgent = $o['UserAgent'];
        if (isset($o['Ipaddress'])) $this->Ipaddress = $o['Ipaddress'];
        if (isset($o['Url'])) $this->Url = $o['Url'];
        if (isset($o['CampaignInstanceCommsId'])) $this->CampaignInstanceCommsId = $o['CampaignInstanceCommsId'];
        if (isset($o['TenantsId'])) $this->TenantsId = $o['TenantsId'];
        if (isset($o['SegmentsId'])) $this->SegmentsId = $o['SegmentsId'];
        if (isset($o['Address'])) $this->Address = $o['Address'];
        if (isset($o['Age'])) $this->Age = $o['Age'];
        if (isset($o['City'])) $this->City = $o['City'];
        if (isset($o['ContactNumber'])) $this->ContactNumber = $o['ContactNumber'];
        if (isset($o['EthnicGroup'])) $this->EthnicGroup = $o['EthnicGroup'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['Gender'])) $this->Gender = $o['Gender'];
        if (isset($o['HomeLanguage'])) $this->HomeLanguage = $o['HomeLanguage'];
        if (isset($o['IdNumber'])) $this->IdNumber = $o['IdNumber'];
        if (isset($o['LastName'])) $this->LastName = $o['LastName'];
        if (isset($o['PostalCode'])) $this->PostalCode = $o['PostalCode'];
        if (isset($o['Region'])) $this->Region = $o['Region'];
        if (isset($o['Suburb'])) $this->Suburb = $o['Suburb'];
        if (isset($o['BirthDate'])) $this->BirthDate = JsonConverters::from('DateTime', $o['BirthDate']);
        if (isset($o['Classifications'])) $this->Classifications = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Classifications']);
        if (isset($o['Country'])) $this->Country = $o['Country'];
        if (isset($o['PassportNumber'])) $this->PassportNumber = $o['PassportNumber'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['Reason'])) $this->Reason = $o['Reason'];
        if (isset($o['VulnerabilityFlag'])) $this->VulnerabilityFlag = $o['VulnerabilityFlag'];
        if (isset($o['CompaniesName'])) $this->CompaniesName = $o['CompaniesName'];
        if (isset($o['SegmentsName'])) $this->SegmentsName = $o['SegmentsName'];
        if (isset($o['SegmentsIsCustom'])) $this->SegmentsIsCustom = $o['SegmentsIsCustom'];
        if (isset($o['StatusCodesDescription'])) $this->StatusCodesDescription = $o['StatusCodesDescription'];
        if (isset($o['CampaignsId'])) $this->CampaignsId = $o['CampaignsId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->TimestampDate)) $o['TimestampDate'] = JsonConverters::to('DateTimeOffset', $this->TimestampDate);
        if (isset($this->Event)) $o['Event'] = $this->Event;
        if (isset($this->Category)) $o['Category'] = $this->Category;
        if (isset($this->SgEventId)) $o['SgEventId'] = $this->SgEventId;
        if (isset($this->SgMessageId)) $o['SgMessageId'] = $this->SgMessageId;
        if (isset($this->UserAgent)) $o['UserAgent'] = $this->UserAgent;
        if (isset($this->Ipaddress)) $o['Ipaddress'] = $this->Ipaddress;
        if (isset($this->Url)) $o['Url'] = $this->Url;
        if (isset($this->CampaignInstanceCommsId)) $o['CampaignInstanceCommsId'] = $this->CampaignInstanceCommsId;
        if (isset($this->TenantsId)) $o['TenantsId'] = $this->TenantsId;
        if (isset($this->SegmentsId)) $o['SegmentsId'] = $this->SegmentsId;
        if (isset($this->Address)) $o['Address'] = $this->Address;
        if (isset($this->Age)) $o['Age'] = $this->Age;
        if (isset($this->City)) $o['City'] = $this->City;
        if (isset($this->ContactNumber)) $o['ContactNumber'] = $this->ContactNumber;
        if (isset($this->EthnicGroup)) $o['EthnicGroup'] = $this->EthnicGroup;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->Gender)) $o['Gender'] = $this->Gender;
        if (isset($this->HomeLanguage)) $o['HomeLanguage'] = $this->HomeLanguage;
        if (isset($this->IdNumber)) $o['IdNumber'] = $this->IdNumber;
        if (isset($this->LastName)) $o['LastName'] = $this->LastName;
        if (isset($this->PostalCode)) $o['PostalCode'] = $this->PostalCode;
        if (isset($this->Region)) $o['Region'] = $this->Region;
        if (isset($this->Suburb)) $o['Suburb'] = $this->Suburb;
        if (isset($this->BirthDate)) $o['BirthDate'] = JsonConverters::to('DateTime', $this->BirthDate);
        if (isset($this->Classifications)) $o['Classifications'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Classifications);
        if (isset($this->Country)) $o['Country'] = $this->Country;
        if (isset($this->PassportNumber)) $o['PassportNumber'] = $this->PassportNumber;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->Reason)) $o['Reason'] = $this->Reason;
        if (isset($this->VulnerabilityFlag)) $o['VulnerabilityFlag'] = $this->VulnerabilityFlag;
        if (isset($this->CompaniesName)) $o['CompaniesName'] = $this->CompaniesName;
        if (isset($this->SegmentsName)) $o['SegmentsName'] = $this->SegmentsName;
        if (isset($this->SegmentsIsCustom)) $o['SegmentsIsCustom'] = $this->SegmentsIsCustom;
        if (isset($this->StatusCodesDescription)) $o['StatusCodesDescription'] = $this->StatusCodesDescription;
        if (isset($this->CampaignsId)) $o['CampaignsId'] = $this->CampaignsId;
        return empty($o) ? new class(){} : $o;
    }
}

class SmsWatsappEventsView implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var int|null */
        public ?int $Id=null,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        // @DataMember(Order=40)
        /** @var int|null */
        public ?int $CustomersId=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['CampaignInstancesCommsId'])) $this->CampaignInstancesCommsId = $o['CampaignInstancesCommsId'];
        if (isset($o['RawJson'])) $this->RawJson = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['RawJson']);
        if (isset($o['IntegrationId'])) $this->IntegrationId = $o['IntegrationId'];
        if (isset($o['IntegrationName'])) $this->IntegrationName = $o['IntegrationName'];
        if (isset($o['Channel'])) $this->Channel = $o['Channel'];
        if (isset($o['Timestamp'])) $this->Timestamp = $o['Timestamp'];
        if (isset($o['TimestampDate'])) $this->TimestampDate = JsonConverters::from('DateTimeOffset', $o['TimestampDate']);
        if (isset($o['StatusCode'])) $this->StatusCode = $o['StatusCode'];
        if (isset($o['Status'])) $this->Status = $o['Status'];
        if (isset($o['MessageId'])) $this->MessageId = $o['MessageId'];
        if (isset($o['ClientMessageId'])) $this->ClientMessageId = $o['ClientMessageId'];
        if (isset($o['TenantsId'])) $this->TenantsId = $o['TenantsId'];
        if (isset($o['SegmentsId'])) $this->SegmentsId = $o['SegmentsId'];
        if (isset($o['Address'])) $this->Address = $o['Address'];
        if (isset($o['Age'])) $this->Age = $o['Age'];
        if (isset($o['City'])) $this->City = $o['City'];
        if (isset($o['ContactNumber'])) $this->ContactNumber = $o['ContactNumber'];
        if (isset($o['EthnicGroup'])) $this->EthnicGroup = $o['EthnicGroup'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['Gender'])) $this->Gender = $o['Gender'];
        if (isset($o['HomeLanguage'])) $this->HomeLanguage = $o['HomeLanguage'];
        if (isset($o['IdNumber'])) $this->IdNumber = $o['IdNumber'];
        if (isset($o['LastName'])) $this->LastName = $o['LastName'];
        if (isset($o['PostalCode'])) $this->PostalCode = $o['PostalCode'];
        if (isset($o['Region'])) $this->Region = $o['Region'];
        if (isset($o['Suburb'])) $this->Suburb = $o['Suburb'];
        if (isset($o['BirthDate'])) $this->BirthDate = JsonConverters::from('DateTime', $o['BirthDate']);
        if (isset($o['Classifications'])) $this->Classifications = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Classifications']);
        if (isset($o['Country'])) $this->Country = $o['Country'];
        if (isset($o['PassportNumber'])) $this->PassportNumber = $o['PassportNumber'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['Reason'])) $this->Reason = $o['Reason'];
        if (isset($o['VulnerabilityFlag'])) $this->VulnerabilityFlag = $o['VulnerabilityFlag'];
        if (isset($o['CompaniesName'])) $this->CompaniesName = $o['CompaniesName'];
        if (isset($o['SegmentsName'])) $this->SegmentsName = $o['SegmentsName'];
        if (isset($o['SegmentsIsCustom'])) $this->SegmentsIsCustom = $o['SegmentsIsCustom'];
        if (isset($o['StatusCodesDescription'])) $this->StatusCodesDescription = $o['StatusCodesDescription'];
        if (isset($o['CampaignsId'])) $this->CampaignsId = $o['CampaignsId'];
        if (isset($o['CustomersId'])) $this->CustomersId = $o['CustomersId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->CampaignInstancesCommsId)) $o['CampaignInstancesCommsId'] = $this->CampaignInstancesCommsId;
        if (isset($this->RawJson)) $o['RawJson'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->RawJson);
        if (isset($this->IntegrationId)) $o['IntegrationId'] = $this->IntegrationId;
        if (isset($this->IntegrationName)) $o['IntegrationName'] = $this->IntegrationName;
        if (isset($this->Channel)) $o['Channel'] = $this->Channel;
        if (isset($this->Timestamp)) $o['Timestamp'] = $this->Timestamp;
        if (isset($this->TimestampDate)) $o['TimestampDate'] = JsonConverters::to('DateTimeOffset', $this->TimestampDate);
        if (isset($this->StatusCode)) $o['StatusCode'] = $this->StatusCode;
        if (isset($this->Status)) $o['Status'] = $this->Status;
        if (isset($this->MessageId)) $o['MessageId'] = $this->MessageId;
        if (isset($this->ClientMessageId)) $o['ClientMessageId'] = $this->ClientMessageId;
        if (isset($this->TenantsId)) $o['TenantsId'] = $this->TenantsId;
        if (isset($this->SegmentsId)) $o['SegmentsId'] = $this->SegmentsId;
        if (isset($this->Address)) $o['Address'] = $this->Address;
        if (isset($this->Age)) $o['Age'] = $this->Age;
        if (isset($this->City)) $o['City'] = $this->City;
        if (isset($this->ContactNumber)) $o['ContactNumber'] = $this->ContactNumber;
        if (isset($this->EthnicGroup)) $o['EthnicGroup'] = $this->EthnicGroup;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->Gender)) $o['Gender'] = $this->Gender;
        if (isset($this->HomeLanguage)) $o['HomeLanguage'] = $this->HomeLanguage;
        if (isset($this->IdNumber)) $o['IdNumber'] = $this->IdNumber;
        if (isset($this->LastName)) $o['LastName'] = $this->LastName;
        if (isset($this->PostalCode)) $o['PostalCode'] = $this->PostalCode;
        if (isset($this->Region)) $o['Region'] = $this->Region;
        if (isset($this->Suburb)) $o['Suburb'] = $this->Suburb;
        if (isset($this->BirthDate)) $o['BirthDate'] = JsonConverters::to('DateTime', $this->BirthDate);
        if (isset($this->Classifications)) $o['Classifications'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Classifications);
        if (isset($this->Country)) $o['Country'] = $this->Country;
        if (isset($this->PassportNumber)) $o['PassportNumber'] = $this->PassportNumber;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->Reason)) $o['Reason'] = $this->Reason;
        if (isset($this->VulnerabilityFlag)) $o['VulnerabilityFlag'] = $this->VulnerabilityFlag;
        if (isset($this->CompaniesName)) $o['CompaniesName'] = $this->CompaniesName;
        if (isset($this->SegmentsName)) $o['SegmentsName'] = $this->SegmentsName;
        if (isset($this->SegmentsIsCustom)) $o['SegmentsIsCustom'] = $this->SegmentsIsCustom;
        if (isset($this->StatusCodesDescription)) $o['StatusCodesDescription'] = $this->StatusCodesDescription;
        if (isset($this->CampaignsId)) $o['CampaignsId'] = $this->CampaignsId;
        if (isset($this->CustomersId)) $o['CustomersId'] = $this->CustomersId;
        return empty($o) ? new class(){} : $o;
    }
}

class CampaignInstanceCommsStats implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

        // @DataMember(Order=2)
        // @Required()
        /** @var int */
        public int $CampaignInstanceCommsId=0,

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

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

class CampaignInstanceCommsDetails implements JsonSerializable
{
    public function __construct(
        /** @var CampaignInstanceComms|null */
        public ?CampaignInstanceComms $CampaignInstanceComms=null,
        /** @var array<EmailEventsView>|null */
        public ?array $EmailEvents=null,
        /** @var array<SmsWatsappEventsView>|null */
        public ?array $SmsWatsappEvents=null,
        /** @var array<CampaignInstanceCommsStats>|null */
        public ?array $CampaignInstanceCommsStats=null
    ) {
    }

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

class GetCampaignCustomerCertificateResponse implements JsonSerializable
{
    public function __construct(
        /** @var Campaigns|null */
        public ?Campaigns $Campaign=null,
        /** @var Customers|null */
        public ?Customers $Customer=null,
        /** @var array<CampaignInstanceCommsDetails>|null */
        public ?array $CampaignInstanceCommsDetails=null,
        /** @var ResponseStatus|null */
        public ?ResponseStatus $ResponseStatus=null
    ) {
    }

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

class GetCampaignCustomerCertificateByCommsGuid implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $CampaignInstanceCommsPublicAccessGuid=''
    ) {
    }

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

PHP GetCampaignCustomerCertificateByCommsGuid DTOs

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

HTTP + XML

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

GET /campaign/certbycommsguid/{CampaignInstanceCommsPublicAccessGuid} HTTP/1.1 
Host: duengageapi.uat.scadsoftware.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetCampaignCustomerCertificateResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel">
  <Campaign xmlns:d2p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
    <d2p1:AvatarsId>0</d2p1:AvatarsId>
    <d2p1:CampaignActions>
      <d2p1:CampaignActionsView>
        <d2p1:ActionTypesId>0</d2p1:ActionTypesId>
        <d2p1:ActionsId>0</d2p1:ActionsId>
        <d2p1:ButtonName>String</d2p1:ButtonName>
        <d2p1:CampaignsId>0</d2p1:CampaignsId>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:Id>0</d2p1:Id>
        <d2p1:IsEnabled>false</d2p1:IsEnabled>
        <d2p1:IsPayOff>false</d2p1:IsPayOff>
        <d2p1:IsPayment>false</d2p1:IsPayment>
        <d2p1:OfferOrder>0</d2p1:OfferOrder>
        <d2p1:PublicAccessGuid>00000000-0000-0000-0000-000000000000</d2p1:PublicAccessGuid>
        <d2p1:StandOut>false</d2p1:StandOut>
      </d2p1:CampaignActionsView>
    </d2p1:CampaignActions>
    <d2p1:Description>String</d2p1:Description>
    <d2p1:Id>0</d2p1:Id>
    <d2p1:MessageTonesId>0</d2p1:MessageTonesId>
    <d2p1:Name>String</d2p1:Name>
    <d2p1:PublicAccessGuid>00000000-0000-0000-0000-000000000000</d2p1:PublicAccessGuid>
    <d2p1:SchedulesId>0</d2p1:SchedulesId>
    <d2p1:StatusCodesId>0</d2p1:StatusCodesId>
    <d2p1:TenantsId>0</d2p1:TenantsId>
    <d2p1:ViewHeading>String</d2p1:ViewHeading>
  </Campaign>
  <CampaignInstanceCommsDetails>
    <CampaignInstanceCommsDetails>
      <CampaignInstanceComms xmlns:d4p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
        <d4p1:AvatarTemplateText>String</d4p1:AvatarTemplateText>
        <d4p1:CampaignInstanceCustomersId>0</d4p1:CampaignInstanceCustomersId>
        <d4p1:CampaignsId>0</d4p1:CampaignsId>
        <d4p1:ChannelsId>0</d4p1:ChannelsId>
        <d4p1:CommsUrl>String</d4p1:CommsUrl>
        <d4p1:DebtsId>0</d4p1:DebtsId>
        <d4p1:Email>String</d4p1:Email>
        <d4p1:EmailAttachmentTemplate>String</d4p1:EmailAttachmentTemplate>
        <d4p1:EmailHtmlTemplate>String</d4p1:EmailHtmlTemplate>
        <d4p1:EmailTemplate>String</d4p1:EmailTemplate>
        <d4p1:EmailTemplatesId>0</d4p1:EmailTemplatesId>
        <d4p1:Failed>false</d4p1:Failed>
        <d4p1:HeadingTemplateText>String</d4p1:HeadingTemplateText>
        <d4p1:Id>0</d4p1:Id>
        <d4p1:IsPaymentCampaign>false</d4p1:IsPaymentCampaign>
        <d4p1:MobileNumber>String</d4p1:MobileNumber>
        <d4p1:PublicAccessGuid>00000000-0000-0000-0000-000000000000</d4p1:PublicAccessGuid>
        <d4p1:ScheduleInstancesId>0</d4p1:ScheduleInstancesId>
        <d4p1:Sent>false</d4p1:Sent>
        <d4p1:SmsTemplate>String</d4p1:SmsTemplate>
        <d4p1:StatusCodesId>0</d4p1:StatusCodesId>
        <d4p1:SubheadingTemplateText>String</d4p1:SubheadingTemplateText>
      </CampaignInstanceComms>
      <CampaignInstanceCommsStats xmlns:d4p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
        <d4p1:CampaignInstanceCommsStats>
          <d4p1:CampaignInstanceCommsId>0</d4p1:CampaignInstanceCommsId>
          <d4p1:Id>0</d4p1:Id>
          <d4p1:ViewedDate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System">
            <d6p1:DateTime>0001-01-01T00:00:00Z</d6p1:DateTime>
            <d6p1:OffsetMinutes>0</d6p1:OffsetMinutes>
          </d4p1:ViewedDate>
        </d4p1:CampaignInstanceCommsStats>
      </CampaignInstanceCommsStats>
      <EmailEvents xmlns:d4p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
        <d4p1:EmailEventsView>
          <d4p1:Address>String</d4p1:Address>
          <d4p1:Age>0</d4p1:Age>
          <d4p1:BirthDate>0001-01-01T00:00:00</d4p1:BirthDate>
          <d4p1:CampaignInstanceCommsId>0</d4p1:CampaignInstanceCommsId>
          <d4p1:CampaignsId>0</d4p1:CampaignsId>
          <d4p1:Category>String</d4p1:Category>
          <d4p1:City>String</d4p1:City>
          <d4p1:Classifications xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d4p1:Classifications>
          <d4p1:CompaniesName>String</d4p1:CompaniesName>
          <d4p1:ContactNumber>String</d4p1:ContactNumber>
          <d4p1:Country>String</d4p1:Country>
          <d4p1:Email>String</d4p1:Email>
          <d4p1:EthnicGroup>String</d4p1:EthnicGroup>
          <d4p1:Event>String</d4p1:Event>
          <d4p1:FirstName>String</d4p1:FirstName>
          <d4p1:Gender>String</d4p1:Gender>
          <d4p1:HomeLanguage>String</d4p1:HomeLanguage>
          <d4p1:Id>0</d4p1:Id>
          <d4p1:IdNumber>String</d4p1:IdNumber>
          <d4p1:Ipaddress>String</d4p1:Ipaddress>
          <d4p1:LastName>String</d4p1:LastName>
          <d4p1:PassportNumber>String</d4p1:PassportNumber>
          <d4p1:PostalCode>String</d4p1:PostalCode>
          <d4p1:Reason>String</d4p1:Reason>
          <d4p1:Region>String</d4p1:Region>
          <d4p1:SegmentsId>0</d4p1:SegmentsId>
          <d4p1:SegmentsIsCustom>false</d4p1:SegmentsIsCustom>
          <d4p1:SegmentsName>String</d4p1:SegmentsName>
          <d4p1:SgEventId>String</d4p1:SgEventId>
          <d4p1:SgMessageId>String</d4p1:SgMessageId>
          <d4p1:StatusCodesDescription>String</d4p1:StatusCodesDescription>
          <d4p1:StatusCodesId>0</d4p1:StatusCodesId>
          <d4p1:Suburb>String</d4p1:Suburb>
          <d4p1:TenantsId>0</d4p1:TenantsId>
          <d4p1:TimestampDate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System">
            <d6p1:DateTime>0001-01-01T00:00:00Z</d6p1:DateTime>
            <d6p1:OffsetMinutes>0</d6p1:OffsetMinutes>
          </d4p1:TimestampDate>
          <d4p1:Url>String</d4p1:Url>
          <d4p1:UserAgent>String</d4p1:UserAgent>
          <d4p1:VulnerabilityFlag>false</d4p1:VulnerabilityFlag>
        </d4p1:EmailEventsView>
      </EmailEvents>
      <SmsWatsappEvents xmlns:d4p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
        <d4p1:SmsWatsappEventsView>
          <d4p1:Address>String</d4p1:Address>
          <d4p1:Age>0</d4p1:Age>
          <d4p1:BirthDate>0001-01-01T00:00:00</d4p1:BirthDate>
          <d4p1:CampaignInstancesCommsId>0</d4p1:CampaignInstancesCommsId>
          <d4p1:CampaignsId>0</d4p1:CampaignsId>
          <d4p1:Channel>String</d4p1:Channel>
          <d4p1:City>String</d4p1:City>
          <d4p1:Classifications xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d4p1:Classifications>
          <d4p1:ClientMessageId>String</d4p1:ClientMessageId>
          <d4p1:CompaniesName>String</d4p1:CompaniesName>
          <d4p1:ContactNumber>String</d4p1:ContactNumber>
          <d4p1:Country>String</d4p1:Country>
          <d4p1:CustomersId>0</d4p1:CustomersId>
          <d4p1:EthnicGroup>String</d4p1:EthnicGroup>
          <d4p1:FirstName>String</d4p1:FirstName>
          <d4p1:Gender>String</d4p1:Gender>
          <d4p1:HomeLanguage>String</d4p1:HomeLanguage>
          <d4p1:Id>0</d4p1:Id>
          <d4p1:IdNumber>String</d4p1:IdNumber>
          <d4p1:IntegrationId>String</d4p1:IntegrationId>
          <d4p1:IntegrationName>String</d4p1:IntegrationName>
          <d4p1:LastName>String</d4p1:LastName>
          <d4p1:MessageId>String</d4p1:MessageId>
          <d4p1:PassportNumber>String</d4p1:PassportNumber>
          <d4p1:PostalCode>String</d4p1:PostalCode>
          <d4p1:RawJson xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </d4p1:RawJson>
          <d4p1:Reason>String</d4p1:Reason>
          <d4p1:Region>String</d4p1:Region>
          <d4p1:SegmentsId>0</d4p1:SegmentsId>
          <d4p1:SegmentsIsCustom>false</d4p1:SegmentsIsCustom>
          <d4p1:SegmentsName>String</d4p1:SegmentsName>
          <d4p1:Status>String</d4p1:Status>
          <d4p1:StatusCode>0</d4p1:StatusCode>
          <d4p1:StatusCodesDescription>String</d4p1:StatusCodesDescription>
          <d4p1:StatusCodesId>0</d4p1:StatusCodesId>
          <d4p1:Suburb>String</d4p1:Suburb>
          <d4p1:TenantsId>0</d4p1:TenantsId>
          <d4p1:Timestamp>0</d4p1:Timestamp>
          <d4p1:TimestampDate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System">
            <d6p1:DateTime>0001-01-01T00:00:00Z</d6p1:DateTime>
            <d6p1:OffsetMinutes>0</d6p1:OffsetMinutes>
          </d4p1:TimestampDate>
          <d4p1:VulnerabilityFlag>false</d4p1:VulnerabilityFlag>
        </d4p1:SmsWatsappEventsView>
      </SmsWatsappEvents>
    </CampaignInstanceCommsDetails>
  </CampaignInstanceCommsDetails>
  <Customer xmlns:d2p1="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel.Types">
    <d2p1:Address>String</d2p1:Address>
    <d2p1:Age>0</d2p1:Age>
    <d2p1:BirthDate>0001-01-01T00:00:00</d2p1:BirthDate>
    <d2p1:City>String</d2p1:City>
    <d2p1:Classifications xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Classifications>
    <d2p1:CompaniesId>0</d2p1:CompaniesId>
    <d2p1:ContactNumber>String</d2p1:ContactNumber>
    <d2p1:Country>String</d2p1:Country>
    <d2p1:CurrenciesId>0</d2p1:CurrenciesId>
    <d2p1:CustomField1>String</d2p1:CustomField1>
    <d2p1:CustomField10>String</d2p1:CustomField10>
    <d2p1:CustomField2>String</d2p1:CustomField2>
    <d2p1:CustomField3>String</d2p1:CustomField3>
    <d2p1:CustomField4>String</d2p1:CustomField4>
    <d2p1:CustomField5>String</d2p1:CustomField5>
    <d2p1:CustomField6>String</d2p1:CustomField6>
    <d2p1:CustomField7>String</d2p1:CustomField7>
    <d2p1:CustomField8>String</d2p1:CustomField8>
    <d2p1:CustomField9>String</d2p1:CustomField9>
    <d2p1:Email>String</d2p1:Email>
    <d2p1:EthnicGroup>String</d2p1:EthnicGroup>
    <d2p1:FirstName>String</d2p1:FirstName>
    <d2p1:Gender>String</d2p1:Gender>
    <d2p1:HomeLanguage>String</d2p1:HomeLanguage>
    <d2p1:Id>0</d2p1:Id>
    <d2p1:IdNumber>String</d2p1:IdNumber>
    <d2p1:LastName>String</d2p1:LastName>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
    <d2p1:PassportNumber>String</d2p1:PassportNumber>
    <d2p1:PostalCode>String</d2p1:PostalCode>
    <d2p1:PublicAccessGuid>00000000-0000-0000-0000-000000000000</d2p1:PublicAccessGuid>
    <d2p1:Reason>String</d2p1:Reason>
    <d2p1:Region>String</d2p1:Region>
    <d2p1:SegmentsId>0</d2p1:SegmentsId>
    <d2p1:StatusCodesId>0</d2p1:StatusCodesId>
    <d2p1:Suburb>String</d2p1:Suburb>
    <d2p1:TenantsId>0</d2p1:TenantsId>
    <d2p1:UniqueIdentifier>String</d2p1:UniqueIdentifier>
    <d2p1:UserAuthId>0</d2p1:UserAuthId>
    <d2p1:VulnerabilityFlag>false</d2p1:VulnerabilityFlag>
  </Customer>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</GetCampaignCustomerCertificateResponse>