package Ġcom . send grid Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonInclude Ċ import Ġcom . fasterxml . jackson . annotation . JsonInclude . Include Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . fasterxml . jackson . databind . Serialization Feature Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠClass ĠMail Ġbuilds Ġan Ġobject Ġthat Ġsends Ġan Ġemail Ġthrough ĠSend Grid . Ċ Ġ* ĠNote Ġthat Ġthis Ġobject Ġis Ġnot Ġthread Ġsafe . Ċ Ġ*/ Ċ @ JsonInclude ( Include . NON _ DEFAULT ) Ċ data Ġclass ĠMail Ġ@ Jvm Over loads Ġconstructor ( ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġfrom Ġfield . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" from ") ĊĠĠĠĠĠĠĠ Ġvar Ġfrom : ĠEmail ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġsubject Ġline . ĠThis Ġis Ġthe Ġglobal , Ġor ĊĠĠĠĠĠĠĠĠ Ġ* ĠâĢľ message Ġlevel âĢĿ, Ġsubject Ġof Ġyour Ġemail . ĠThis Ġmay ĊĠĠĠĠĠĠĠĠ Ġ* Ġbe Ġoverridden Ġby Ġpersonal izations [ x ]. subject . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" subject ") ĊĠĠĠĠĠĠĠ Ġvar Ġsubject : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġemail 's Ġpersonal ization . ĠEach Ġobject Ġwithin ĊĠĠĠĠĠĠĠĠ Ġ* Ġpersonal izations Ġcan Ġbe Ġthought Ġof Ġas Ġan Ġenvelope ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġit Ġdefines Ġwho Ġshould Ġreceive Ġan Ġindividual Ġmessage ĊĠĠĠĠĠĠĠĠ Ġ* Ġand Ġhow Ġthat Ġmessage Ġshould Ġbe Ġhandled . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" personal izations ") ĊĠĠĠĠĠĠĠ Ġvar Ġpersonal ization : ĠMutable List < Personal ization > Ġ= Ġmutable ListOf (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġcontent . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" content ") ĊĠĠĠĠĠĠĠ Ġvar Ġcontent : ĠMutable List < Content > Ġ= Ġmutable ListOf (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġattachments . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" attachments ") ĊĠĠĠĠĠĠĠ Ġvar Ġattachments : ĠMutable List < Attachments > Ġ= Ġmutable ListOf (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġtemplate ĠID . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" template _ id ") ĊĠĠĠĠĠĠĠ Ġvar Ġtemplate Id : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġemail 's Ġsections . ĠAn Ġobject Ġof Ġkey / value Ġpairs Ġthat ĊĠĠĠĠĠĠĠĠ Ġ* Ġdefine Ġblock Ġsections Ġof Ġcode Ġto Ġbe Ġused Ġas Ġsubstitution s . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" sections ") ĊĠĠĠĠĠĠĠ Ġvar Ġsections : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġheaders . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" headers ") ĊĠĠĠĠĠĠĠ Ġvar Ġheaders : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġcategories . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" categories ") ĊĠĠĠĠĠĠĠ Ġvar Ġcategories : ĠMutable List < String > Ġ= Ġmutable ListOf (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġemail 's Ġcustom Ġarguments . ĠValues Ġthat Ġare Ġspecific Ġto ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġentire Ġsend Ġthat Ġwill Ġbe Ġcarried Ġalong Ġwith Ġthe Ġemail ĊĠĠĠĠĠĠĠĠ Ġ* Ġand Ġits Ġactivity Ġdata . ĠSubst itution s Ġwill Ġnot Ġbe Ġmade Ġon ĊĠĠĠĠĠĠĠĠ Ġ* Ġcustom Ġarguments , Ġso Ġany Ġstring Ġthat Ġis Ġentered Ġinto Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġparameter Ġwill Ġbe Ġassumed Ġto Ġbe Ġthe Ġcustom Ġargument Ġthat ĊĠĠĠĠĠĠĠĠ Ġ* Ġyou Ġwould Ġlike Ġto Ġbe Ġused . ĠThis Ġparameter Ġis Ġoverridden Ġby ĊĠĠĠĠĠĠĠĠ Ġ* Ġpersonal izations [ x ]. custom _ args Ġif Ġthat Ġparameter Ġhas Ġbeen ĊĠĠĠĠĠĠĠĠ Ġ* Ġdefined . ĠTotal Ġcustom Ġargs Ġsize Ġmay Ġnot Ġexceed Ġ 1 0 , 0 0 0 Ġbytes . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" custom _ args ") ĊĠĠĠĠĠĠĠ Ġvar Ġcustom Args : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of (), ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġunix Ġtimestamp Ġallowing Ġyou Ġto Ġspecify Ġwhen Ġyou Ġwant ĊĠĠĠĠĠĠĠĠ Ġ* Ġyour Ġemail Ġto Ġbe Ġdelivered . ĠThis Ġmay Ġbe Ġoverridden Ġby ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġpersonal izations [ x ]. send _ at Ġparameter . ĠS cheduling ĊĠĠĠĠĠĠĠĠ Ġ* Ġmore Ġthan Ġ 7 2 Ġhours Ġin Ġadvance Ġis Ġforbidden . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" send _ at ") ĊĠĠĠĠĠĠĠ Ġvar Ġsend At : ĠLong Ġ= Ġ 0 , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis ĠID Ġrepresents Ġa Ġbatch Ġof Ġemails Ġto Ġbe Ġsent Ġat Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġsame Ġtime . ĠIncluding Ġa Ġbatch _ id Ġin Ġyour Ġrequest Ġallows ĊĠĠĠĠĠĠĠĠ Ġ* Ġyou Ġinclude Ġthis Ġemail Ġin Ġthat Ġbatch , Ġand Ġalso Ġenables ĊĠĠĠĠĠĠĠĠ Ġ* Ġyou Ġto Ġcancel Ġor Ġpause Ġthe Ġdelivery Ġof Ġthat Ġbatch . ĠFor ĊĠĠĠĠĠĠĠĠ Ġ* Ġmore Ġinformation , Ġsee Ġhttps :// send grid . com / docs / API _ Reference / Web _ API _ v 3 / cancel _ schedule _ send . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" batch _ id ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" batch _ id ") ĊĠĠĠĠĠĠĠ Ġvar Ġbatch Id : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġunsubscribe Ġhandling Ġobject . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" asm ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" asm ") ĊĠĠĠĠĠĠĠ Ġvar Ġasm : ĠAS M ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's ĠIP Ġpool Ġname . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" ip _ pool _ name ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" ip _ pool _ name ") ĊĠĠĠĠĠĠĠ Ġvar Ġip Pool Id : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġmail Ġsettings . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" mail _ settings ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" mail _ settings ") ĊĠĠĠĠĠĠĠ Ġvar Ġmail Settings : ĠMail Settings ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġtracking Ġsettings . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" tracking _ settings ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" tracking _ settings ") ĊĠĠĠĠĠĠĠ Ġvar Ġtracking Settings : ĠTracking Settings ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġemail 's Ġreply Ġto Ġaddress . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ JsonProperty (" reply _ to ") ĊĠĠĠĠĠĠĠ Ġ@ get : JsonProperty (" reply _ to ") ĊĠĠĠĠĠĠĠ Ġvar Ġreply To : ĠEmail ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstruct Ġa Ġnew ĠMail Ġobject . ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Ġthe Ġemail 's Ġfrom Ġaddress . ĊĠĠĠĠ Ġ* Ġ@ param Ġsubject Ġthe Ġemail 's Ġsubject Ġline . ĊĠĠĠĠ Ġ* Ġ@ param Ġto Ġthe Ġemail 's Ġrecipient . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontent Ġthe Ġemail 's Ġcontent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( from : ĠEmail , Ġsubject : ĠString , Ġto : ĠEmail , Ġcontent : ĠContent ) Ġ: Ġthis ( from Ġ= Ġfrom , Ġsubject Ġ= Ġsubject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpersonal ization Ġ= ĠPersonal ization () ĊĠĠĠĠĠĠĠ Ġpersonal ization . addTo ( to ) ĊĠĠĠĠĠĠĠ Ġthis . add Personal ization ( personal ization ) ĊĠĠĠĠĠĠĠ Ġthis . add Content ( content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġpersonal iz aton Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġpersonal ization Ġa Ġpersonal ization . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Personal ization ( personal ization : ĠPersonal ization ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . personal ization . add ( personal ization . copy ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġcontent Ġto Ġthis Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontent Ġcontent Ġto Ġadd Ġto Ġthis Ġemail . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Content ( content : ĠContent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . content . add ( content . copy ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġattachments Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġattachments Ġattachments Ġto Ġadd . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Attachments ( attachments : ĠAttach ments ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . attachments . add ( attachments . copy ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġsection Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġsection 's Ġkey . ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġsection 's Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Section ( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . sections [ key ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġheader Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġheader 's Ġkey . ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġheader 's Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Header ( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . headers [ key ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġcategory Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġcategory Ġthe Ġcategory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Category ( category : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . categories . add ( category ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġcustom Ġargument Ġto Ġthe Ġemail . ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġargument 's Ġkey . ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġargument 's Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Custom Arg ( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . custom Args [ key ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġstring Ġrep res enation Ġof Ġthe ĠMail Ġobject ĠJSON . ĊĠĠĠĠ Ġ* Ġ@ return Ġa ĠJSON Ġstring . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException Ġin Ġcase Ġof Ġa ĠJSON Ġmarshal Ġerror . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġbuild (): ĠString Ġ= ĠSORT ED _ MAP PER . writeValue AsString ( this ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġstring Ġrep res enation Ġof Ġthe ĠMail Ġobject ĠJSON Ġand Ġpretty Ġprint Ġit . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġpretty ĠJSON Ġstring . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException Ġin Ġcase Ġof Ġa ĠJSON Ġmarshal Ġerror . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġbuild Pretty (): ĠString Ġ= ĠSORT ED _ MAP PER . writer WithDefault PrettyPrinter (). writeValue AsString ( this ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠSORT ED _ MAP PER Ġ= Ġj ack son ObjectMapper () ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSORT ED _ MAP PER . configure ( Serialization Feature . ORDER _ MAP _ ENTR IES _ BY _ KEYS , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }