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
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CampaignActionsView:
    # @Required()
    id: int = 0

    # @Required()
    # @References(typeof(Campaigns))
    campaigns_id: int = 0

    # @References(typeof(Actions))
    actions_id: Optional[int] = None

    button_name: Optional[str] = None
    # @References(typeof(ActionTypes))
    action_types_id: Optional[int] = None

    description: Optional[str] = None
    offer_order: Optional[int] = None
    stand_out: Optional[bool] = None
    # @Required()
    public_access_guid: Optional[str] = None

    is_payment: bool = False
    is_pay_off: bool = False
    is_enabled: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Campaigns:
    # @Required()
    id: int = 0

    # @Required()
    tenants_id: int = 0

    # @Required()
    name: Optional[str] = None

    # @Required()
    description: Optional[str] = None

    # @References(typeof(Avatars))
    avatars_id: Optional[int] = None

    # @References(typeof(Schedules))
    schedules_id: Optional[int] = None

    # @References(typeof(MessageTones))
    message_tones_id: Optional[int] = None

    # @Required()
    # @References(typeof(StatusCodes))
    status_codes_id: int = 0

    # @Required()
    public_access_guid: Optional[str] = None

    view_heading: Optional[str] = None
    campaign_actions: Optional[List[CampaignActionsView]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Customers:
    # @Required()
    id: int = 0

    # @Required()
    # @References(typeof(Tenants))
    tenants_id: int = 0

    # @References(typeof(AppUser))
    user_auth_id: Optional[int] = None

    # @Required()
    # @References(typeof(Segments))
    segments_id: int = 0

    # @References(typeof(Companies))
    companies_id: Optional[int] = None

    currencies_id: Optional[int] = None
    address: Optional[str] = None
    age: Optional[int] = None
    city: Optional[str] = None
    contact_number: Optional[str] = None
    email: Optional[str] = None
    ethnic_group: Optional[str] = None
    first_name: Optional[str] = None
    gender: Optional[str] = None
    home_language: Optional[str] = None
    id_number: Optional[str] = None
    last_name: Optional[str] = None
    postal_code: Optional[str] = None
    region: Optional[str] = None
    suburb: Optional[str] = None
    unique_identifier: Optional[str] = None
    birth_date: Optional[datetime.datetime] = None
    classifications: Optional[Dict[str, str]] = None
    country: Optional[str] = None
    passport_number: Optional[str] = None
    # @Required()
    # @References(typeof(StatusCodes))
    status_codes_id: int = 0

    reason: Optional[str] = None
    vulnerability_flag: Optional[bool] = None
    meta: Optional[Dict[str, str]] = None
    # @Computed()
    public_access_guid: Optional[str] = None

    custom_field1: Optional[str] = None
    custom_field2: Optional[str] = None
    custom_field3: Optional[str] = None
    custom_field4: Optional[str] = None
    custom_field5: Optional[str] = None
    custom_field6: Optional[str] = None
    custom_field7: Optional[str] = None
    custom_field8: Optional[str] = None
    custom_field9: Optional[str] = None
    custom_field10: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CampaignInstanceComms:
    # @Required()
    id: int = 0

    # @Required()
    # @References(typeof(CampaignInstanceCustomers))
    campaign_instance_customers_id: int = 0

    # @Required()
    # @References(typeof(Channels))
    channels_id: int = 0

    email: Optional[str] = None
    mobile_number: Optional[str] = None
    email_attachment_template: Optional[str] = None
    email_template: Optional[str] = None
    email_html_template: Optional[str] = None
    sms_template: Optional[str] = None
    # @Required()
    public_access_guid: Optional[str] = None

    # @Required()
    # @References(typeof(Campaigns))
    campaigns_id: int = 0

    debts_id: Optional[int] = None
    # @Required()
    is_payment_campaign: bool = False

    # @References(typeof(SchedulesInstances))
    schedule_instances_id: Optional[int] = None

    status_codes_id: Optional[int] = None
    email_templates_id: Optional[int] = None
    avatar_template_text: Optional[str] = None
    heading_template_text: Optional[str] = None
    subheading_template_text: Optional[str] = None
    sent: bool = False
    failed: bool = False
    comms_url: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EmailEventsView:
    id: Optional[int] = None
    email: Optional[str] = None
    timestamp_date: Optional[datetime.datetime] = None
    event: Optional[str] = None
    category: Optional[str] = None
    sg_event_id: Optional[str] = None
    sg_message_id: Optional[str] = None
    user_agent: Optional[str] = None
    ipaddress: Optional[str] = None
    url: Optional[str] = None
    campaign_instance_comms_id: Optional[int] = None
    tenants_id: Optional[int] = None
    segments_id: Optional[int] = None
    address: Optional[str] = None
    age: Optional[int] = None
    city: Optional[str] = None
    contact_number: Optional[str] = None
    ethnic_group: Optional[str] = None
    first_name: Optional[str] = None
    gender: Optional[str] = None
    home_language: Optional[str] = None
    id_number: Optional[str] = None
    last_name: Optional[str] = None
    postal_code: Optional[str] = None
    region: Optional[str] = None
    suburb: Optional[str] = None
    birth_date: Optional[datetime.datetime] = None
    classifications: Optional[Dict[str, str]] = None
    country: Optional[str] = None
    passport_number: Optional[str] = None
    status_codes_id: Optional[int] = None
    reason: Optional[str] = None
    vulnerability_flag: Optional[bool] = None
    companies_name: Optional[str] = None
    segments_name: Optional[str] = None
    segments_is_custom: Optional[bool] = None
    status_codes_description: Optional[str] = None
    campaigns_id: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SmsWatsappEventsView:
    id: Optional[int] = None
    campaign_instances_comms_id: Optional[int] = None
    raw_json: Optional[Dict[str, str]] = None
    integration_id: Optional[str] = None
    integration_name: Optional[str] = None
    channel: Optional[str] = None
    timestamp: Optional[int] = None
    timestamp_date: Optional[datetime.datetime] = None
    status_code: Optional[int] = None
    status: Optional[str] = None
    message_id: Optional[str] = None
    client_message_id: Optional[str] = None
    tenants_id: Optional[int] = None
    segments_id: Optional[int] = None
    address: Optional[str] = None
    age: Optional[int] = None
    city: Optional[str] = None
    contact_number: Optional[str] = None
    ethnic_group: Optional[str] = None
    first_name: Optional[str] = None
    gender: Optional[str] = None
    home_language: Optional[str] = None
    id_number: Optional[str] = None
    last_name: Optional[str] = None
    postal_code: Optional[str] = None
    region: Optional[str] = None
    suburb: Optional[str] = None
    birth_date: Optional[datetime.datetime] = None
    classifications: Optional[Dict[str, str]] = None
    country: Optional[str] = None
    passport_number: Optional[str] = None
    status_codes_id: Optional[int] = None
    reason: Optional[str] = None
    vulnerability_flag: Optional[bool] = None
    companies_name: Optional[str] = None
    segments_name: Optional[str] = None
    segments_is_custom: Optional[bool] = None
    status_codes_description: Optional[str] = None
    campaigns_id: Optional[int] = None
    customers_id: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CampaignInstanceCommsStats:
    # @Required()
    id: int = 0

    # @Required()
    campaign_instance_comms_id: int = 0

    viewed_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CampaignInstanceCommsDetails:
    campaign_instance_comms: Optional[CampaignInstanceComms] = None
    email_events: Optional[List[EmailEventsView]] = None
    sms_watsapp_events: Optional[List[SmsWatsappEventsView]] = None
    campaign_instance_comms_stats: Optional[List[CampaignInstanceCommsStats]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCampaignCustomerCertificateResponse:
    campaign: Optional[Campaigns] = None
    customer: Optional[Customers] = None
    campaign_instance_comms_details: Optional[List[CampaignInstanceCommsDetails]] = None
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCampaignCustomerCertificateByCommsGuid:
    campaign_instance_comms_public_access_guid: Optional[str] = None

Python GetCampaignCustomerCertificateByCommsGuid 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/certbycommsguid/{CampaignInstanceCommsPublicAccessGuid} 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
		}
	}
}