digitaluapi

<back to all web services

SendGridMailTemplateRequest

Requires Authentication
Requires any of the roles:Client, Admin, Partner
The following routes are available for this service:
All Verbs/sendmail/sendgridtemplate
import 'package:servicestack/servicestack.dart';

class EmailAddress implements IConvertible
{
    String? Name;
    String? Email;

    EmailAddress({this.Name,this.Email});
    EmailAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Email': Email
    };

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

class Personalization implements IConvertible
{
    List<EmailAddress>? Tos;
    List<EmailAddress>? Ccs;
    List<EmailAddress>? Bccs;
    EmailAddress? From;
    String? Subject;
    Map<String,String?>? Headers;
    Map<String,String?>? Substitutions;
    Map<String,String?>? CustomArgs;
    int? SendAt;
    dynamic? TemplateData;

    Personalization({this.Tos,this.Ccs,this.Bccs,this.From,this.Subject,this.Headers,this.Substitutions,this.CustomArgs,this.SendAt,this.TemplateData});
    Personalization.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Tos = JsonConverters.fromJson(json['Tos'],'List<EmailAddress>',context!);
        Ccs = JsonConverters.fromJson(json['Ccs'],'List<EmailAddress>',context!);
        Bccs = JsonConverters.fromJson(json['Bccs'],'List<EmailAddress>',context!);
        From = JsonConverters.fromJson(json['From'],'EmailAddress',context!);
        Subject = json['Subject'];
        Headers = JsonConverters.toStringMap(json['Headers']);
        Substitutions = JsonConverters.toStringMap(json['Substitutions']);
        CustomArgs = JsonConverters.toStringMap(json['CustomArgs']);
        SendAt = json['SendAt'];
        TemplateData = JsonConverters.fromJson(json['TemplateData'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Tos': JsonConverters.toJson(Tos,'List<EmailAddress>',context!),
        'Ccs': JsonConverters.toJson(Ccs,'List<EmailAddress>',context!),
        'Bccs': JsonConverters.toJson(Bccs,'List<EmailAddress>',context!),
        'From': JsonConverters.toJson(From,'EmailAddress',context!),
        'Subject': Subject,
        'Headers': Headers,
        'Substitutions': Substitutions,
        'CustomArgs': CustomArgs,
        'SendAt': SendAt,
        'TemplateData': JsonConverters.toJson(TemplateData,'dynamic',context!)
    };

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

class SendGridMailTemplateRequest implements IConvertible
{
    EmailAddress? From;
    String? Subject;
    String? TemplatesId;
    String? APIKey;
    List<Personalization>? Personalizations;

    SendGridMailTemplateRequest({this.From,this.Subject,this.TemplatesId,this.APIKey,this.Personalizations});
    SendGridMailTemplateRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        From = JsonConverters.fromJson(json['From'],'EmailAddress',context!);
        Subject = json['Subject'];
        TemplatesId = json['TemplatesId'];
        APIKey = json['APIKey'];
        Personalizations = JsonConverters.fromJson(json['Personalizations'],'List<Personalization>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'From': JsonConverters.toJson(From,'EmailAddress',context!),
        'Subject': Subject,
        'TemplatesId': TemplatesId,
        'APIKey': APIKey,
        'Personalizations': JsonConverters.toJson(Personalizations,'List<Personalization>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'duengageapi.uat.scadsoftware.com', types: <String, TypeInfo> {
    'EmailAddress': TypeInfo(TypeOf.Class, create:() => EmailAddress()),
    'Personalization': TypeInfo(TypeOf.Class, create:() => Personalization()),
    'List<EmailAddress>': TypeInfo(TypeOf.Class, create:() => <EmailAddress>[]),
    'SendGridMailTemplateRequest': TypeInfo(TypeOf.Class, create:() => SendGridMailTemplateRequest()),
    'List<Personalization>': TypeInfo(TypeOf.Class, create:() => <Personalization>[]),
});

Dart SendGridMailTemplateRequest 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.

POST /sendmail/sendgridtemplate HTTP/1.1 
Host: duengageapi.uat.scadsoftware.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	From: 
	{
		Name: String,
		Email: String
	},
	Subject: String,
	TemplatesId: String,
	APIKey: String,
	Personalizations: 
	[
		{
			Tos: 
			[
				{
					Name: String,
					Email: String
				}
			],
			Ccs: 
			[
				{
					Name: String,
					Email: String
				}
			],
			Bccs: 
			[
				{
					Name: String,
					Email: String
				}
			],
			From: 
			{
				Name: String,
				Email: String
			},
			Subject: String,
			Headers: 
			{
				String: String
			},
			Substitutions: 
			{
				String: String
			},
			CustomArgs: 
			{
				String: String
			},
			SendAt: 0,
			TemplateData: {}
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}