import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ Ċ import Ġcom . send grid .* Ċ Ċ import Ġjava . io . IOException Ċ import Ġjava . util . HashMap Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠCreate Ġa Ġdomain Ġwh itel abel . Ċ // ĠPOST Ġ/ wh itel abel / domains ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Body ("{ \" automatic _ security \": false ,\" username \":\" john @ example . com \",\" domain \":\" example . com \",\" default \": true ,\" custom _ spf \": true ,\" ips \":[\" 1 9 2 . 1 6 8 . 1 . 1 \",\" 1 9 2 . 1 6 8 . 1 . 2 \" ],\" subdomain \":\" news \" }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠList Ġall Ġdomain Ġwh itel abel s . Ċ // ĠGET Ġ/ wh itel abel / domains ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . GET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add QueryParam (" username ", Ġ" test _ string ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add QueryParam (" domain ", Ġ" test _ string ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add QueryParam (" exclude _ sub users ", Ġ" true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add QueryParam (" limit ", Ġ" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add QueryParam (" offset ", Ġ" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠGet Ġthe Ġdefault Ġdomain Ġwh itel abel . Ċ // ĠGET Ġ/ wh itel abel / domains / default ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . GET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains / default ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠList Ġthe Ġdomain Ġwh itel abel Ġassociated Ġwith Ġthe Ġgiven Ġuser . Ċ // ĠGET Ġ/ wh itel abel / domains / sub user ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . GET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains / sub user ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠDis associate Ġa Ġdomain Ġwh itel abel Ġfrom Ġa Ġgiven Ġuser . Ċ // ĠDELETE Ġ/ wh itel abel / domains / sub user ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . DELETE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains / sub user ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠUpdate Ġa Ġdomain Ġwh itel abel . Ċ // ĠP ATCH Ġ/ wh itel abel / domains /{ domain _ id } ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . PATCH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ domain _ id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Body ("{ \" default \": false ,\" custom _ spf \": true }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠRetrieve Ġa Ġdomain Ġwh itel abel . Ċ // ĠGET Ġ/ wh itel abel / domains /{ domain _ id } ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . GET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ domain _ id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠDelete Ġa Ġdomain Ġwh itel abel . Ċ // ĠDELETE Ġ/ wh itel abel / domains /{ domain _ id } ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . DELETE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ domain _ id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠAssoci ate Ġa Ġdomain Ġwh itel abel Ġwith Ġa Ġgiven Ġuser . Ċ // ĠPOST Ġ/ wh itel abel / domains /{ domain _ id }/ sub user ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ domain _ id }/ sub user ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Body ("{ \" username \":\" j ane @ example . com \" }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠAdd Ġan ĠIP Ġto Ġa Ġdomain Ġwh itel abel . Ċ // ĠPOST Ġ/ wh itel abel / domains /{ id }/ ips ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ id }/ ips ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Body ("{ \" ip \":\" 1 9 2 . 1 6 8 . 0 . 1 \" }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠRemove Ġan ĠIP Ġfrom Ġa Ġdomain Ġwh itel abel . Ċ // ĠDELETE Ġ/ wh itel abel / domains /{ id }/ ips /{ ip } ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . DELETE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ id }/ ips /{ ip }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////// // Ċ // ĠValidate Ġa Ġdomain Ġwh itel abel . Ċ // ĠPOST Ġ/ wh itel abel / domains /{ id }/ validate ĊĊ Ċ object ĠExample Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsg Ġ= ĠSend Grid ( System . getenv (" SEND GRID _ API _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Method ( Method . POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Endpoint (" wh itel abel / domains /{ id }/ validate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsg . api ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getStatusCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( response . getHeaders ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ