Documentation ¶
Index ¶
- Variables
- func ParseContent(content interface{}) (err error)
- func ParseEvents(rawEventsPtr []*json.RawMessage) (*[]events.Event, error)
- func ParseRecipients(recips interface{}) (ra *[]Recipient, err error)
- type Address
- type Attachment
- type Client
- func (c *Client) DoRequest(ctx context.Context, method, urlStr string, data []byte) (*Response, error)
- func (c *Client) EventDocumentation() (g map[string]*EventGroup, res *Response, err error)
- func (c *Client) EventDocumentationContext(ctx context.Context) (g map[string]*EventGroup, res *Response, err error)
- func (c *Client) EventSamples(types *[]string) (*events.Events, *Response, error)
- func (c *Client) EventSamplesContext(ctx context.Context, types *[]string) (*events.Events, *Response, error)
- func (c *Client) HttpDelete(ctx context.Context, url string) (*Response, error)
- func (c *Client) HttpGet(ctx context.Context, url string) (*Response, error)
- func (c *Client) HttpPost(ctx context.Context, url string, data []byte) (*Response, error)
- func (c *Client) HttpPut(ctx context.Context, url string, data []byte) (*Response, error)
- func (api *Client) Init(cfg *Config) error
- func (c *Client) MessageEventsSearch(ep *EventsPage) (*Response, error)
- func (c *Client) MessageEventsSearchContext(ctx context.Context, ep *EventsPage) (*Response, error)
- func (c *Client) QueryMetrics(m *Metrics) (*Response, error)
- func (c *Client) QueryMetricsContext(ctx context.Context, m *Metrics) (*Response, error)
- func (c *Client) QueryWebhook(q *WebhookQueryWrapper) (*Response, error)
- func (c *Client) QueryWebhookContext(ctx context.Context, q *WebhookQueryWrapper) (*Response, error)
- func (c *Client) RecipientListCreate(rl *RecipientList) (id string, res *Response, err error)
- func (c *Client) RecipientListCreateContext(ctx context.Context, rl *RecipientList) (id string, res *Response, err error)
- func (c *Client) RecipientLists() (*[]RecipientList, *Response, error)
- func (c *Client) RecipientListsContext(ctx context.Context) (*[]RecipientList, *Response, error)
- func (c *Client) RemoveHeader(header string)
- func (c *Client) Send(t *Transmission) (id string, res *Response, err error)
- func (c *Client) SendContext(ctx context.Context, t *Transmission) (id string, res *Response, err error)
- func (c *Client) SetHeader(header string, value string)
- func (c *Client) Subaccount(id int) (subaccount *Subaccount, res *Response, err error)
- func (c *Client) SubaccountContext(ctx context.Context, id int) (subaccount *Subaccount, res *Response, err error)
- func (c *Client) SubaccountCreate(s *Subaccount) (res *Response, err error)
- func (c *Client) SubaccountCreateContext(ctx context.Context, s *Subaccount) (res *Response, err error)
- func (c *Client) SubaccountUpdate(s *Subaccount) (res *Response, err error)
- func (c *Client) SubaccountUpdateContext(ctx context.Context, s *Subaccount) (res *Response, err error)
- func (c *Client) Subaccounts() (subaccounts []Subaccount, res *Response, err error)
- func (c *Client) SubaccountsContext(ctx context.Context) (subaccounts []Subaccount, res *Response, err error)
- func (c *Client) SuppressionDelete(email string) (res *Response, err error)
- func (c *Client) SuppressionDeleteContext(ctx context.Context, email string) (res *Response, err error)
- func (c *Client) SuppressionList() (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionListContext(ctx context.Context) (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionRetrieve(email string) (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionRetrieveContext(ctx context.Context, email string) (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionSearch(params map[string]string) (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionSearchContext(ctx context.Context, params map[string]string) (*SuppressionListWrapper, *Response, error)
- func (c *Client) SuppressionUpsert(entries []SuppressionEntry) (*Response, error)
- func (c *Client) SuppressionUpsertContext(ctx context.Context, entries []SuppressionEntry) (*Response, error)
- func (c *Client) TemplateCreate(t *Template) (id string, res *Response, err error)
- func (c *Client) TemplateCreateContext(ctx context.Context, t *Template) (id string, res *Response, err error)
- func (c *Client) TemplateDelete(id string) (res *Response, err error)
- func (c *Client) TemplateDeleteContext(ctx context.Context, id string) (res *Response, err error)
- func (c *Client) TemplatePreview(id string, payload *PreviewOptions) (res *Response, err error)
- func (c *Client) TemplatePreviewContext(ctx context.Context, id string, payload *PreviewOptions) (res *Response, err error)
- func (c *Client) TemplateUpdate(t *Template) (res *Response, err error)
- func (c *Client) TemplateUpdateContext(ctx context.Context, t *Template) (res *Response, err error)
- func (c *Client) Templates() ([]Template, *Response, error)
- func (c *Client) TemplatesContext(ctx context.Context) ([]Template, *Response, error)
- func (c *Client) Transmission(t *Transmission) (*Response, error)
- func (c *Client) TransmissionContext(ctx context.Context, t *Transmission) (*Response, error)
- func (c *Client) TransmissionDelete(t *Transmission) (*Response, error)
- func (c *Client) TransmissionDeleteContext(ctx context.Context, t *Transmission) (*Response, error)
- func (c *Client) Transmissions(t *Transmission) ([]Transmission, *Response, error)
- func (c *Client) TransmissionsContext(ctx context.Context, t *Transmission) ([]Transmission, *Response, error)
- func (c *Client) WebhookStatus(s *WebhookStatusWrapper) (*Response, error)
- func (c *Client) WebhookStatusContext(ctx context.Context, s *WebhookStatusWrapper) (*Response, error)
- func (c *Client) Webhooks(l *WebhookListWrapper) (*Response, error)
- func (c *Client) WebhooksContext(ctx context.Context, l *WebhookListWrapper) (*Response, error)
- type Config
- type Content
- type Error
- type EventField
- type EventGroup
- type EventMeta
- type EventsPage
- type From
- type InlineImage
- type MetricItem
- type Metrics
- type PreviewOptions
- type RFC3339
- type Recipient
- type RecipientList
- type Response
- type Subaccount
- type SuppressionEntry
- type SuppressionListWrapper
- type Template
- type TmplOptions
- type Transmission
- type TxOptions
- type WebhookCommon
- type WebhookItem
- type WebhookListWrapper
- type WebhookQueryWrapper
- type WebhookStatus
- type WebhookStatusWrapper
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( MessageEventsPathFormat = "/api/v%d/message-events" MessageEventsSamplesPathFormat = "/api/v%d/message-events/events/samples" )
https://www.sparkpost.com/api#/reference/message-events
var EventDocumentationFormat = "/api/v%d/webhooks/events/documentation"
var MetricsPathFormat = "/api/v%d/metrics/deliverability"
var SuppressionListsPathFormat = "/api/v%d/suppression-list"
https://developers.sparkpost.com/api/#/reference/suppression-list
var TransmissionsPathFormat = "/api/v%d/transmissions"
https://www.sparkpost.com/api#/reference/transmissions
var WebhookListPathFormat = "/api/v%d/webhooks"
https://www.sparkpost.com/api#/reference/message-events
var WebhookQueryPathFormat = "/api/v%d/webhooks/%s"
var WebhookStatusPathFormat = "/api/v%d/webhooks/%s/batch-status"
Functions ¶
func ParseContent ¶
func ParseContent(content interface{}) (err error)
ParseContent asserts that Transmission.Content is valid.
func ParseEvents ¶
func ParseEvents(rawEventsPtr []*json.RawMessage) (*[]events.Event, error)
ParseEvents function is left only for backward-compatibility. Events are parsed by events pkg.
func ParseRecipients ¶
ParseRecipients asserts that Transmission.Recipients is valid.
Types ¶
type Address ¶
type Address struct { Email string `json:"email"` Name string `json:"name,omitempty"` HeaderTo string `json:"header_to,omitempty"` }
Address describes the nested object way of specifying the Recipient's email address. Recipient.Address can also be a plain string.
func ParseAddress ¶
ParseAddress parses the various allowable Content.From values.
type Attachment ¶
type Attachment struct { MIMEType string `json:"type"` Filename string `json:"name"` B64Data string `json:"data"` }
Attachment contains metadata and the contents of the file to attach.
type Client ¶
Client contains connection, configuration, and authentication information. Specifying your own http.Client gives you lots of control over how connections are made. Clients are safe for concurrent (read-only) reuse by multiple goroutines.
func (*Client) EventDocumentation ¶
func (c *Client) EventDocumentation() (g map[string]*EventGroup, res *Response, err error)
func (*Client) EventDocumentationContext ¶
func (*Client) EventSamples ¶
EventSamples requests a list of example event data.
func (*Client) EventSamplesContext ¶
func (c *Client) EventSamplesContext(ctx context.Context, types *[]string) (*events.Events, *Response, error)
EventSamplesContext is the same as EventSamples, and it accepts a context.Context
func (*Client) HttpDelete ¶
HttpDelete sends a Delete request to the provided url. Query params are supported via net/url - roll your own and stringify it. Authenticate using the configured API key.
func (*Client) HttpGet ¶
HttpGet sends a Get request to the specified url. Query params are supported via net/url - roll your own and stringify it. Authenticate using the configured API key.
func (*Client) HttpPost ¶
HttpPost sends a Post request with the provided JSON payload to the specified url. Query params are supported via net/url - roll your own and stringify it. Authenticate using the configured API key.
func (*Client) HttpPut ¶
HttpPut sends a Put request with the provided JSON payload to the specified url. Query params are supported via net/url - roll your own and stringify it. Authenticate using the configured API key.
func (*Client) Init ¶
Init pulls together everything necessary to make an API request. Caller may provide their own http.Client by setting it in the provided API object.
func (*Client) MessageEventsSearch ¶
func (c *Client) MessageEventsSearch(ep *EventsPage) (*Response, error)
func (*Client) MessageEventsSearchContext ¶
MessageEventsSearchContext is the same as MessageEventsSearch, and it accepts a context.Context
func (*Client) QueryMetrics ¶
https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-domain
func (*Client) QueryMetricsContext ¶
func (*Client) QueryWebhook ¶
func (c *Client) QueryWebhook(q *WebhookQueryWrapper) (*Response, error)
https://developers.sparkpost.com/api/#/reference/webhooks/retrieve/retrieve-webhook-details
func (*Client) QueryWebhookContext ¶
func (*Client) RecipientListCreate ¶
func (c *Client) RecipientListCreate(rl *RecipientList) (id string, res *Response, err error)
RecipientListCreate accepts a populated RecipientList object, validates it, and performs an API call against the configured endpoint.
func (*Client) RecipientListCreateContext ¶
func (c *Client) RecipientListCreateContext(ctx context.Context, rl *RecipientList) (id string, res *Response, err error)
RecipientListCreateContext is the same as RecipientListCreate, and it accepts a context.Context
func (*Client) RecipientLists ¶
func (c *Client) RecipientLists() (*[]RecipientList, *Response, error)
RecipientLists returns all recipient lists
func (*Client) RecipientListsContext ¶
RecipientListsContext is the same as RecipientLists, and it accepts a context.Context
func (*Client) RemoveHeader ¶
RemoveHeader removes a header set in SetHeader function All calls to RemoveHeader must happen before Client is exposed to possible concurrent use.
func (*Client) Send ¶
func (c *Client) Send(t *Transmission) (id string, res *Response, err error)
Send accepts a populated Transmission object, performs basic sanity checks on it, and performs an API call against the configured endpoint. Calling this function can cause email to be sent, if used correctly.
func (*Client) SendContext ¶
func (c *Client) SendContext(ctx context.Context, t *Transmission) (id string, res *Response, err error)
SendContext does the same thing as Send, and in addition it accepts a context from the caller.
func (*Client) SetHeader ¶
SetHeader adds additional HTTP headers for every API request made from client. Useful to set subaccount X-MSYS-SUBACCOUNT header and etc. All calls to SetHeader must happen before Client is exposed to possible concurrent use.
func (*Client) Subaccount ¶
func (c *Client) Subaccount(id int) (subaccount *Subaccount, res *Response, err error)
Subaccount looks up a subaccount by its id
func (*Client) SubaccountContext ¶
func (c *Client) SubaccountContext(ctx context.Context, id int) (subaccount *Subaccount, res *Response, err error)
SubaccountContext is the same as Subaccount, and it accepts a context.Context
func (*Client) SubaccountCreate ¶
func (c *Client) SubaccountCreate(s *Subaccount) (res *Response, err error)
SubaccountCreate accepts a populated Subaccount object, validates it, and performs an API call against the configured endpoint.
func (*Client) SubaccountCreateContext ¶
func (c *Client) SubaccountCreateContext(ctx context.Context, s *Subaccount) (res *Response, err error)
SubaccountCreateContext is the same as SubaccountCreate, and it allows the caller to pass in a context
func (*Client) SubaccountUpdate ¶
func (c *Client) SubaccountUpdate(s *Subaccount) (res *Response, err error)
SubaccountUpdate updates a subaccount with the specified id. Actually it will marshal and send all the subaccount fields, but that must not be a problem, as fields not supposed for update will be omitted
func (*Client) SubaccountUpdateContext ¶
func (c *Client) SubaccountUpdateContext(ctx context.Context, s *Subaccount) (res *Response, err error)
SubaccountUpdateContext is the same as SubaccountUpdate, and it allows the caller to provide a context
func (*Client) Subaccounts ¶
func (c *Client) Subaccounts() (subaccounts []Subaccount, res *Response, err error)
Subaccounts returns metadata for all Templates in the system.
func (*Client) SubaccountsContext ¶
func (c *Client) SubaccountsContext(ctx context.Context) (subaccounts []Subaccount, res *Response, err error)
SubaccountsContext is the same as Subaccounts, and it allows the caller to provide a context
func (*Client) SuppressionDelete ¶
func (*Client) SuppressionDeleteContext ¶
func (*Client) SuppressionList ¶
func (c *Client) SuppressionList() (*SuppressionListWrapper, *Response, error)
func (*Client) SuppressionListContext ¶
func (*Client) SuppressionRetrieve ¶
func (c *Client) SuppressionRetrieve(email string) (*SuppressionListWrapper, *Response, error)
func (*Client) SuppressionRetrieveContext ¶
func (*Client) SuppressionSearch ¶
func (*Client) SuppressionSearchContext ¶
func (*Client) SuppressionUpsert ¶
func (c *Client) SuppressionUpsert(entries []SuppressionEntry) (*Response, error)
SuppressionUpsert adds an entry to the suppression, or updates the existing entry
func (*Client) SuppressionUpsertContext ¶
func (c *Client) SuppressionUpsertContext(ctx context.Context, entries []SuppressionEntry) (*Response, error)
SuppressionUpsertContext is the same as SuppressionUpsert, and it accepts a context.Context
func (*Client) TemplateCreate ¶
TemplateCreate accepts a populated Template object, validates its Contents, and performs an API call against the configured endpoint.
func (*Client) TemplateCreateContext ¶
func (c *Client) TemplateCreateContext(ctx context.Context, t *Template) (id string, res *Response, err error)
TemplateCreateContext is the same as TemplateCreate, and it allows the caller to provide a context.
func (*Client) TemplateDelete ¶
TemplateDelete removes the Template with the specified id.
func (*Client) TemplateDeleteContext ¶
TemplateDeleteContext is the same as TemplateDelete, and it allows the caller to provide a context
func (*Client) TemplatePreview ¶
func (c *Client) TemplatePreview(id string, payload *PreviewOptions) (res *Response, err error)
TemplatePreview renders and returns the output of a template using the provided substitution data.
func (*Client) TemplatePreviewContext ¶
func (c *Client) TemplatePreviewContext(ctx context.Context, id string, payload *PreviewOptions) (res *Response, err error)
TemplatePreviewContext is the same as TemplatePreview, and it allows the caller to provide a context
func (*Client) TemplateUpdate ¶
TemplateUpdate updates a draft/published template with the specified id
func (*Client) TemplateUpdateContext ¶
TemplateUpdateContext is the same as TemplateUpdate, and it allows the caller to provide a context
func (*Client) TemplatesContext ¶
TemplatesContext is the same as Templates, and it allows the caller to provide a context
func (*Client) Transmission ¶
func (c *Client) Transmission(t *Transmission) (*Response, error)
Transmission accepts a Transmission, looks up the record using its ID, and fills out the provided object.
func (*Client) TransmissionContext ¶
TransmissionContext is the same as Transmission, and it allows the caller to pass in a context.
func (*Client) TransmissionDelete ¶
func (c *Client) TransmissionDelete(t *Transmission) (*Response, error)
TransmissionDelete attempts to remove the Transmission with the specified id. Only Transmissions which are scheduled for future generation may be deleted.
func (*Client) TransmissionDeleteContext ¶
TransmissionDeleteContext is the same as TransmissionDelete, and it allows the caller to provide a context.
func (*Client) Transmissions ¶
func (c *Client) Transmissions(t *Transmission) ([]Transmission, *Response, error)
Transmissions returns Transmission summary information for matching Transmissions. Filtering by CampaignID (t.CampaignID) and TemplateID (t.ID) is supported.
func (*Client) TransmissionsContext ¶
func (c *Client) TransmissionsContext(ctx context.Context, t *Transmission) ([]Transmission, *Response, error)
TransmissionsContext is the same as Transmissions, and it allows the caller to provide a context.
func (*Client) WebhookStatus ¶
func (c *Client) WebhookStatus(s *WebhookStatusWrapper) (*Response, error)
https://developers.sparkpost.com/api/#/reference/webhooks/batch-status/retrieve-status-information
func (*Client) WebhookStatusContext ¶
func (*Client) Webhooks ¶
func (c *Client) Webhooks(l *WebhookListWrapper) (*Response, error)
https://developers.sparkpost.com/api/#/reference/webhooks/list/list-all-webhooks
func (*Client) WebhooksContext ¶
type Config ¶
type Config struct { BaseUrl string ApiKey string Username string Password string ApiVersion int Verbose bool }
Config includes all information necessary to make an API request.
type Content ¶
type Content struct { HTML string `json:"html,omitempty"` Text string `json:"text,omitempty"` Subject string `json:"subject,omitempty"` From interface{} `json:"from,omitempty"` ReplyTo string `json:"reply_to,omitempty"` Headers map[string]string `json:"headers,omitempty"` EmailRFC822 string `json:"email_rfc822,omitempty"` Attachments []Attachment `json:"attachments,omitempty"` InlineImages []InlineImage `json:"inline_images,omitempty"` }
Content is what you'll send to your Recipients. Knowledge of SparkPost's substitution/templating capabilities will come in handy here. https://www.sparkpost.com/api#/introduction/substitutions-reference
type Error ¶
type Error struct { Message string `json:"message"` Code string `json:"code"` Description string `json:"description"` Part string `json:"part,omitempty"` Line int `json:"line,omitempty"` }
Error mirrors the error format returned by SparkPost APIs.
type EventField ¶
type EventField struct { Description string `json:"description"` SampleValue interface{} `json:"sampleValue"` }
type EventGroup ¶
type EventMeta ¶
type EventMeta struct { Name string Fields map[string]EventField `json:"event"` Description string `json:"description"` DisplayName string `json:"display_name"` }
type EventsPage ¶
type EventsPage struct { Events events.Events TotalCount int Errors []interface{} NextPage string PrevPage string FirstPage string LastPage string Params map[string]string `json:"-"` // contains filtered or unexported fields }
func (*EventsPage) Next ¶
func (ep *EventsPage) Next() (*EventsPage, *Response, error)
Next returns the next page of results from a previous MessageEventsSearch call
func (*EventsPage) NextContext ¶
func (ep *EventsPage) NextContext(ctx context.Context) (*EventsPage, *Response, error)
NextContext is the same as Next, and it accepts a context.Context
func (*EventsPage) UnmarshalJSON ¶
func (ep *EventsPage) UnmarshalJSON(data []byte) error
type From ¶
From describes the nested object way of specifying the From header. Content.From can be specified this way, or as a plain string.
type InlineImage ¶
type InlineImage Attachment
InlineImage contains metadata and the contents of the image to make available for inline use.
type MetricItem ¶
type MetricItem struct { CountInjected int `json:"count_injected"` CountBounce int `json:"count_bounce,omitempty"` CountRejected int `json:"count_rejected,omitempty"` CountDelivered int `json:"count_delivered,omitempty"` CountDeliveredFirst int `json:"count_delivered_first,omitempty"` CountDeliveredSubsequent int `json:"count_delivered_subsequent,omitempty"` TotalDeliveryTimeFirst int `json:"total_delivery_time_first,omitempty"` TotalDeliveryTimeSubsequent int `json:"total_delivery_time_subsequent,omitempty"` TotalMsgVolume int `json:"total_msg_volume,omitempty"` CountPolicyRejection int `json:"count_policy_rejection,omitempty"` CountGenerationRejection int `json:"count_generation_rejection,omitempty"` CountGenerationFailed int `json:"count_generation_failed,omitempty"` CountInbandBounce int `json:"count_inband_bounce,omitempty"` CountOutofbandBounce int `json:"count_outofband_bounce,omitempty"` CountSoftBounce int `json:"count_soft_bounce,omitempty"` CountHardBounce int `json:"count_hard_bounce,omitempty"` CountBlockBounce int `json:"count_block_bounce,omitempty"` CountAdminBounce int `json:"count_admin_bounce,omitempty"` CountUndeterminedBounce int `json:"count_undetermined_bounce,omitempty"` CountDelayed int `json:"count_delayed,omitempty"` CountDelayedFirst int `json:"count_delayed_first,omitempty"` CountRendered int `json:"count_rendered,omitempty"` CountUniqueRendered int `json:"count_unique_rendered,omitempty"` CountUniqueConfirmedOpened int `json:"count_unique_confirmed_opened,omitempty"` CountClicked int `json:"count_clicked,omitempty"` CountUniqueClicked int `json:"count_unique_clicked,omitempty"` CountTargeted int `json:"count_targeted,omitempty"` CountSent int `json:"count_sent,omitempty"` CountAccepted int `json:"count_accepted,omitempty"` CountSpamComplaint int `json:"count_spam_complaint,omitempty"` Domain string `json:"domain,omitempty"` CampaignId string `json:"campaign_id,omitempty"` TemplateId string `json:"template_id,omitempty"` TimeStamp string `json:"ts,omitempty"` WatchedDomain string `json:"watched_domain,omitempty"` Binding string `json:"binding,omitempty"` BindingGroup string `json:"binding_group,omitempty"` }
type PreviewOptions ¶
type PreviewOptions struct {
SubstitutionData map[string]interface{} `json:"substitution_data"`
}
Preview options contains the required subsitution_data object to preview a template
type RFC3339 ¶
func (*RFC3339) MarshalJSON ¶
type Recipient ¶
type Recipient struct { Address interface{} `json:"address"` ReturnPath string `json:"return_path,omitempty"` Tags []string `json:"tags,omitempty"` Metadata interface{} `json:"metadata,omitempty"` SubstitutionData interface{} `json:"substitution_data,omitempty"` }
Recipient represents one email (you guessed it) recipient.
type RecipientList ¶
type RecipientList struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Attributes interface{} `json:"attributes,omitempty"` Recipients *[]Recipient `json:"recipients"` Accepted *int `json:"total_accepted_recipients,omitempty"` }
RecipientList is the JSON structure accepted by and returned from the SparkPost Recipient Lists API. It's mostly metadata at this level - see Recipients for more detail.
func (*RecipientList) String ¶
func (rl *RecipientList) String() string
func (*RecipientList) Validate ¶
func (rl *RecipientList) Validate() error
Validate runs sanity checks on a RecipientList struct. This should catch most errors before attempting a doomed API call.
type Response ¶
type Response struct { HTTP *http.Response Body []byte Verbose map[string]string Results interface{} `json:"results,omitempty"` Errors []Error `json:"errors,omitempty"` }
Response contains information about the last HTTP response. Helpful when an error message doesn't necessarily give the complete picture. Also contains any messages emitted as a result of the Verbose config option.
func (*Response) AssertJson ¶
AssertJson returns an error if the provided HTTP response isn't JSON.
func (*Response) ParseResponse ¶
ParseResponse pulls info from JSON http responses into api.Response object. It's helpful to call Response.AssertJson before calling this function.
func (*Response) PrettyError ¶
PrettyError returns a human-readable error message for common http errors returned by the API. The string parameters are used to customize the generated error message (example: noun=template, verb=create).
type Subaccount ¶
type Subaccount struct { ID int `json:"subaccount_id,omitempty"` Name string `json:"name,omitempty"` Key string `json:"key,omitempty"` KeyLabel string `json:"key_label,omitempty"` Grants []string `json:"key_grants,omitempty"` ShortKey string `json:"short_key,omitempty"` Status string `json:"status,omitempty"` ComplianceStatus string `json:"compliance_status,omitempty"` }
Subaccount is the JSON structure accepted by and returned from the SparkPost Subaccounts API.
type SuppressionEntry ¶
type SuppressionEntry struct { // Email is used when list is stored Email string `json:"email,omitempty"` // Recipient is used when a list is returned Recipient string `json:"recipient,omitempty"` Transactional bool `json:"transactional,omitempty"` NonTransactional bool `json:"non_transactional,omitempty"` Source string `json:"source,omitempty"` Type string `json:type,omitempty` Description string `json:"description,omitempty"` Updated string `json:"updated,omitempty"` Created string `json:"created,omitempty"` }
type SuppressionListWrapper ¶
type SuppressionListWrapper struct { Results []*SuppressionEntry `json:"results,omitempty"` Recipients []SuppressionEntry `json:"recipients,omitempty"` }
type Template ¶
type Template struct { ID string `json:"id,omitempty"` Content Content `json:"content,omitempty"` Published bool `json:"published,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` LastUse time.Time `json:"last_use,omitempty"` LastUpdate time.Time `json:"last_update_time,omitempty"` Options *TmplOptions `json:"options,omitempty"` }
Template is the JSON structure accepted by and returned from the SparkPost Templates API. It's mostly metadata at this level - see Content and Options for more detail.
Example ¶
Build a native Go Template structure from a JSON string
package main import ( "encoding/json" "log" sp "github.com/SparkPost/gosparkpost" ) func main() { template := &sp.Template{} jsonStr := `{ "name": "testy template", "content": { "html": "this is a <b>test</b> email!", "subject": "test email", "from": { "name": "tester", "email": "tester@example.com" }, "reply_to": "tester@example.com" } }` err := json.Unmarshal([]byte(jsonStr), template) if err != nil { log.Fatal(err) } }
Output:
func (*Template) SetHeaders ¶
SetHeaders is a convenience method which sets Template.Content.Headers to the provided map.
type TmplOptions ¶
type TmplOptions struct { OpenTracking bool `json:"open_tracking,omitempty"` ClickTracking bool `json:"click_tracking,omitempty"` Transactional bool `json:"transactional,omitempty"` }
Options specifies settings to apply to this Template. These settings may be overridden in the Transmission API call.
type Transmission ¶
type Transmission struct { ID string `json:"id,omitempty"` State string `json:"state,omitempty"` Options *TxOptions `json:"options,omitempty"` Recipients interface{} `json:"recipients"` CampaignID string `json:"campaign_id,omitempty"` Description string `json:"description,omitempty"` Metadata interface{} `json:"metadata,omitempty"` SubstitutionData interface{} `json:"substitution_data,omitempty"` ReturnPath string `json:"return_path,omitempty"` Content interface{} `json:"content"` TotalRecipients *int `json:"total_recipients,omitempty"` NumGenerated *int `json:"num_generated,omitempty"` NumFailedGeneration *int `json:"num_failed_generation,omitempty"` NumInvalidRecipients *int `json:"num_invalid_recipients,omitempty"` }
Transmission is the JSON structure accepted by and returned from the SparkPost Transmissions API.
func (*Transmission) Validate ¶
func (t *Transmission) Validate() error
Validate runs sanity checks of a Transmission struct. This should catch most errors before attempting a doomed API call.
type TxOptions ¶
type TxOptions struct { TmplOptions StartTime *RFC3339 `json:"start_time,omitempty"` Sandbox bool `json:"sandbox,omitempty"` SkipSuppression string `json:"skip_suppression,omitempty"` InlineCSS bool `json:"inline_css,omitempty"` }
Options specifies settings to apply to this Transmission. If not specified, and present in TmplOptions, those values will be used.
type WebhookCommon ¶
type WebhookItem ¶
type WebhookItem struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Target string `json:"target,omitempty"` Events []string `json:"events,omitempty"` AuthType string `json:"auth_type,omitempty"` AuthRequestDetails struct { URL string `json:"url,omitempty"` Body struct { ClientID string `json:"client_id,omitempty"` ClientSecret string `json:"client_secret,omitempty"` } `json:"body,omitempty"` } `json:"auth_request_details,omitempty"` AuthCredentials struct { Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` AccessToken string `json:"access_token,omitempty"` ExpiresIn int `json:"expires_in,omitempty"` } `json:"auth_credentials,omitempty"` AuthToken string `json:"auth_token,omitempty"` LastSuccessful string `json:"last_successful,omitempty,omitempty"` LastFailure string `json:"last_failure,omitempty,omitempty"` Links []struct { Href string `json:"href,omitempty"` Rel string `json:"rel,omitempty"` Method []string `json:"method,omitempty"` } `json:"links,omitempty"` }
type WebhookListWrapper ¶
type WebhookListWrapper struct { Results []*WebhookItem `json:"results,omitempty"` WebhookCommon }
type WebhookQueryWrapper ¶
type WebhookQueryWrapper struct { ID string `json:"-"` Results *WebhookItem `json:"results,omitempty"` WebhookCommon }
type WebhookStatus ¶
type WebhookStatusWrapper ¶
type WebhookStatusWrapper struct { ID string `json:"-"` Results []*WebhookStatus `json:"results,omitempty"` WebhookCommon }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
sparks
Sparks is a command-line tool for quickly sending email using SparkPost.
|
Sparks is a command-line tool for quickly sending email using SparkPost. |
Package events defines a struct for each type of event and provides various other helper functions.
|
Package events defines a struct for each type of event and provides various other helper functions. |
examples
|
|
helpers
|
|