digitaluapi

<back to all web services

GetCampaignCustomerCertificateByCustomerId

The following routes are available for this service:
GET/campaign/certbycustomerguid/{CampaignPublicAccessGuid}/{CustomerPublicAccessGuid}Get Campaign Certificate By Campaign and Customer GUID
import 'package:servicestack/servicestack.dart';
import 'dart:collection';

class CampaignActionsView implements IConvertible
{
    // @DataMember(Order=1)
    // @Required()
    int? Id;

    // @DataMember(Order=2)
    // @Required()
    // @References(typeof(Campaigns))
    int? CampaignsId;

    // @DataMember(Order=3)
    // @References(typeof(Actions))
    int? ActionsId;

    // @DataMember(Order=4)
    String? ButtonName;

    // @DataMember(Order=5)
    // @References(typeof(ActionTypes))
    int? ActionTypesId;

    // @DataMember(Order=6)
    String? Description;

    // @DataMember(Order=7)
    int? OfferOrder;

    // @DataMember(Order=8)
    bool? StandOut;

    // @DataMember(Order=9)
    // @Required()
    String? PublicAccessGuid;

    // @DataMember(Order=10)
    bool? IsPayment;

    // @DataMember(Order=11)
    bool? IsPayOff;

    // @DataMember(Order=12)
    bool? IsEnabled;

    CampaignActionsView({this.Id,this.CampaignsId,this.ActionsId,this.ButtonName,this.ActionTypesId,this.Description,this.OfferOrder,this.StandOut,this.PublicAccessGuid,this.IsPayment,this.IsPayOff,this.IsEnabled});
    CampaignActionsView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CampaignsId = json['CampaignsId'];
        ActionsId = json['ActionsId'];
        ButtonName = json['ButtonName'];
        ActionTypesId = json['ActionTypesId'];
        Description = json['Description'];
        OfferOrder = json['OfferOrder'];
        StandOut = json['StandOut'];
        PublicAccessGuid = json['PublicAccessGuid'];
        IsPayment = json['IsPayment'];
        IsPayOff = json['IsPayOff'];
        IsEnabled = json['IsEnabled'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CampaignsId': CampaignsId,
        'ActionsId': ActionsId,
        'ButtonName': ButtonName,
        'ActionTypesId': ActionTypesId,
        'Description': Description,
        'OfferOrder': OfferOrder,
        'StandOut': StandOut,
        'PublicAccessGuid': PublicAccessGuid,
        'IsPayment': IsPayment,
        'IsPayOff': IsPayOff,
        'IsEnabled': IsEnabled
    };

    getTypeName() => "CampaignActionsView";
    TypeContext? context = _ctx;
}

class Campaigns implements IConvertible
{
    // @DataMember(Order=1)
    // @Required()
    int? Id;

    // @DataMember(Order=2)
    // @Required()
    int? TenantsId;

    // @DataMember(Order=3)
    // @Required()
    String? Name;

    // @DataMember(Order=4)
    // @Required()
    String? Description;

    // @DataMember(Order=5)
    // @References(typeof(Avatars))
    int? AvatarsId;

    // @DataMember(Order=6)
    // @References(typeof(Schedules))
    int? SchedulesId;

    // @DataMember(Order=7)
    // @References(typeof(MessageTones))
    int? MessageTonesId;

    // @DataMember(Order=8)
    // @Required()
    // @References(typeof(StatusCodes))
    int? StatusCodesId;

    // @DataMember(Order=9)
    // @Required()
    String? PublicAccessGuid;

    // @DataMember(Order=10)
    String? ViewHeading;

    // @DataMember(Order=11)
    List<CampaignActionsView>? CampaignActions;

    Campaigns({this.Id,this.TenantsId,this.Name,this.Description,this.AvatarsId,this.SchedulesId,this.MessageTonesId,this.StatusCodesId,this.PublicAccessGuid,this.ViewHeading,this.CampaignActions});
    Campaigns.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        TenantsId = json['TenantsId'];
        Name = json['Name'];
        Description = json['Description'];
        AvatarsId = json['AvatarsId'];
        SchedulesId = json['SchedulesId'];
        MessageTonesId = json['MessageTonesId'];
        StatusCodesId = json['StatusCodesId'];
        PublicAccessGuid = json['PublicAccessGuid'];
        ViewHeading = json['ViewHeading'];
        CampaignActions = JsonConverters.fromJson(json['CampaignActions'],'List<CampaignActionsView>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'TenantsId': TenantsId,
        'Name': Name,
        'Description': Description,
        'AvatarsId': AvatarsId,
        'SchedulesId': SchedulesId,
        'MessageTonesId': MessageTonesId,
        'StatusCodesId': StatusCodesId,
        'PublicAccessGuid': PublicAccessGuid,
        'ViewHeading': ViewHeading,
        'CampaignActions': JsonConverters.toJson(CampaignActions,'List<CampaignActionsView>',context!)
    };

    getTypeName() => "Campaigns";
    TypeContext? context = _ctx;
}

class Customers implements IConvertible
{
    // @DataMember(Order=1)
    // @Required()
    int? Id;

    // @DataMember(Order=2)
    // @Required()
    // @References(typeof(Tenants))
    int? TenantsId;

    // @DataMember(Order=3)
    // @References(typeof(AppUser))
    int? UserAuthId;

    // @DataMember(Order=4)
    // @Required()
    // @References(typeof(Segments))
    int? SegmentsId;

    // @DataMember(Order=5)
    // @References(typeof(Companies))
    int? CompaniesId;

    // @DataMember(Order=6)
    int? CurrenciesId;

    // @DataMember(Order=7)
    String? Address;

    // @DataMember(Order=8)
    int? Age;

    // @DataMember(Order=9)
    String? City;

    // @DataMember(Order=10)
    String? ContactNumber;

    // @DataMember(Order=11)
    String? Email;

    // @DataMember(Order=12)
    String? EthnicGroup;

    // @DataMember(Order=13)
    String? FirstName;

    // @DataMember(Order=14)
    String? Gender;

    // @DataMember(Order=15)
    String? HomeLanguage;

    // @DataMember(Order=16)
    String? IdNumber;

    // @DataMember(Order=17)
    String? LastName;

    // @DataMember(Order=18)
    String? PostalCode;

    // @DataMember(Order=19)
    String? Region;

    // @DataMember(Order=20)
    String? Suburb;

    // @DataMember(Order=21)
    String? UniqueIdentifier;

    // @DataMember(Order=22)
    DateTime? BirthDate;

    // @DataMember(Order=23)
    Map<String,String?>? Classifications;

    // @DataMember(Order=24)
    String? Country;

    // @DataMember(Order=25)
    String? PassportNumber;

    // @DataMember(Order=26)
    // @Required()
    // @References(typeof(StatusCodes))
    int? StatusCodesId;

    // @DataMember(Order=27)
    String? Reason;

    // @DataMember(Order=28)
    bool? VulnerabilityFlag;

    // @DataMember(Order=29)
    Map<String,String?>? Meta;

    // @DataMember(Order=31)
    // @Computed()
    String? PublicAccessGuid;

    // @DataMember(Order=32)
    String? CustomField1;

    // @DataMember(Order=33)
    String? CustomField2;

    // @DataMember(Order=34)
    String? CustomField3;

    // @DataMember(Order=35)
    String? CustomField4;

    // @DataMember(Order=36)
    String? CustomField5;

    // @DataMember(Order=37)
    String? CustomField6;

    // @DataMember(Order=38)
    String? CustomField7;

    // @DataMember(Order=39)
    String? CustomField8;

    // @DataMember(Order=40)
    String? CustomField9;

    // @DataMember(Order=41)
    String? CustomField10;

    Customers({this.Id,this.TenantsId,this.UserAuthId,this.SegmentsId,this.CompaniesId,this.CurrenciesId,this.Address,this.Age,this.City,this.ContactNumber,this.Email,this.EthnicGroup,this.FirstName,this.Gender,this.HomeLanguage,this.IdNumber,this.LastName,this.PostalCode,this.Region,this.Suburb,this.UniqueIdentifier,this.BirthDate,this.Classifications,this.Country,this.PassportNumber,this.StatusCodesId,this.Reason,this.VulnerabilityFlag,this.Meta,this.PublicAccessGuid,this.CustomField1,this.CustomField2,this.CustomField3,this.CustomField4,this.CustomField5,this.CustomField6,this.CustomField7,this.CustomField8,this.CustomField9,this.CustomField10});
    Customers.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        TenantsId = json['TenantsId'];
        UserAuthId = json['UserAuthId'];
        SegmentsId = json['SegmentsId'];
        CompaniesId = json['CompaniesId'];
        CurrenciesId = json['CurrenciesId'];
        Address = json['Address'];
        Age = json['Age'];
        City = json['City'];
        ContactNumber = json['ContactNumber'];
        Email = json['Email'];
        EthnicGroup = json['EthnicGroup'];
        FirstName = json['FirstName'];
        Gender = json['Gender'];
        HomeLanguage = json['HomeLanguage'];
        IdNumber = json['IdNumber'];
        LastName = json['LastName'];
        PostalCode = json['PostalCode'];
        Region = json['Region'];
        Suburb = json['Suburb'];
        UniqueIdentifier = json['UniqueIdentifier'];
        BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
        Classifications = JsonConverters.toStringMap(json['Classifications']);
        Country = json['Country'];
        PassportNumber = json['PassportNumber'];
        StatusCodesId = json['StatusCodesId'];
        Reason = json['Reason'];
        VulnerabilityFlag = json['VulnerabilityFlag'];
        Meta = JsonConverters.toStringMap(json['Meta']);
        PublicAccessGuid = json['PublicAccessGuid'];
        CustomField1 = json['CustomField1'];
        CustomField2 = json['CustomField2'];
        CustomField3 = json['CustomField3'];
        CustomField4 = json['CustomField4'];
        CustomField5 = json['CustomField5'];
        CustomField6 = json['CustomField6'];
        CustomField7 = json['CustomField7'];
        CustomField8 = json['CustomField8'];
        CustomField9 = json['CustomField9'];
        CustomField10 = json['CustomField10'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'TenantsId': TenantsId,
        'UserAuthId': UserAuthId,
        'SegmentsId': SegmentsId,
        'CompaniesId': CompaniesId,
        'CurrenciesId': CurrenciesId,
        'Address': Address,
        'Age': Age,
        'City': City,
        'ContactNumber': ContactNumber,
        'Email': Email,
        'EthnicGroup': EthnicGroup,
        'FirstName': FirstName,
        'Gender': Gender,
        'HomeLanguage': HomeLanguage,
        'IdNumber': IdNumber,
        'LastName': LastName,
        'PostalCode': PostalCode,
        'Region': Region,
        'Suburb': Suburb,
        'UniqueIdentifier': UniqueIdentifier,
        'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
        'Classifications': Classifications,
        'Country': Country,
        'PassportNumber': PassportNumber,
        'StatusCodesId': StatusCodesId,
        'Reason': Reason,
        'VulnerabilityFlag': VulnerabilityFlag,
        'Meta': Meta,
        'PublicAccessGuid': PublicAccessGuid,
        'CustomField1': CustomField1,
        'CustomField2': CustomField2,
        'CustomField3': CustomField3,
        'CustomField4': CustomField4,
        'CustomField5': CustomField5,
        'CustomField6': CustomField6,
        'CustomField7': CustomField7,
        'CustomField8': CustomField8,
        'CustomField9': CustomField9,
        'CustomField10': CustomField10
    };

    getTypeName() => "Customers";
    TypeContext? context = _ctx;
}

class CampaignInstanceComms implements IConvertible
{
    // @DataMember(Order=1)
    // @Required()
    int? Id;

    // @DataMember(Order=2)
    // @Required()
    // @References(typeof(CampaignInstanceCustomers))
    int? CampaignInstanceCustomersId;

    // @DataMember(Order=3)
    // @Required()
    // @References(typeof(Channels))
    int? ChannelsId;

    // @DataMember(Order=4)
    String? Email;

    // @DataMember(Order=5)
    String? MobileNumber;

    // @DataMember(Order=6)
    String? EmailAttachmentTemplate;

    // @DataMember(Order=7)
    String? EmailTemplate;

    // @DataMember(Order=8)
    String? EmailHtmlTemplate;

    // @DataMember(Order=9)
    String? SmsTemplate;

    // @DataMember(Order=10)
    // @Required()
    String? PublicAccessGuid;

    // @DataMember(Order=11)
    // @Required()
    // @References(typeof(Campaigns))
    int? CampaignsId;

    // @DataMember(Order=12)
    int? DebtsId;

    // @DataMember(Order=13)
    // @Required()
    bool? IsPaymentCampaign;

    // @DataMember(Order=14)
    // @References(typeof(SchedulesInstances))
    int? ScheduleInstancesId;

    // @DataMember(Order=15)
    int? StatusCodesId;

    // @DataMember(Order=16)
    int? EmailTemplatesId;

    // @DataMember(Order=17)
    String? AvatarTemplateText;

    // @DataMember(Order=18)
    String? HeadingTemplateText;

    // @DataMember(Order=19)
    String? SubheadingTemplateText;

    // @DataMember(Order=20)
    bool? Sent;

    // @DataMember(Order=21)
    bool? Failed;

    // @DataMember(Order=22)
    String? CommsUrl;

    CampaignInstanceComms({this.Id,this.CampaignInstanceCustomersId,this.ChannelsId,this.Email,this.MobileNumber,this.EmailAttachmentTemplate,this.EmailTemplate,this.EmailHtmlTemplate,this.SmsTemplate,this.PublicAccessGuid,this.CampaignsId,this.DebtsId,this.IsPaymentCampaign,this.ScheduleInstancesId,this.StatusCodesId,this.EmailTemplatesId,this.AvatarTemplateText,this.HeadingTemplateText,this.SubheadingTemplateText,this.Sent,this.Failed,this.CommsUrl});
    CampaignInstanceComms.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CampaignInstanceCustomersId = json['CampaignInstanceCustomersId'];
        ChannelsId = json['ChannelsId'];
        Email = json['Email'];
        MobileNumber = json['MobileNumber'];
        EmailAttachmentTemplate = json['EmailAttachmentTemplate'];
        EmailTemplate = json['EmailTemplate'];
        EmailHtmlTemplate = json['EmailHtmlTemplate'];
        SmsTemplate = json['SmsTemplate'];
        PublicAccessGuid = json['PublicAccessGuid'];
        CampaignsId = json['CampaignsId'];
        DebtsId = json['DebtsId'];
        IsPaymentCampaign = json['IsPaymentCampaign'];
        ScheduleInstancesId = json['ScheduleInstancesId'];
        StatusCodesId = json['StatusCodesId'];
        EmailTemplatesId = json['EmailTemplatesId'];
        AvatarTemplateText = json['AvatarTemplateText'];
        HeadingTemplateText = json['HeadingTemplateText'];
        SubheadingTemplateText = json['SubheadingTemplateText'];
        Sent = json['Sent'];
        Failed = json['Failed'];
        CommsUrl = json['CommsUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CampaignInstanceCustomersId': CampaignInstanceCustomersId,
        'ChannelsId': ChannelsId,
        'Email': Email,
        'MobileNumber': MobileNumber,
        'EmailAttachmentTemplate': EmailAttachmentTemplate,
        'EmailTemplate': EmailTemplate,
        'EmailHtmlTemplate': EmailHtmlTemplate,
        'SmsTemplate': SmsTemplate,
        'PublicAccessGuid': PublicAccessGuid,
        'CampaignsId': CampaignsId,
        'DebtsId': DebtsId,
        'IsPaymentCampaign': IsPaymentCampaign,
        'ScheduleInstancesId': ScheduleInstancesId,
        'StatusCodesId': StatusCodesId,
        'EmailTemplatesId': EmailTemplatesId,
        'AvatarTemplateText': AvatarTemplateText,
        'HeadingTemplateText': HeadingTemplateText,
        'SubheadingTemplateText': SubheadingTemplateText,
        'Sent': Sent,
        'Failed': Failed,
        'CommsUrl': CommsUrl
    };

    getTypeName() => "CampaignInstanceComms";
    TypeContext? context = _ctx;
}

class EmailEventsView implements IConvertible
{
    // @DataMember(Order=1)
    int? Id;

    // @DataMember(Order=2)
    String? Email;

    // @DataMember(Order=3)
    DateTime? TimestampDate;

    // @DataMember(Order=4)
    String? Event;

    // @DataMember(Order=5)
    String? Category;

    // @DataMember(Order=6)
    String? SgEventId;

    // @DataMember(Order=7)
    String? SgMessageId;

    // @DataMember(Order=8)
    String? UserAgent;

    // @DataMember(Order=9)
    String? Ipaddress;

    // @DataMember(Order=10)
    String? Url;

    // @DataMember(Order=11)
    int? CampaignInstanceCommsId;

    // @DataMember(Order=12)
    int? TenantsId;

    // @DataMember(Order=13)
    int? SegmentsId;

    // @DataMember(Order=14)
    String? Address;

    // @DataMember(Order=15)
    int? Age;

    // @DataMember(Order=16)
    String? City;

    // @DataMember(Order=17)
    String? ContactNumber;

    // @DataMember(Order=18)
    String? EthnicGroup;

    // @DataMember(Order=19)
    String? FirstName;

    // @DataMember(Order=20)
    String? Gender;

    // @DataMember(Order=21)
    String? HomeLanguage;

    // @DataMember(Order=22)
    String? IdNumber;

    // @DataMember(Order=23)
    String? LastName;

    // @DataMember(Order=24)
    String? PostalCode;

    // @DataMember(Order=25)
    String? Region;

    // @DataMember(Order=26)
    String? Suburb;

    // @DataMember(Order=27)
    DateTime? BirthDate;

    // @DataMember(Order=28)
    Map<String,String?>? Classifications;

    // @DataMember(Order=29)
    String? Country;

    // @DataMember(Order=30)
    String? PassportNumber;

    // @DataMember(Order=31)
    int? StatusCodesId;

    // @DataMember(Order=32)
    String? Reason;

    // @DataMember(Order=33)
    bool? VulnerabilityFlag;

    // @DataMember(Order=34)
    String? CompaniesName;

    // @DataMember(Order=35)
    String? SegmentsName;

    // @DataMember(Order=36)
    bool? SegmentsIsCustom;

    // @DataMember(Order=37)
    String? StatusCodesDescription;

    // @DataMember(Order=38)
    int? CampaignsId;

    EmailEventsView({this.Id,this.Email,this.TimestampDate,this.Event,this.Category,this.SgEventId,this.SgMessageId,this.UserAgent,this.Ipaddress,this.Url,this.CampaignInstanceCommsId,this.TenantsId,this.SegmentsId,this.Address,this.Age,this.City,this.ContactNumber,this.EthnicGroup,this.FirstName,this.Gender,this.HomeLanguage,this.IdNumber,this.LastName,this.PostalCode,this.Region,this.Suburb,this.BirthDate,this.Classifications,this.Country,this.PassportNumber,this.StatusCodesId,this.Reason,this.VulnerabilityFlag,this.CompaniesName,this.SegmentsName,this.SegmentsIsCustom,this.StatusCodesDescription,this.CampaignsId});
    EmailEventsView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Email = json['Email'];
        TimestampDate = JsonConverters.fromJson(json['TimestampDate'],'DateTime',context!);
        Event = json['Event'];
        Category = json['Category'];
        SgEventId = json['SgEventId'];
        SgMessageId = json['SgMessageId'];
        UserAgent = json['UserAgent'];
        Ipaddress = json['Ipaddress'];
        Url = json['Url'];
        CampaignInstanceCommsId = json['CampaignInstanceCommsId'];
        TenantsId = json['TenantsId'];
        SegmentsId = json['SegmentsId'];
        Address = json['Address'];
        Age = json['Age'];
        City = json['City'];
        ContactNumber = json['ContactNumber'];
        EthnicGroup = json['EthnicGroup'];
        FirstName = json['FirstName'];
        Gender = json['Gender'];
        HomeLanguage = json['HomeLanguage'];
        IdNumber = json['IdNumber'];
        LastName = json['LastName'];
        PostalCode = json['PostalCode'];
        Region = json['Region'];
        Suburb = json['Suburb'];
        BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
        Classifications = JsonConverters.toStringMap(json['Classifications']);
        Country = json['Country'];
        PassportNumber = json['PassportNumber'];
        StatusCodesId = json['StatusCodesId'];
        Reason = json['Reason'];
        VulnerabilityFlag = json['VulnerabilityFlag'];
        CompaniesName = json['CompaniesName'];
        SegmentsName = json['SegmentsName'];
        SegmentsIsCustom = json['SegmentsIsCustom'];
        StatusCodesDescription = json['StatusCodesDescription'];
        CampaignsId = json['CampaignsId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Email': Email,
        'TimestampDate': JsonConverters.toJson(TimestampDate,'DateTime',context!),
        'Event': Event,
        'Category': Category,
        'SgEventId': SgEventId,
        'SgMessageId': SgMessageId,
        'UserAgent': UserAgent,
        'Ipaddress': Ipaddress,
        'Url': Url,
        'CampaignInstanceCommsId': CampaignInstanceCommsId,
        'TenantsId': TenantsId,
        'SegmentsId': SegmentsId,
        'Address': Address,
        'Age': Age,
        'City': City,
        'ContactNumber': ContactNumber,
        'EthnicGroup': EthnicGroup,
        'FirstName': FirstName,
        'Gender': Gender,
        'HomeLanguage': HomeLanguage,
        'IdNumber': IdNumber,
        'LastName': LastName,
        'PostalCode': PostalCode,
        'Region': Region,
        'Suburb': Suburb,
        'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
        'Classifications': Classifications,
        'Country': Country,
        'PassportNumber': PassportNumber,
        'StatusCodesId': StatusCodesId,
        'Reason': Reason,
        'VulnerabilityFlag': VulnerabilityFlag,
        'CompaniesName': CompaniesName,
        'SegmentsName': SegmentsName,
        'SegmentsIsCustom': SegmentsIsCustom,
        'StatusCodesDescription': StatusCodesDescription,
        'CampaignsId': CampaignsId
    };

    getTypeName() => "EmailEventsView";
    TypeContext? context = _ctx;
}

class SmsWatsappEventsView implements IConvertible
{
    // @DataMember(Order=1)
    int? Id;

    // @DataMember(Order=2)
    int? CampaignInstancesCommsId;

    // @DataMember(Order=3)
    Map<String,String?>? RawJson;

    // @DataMember(Order=4)
    String? IntegrationId;

    // @DataMember(Order=5)
    String? IntegrationName;

    // @DataMember(Order=6)
    String? Channel;

    // @DataMember(Order=7)
    int? Timestamp;

    // @DataMember(Order=8)
    DateTime? TimestampDate;

    // @DataMember(Order=9)
    int? StatusCode;

    // @DataMember(Order=10)
    String? Status;

    // @DataMember(Order=11)
    String? MessageId;

    // @DataMember(Order=12)
    String? ClientMessageId;

    // @DataMember(Order=13)
    int? TenantsId;

    // @DataMember(Order=14)
    int? SegmentsId;

    // @DataMember(Order=15)
    String? Address;

    // @DataMember(Order=16)
    int? Age;

    // @DataMember(Order=17)
    String? City;

    // @DataMember(Order=18)
    String? ContactNumber;

    // @DataMember(Order=19)
    String? EthnicGroup;

    // @DataMember(Order=20)
    String? FirstName;

    // @DataMember(Order=21)
    String? Gender;

    // @DataMember(Order=22)
    String? HomeLanguage;

    // @DataMember(Order=23)
    String? IdNumber;

    // @DataMember(Order=24)
    String? LastName;

    // @DataMember(Order=25)
    String? PostalCode;

    // @DataMember(Order=26)
    String? Region;

    // @DataMember(Order=27)
    String? Suburb;

    // @DataMember(Order=28)
    DateTime? BirthDate;

    // @DataMember(Order=29)
    Map<String,String?>? Classifications;

    // @DataMember(Order=30)
    String? Country;

    // @DataMember(Order=31)
    String? PassportNumber;

    // @DataMember(Order=32)
    int? StatusCodesId;

    // @DataMember(Order=33)
    String? Reason;

    // @DataMember(Order=34)
    bool? VulnerabilityFlag;

    // @DataMember(Order=35)
    String? CompaniesName;

    // @DataMember(Order=36)
    String? SegmentsName;

    // @DataMember(Order=37)
    bool? SegmentsIsCustom;

    // @DataMember(Order=38)
    String? StatusCodesDescription;

    // @DataMember(Order=39)
    int? CampaignsId;

    // @DataMember(Order=40)
    int? CustomersId;

    SmsWatsappEventsView({this.Id,this.CampaignInstancesCommsId,this.RawJson,this.IntegrationId,this.IntegrationName,this.Channel,this.Timestamp,this.TimestampDate,this.StatusCode,this.Status,this.MessageId,this.ClientMessageId,this.TenantsId,this.SegmentsId,this.Address,this.Age,this.City,this.ContactNumber,this.EthnicGroup,this.FirstName,this.Gender,this.HomeLanguage,this.IdNumber,this.LastName,this.PostalCode,this.Region,this.Suburb,this.BirthDate,this.Classifications,this.Country,this.PassportNumber,this.StatusCodesId,this.Reason,this.VulnerabilityFlag,this.CompaniesName,this.SegmentsName,this.SegmentsIsCustom,this.StatusCodesDescription,this.CampaignsId,this.CustomersId});
    SmsWatsappEventsView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CampaignInstancesCommsId = json['CampaignInstancesCommsId'];
        RawJson = JsonConverters.toStringMap(json['RawJson']);
        IntegrationId = json['IntegrationId'];
        IntegrationName = json['IntegrationName'];
        Channel = json['Channel'];
        Timestamp = json['Timestamp'];
        TimestampDate = JsonConverters.fromJson(json['TimestampDate'],'DateTime',context!);
        StatusCode = json['StatusCode'];
        Status = json['Status'];
        MessageId = json['MessageId'];
        ClientMessageId = json['ClientMessageId'];
        TenantsId = json['TenantsId'];
        SegmentsId = json['SegmentsId'];
        Address = json['Address'];
        Age = json['Age'];
        City = json['City'];
        ContactNumber = json['ContactNumber'];
        EthnicGroup = json['EthnicGroup'];
        FirstName = json['FirstName'];
        Gender = json['Gender'];
        HomeLanguage = json['HomeLanguage'];
        IdNumber = json['IdNumber'];
        LastName = json['LastName'];
        PostalCode = json['PostalCode'];
        Region = json['Region'];
        Suburb = json['Suburb'];
        BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
        Classifications = JsonConverters.toStringMap(json['Classifications']);
        Country = json['Country'];
        PassportNumber = json['PassportNumber'];
        StatusCodesId = json['StatusCodesId'];
        Reason = json['Reason'];
        VulnerabilityFlag = json['VulnerabilityFlag'];
        CompaniesName = json['CompaniesName'];
        SegmentsName = json['SegmentsName'];
        SegmentsIsCustom = json['SegmentsIsCustom'];
        StatusCodesDescription = json['StatusCodesDescription'];
        CampaignsId = json['CampaignsId'];
        CustomersId = json['CustomersId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CampaignInstancesCommsId': CampaignInstancesCommsId,
        'RawJson': RawJson,
        'IntegrationId': IntegrationId,
        'IntegrationName': IntegrationName,
        'Channel': Channel,
        'Timestamp': Timestamp,
        'TimestampDate': JsonConverters.toJson(TimestampDate,'DateTime',context!),
        'StatusCode': StatusCode,
        'Status': Status,
        'MessageId': MessageId,
        'ClientMessageId': ClientMessageId,
        'TenantsId': TenantsId,
        'SegmentsId': SegmentsId,
        'Address': Address,
        'Age': Age,
        'City': City,
        'ContactNumber': ContactNumber,
        'EthnicGroup': EthnicGroup,
        'FirstName': FirstName,
        'Gender': Gender,
        'HomeLanguage': HomeLanguage,
        'IdNumber': IdNumber,
        'LastName': LastName,
        'PostalCode': PostalCode,
        'Region': Region,
        'Suburb': Suburb,
        'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
        'Classifications': Classifications,
        'Country': Country,
        'PassportNumber': PassportNumber,
        'StatusCodesId': StatusCodesId,
        'Reason': Reason,
        'VulnerabilityFlag': VulnerabilityFlag,
        'CompaniesName': CompaniesName,
        'SegmentsName': SegmentsName,
        'SegmentsIsCustom': SegmentsIsCustom,
        'StatusCodesDescription': StatusCodesDescription,
        'CampaignsId': CampaignsId,
        'CustomersId': CustomersId
    };

    getTypeName() => "SmsWatsappEventsView";
    TypeContext? context = _ctx;
}

class CampaignInstanceCommsStats implements IConvertible
{
    // @DataMember(Order=1)
    // @Required()
    int? Id;

    // @DataMember(Order=2)
    // @Required()
    int? CampaignInstanceCommsId;

    // @DataMember(Order=3)
    DateTime? ViewedDate;

    CampaignInstanceCommsStats({this.Id,this.CampaignInstanceCommsId,this.ViewedDate});
    CampaignInstanceCommsStats.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CampaignInstanceCommsId = json['CampaignInstanceCommsId'];
        ViewedDate = JsonConverters.fromJson(json['ViewedDate'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CampaignInstanceCommsId': CampaignInstanceCommsId,
        'ViewedDate': JsonConverters.toJson(ViewedDate,'DateTime',context!)
    };

    getTypeName() => "CampaignInstanceCommsStats";
    TypeContext? context = _ctx;
}

class CampaignInstanceCommsDetails implements IConvertible
{
    CampaignInstanceComms? CampaignInstanceComms;
    List<EmailEventsView>? EmailEvents;
    List<SmsWatsappEventsView>? SmsWatsappEvents;
    List<CampaignInstanceCommsStats>? CampaignInstanceCommsStats;

    CampaignInstanceCommsDetails({this.CampaignInstanceComms,this.EmailEvents,this.SmsWatsappEvents,this.CampaignInstanceCommsStats});
    CampaignInstanceCommsDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CampaignInstanceComms = JsonConverters.fromJson(json['CampaignInstanceComms'],'CampaignInstanceComms',context!);
        EmailEvents = JsonConverters.fromJson(json['EmailEvents'],'List<EmailEventsView>',context!);
        SmsWatsappEvents = JsonConverters.fromJson(json['SmsWatsappEvents'],'List<SmsWatsappEventsView>',context!);
        CampaignInstanceCommsStats = JsonConverters.fromJson(json['CampaignInstanceCommsStats'],'List<CampaignInstanceCommsStats>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CampaignInstanceComms': JsonConverters.toJson(CampaignInstanceComms,'CampaignInstanceComms',context!),
        'EmailEvents': JsonConverters.toJson(EmailEvents,'List<EmailEventsView>',context!),
        'SmsWatsappEvents': JsonConverters.toJson(SmsWatsappEvents,'List<SmsWatsappEventsView>',context!),
        'CampaignInstanceCommsStats': JsonConverters.toJson(CampaignInstanceCommsStats,'List<CampaignInstanceCommsStats>',context!)
    };

    getTypeName() => "CampaignInstanceCommsDetails";
    TypeContext? context = _ctx;
}

class GetCampaignCustomerCertificateResponse implements IConvertible
{
    Campaigns? Campaign;
    Customers? Customer;
    List<CampaignInstanceCommsDetails>? CampaignInstanceCommsDetails;
    ResponseStatus? ResponseStatus;

    GetCampaignCustomerCertificateResponse({this.Campaign,this.Customer,this.CampaignInstanceCommsDetails,this.ResponseStatus});
    GetCampaignCustomerCertificateResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Campaign = JsonConverters.fromJson(json['Campaign'],'Campaigns',context!);
        Customer = JsonConverters.fromJson(json['Customer'],'Customers',context!);
        CampaignInstanceCommsDetails = JsonConverters.fromJson(json['CampaignInstanceCommsDetails'],'List<CampaignInstanceCommsDetails>',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Campaign': JsonConverters.toJson(Campaign,'Campaigns',context!),
        'Customer': JsonConverters.toJson(Customer,'Customers',context!),
        'CampaignInstanceCommsDetails': JsonConverters.toJson(CampaignInstanceCommsDetails,'List<CampaignInstanceCommsDetails>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "GetCampaignCustomerCertificateResponse";
    TypeContext? context = _ctx;
}

class GetCampaignCustomerCertificateByCustomerId implements IConvertible
{
    String? CampaignPublicAccessGuid;
    String? CustomerPublicAccessGuid;

    GetCampaignCustomerCertificateByCustomerId({this.CampaignPublicAccessGuid,this.CustomerPublicAccessGuid});
    GetCampaignCustomerCertificateByCustomerId.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CampaignPublicAccessGuid = json['CampaignPublicAccessGuid'];
        CustomerPublicAccessGuid = json['CustomerPublicAccessGuid'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CampaignPublicAccessGuid': CampaignPublicAccessGuid,
        'CustomerPublicAccessGuid': CustomerPublicAccessGuid
    };

    getTypeName() => "GetCampaignCustomerCertificateByCustomerId";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'duengageapi.uat.scadsoftware.com', types: <String, TypeInfo> {
    'CampaignActionsView': TypeInfo(TypeOf.Class, create:() => CampaignActionsView()),
    'Campaigns': TypeInfo(TypeOf.Class, create:() => Campaigns()),
    'List<CampaignActionsView>': TypeInfo(TypeOf.Class, create:() => <CampaignActionsView>[]),
    'Customers': TypeInfo(TypeOf.Class, create:() => Customers()),
    'CampaignInstanceComms': TypeInfo(TypeOf.Class, create:() => CampaignInstanceComms()),
    'EmailEventsView': TypeInfo(TypeOf.Class, create:() => EmailEventsView()),
    'SmsWatsappEventsView': TypeInfo(TypeOf.Class, create:() => SmsWatsappEventsView()),
    'CampaignInstanceCommsStats': TypeInfo(TypeOf.Class, create:() => CampaignInstanceCommsStats()),
    'CampaignInstanceCommsDetails': TypeInfo(TypeOf.Class, create:() => CampaignInstanceCommsDetails()),
    'List<EmailEventsView>': TypeInfo(TypeOf.Class, create:() => <EmailEventsView>[]),
    'List<SmsWatsappEventsView>': TypeInfo(TypeOf.Class, create:() => <SmsWatsappEventsView>[]),
    'List<CampaignInstanceCommsStats>': TypeInfo(TypeOf.Class, create:() => <CampaignInstanceCommsStats>[]),
    'GetCampaignCustomerCertificateResponse': TypeInfo(TypeOf.Class, create:() => GetCampaignCustomerCertificateResponse()),
    'List<CampaignInstanceCommsDetails>': TypeInfo(TypeOf.Class, create:() => <CampaignInstanceCommsDetails>[]),
    'GetCampaignCustomerCertificateByCustomerId': TypeInfo(TypeOf.Class, create:() => GetCampaignCustomerCertificateByCustomerId()),
});

Dart GetCampaignCustomerCertificateByCustomerId DTOs

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

HTTP + JSV

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

GET /campaign/certbycustomerguid/{CampaignPublicAccessGuid}/{CustomerPublicAccessGuid} HTTP/1.1 
Host: duengageapi.uat.scadsoftware.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Campaign: 
	{
		Id: 0,
		TenantsId: 0,
		Name: String,
		Description: String,
		AvatarsId: 0,
		SchedulesId: 0,
		MessageTonesId: 0,
		StatusCodesId: 0,
		PublicAccessGuid: 00000000000000000000000000000000,
		ViewHeading: String,
		CampaignActions: 
		[
			{
				Id: 0,
				CampaignsId: 0,
				ActionsId: 0,
				ButtonName: String,
				ActionTypesId: 0,
				Description: String,
				OfferOrder: 0,
				StandOut: False,
				PublicAccessGuid: 00000000000000000000000000000000,
				IsPayment: False,
				IsPayOff: False,
				IsEnabled: False
			}
		]
	},
	Customer: 
	{
		Id: 0,
		TenantsId: 0,
		UserAuthId: 0,
		SegmentsId: 0,
		CompaniesId: 0,
		CurrenciesId: 0,
		Address: String,
		Age: 0,
		City: String,
		ContactNumber: String,
		Email: String,
		EthnicGroup: String,
		FirstName: String,
		Gender: String,
		HomeLanguage: String,
		IdNumber: String,
		LastName: String,
		PostalCode: String,
		Region: String,
		Suburb: String,
		UniqueIdentifier: String,
		BirthDate: 0001-01-01,
		Classifications: 
		{
			String: String
		},
		Country: String,
		PassportNumber: String,
		StatusCodesId: 0,
		Reason: String,
		VulnerabilityFlag: False,
		Meta: 
		{
			String: String
		},
		PublicAccessGuid: 00000000000000000000000000000000,
		CustomField1: String,
		CustomField2: String,
		CustomField3: String,
		CustomField4: String,
		CustomField5: String,
		CustomField6: String,
		CustomField7: String,
		CustomField8: String,
		CustomField9: String,
		CustomField10: String
	},
	CampaignInstanceCommsDetails: 
	[
		{
			CampaignInstanceComms: 
			{
				Id: 0,
				CampaignInstanceCustomersId: 0,
				ChannelsId: 0,
				Email: String,
				MobileNumber: String,
				EmailAttachmentTemplate: String,
				EmailTemplate: String,
				EmailHtmlTemplate: String,
				SmsTemplate: String,
				PublicAccessGuid: 00000000000000000000000000000000,
				CampaignsId: 0,
				DebtsId: 0,
				IsPaymentCampaign: False,
				ScheduleInstancesId: 0,
				StatusCodesId: 0,
				EmailTemplatesId: 0,
				AvatarTemplateText: String,
				HeadingTemplateText: String,
				SubheadingTemplateText: String,
				Sent: False,
				Failed: False,
				CommsUrl: String
			},
			EmailEvents: 
			[
				{
					Id: 0,
					Email: String,
					TimestampDate: 0001-01-01T00:00:00.0000000+00:00,
					Event: String,
					Category: String,
					SgEventId: String,
					SgMessageId: String,
					UserAgent: String,
					Ipaddress: String,
					Url: String,
					CampaignInstanceCommsId: 0,
					TenantsId: 0,
					SegmentsId: 0,
					Address: String,
					Age: 0,
					City: String,
					ContactNumber: String,
					EthnicGroup: String,
					FirstName: String,
					Gender: String,
					HomeLanguage: String,
					IdNumber: String,
					LastName: String,
					PostalCode: String,
					Region: String,
					Suburb: String,
					BirthDate: 0001-01-01,
					Classifications: 
					{
						String: String
					},
					Country: String,
					PassportNumber: String,
					StatusCodesId: 0,
					Reason: String,
					VulnerabilityFlag: False,
					CompaniesName: String,
					SegmentsName: String,
					SegmentsIsCustom: False,
					StatusCodesDescription: String,
					CampaignsId: 0
				}
			],
			SmsWatsappEvents: 
			[
				{
					Id: 0,
					CampaignInstancesCommsId: 0,
					RawJson: 
					{
						String: String
					},
					IntegrationId: String,
					IntegrationName: String,
					Channel: String,
					Timestamp: 0,
					TimestampDate: 0001-01-01T00:00:00.0000000+00:00,
					StatusCode: 0,
					Status: String,
					MessageId: String,
					ClientMessageId: String,
					TenantsId: 0,
					SegmentsId: 0,
					Address: String,
					Age: 0,
					City: String,
					ContactNumber: String,
					EthnicGroup: String,
					FirstName: String,
					Gender: String,
					HomeLanguage: String,
					IdNumber: String,
					LastName: String,
					PostalCode: String,
					Region: String,
					Suburb: String,
					BirthDate: 0001-01-01,
					Classifications: 
					{
						String: String
					},
					Country: String,
					PassportNumber: String,
					StatusCodesId: 0,
					Reason: String,
					VulnerabilityFlag: False,
					CompaniesName: String,
					SegmentsName: String,
					SegmentsIsCustom: False,
					StatusCodesDescription: String,
					CampaignsId: 0,
					CustomersId: 0
				}
			],
			CampaignInstanceCommsStats: 
			[
				{
					Id: 0,
					CampaignInstanceCommsId: 0,
					ViewedDate: 0001-01-01T00:00:00.0000000+00:00
				}
			]
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}