sendgrid

package module
v1.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2025 License: MIT Imports: 16 Imported by: 0

README

SendGrid API in Go

GoDoc test lint codecov

This library supports most if not all of the SendGrid REST calls.

Installing

go get
$ go get -u github.com/kenzo0107/sendgrid

Example

Get Teammate
package main

import (
	"context"
	"log"
	"os"

	"github.com/kenzo0107/sendgrid"
)

func main() {
	apiKey := os.Getenv("SENDGRID_API_KEY")

	c := sendgrid.New(apiKey)
	u, err := c.GetTeammate(context.TODO(), "username")
	if err != nil {
		fmt.Printf("%s\n", err)
		return
	}
	log.Printf("user: %#v\n", u)
}

License

MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it.

func OptionBaseURL

func OptionBaseURL(endpoint string) func(*Client)

OptionBaseURL - provide a custom base url to the sendgrid client.

func OptionDebug

func OptionDebug(b bool) func(*Client)

OptionDebug enable debugging for the client

func OptionHTTPClient

func OptionHTTPClient(client httpClient) func(*Client)

OptionHTTPClient - provide a custom http client to the sendgrid client.

func OptionLog

func OptionLog(l logger) func(*Client)

OptionLog set logging for client.

func OptionSubuser

func OptionSubuser(subuser string) func(*Client)

OptionBaseURL - provide a custom base url to the sendgrid client.

func String

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

Types

type APIKey added in v0.0.2

type APIKey struct {
	ApiKeyId string `json:"api_key_id,omitempty"`
	Name     string `json:"name,omitempty"`
}

type ARecord added in v0.0.17

type ARecord struct {
	Valid bool   `json:"valid,omitempty"`
	Type  string `json:"type,omitempty"`
	Host  string `json:"host,omitempty"`
	Data  string `json:"data,omitempty"`
}

type ARecordValidationResults added in v0.0.17

type ARecordValidationResults struct {
	Valid  bool   `json:"valid,omitempty"`
	Reason string `json:"reason,omitempty"`
}

type ASM added in v1.6.0

type ASM struct {
	GroupID         int   `json:"group_id"`
	GroupsToDisplay []int `json:"groups_to_display,omitempty"`
}

ASM represents Advanced Suppression Manager settings

type Alert added in v1.4.0

type Alert struct {
	ID         int64  `json:"id,omitempty"`
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Type       string `json:"type,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
	CreatedAt  int64  `json:"created_at,omitempty"`
	UpdatedAt  int64  `json:"updated_at,omitempty"`
}

type Attachment added in v1.6.0

type Attachment struct {
	Content     string `json:"content"`
	Type        string `json:"type,omitempty"`
	Filename    string `json:"filename"`
	Disposition string `json:"disposition,omitempty"`
	ContentID   string `json:"content_id,omitempty"`
}

Attachment represents an email attachment

type Block added in v1.6.0

type Block struct {
	Created int64  `json:"created"`
	Email   string `json:"email"`
	Reason  string `json:"reason"`
}

Block represents a blocked email

type Bounce added in v1.6.0

type Bounce struct {
	Created int64  `json:"created"`
	Email   string `json:"email"`
	Reason  string `json:"reason"`
	Status  string `json:"status"`
}

Bounce represents a bounced email

type BrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type CategoryStat added in v1.6.0

type CategoryStat struct {
	Date  string     `json:"date,omitempty"`
	Stats []StatItem `json:"stats,omitempty"`
}

CategoryStat represents category statistics

type ClickTrackingSetting added in v1.6.0

type ClickTrackingSetting struct {
	Enable     *bool `json:"enable,omitempty"`
	EnableText *bool `json:"enable_text,omitempty"`
}

ClickTrackingSetting represents click tracking settings

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client : sendgrid client

func New

func New(apiKey string, options ...Option) *Client

New builds a sendgrid client from the provided token, baseURL and options

func (*Client) AddIPToAuthenticatedDomain added in v0.0.6

func (c *Client) AddIPToAuthenticatedDomain(ctx context.Context, domainId int64, input *InputAddIPToAuthenticatedDomain) (*OutputAddIPToAuthenticatedDomain, error)

NOTE: The 'dns' key in the API response for adding an IP to the authenticated domain is different from what is documented. see: https://docs.sendgrid.com/api-reference/domain-authentication/add-an-ip-to-an-authenticated-domain#responses

func (*Client) AddIPToPool added in v1.6.0

func (c *Client) AddIPToPool(ctx context.Context, poolName, ip string) error

AddIPToPool adds an IP address to a pool see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/add-an-ip-address-to-a-pool

func (*Client) AddOptions

func (c *Client) AddOptions(s string, opts interface{}) (string, error)

AddOptions adds the parameters in opt as URL query parameters to s. opt must be a struct whose fields may contain "url" tags.

func (*Client) AssociateAuthenticatedDomainWithSubuser added in v0.0.6

func (c *Client) AssociateAuthenticatedDomainWithSubuser(ctx context.Context, domainId int64, input *InputAssociateAuthenticatedDomainWithSubuser) (*OutputAssociateAuthenticatedDomainWithSubuser, error)

func (*Client) AssociateBrandedLinkWithSubuser added in v0.0.7

func (c *Client) AssociateBrandedLinkWithSubuser(ctx context.Context, id int64, input *InputAssociateBrandedLinkWithSubuser) (*OutputAssociateBrandedLinkWithSubuser, error)

func (*Client) AuthenticateDomain added in v0.0.6

func (c *Client) AuthenticateDomain(ctx context.Context, input *InputAuthenticateDomain) (*OutputAuthenticateDomain, error)

func (*Client) CompletedStepsVerifiedSender added in v0.0.10

func (c *Client) CompletedStepsVerifiedSender(ctx context.Context) (*CompletedStepsVerifiedSender, error)

func (*Client) CreateAPIKey added in v0.0.2

func (c *Client) CreateAPIKey(ctx context.Context, input *InputCreateAPIKey) (*OutputCreateAPIKey, error)
func (c *Client) CreateBrandedLink(ctx context.Context, input *InputCreateBrandedLink) (*OutputCreateBrandedLink, error)

func (*Client) CreateIPPool added in v1.6.0

func (c *Client) CreateIPPool(ctx context.Context, name string) (*IPPool, error)

CreateIPPool creates an IP pool see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/create-an-ip-pool

func (*Client) CreateSSOCertificate added in v0.0.20

func (c *Client) CreateSSOCertificate(ctx context.Context, input *InputCreateSSOCertificate) (*OutputCreateSSOCertificate, error)

func (*Client) CreateVerifiedSenderRequest added in v0.0.10

func (c *Client) CreateVerifiedSenderRequest(ctx context.Context, input *InputCreateVerifiedSenderRequest) (*OutputCreateVerifiedSenderRequest, error)

func (*Client) Debug

func (c *Client) Debug() bool

Debug returns if debug is enabled.

func (*Client) Debugf

func (c *Client) Debugf(format string, v ...interface{})

Debugf print a formatted debug line.

func (*Client) Debugln

func (c *Client) Debugln(v ...interface{})

Debugln print a debug line.

func (*Client) DeleteAPIKey added in v0.0.2

func (c *Client) DeleteAPIKey(ctx context.Context, apiKeyId string) error

func (*Client) DeleteAuthenticatedDomain added in v0.0.6

func (c *Client) DeleteAuthenticatedDomain(ctx context.Context, domainId int64) error

func (*Client) DeleteBlock added in v1.6.0

func (c *Client) DeleteBlock(ctx context.Context, email string) error

DeleteBlock deletes a specific block see: https://www.twilio.com/docs/sendgrid/api-reference/blocks/delete-a-specific-block

func (*Client) DeleteBlocks added in v1.6.0

func (c *Client) DeleteBlocks(ctx context.Context, input *InputDeleteSuppressions) error

DeleteBlocks deletes blocks see: https://www.twilio.com/docs/sendgrid/api-reference/blocks/delete-blocks

func (*Client) DeleteBounce added in v1.6.0

func (c *Client) DeleteBounce(ctx context.Context, email string) error

DeleteBounce deletes a specific bounce see: https://www.twilio.com/docs/sendgrid/api-reference/bounces/delete-a-bounce

func (*Client) DeleteBounces added in v1.6.0

func (c *Client) DeleteBounces(ctx context.Context, input *InputDeleteSuppressions) error

DeleteBounces deletes bounces see: https://www.twilio.com/docs/sendgrid/api-reference/bounces/delete-bounces

func (c *Client) DeleteBrandedLink(ctx context.Context, id int64) error

func (*Client) DeleteDesign added in v1.0.3

func (c *Client) DeleteDesign(ctx context.Context, id string) error

see: https://docs.sendgrid.com/api-reference/designs-api/delete-design

func (*Client) DeleteEventWebhook added in v1.0.2

func (c *Client) DeleteEventWebhook(ctx context.Context, id string) error

see: https://docs.sendgrid.com/api-reference/webhooks/delete-an-event-webhook

func (*Client) DeleteIPPool added in v1.6.0

func (c *Client) DeleteIPPool(ctx context.Context, name string) error

DeleteIPPool deletes an IP pool see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/delete-an-ip-pool

func (*Client) DeleteInboundParseWebhook added in v1.1.1

func (c *Client) DeleteInboundParseWebhook(ctx context.Context, hostname string) error

see: https://docs.sendgrid.com/api-reference/settings-inbound-parse/delete-a-parse-setting

func (*Client) DeleteInvalidEmail added in v1.6.0

func (c *Client) DeleteInvalidEmail(ctx context.Context, email string) error

DeleteInvalidEmail deletes a specific invalid email see: https://www.twilio.com/docs/sendgrid/api-reference/invalid-emails/delete-a-specific-invalid-email

func (*Client) DeleteInvalidEmails added in v1.6.0

func (c *Client) DeleteInvalidEmails(ctx context.Context, input *InputDeleteSuppressions) error

DeleteInvalidEmails deletes invalid emails see: https://www.twilio.com/docs/sendgrid/api-reference/invalid-emails/delete-invalid-emails

func (*Client) DeletePendingTeammate

func (c *Client) DeletePendingTeammate(ctx context.Context, token string) error

func (*Client) DeleteSpamReport added in v1.6.0

func (c *Client) DeleteSpamReport(ctx context.Context, email string) error

DeleteSpamReport deletes a specific spam report see: https://www.twilio.com/docs/sendgrid/api-reference/spam-reports/delete-a-specific-spam-report

func (*Client) DeleteSpamReports added in v1.6.0

func (c *Client) DeleteSpamReports(ctx context.Context, input *InputDeleteSuppressions) error

DeleteSpamReports deletes spam reports see: https://www.twilio.com/docs/sendgrid/api-reference/spam-reports/delete-spam-reports

func (*Client) DeleteSubuser added in v0.0.3

func (c *Client) DeleteSubuser(ctx context.Context, username string) error

see: https://www.twilio.com/docs/sendgrid/api-reference/subusers-api/delete-a-subuser

func (*Client) DeleteTeammate

func (c *Client) DeleteTeammate(ctx context.Context, username string) error

func (*Client) DeleteVerifiedSender added in v0.0.10

func (c *Client) DeleteVerifiedSender(ctx context.Context, id int64) error

func (*Client) DisassociateAuthenticatedDomainFromSubuser added in v0.0.6

func (c *Client) DisassociateAuthenticatedDomainFromSubuser(ctx context.Context, subuserName string) error

func (*Client) DisassociateBrandedLinkWithSubuser added in v0.0.7

func (c *Client) DisassociateBrandedLinkWithSubuser(ctx context.Context, username string) error

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) error

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it. If rate limit is exceeded and reset time is in the future, Do returns *RateLimitError immediately without making a network API call.

The provided ctx must be non-nil, if it is nil an error is returned. If it is canceled or times out, ctx.Err() will be returned.

func (*Client) GetAPIKey added in v0.0.2

func (c *Client) GetAPIKey(ctx context.Context, apiKeyId string) (*OutputGetAPIKey, error)

func (*Client) GetAPIKeys added in v0.0.2

func (c *Client) GetAPIKeys(ctx context.Context) (*OutputGetAPIKeys, error)

func (*Client) GetAllIPWarmupStatus added in v1.6.0

func (c *Client) GetAllIPWarmupStatus(ctx context.Context) ([]IPWarmupStatus, error)

GetAllIPWarmupStatus retrieves all IP warmup statuses see: https://www.twilio.com/docs/sendgrid/api-reference/ip-warmup/retrieve-all-ip-warmup-statuses

func (*Client) GetAssignedIPAddresses added in v1.6.0

func (c *Client) GetAssignedIPAddresses(ctx context.Context) ([]IPAddress, error)

GetAssignedIPAddresses retrieves all assigned IP addresses see: https://www.twilio.com/docs/sendgrid/api-reference/ip-addresses/retrieve-all-assigned-ips

func (*Client) GetAuthenticatedDomain added in v0.0.6

func (c *Client) GetAuthenticatedDomain(ctx context.Context, domainId int64) (*OutputGetAuthenticatedDomain, error)

func (*Client) GetAuthenticatedDomainAssociatedWithSubuser added in v0.0.6

func (c *Client) GetAuthenticatedDomainAssociatedWithSubuser(ctx context.Context, subuserName string) (*OutputGetAuthenticatedDomainAssociatedWithSubuser, error)

func (*Client) GetAuthenticatedDomains added in v0.0.6

func (c *Client) GetAuthenticatedDomains(ctx context.Context, input *InputGetAuthenticatedDomains) ([]*DomainAuthentication, error)

func (*Client) GetBlock added in v1.6.0

func (c *Client) GetBlock(ctx context.Context, email string) (*Block, error)

GetBlock retrieves a specific block see: https://www.twilio.com/docs/sendgrid/api-reference/blocks/retrieve-a-specific-block

func (*Client) GetBlocks added in v1.6.0

func (c *Client) GetBlocks(ctx context.Context, opts *SuppressionListOptions) ([]Block, error)

GetBlocks retrieves all blocks see: https://www.twilio.com/docs/sendgrid/api-reference/blocks/retrieve-all-blocks

func (*Client) GetBounce added in v1.6.0

func (c *Client) GetBounce(ctx context.Context, email string) (*Bounce, error)

GetBounce retrieves a specific bounce see: https://www.twilio.com/docs/sendgrid/api-reference/bounces/retrieve-a-bounce

func (*Client) GetBounces added in v1.6.0

func (c *Client) GetBounces(ctx context.Context, opts *SuppressionListOptions) ([]Bounce, error)

GetBounces retrieves all bounces see: https://www.twilio.com/docs/sendgrid/api-reference/bounces/retrieve-all-bounces

func (c *Client) GetBrandedLink(ctx context.Context, id int64) (*OutputGetBrandedLink, error)
func (c *Client) GetBrandedLinks(ctx context.Context, input *InputGetBrandedLinks) ([]*BrandedLink, error)

func (*Client) GetCategoryStats added in v1.6.0

func (c *Client) GetCategoryStats(ctx context.Context, categories []string, opts *StatsOptions) ([]CategoryStat, error)

GetCategoryStats retrieves category email statistics see: https://www.twilio.com/docs/sendgrid/api-reference/categories-statistics/retrieve-email-statistics-for-categories

func (*Client) GetCategorySums added in v1.6.0

func (c *Client) GetCategorySums(ctx context.Context, opts *StatsOptions) ([]CategoryStat, error)

GetCategorySums retrieves category sums see: https://www.twilio.com/docs/sendgrid/api-reference/categories-statistics/retrieve-sums-of-email-stats-for-each-category

func (*Client) GetDefaultAuthentication added in v0.0.6

func (c *Client) GetDefaultAuthentication(ctx context.Context, input *InputGetDefaultAuthentication) (*OutputGetDefaultAuthentication, error)
func (c *Client) GetDefaultBrandedLink(ctx context.Context) (*OutputGetDefaultBrandedLink, error)

func (*Client) GetGlobalStats added in v1.6.0

func (c *Client) GetGlobalStats(ctx context.Context, opts *StatsOptions) ([]GlobalStat, error)

GetGlobalStats retrieves global email statistics see: https://www.twilio.com/docs/sendgrid/api-reference/stats/retrieve-global-email-statistics

func (*Client) GetIPAddress added in v1.6.0

func (c *Client) GetIPAddress(ctx context.Context, ip string) (*IPAddress, error)

GetIPAddress retrieves a specific IP address see: https://www.twilio.com/docs/sendgrid/api-reference/ip-addresses/retrieve-an-ip-address

func (*Client) GetIPAddresses added in v1.6.0

func (c *Client) GetIPAddresses(ctx context.Context) ([]IPAddress, error)

GetIPAddresses retrieves all IP addresses see: https://www.twilio.com/docs/sendgrid/api-reference/ip-addresses/retrieve-all-ip-addresses

func (*Client) GetIPPool added in v1.6.0

func (c *Client) GetIPPool(ctx context.Context, name string) (*IPPool, error)

GetIPPool retrieves a specific IP pool see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/retrieve-an-ip-pool

func (*Client) GetIPPools added in v1.6.0

func (c *Client) GetIPPools(ctx context.Context) ([]IPPool, error)

GetIPPools retrieves all IP pools see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/retrieve-all-ip-pools

func (*Client) GetIPWarmupStatus added in v1.6.0

func (c *Client) GetIPWarmupStatus(ctx context.Context, ip string) (*IPWarmupStatus, error)

GetIPWarmupStatus retrieves IP warmup status see: https://www.twilio.com/docs/sendgrid/api-reference/ip-warmup/retrieve-ip-warmup-status

func (*Client) GetInvalidEmail added in v1.6.0

func (c *Client) GetInvalidEmail(ctx context.Context, email string) (*InvalidEmail, error)

GetInvalidEmail retrieves a specific invalid email see: https://www.twilio.com/docs/sendgrid/api-reference/invalid-emails/retrieve-an-invalid-email

func (*Client) GetInvalidEmails added in v1.6.0

func (c *Client) GetInvalidEmails(ctx context.Context, opts *SuppressionListOptions) ([]InvalidEmail, error)

GetInvalidEmails retrieves all invalid emails see: https://www.twilio.com/docs/sendgrid/api-reference/invalid-emails/retrieve-all-invalid-emails

func (*Client) GetPendingTeammates

func (c *Client) GetPendingTeammates(ctx context.Context) (*OutputGetPendingTeammates, error)

func (*Client) GetRemainingIPCount added in v1.6.0

func (c *Client) GetRemainingIPCount(ctx context.Context) (map[string]interface{}, error)

GetRemainingIPCount retrieves remaining IP count see: https://www.twilio.com/docs/sendgrid/api-reference/ip-addresses/retrieve-remaining-ip-count

func (*Client) GetSenderVerificationDomainWarnList added in v0.0.10

func (c *Client) GetSenderVerificationDomainWarnList(ctx context.Context) (*CompletedStepsVerifiedSender, error)

see: https://docs.sendgrid.com/api-reference/sender-verification/domain-warn-list This endpoint returns a list of domains known to implement DMARC and categorizes them by failure type — hard failure or soft failure. Domains listed as hard failures will not deliver mail when used as a Sender Identity due to the domain's DMARC policy settings.

func (*Client) GetSpamReport added in v1.6.0

func (c *Client) GetSpamReport(ctx context.Context, email string) (*SpamReport, error)

GetSpamReport retrieves a specific spam report see: https://www.twilio.com/docs/sendgrid/api-reference/spam-reports/retrieve-a-specific-spam-report

func (*Client) GetSpamReports added in v1.6.0

func (c *Client) GetSpamReports(ctx context.Context, opts *SuppressionListOptions) ([]SpamReport, error)

GetSpamReports retrieves all spam reports see: https://www.twilio.com/docs/sendgrid/api-reference/spam-reports/retrieve-all-spam-reports

func (*Client) GetSubuser added in v1.9.0

func (c *Client) GetSubuser(ctx context.Context, username string) (*Subuser, error)

document link not found

func (c *Client) GetSubuserBrandedLink(ctx context.Context, subuser string) (*OutputGetSubuserBrandedLink, error)

func (*Client) GetSubuserMonthlyStats added in v1.6.0

func (c *Client) GetSubuserMonthlyStats(ctx context.Context, opts *StatsOptions) ([]SubuserStat, error)

GetSubuserMonthlyStats retrieves monthly subuser statistics see: https://www.twilio.com/docs/sendgrid/api-reference/subuser-statistics/retrieve-monthly-stats-for-all-subusers

func (*Client) GetSubuserStats added in v1.6.0

func (c *Client) GetSubuserStats(ctx context.Context, subusers []string, opts *StatsOptions) ([]SubuserStat, error)

GetSubuserStats retrieves subuser email statistics see: https://www.twilio.com/docs/sendgrid/api-reference/subuser-statistics/retrieve-email-statistics-for-your-subusers

func (*Client) GetSubuserSums added in v1.6.0

func (c *Client) GetSubuserSums(ctx context.Context, opts *StatsOptions) ([]SubuserStat, error)

GetSubuserSums retrieves subuser sums see: https://www.twilio.com/docs/sendgrid/api-reference/subuser-statistics/retrieve-sums-of-email-stats-for-each-subuser

func (*Client) GetTeammate

func (c *Client) GetTeammate(ctx context.Context, username string) (*OutputGetTeammate, error)

func (*Client) GetTeammates

func (c *Client) GetTeammates(ctx context.Context, input *InputGetTeammates) (*OutputGetTeammates, error)

func (*Client) GetVerifiedSenders added in v0.0.10

func (c *Client) GetVerifiedSenders(ctx context.Context, input *InputGetVerifiedSenders) ([]*VerifiedSender, error)

func (*Client) InviteTeammate

func (c *Client) InviteTeammate(ctx context.Context, input *InputInviteTeammate) (*OutputInviteTeammate, error)

func (*Client) NewRequest

func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error)

NewRequest creates an API request. A relative URL can be provided in urlStr, in which case it is resolved relative to the BaseURL of the Client. Relative URLs should always be specified without a preceding slash. If specified, the value pointed to by body is JSON encoded and included as the request body.

func (*Client) RemoveIPFromAuthenticatedDomain added in v0.0.6

func (c *Client) RemoveIPFromAuthenticatedDomain(ctx context.Context, domainId int64, ip string) error

NOTE: The 'dns' key in the API response for removing an IP to the authenticated domain is different from what is documented. see: https://docs.sendgrid.com/api-reference/domain-authentication/remove-an-ip-from-an-authenticated-domain#responses

func (*Client) RemoveIPFromPool added in v1.6.0

func (c *Client) RemoveIPFromPool(ctx context.Context, poolName, ip string) error

RemoveIPFromPool removes an IP address from a pool see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/remove-an-ip-address-from-a-pool

func (*Client) ResendVerifiedSenderRequest added in v0.0.10

func (c *Client) ResendVerifiedSenderRequest(ctx context.Context, id int64) error

func (*Client) SendMail added in v1.6.0

func (c *Client) SendMail(ctx context.Context, input *InputSendMail) (*OutputSendMail, error)

SendMail sends an email using SendGrid's mail/send API see: https://www.twilio.com/docs/sendgrid/api-reference/mail-send/mail-send

func (*Client) StartIPWarmup added in v1.6.0

func (c *Client) StartIPWarmup(ctx context.Context, ip string) (*IPWarmupStatus, error)

StartIPWarmup starts IP warmup process see: https://www.twilio.com/docs/sendgrid/api-reference/ip-warmup/start-ip-warmup

func (*Client) StopIPWarmup added in v1.6.0

func (c *Client) StopIPWarmup(ctx context.Context, ip string) (*IPWarmupStatus, error)

StopIPWarmup stops IP warmup process see: https://www.twilio.com/docs/sendgrid/api-reference/ip-warmup/stop-ip-warmup

func (*Client) UpdateAPIKeyName added in v0.0.2

func (c *Client) UpdateAPIKeyName(ctx context.Context, apiKeyId string, input *InputUpdateAPIKeyName) (*OutputUpdateAPIKeyName, error)

func (*Client) UpdateAPIKeyNameAndScopes added in v0.0.2

func (c *Client) UpdateAPIKeyNameAndScopes(ctx context.Context, apiKeyId string, input *InputUpdateAPIKeyNameAndScopes) (*OutputUpdateAPIKeyNameAndScopes, error)
func (c *Client) UpdateBrandedLink(ctx context.Context, id int64, input *InputUpdateBrandedLink) (*OutputUpdateBrandedLink, error)

func (*Client) UpdateDomainAuthentication added in v0.0.6

func (c *Client) UpdateDomainAuthentication(ctx context.Context, domainId int64, input *InputUpdateDomainAuthentication) (*OutputUpdateDomainAuthentication, error)

func (*Client) UpdateIPPool added in v1.6.0

func (c *Client) UpdateIPPool(ctx context.Context, oldName, newName string) (*IPPool, error)

UpdateIPPool updates an IP pool name see: https://www.twilio.com/docs/sendgrid/api-reference/ip-pools/update-an-ip-pool

func (*Client) UpdateTeammatePermissions

func (c *Client) UpdateTeammatePermissions(ctx context.Context, username string, input *InputUpdateTeammatePermissions) (*OutputUpdateTeammatePermissions, error)

func (*Client) UpdateVerifiedSender added in v0.0.10

func (c *Client) UpdateVerifiedSender(ctx context.Context, id int64, input *InputUpdateVerifiedSender) (*OutputUpdateVerifiedSender, error)
func (c *Client) ValidateBrandedLink(ctx context.Context, id int64) (*OutputValidateBrandedLink, error)

func (*Client) ValidateDomainAuthentication added in v0.0.6

func (c *Client) ValidateDomainAuthentication(ctx context.Context, domainId int64) (*OutputValidateDomainAuthentication, error)

func (*Client) VerifySenderRequest added in v0.0.10

func (c *Client) VerifySenderRequest(ctx context.Context, token string) error

type CompletedStepsVerifiedSender added in v0.0.10

type CompletedStepsVerifiedSender struct {
	SenderVerified bool `json:"sender_verified,omitempty"`
	DomainVerified bool `json:"domain_verified,omitempty"`
}

type Content added in v1.6.0

type Content struct {
	Type  string `json:"type"`
	Value string `json:"value"`
}

Content represents email content with type and value

func NewContent added in v1.6.0

func NewContent(contentType, value string) *Content

NewContent creates a new Content struct

type CreditAllocation added in v0.0.3

type CreditAllocation struct {
	Type string `json:"type"`
}

type DNS added in v0.0.6

type DNS struct {
	MailCname Record `json:"mail_cname,omitempty"`
	Dkim1     Record `json:"dkim1,omitempty"`
	Dkim2     Record `json:"dkim2,omitempty"`
}
type DNSBrandedLink struct {
	DomainCname Record `json:"domain_cname,omitempty"`
	OwnerCname  Record `json:"owner_cname,omitempty"`
}

type Design added in v1.0.3

type Design struct {
	ID           string `json:"id,omitempty"`
	UpdatedAt    string `json:"updated_at,omitempty"`
	CreatedAt    string `json:"created_at,omitempty"`
	ThumbnailURL string `json:"thumbnail_url,omitempty"`
	Name         string `json:"name,omitempty"`
	Editor       string `json:"editor,omitempty"`
}

type DomainAuthentication added in v0.0.6

type DomainAuthentication struct {
	ID                      int64                         `json:"id,omitempty"`
	UserID                  int64                         `json:"user_id,omitempty"`
	Subdomain               string                        `json:"subdomain,omitempty"`
	Domain                  string                        `json:"domain,omitempty"`
	Username                string                        `json:"username,omitempty"`
	IPs                     []string                      `json:"ips,omitempty"`
	CustomSpf               bool                          `json:"custom_spf,omitempty"`
	Default                 bool                          `json:"default,omitempty"`
	Legacy                  bool                          `json:"legacy,omitempty"`
	AutomaticSecurity       bool                          `json:"automatic_security,omitempty"`
	Valid                   bool                          `json:"valid,omitempty"`
	DNS                     DNS                           `json:"dns,omitempty"`
	Subusers                []SubuserSenderAuthentication `json:"subusers,omitempty"`
	LastValidationAttemptAt int64                         `json:"last_validation_attempt_at,omitempty"`
}

type Email added in v1.6.0

type Email struct {
	Email string `json:"email"`
	Name  string `json:"name,omitempty"`
}

Email represents an email address with optional name

func NewEmail added in v1.6.0

func NewEmail(email, name string) *Email

NewEmail creates a new Email struct

type Error

type Error struct {
	Field   *string `json:"field,omitempty"`
	Message *string `json:"message,omitempty"`
}

Error is sendgrid error

type ErrorResponse

type ErrorResponse struct {
	Error string `json:"error"`
}

ErrorResponse is sendgrid error response

func (ErrorResponse) Err added in v0.0.16

func (t ErrorResponse) Err() error

Err : error

type ErrorsResponse added in v0.0.16

type ErrorsResponse struct {
	Errors []*Error `json:"errors"`
}

ErrorsResponse is sendgrid error response

func (ErrorsResponse) Errs added in v0.0.16

func (t ErrorsResponse) Errs() error

Errs : error list

type EventWebhook added in v1.0.2

type EventWebhook struct {
	ID               string `json:"id,omitempty"`
	Enabled          bool   `json:"enabled,omitempty"`
	URL              string `json:"url,omitempty"`
	GroupResubscribe bool   `json:"group_resubscribe,omitempty"`
	Delivered        bool   `json:"delivered,omitempty"`
	GroupUnsubscribe bool   `json:"group_unsubscribe,omitempty"`
	SpamReport       bool   `json:"spam_report,omitempty"`
	Bounce           bool   `json:"bounce,omitempty"`
	Deferred         bool   `json:"deferred,omitempty"`
	Unsubscribe      bool   `json:"unsubscribe,omitempty"`
	Processed        bool   `json:"processed,omitempty"`
	Open             bool   `json:"open,omitempty"`
	Click            bool   `json:"click,omitempty"`
	Dropped          bool   `json:"dropped,omitempty"`
	FriendlyName     string `json:"friendly_name,omitempty"`
	OAuthClientID    string `json:"oauth_client_id,omitempty"`
	OAuthTokenURL    string `json:"oauth_token_url,omitempty"`
	PublicKey        string `json:"public_key,omitempty"`
}

type FooterSetting added in v1.6.0

type FooterSetting struct {
	Enable *bool  `json:"enable,omitempty"`
	Text   string `json:"text,omitempty"`
	HTML   string `json:"html,omitempty"`
}

FooterSetting represents footer settings

type GlobalStat added in v1.6.0

type GlobalStat struct {
	Date  string      `json:"date,omitempty"`
	Stats StatMetrics `json:"stats,omitempty"`
}

GlobalStat represents global statistics

type GoogleAnalyticsSetting added in v1.6.0

type GoogleAnalyticsSetting struct {
	Enable      *bool  `json:"enable,omitempty"`
	UTMSource   string `json:"utm_source,omitempty"`
	UTMMedium   string `json:"utm_medium,omitempty"`
	UTMTerm     string `json:"utm_term,omitempty"`
	UTMContent  string `json:"utm_content,omitempty"`
	UTMCampaign string `json:"utm_campaign,omitempty"`
}

GoogleAnalyticsSetting represents Google Analytics settings

type IPAddress added in v1.6.0

type IPAddress struct {
	IP         string   `json:"ip,omitempty"`
	Pools      []string `json:"pools,omitempty"`
	Warmup     bool     `json:"warmup,omitempty"`
	StartDate  int64    `json:"start_date,omitempty"`
	Subusers   []string `json:"subusers,omitempty"`
	Rdns       string   `json:"rdns,omitempty"`
	AssignedAt int64    `json:"assigned_at,omitempty"`
}

IPAddress represents an IP address

type IPPool added in v1.6.0

type IPPool struct {
	Name string `json:"name,omitempty"`
}

IPPool represents an IP pool

type IPWarmupStatus added in v1.6.0

type IPWarmupStatus struct {
	IP     string `json:"ip,omitempty"`
	Warmup bool   `json:"warmup,omitempty"`
}

IPWarmupStatus represents IP warmup status

type InboundParseWebhook added in v1.1.1

type InboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	SpamCheck bool   `json:"spam_check,omitempty"`
	SendRaw   bool   `json:"send_raw,omitempty"`
}

type InputAddIPToAuthenticatedDomain added in v0.0.6

type InputAddIPToAuthenticatedDomain struct {
	IP string `json:"ip,omitempty"`
}

type InputAddIPToPool added in v1.6.0

type InputAddIPToPool struct {
	IP string `json:"ip"`
}

InputAddIPToPool represents the request to add an IP to a pool

type InputAssignIPToSubuser added in v1.6.0

type InputAssignIPToSubuser struct {
	IPs []string `json:"ips"`
}

InputAssignIPToSubuser represents the request to assign an IP to a subuser

type InputAssociateAuthenticatedDomainWithSubuser added in v0.0.6

type InputAssociateAuthenticatedDomainWithSubuser struct {
	Username string `json:"username,omitempty"`
}

type InputAssociateBrandedLinkWithSubuser added in v0.0.7

type InputAssociateBrandedLinkWithSubuser struct {
	Username string `json:"username,omitempty"`
}

type InputAuthenticateDomain added in v0.0.6

type InputAuthenticateDomain struct {
	Domain             string   `json:"domain,omitempty"`
	Subdomain          string   `json:"subdomain,omitempty"`
	Username           string   `json:"username,omitempty"`
	IPs                []string `json:"ips,omitempty"`
	CustomSpf          bool     `json:"custom_spf,omitempty"`
	Default            bool     `json:"default,omitempty"`
	AutomaticSecurity  bool     `json:"automatic_security,omitempty"`
	CustomDkimSelector string   `json:"custom_dkim_selector,omitempty"`
}

type InputCreateAPIKey added in v0.0.2

type InputCreateAPIKey struct {
	Name   string   `json:"name,omitempty"`
	Scopes []string `json:"scopes,omitempty"`
}

type InputCreateAlert added in v1.4.0

type InputCreateAlert struct {
	Type       string `json:"type,omitempty"`
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
}
type InputCreateBrandedLink struct {
	Domain    string `json:"domain,omitempty"`
	Subdomain string `json:"subdomain,omitempty"`
	Default   bool   `json:"default"`
}

type InputCreateDesign added in v1.0.3

type InputCreateDesign struct {
	Name                 string   `json:"name,omitempty"`
	Editor               string   `json:"editor,omitempty"`
	HTMLContent          string   `json:"html_content,omitempty"`
	PlainContent         string   `json:"plain_content,omitempty"`
	GeneratePlainContent bool     `json:"generate_plain_content"`
	Subject              string   `json:"subject,omitempty"`
	Categories           []string `json:"categories,omitempty"`
}

type InputCreateEventWebhook added in v1.0.2

type InputCreateEventWebhook struct {
	Enabled           bool   `json:"enabled"`
	URL               string `json:"url,omitempty"`
	GroupResubscribe  bool   `json:"group_resubscribe"`
	Delivered         bool   `json:"delivered"`
	GroupUnsubscribe  bool   `json:"group_unsubscribe"`
	SpamReport        bool   `json:"spam_report"`
	Bounce            bool   `json:"bounce"`
	Deferred          bool   `json:"deferred"`
	Unsubscribe       bool   `json:"unsubscribe"`
	Processed         bool   `json:"processed"`
	Open              bool   `json:"open"`
	Click             bool   `json:"click"`
	Dropped           bool   `json:"dropped"`
	FriendlyName      string `json:"friendly_name,omitempty"`
	OAuthClientID     string `json:"oauth_client_id,omitempty"`
	OAuthClientSecret string `json:"oauth_client_secret,omitempty"`
	OAuthTokenURL     string `json:"oauth_token_url,omitempty"`
}

type InputCreateInboundParseWebhook added in v1.1.1

type InputCreateInboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	SpamCheck bool   `json:"spam_check"`
	SendRaw   bool   `json:"send_raw"`
}

type InputCreateReverseDNS added in v0.0.17

type InputCreateReverseDNS struct {
	IP        string `json:"ip,omitempty"`
	Subdomain string `json:"subdomain,omitempty"`
	Domain    string `json:"domain,omitempty"`
}

type InputCreateSSOCertificate added in v0.0.20

type InputCreateSSOCertificate struct {
	PublicCertificate string `json:"public_certificate,omitempty"`
	Enabled           bool   `json:"enabled"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type InputCreateSSOIntegration added in v0.0.19

type InputCreateSSOIntegration struct {
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration"`
}

type InputCreateSSOTeammate added in v1.2.0

type InputCreateSSOTeammate struct {
	Email                      string               `json:"email"`
	FirstName                  string               `json:"first_name"`
	LastName                   string               `json:"last_name"`
	IsAdmin                    bool                 `json:"is_admin"`
	IsSSO                      bool                 `json:"is_sso"`
	Persona                    string               `json:"persona,omitempty"`
	Scopes                     []string             `json:"scopes,omitempty"`
	HasRestrictedSubuserAccess bool                 `json:"has_restricted_subuser_access,omitempty"`
	SubuserAccess              []InputSubuserAccess `json:"subuser_access,omitempty"`
}

type InputCreateSubuser added in v0.0.3

type InputCreateSubuser struct {
	Username      string   `json:"username"`
	Email         string   `json:"email"`
	Password      string   `json:"password"`
	Ips           []string `json:"ips"`
	Region        string   `json:"region"`
	IncludeRegion bool     `json:"include_region"`
}

type InputCreateSuppressionGroup added in v0.0.13

type InputCreateSuppressionGroup struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	IsDefault   bool   `json:"is_default"`
}

type InputCreateTemplate added in v0.0.14

type InputCreateTemplate struct {
	Name       string `json:"name,omitempty"`
	Generation string `json:"generation,omitempty"`
}

type InputCreateTemplateVersion added in v0.0.14

type InputCreateTemplateVersion struct {
	Active               int    `json:"active,omitempty"`
	Name                 string `json:"name,omitempty"`
	HTMLContent          string `json:"html_content,omitempty"`
	PlainContent         string `json:"plain_content,omitempty"`
	GeneratePlainContent bool   `json:"generate_plain_content"`
	Subject              string `json:"subject,omitempty"`
	Editor               string `json:"editor,omitempty"`
	TestData             string `json:"test_data,omitempty"`
}

type InputCreateVerifiedSenderRequest added in v0.0.10

type InputCreateVerifiedSenderRequest struct {
	Nickname    string `json:"nickname,omitempty"`
	FromEmail   string `json:"from_email,omitempty"`
	FromName    string `json:"from_name,omitempty"`
	ReplyTo     string `json:"reply_to,omitempty"`
	ReplyToName string `json:"reply_to_name,omitempty"`
	Address     string `json:"address,omitempty"`
	Address2    string `json:"address2,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	Zip         string `json:"zip,omitempty"`
	Country     string `json:"country,omitempty"`
}

type InputDeleteSuppressions added in v1.6.0

type InputDeleteSuppressions struct {
	Emails    []string `json:"emails,omitempty"`
	DeleteAll bool     `json:"delete_all,omitempty"`
}

InputDeleteSuppressions represents the request body for deleting suppressions

type InputDuplicateTemplate added in v0.0.14

type InputDuplicateTemplate struct {
	Name string `json:"name,omitempty"`
}

type InputGetAuthenticatedDomains added in v0.0.6

type InputGetAuthenticatedDomains struct {
	Limit           int
	Offset          int
	ExcludeSubusers bool
	Username        string
	Domain          string
}
type InputGetBrandedLinks struct {
	Limit int
}

type InputGetDefaultAuthentication added in v0.0.6

type InputGetDefaultAuthentication struct {
	Domain string
}

type InputGetReverseDNSs added in v0.0.17

type InputGetReverseDNSs struct {
	Limit  int    `json:"limit,omitempty"`
	Offset int    `json:"offset,omitempty"`
	IP     string `json:"ip,omitempty"`
}

type InputGetSSOIntegrations added in v0.0.19

type InputGetSSOIntegrations struct {
	Si bool `json:"si,omitempty"`
}

type InputGetSubusers added in v0.0.3

type InputGetSubusers struct {
	Username      string
	Limit         int
	Offset        int
	Region        string
	IncludeRegion bool
}

type InputGetTeammateSubuserAccess added in v1.3.0

type InputGetTeammateSubuserAccess struct {
	AfterSubuserID int64  `json:"after_subuser_id,omitempty"`
	Limit          int64  `json:"limit,omitempty"`
	Username       string `json:"username,omitempty"`
}

type InputGetTeammates added in v1.5.0

type InputGetTeammates struct {
	Limit  int `json:"limit,omitempty"`
	Offset int `json:"offset,omitempty"`
}

type InputGetTemplates added in v0.0.14

type InputGetTemplates struct {
	Generations string
	PageSize    int
	PageToken   string
}

type InputGetVerifiedSenders added in v0.0.10

type InputGetVerifiedSenders struct {
	Limit      int
	LastSeenID int
	ID         int64
}

type InputInviteTeammate

type InputInviteTeammate struct {
	Email   string   `json:"email"`
	IsAdmin bool     `json:"is_admin"`
	Scopes  []string `json:"scopes"`
}

type InputSendMail added in v1.6.0

type InputSendMail struct {
	Personalizations []*Personalization `json:"personalizations"`
	From             *Email             `json:"from"`
	ReplyTo          *ReplyTo           `json:"reply_to,omitempty"`
	ReplyToList      []*ReplyToList     `json:"reply_to_list,omitempty"`
	Subject          string             `json:"subject,omitempty"`
	Content          []*Content         `json:"content,omitempty"`
	Attachments      []*Attachment      `json:"attachments,omitempty"`
	TemplateID       string             `json:"template_id,omitempty"`
	Headers          map[string]string  `json:"headers,omitempty"`
	Categories       []string           `json:"categories,omitempty"`
	CustomArgs       map[string]string  `json:"custom_args,omitempty"`
	SendAt           int64              `json:"send_at,omitempty"`
	BatchID          string             `json:"batch_id,omitempty"`
	ASM              *ASM               `json:"asm,omitempty"`
	IPPoolName       string             `json:"ip_pool_name,omitempty"`
	MailSettings     *MailSettings      `json:"mail_settings,omitempty"`
	TrackingSettings *TrackingSettings  `json:"tracking_settings,omitempty"`
}

InputSendMail represents the request body for sending mail

func NewInputSendMail added in v1.6.0

func NewInputSendMail() *InputSendMail

NewInputSendMail creates a new InputSendMail struct

func (*InputSendMail) AddAttachment added in v1.6.0

func (m *InputSendMail) AddAttachment(attachment *Attachment)

AddAttachment adds an attachment to the mail

func (*InputSendMail) AddCategory added in v1.6.0

func (m *InputSendMail) AddCategory(category string)

AddCategory adds a category to the mail

func (*InputSendMail) AddContent added in v1.6.0

func (m *InputSendMail) AddContent(content *Content)

AddContent adds content to the mail

func (*InputSendMail) AddPersonalization added in v1.6.0

func (m *InputSendMail) AddPersonalization(personalization *Personalization)

AddPersonalization adds a personalization to the mail

func (*InputSendMail) SetFrom added in v1.6.0

func (m *InputSendMail) SetFrom(from *Email)

SetFrom sets the from email address

func (*InputSendMail) SetSendAt added in v1.6.0

func (m *InputSendMail) SetSendAt(sendAt time.Time)

SetSendAt sets the send time for the mail

func (*InputSendMail) SetSubject added in v1.6.0

func (m *InputSendMail) SetSubject(subject string)

SetSubject sets the email subject

func (*InputSendMail) SetTemplateID added in v1.6.0

func (m *InputSendMail) SetTemplateID(templateID string)

SetTemplateID sets the template ID for the mail

type InputSubuserAccess added in v1.2.0

type InputSubuserAccess struct {
	ID             int64    `json:"id,omitempty"`
	PermissionType string   `json:"permission_type,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
}

type InputToggleSignatureVerification added in v1.7.0

type InputToggleSignatureVerification struct {
	Enabled bool `json:"enabled"`
}

type InputUpdateAPIKeyName added in v0.0.2

type InputUpdateAPIKeyName struct {
	Name string `json:"name"`
}

type InputUpdateAPIKeyNameAndScopes added in v0.0.2

type InputUpdateAPIKeyNameAndScopes struct {
	Name   string   `json:"name"`
	Scopes []string `json:"scopes,omitempty"`
}

type InputUpdateAlert added in v1.4.0

type InputUpdateAlert struct {
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
}

type InputUpdateBounceSettings added in v1.8.0

type InputUpdateBounceSettings struct {
	Enabled     bool  `json:"enabled"`
	SoftBounces int64 `json:"soft_bounces,omitempty"`
	HardBounces int64 `json:"hard_bounces,omitempty"`
}
type InputUpdateBrandedLink struct {
	Default bool `json:"default"`
}

type InputUpdateClickTrackingSettings added in v0.0.18

type InputUpdateClickTrackingSettings struct {
	Enabled bool `json:"enabled"`
}

type InputUpdateDesign added in v1.0.3

type InputUpdateDesign struct {
	Name                 string   `json:"name,omitempty"`
	HTMLContent          string   `json:"html_content,omitempty"`
	PlainContent         string   `json:"plain_content,omitempty"`
	GeneratePlainContent bool     `json:"generate_plain_content"`
	Subject              string   `json:"subject,omitempty"`
	Categories           []string `json:"categories,omitempty"`
}

type InputUpdateDomainAuthentication added in v0.0.6

type InputUpdateDomainAuthentication struct {
	Default   bool `json:"default"`
	CustomSpf bool `json:"custom_spf"`
}

type InputUpdateEnforceTLS added in v0.0.15

type InputUpdateEnforceTLS struct {
	RequireTLS       bool    `json:"require_tls"`
	RequireValidCert bool    `json:"require_valid_cert"`
	Version          float64 `json:"version,omitempty"`
}

type InputUpdateEventWebhook added in v1.0.2

type InputUpdateEventWebhook struct {
	Enabled           bool   `json:"enabled"`
	URL               string `json:"url,omitempty"`
	GroupResubscribe  bool   `json:"group_resubscribe"`
	Delivered         bool   `json:"delivered"`
	GroupUnsubscribe  bool   `json:"group_unsubscribe"`
	SpamReport        bool   `json:"spam_report"`
	Bounce            bool   `json:"bounce"`
	Deferred          bool   `json:"deferred"`
	Unsubscribe       bool   `json:"unsubscribe"`
	Processed         bool   `json:"processed"`
	Open              bool   `json:"open"`
	Click             bool   `json:"click"`
	Dropped           bool   `json:"dropped"`
	FriendlyName      string `json:"friendly_name,omitempty"`
	OAuthClientID     string `json:"oauth_client_id,omitempty"`
	OAuthClientSecret string `json:"oauth_client_secret,omitempty"`
	OAuthTokenURL     string `json:"oauth_token_url,omitempty"`
}

type InputUpdateGoogleAnalyticsSettings added in v0.0.18

type InputUpdateGoogleAnalyticsSettings struct {
	Enabled     bool   `json:"enabled"`
	UTMCampaign string `json:"utm_campaign,omitempty"`
	UTMContent  string `json:"utm_content,omitempty"`
	UTMMedium   string `json:"utm_medium,omitempty"`
	UTMSource   string `json:"utm_source,omitempty"`
	UTMTerm     string `json:"utm_term,omitempty"`
}

type InputUpdateInboundParseWebhook added in v1.1.1

type InputUpdateInboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	SpamCheck bool   `json:"spam_check"`
	SendRaw   bool   `json:"send_raw"`
}

type InputUpdateOpenTrackingSettings added in v0.0.18

type InputUpdateOpenTrackingSettings struct {
	Enabled bool `json:"enabled"`
}

type InputUpdateSSOCertificate added in v0.0.19

type InputUpdateSSOCertificate struct {
	PublicCertificate string `json:"public_certificate,omitempty"`
	Enabled           bool   `json:"enabled"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type InputUpdateSSOIntegration added in v0.0.19

type InputUpdateSSOIntegration struct {
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration"`
}

type InputUpdateSSOTeammate added in v1.2.0

type InputUpdateSSOTeammate struct {
	FirstName                  string               `json:"first_name"`
	LastName                   string               `json:"last_name"`
	IsAdmin                    bool                 `json:"is_admin"`
	Persona                    string               `json:"persona,omitempty"`
	Scopes                     []string             `json:"scopes,omitempty"`
	HasRestrictedSubuserAccess bool                 `json:"has_restricted_subuser_access,omitempty"`
	SubuserAccess              []InputSubuserAccess `json:"subuser_access,omitempty"`
}

type InputUpdateSubscriptionTrackingSettings added in v0.0.18

type InputUpdateSubscriptionTrackingSettings struct {
	Enabled      bool   `json:"enabled"`
	HTMLContent  string `json:"html_content,omitempty"`
	Landing      string `json:"landing,omitempty"`
	PlainContent string `json:"plain_content,omitempty"`
	Replace      string `json:"replace,omitempty"`
	URL          string `json:"url,omitempty"`
}

type InputUpdateSubuserStatus added in v0.0.3

type InputUpdateSubuserStatus struct {
	Disabled bool `json:"disabled"`
}

type InputUpdateSuppressionGroup added in v0.0.13

type InputUpdateSuppressionGroup struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	IsDefault   bool   `json:"is_default"`
}

type InputUpdateTeammatePermissions

type InputUpdateTeammatePermissions struct {
	IsAdmin bool     `json:"is_admin"`
	Scopes  []string `json:"scopes"`
}

type InputUpdateTemplate added in v0.0.14

type InputUpdateTemplate struct {
	Name string `json:"name,omitempty"`
}

type InputUpdateTemplateVersion added in v0.0.14

type InputUpdateTemplateVersion struct {
	Active               int    `json:"active,omitempty"`
	Name                 string `json:"name,omitempty"`
	HTMLContent          string `json:"html_content,omitempty"`
	PlainContent         string `json:"plain_content,omitempty"`
	GeneratePlainContent bool   `json:"generate_plain_content"`
	Subject              string `json:"subject,omitempty"`
	Editor               string `json:"editor,omitempty"`
	TestData             string `json:"test_data,omitempty"`
}

type InputUpdateVerifiedSender added in v0.0.10

type InputUpdateVerifiedSender struct {
	Nickname    string `json:"nickname,omitempty"`
	FromEmail   string `json:"from_email,omitempty"`
	FromName    string `json:"from_name,omitempty"`
	ReplyTo     string `json:"reply_to,omitempty"`
	ReplyToName string `json:"reply_to_name,omitempty"`
	Address     string `json:"address,omitempty"`
	Address2    string `json:"address2,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	Zip         string `json:"zip,omitempty"`
	Country     string `json:"country,omitempty"`
}

type InvalidEmail added in v1.6.0

type InvalidEmail struct {
	Created int64  `json:"created"`
	Email   string `json:"email"`
	Reason  string `json:"reason"`
}

InvalidEmail represents an invalid email

type MailSettings added in v1.6.0

type MailSettings struct {
	BypassListManagement        *Setting          `json:"bypass_list_management,omitempty"`
	BypassSpamManagement        *Setting          `json:"bypass_spam_management,omitempty"`
	BypassBounceManagement      *Setting          `json:"bypass_bounce_management,omitempty"`
	BypassUnsubscribeManagement *Setting          `json:"bypass_unsubscribe_management,omitempty"`
	Footer                      *FooterSetting    `json:"footer,omitempty"`
	SandBoxMode                 *Setting          `json:"sandbox_mode,omitempty"`
	SpamCheck                   *SpamCheckSetting `json:"spam_check,omitempty"`
}

MailSettings contains various mail settings

type Member added in v1.2.1

type Member struct {
	Teammate

	Company string   `json:"company,omitempty"`
	IsSSO   bool     `json:"is_sso,omitempty"`
	Scopes  []string `json:"scopes,omitempty"`
}

consolidating normal teammate and SSO teammate fields

type Metadata added in v0.0.14

type Metadata struct {
	Prev  string `json:"prev,omitempty"`
	Self  string `json:"self,omitempty"`
	Next  string `json:"next,omitempty"`
	Count int    `json:"count,omitempty"`
}

type MetadataGetTeammateSubuserAccess added in v1.3.0

type MetadataGetTeammateSubuserAccess struct {
	NextParams NextParams `json:"next_params,omitempty"`
}

type NextParams added in v1.3.0

type NextParams struct {
	Limit          int64  `json:"limit"`
	AfterSubuserID int64  `json:"after_subuser_id,omitempty"`
	Username       string `json:"username,omitempty"`
}

type OpenTrackingSetting added in v1.6.0

type OpenTrackingSetting struct {
	Enable          *bool  `json:"enable,omitempty"`
	SubstitutionTag string `json:"substitution_tag,omitempty"`
}

OpenTrackingSetting represents open tracking settings

type Option

type Option func(*Client)

Option defines an option for a Client

type OutputActivateTemplateVersion added in v0.0.14

type OutputActivateTemplateVersion struct {
	ID                   string    `json:"id,omitempty"`
	TemplateID           string    `json:"template_id,omitempty"`
	Active               int       `json:"active,omitempty"`
	Name                 string    `json:"name,omitempty"`
	HTMLContent          string    `json:"html_content,omitempty"`
	PlainContent         string    `json:"plain_content,omitempty"`
	GeneratePlainContent bool      `json:"generate_plain_content,omitempty"`
	Subject              string    `json:"subject,omitempty"`
	Editor               string    `json:"editor,omitempty"`
	TestData             string    `json:"test_data,omitempty"`
	UpdatedAt            string    `json:"updated_at,omitempty"`
	Warnings             []Warning `json:"warnings,omitempty"`
	ThumbnailURL         string    `json:"thumbnail_url,omitempty"`
}

type OutputAddIPToAuthenticatedDomain added in v0.0.6

type OutputAddIPToAuthenticatedDomain struct {
	ID                      int64    `json:"id,omitempty"`
	UserID                  int64    `json:"user_id,omitempty"`
	Subdomain               string   `json:"subdomain,omitempty"`
	Domain                  string   `json:"domain,omitempty"`
	Username                string   `json:"username,omitempty"`
	IPs                     []string `json:"ips,omitempty"`
	CustomSpf               bool     `json:"custom_spf,omitempty"`
	Default                 bool     `json:"default,omitempty"`
	Legacy                  bool     `json:"legacy,omitempty"`
	AutomaticSecurity       bool     `json:"automatic_security,omitempty"`
	Valid                   bool     `json:"valid,omitempty"`
	DNS                     DNS      `json:"dns,omitempty"`
	LastValidationAttemptAt int64    `json:"last_validation_attempt_at,omitempty"`
}

type OutputAssignedIPs added in v1.6.0

type OutputAssignedIPs struct {
	IPs []string `json:"ips,omitempty"`
}

OutputAssignedIPs represents the response for assigned IPs

type OutputAssociateAuthenticatedDomainWithSubuser added in v0.0.6

type OutputAssociateAuthenticatedDomainWithSubuser struct {
	ID                      int64    `json:"id,omitempty"`
	UserID                  int64    `json:"user_id,omitempty"`
	Subdomain               string   `json:"subdomain,omitempty"`
	Domain                  string   `json:"domain,omitempty"`
	Username                string   `json:"username,omitempty"`
	IPs                     []string `json:"ips,omitempty"`
	CustomSpf               bool     `json:"custom_spf,omitempty"`
	Default                 bool     `json:"default,omitempty"`
	Legacy                  bool     `json:"legacy,omitempty"`
	AutomaticSecurity       bool     `json:"automatic_security,omitempty"`
	Valid                   bool     `json:"valid,omitempty"`
	DNS                     DNS      `json:"dns,omitempty"`
	LastValidationAttemptAt int64    `json:"last_validation_attempt_at,omitempty"`
}

type OutputAssociateBrandedLinkWithSubuser added in v0.0.7

type OutputAssociateBrandedLinkWithSubuser struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputAuthenticateDomain added in v0.0.6

type OutputAuthenticateDomain struct {
	ID                int64    `json:"id,omitempty"`
	UserID            int64    `json:"user_id,omitempty"`
	Subdomain         string   `json:"subdomain,omitempty"`
	Domain            string   `json:"domain,omitempty"`
	Username          string   `json:"username,omitempty"`
	IPs               []string `json:"ips,omitempty"`
	CustomSpf         bool     `json:"custom_spf,omitempty"`
	Default           bool     `json:"default,omitempty"`
	Legacy            bool     `json:"legacy,omitempty"`
	AutomaticSecurity bool     `json:"automatic_security,omitempty"`
	Valid             bool     `json:"valid,omitempty"`
	DNS               DNS      `json:"dns,omitempty"`
}

type OutputCompletedStepsVerifiedSender added in v0.0.10

type OutputCompletedStepsVerifiedSender struct {
	CompletedStepsVerifiedSender *CompletedStepsVerifiedSender `json:"results,omitempty"`
}

type OutputCreateAPIKey added in v0.0.2

type OutputCreateAPIKey struct {
	ApiKey   string   `json:"api_key,omitempty"`
	ApiKeyId string   `json:"api_key_id,omitempty"`
	Name     string   `json:"name,omitempty"`
	Scopes   []string `json:"scopes,omitempty"`
}

type OutputCreateAlert added in v1.4.0

type OutputCreateAlert struct {
	ID         int64  `json:"id,omitempty"`
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Type       string `json:"type,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
	CreatedAt  int64  `json:"created_at,omitempty"`
	UpdatedAt  int64  `json:"updated_at,omitempty"`
}
type OutputCreateBrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputCreateDesign added in v1.0.3

type OutputCreateDesign struct {
	ID                   string   `json:"id,omitempty"`
	UpdatedAt            string   `json:"updated_at,omitempty"`
	CreatedAt            string   `json:"created_at,omitempty"`
	ThumbnailURL         string   `json:"thumbnail_url,omitempty"`
	Name                 string   `json:"name,omitempty"`
	Editor               string   `json:"editor,omitempty"`
	HTMLContent          string   `json:"html_content,omitempty"`
	PlainContent         string   `json:"plain_content,omitempty"`
	GeneratePlainContent bool     `json:"generate_plain_content,omitempty"`
	Subject              string   `json:"subject,omitempty"`
	Categories           []string `json:"categories,omitempty"`
}

type OutputCreateEventWebhook added in v1.0.2

type OutputCreateEventWebhook struct {
	ID                  string `json:"id,omitempty"`
	Enabled             bool   `json:"enabled,omitempty"`
	URL                 string `json:"url,omitempty"`
	AccountStatusChange bool   `json:"account_status_change,omitempty"`
	GroupResubscribe    bool   `json:"group_resubscribe,omitempty"`
	Delivered           bool   `json:"delivered,omitempty"`
	GroupUnsubscribe    bool   `json:"group_unsubscribe,omitempty"`
	SpamReport          bool   `json:"spam_report,omitempty"`
	Bounce              bool   `json:"bounce,omitempty"`
	Deferred            bool   `json:"deferred,omitempty"`
	Unsubscribe         bool   `json:"unsubscribe,omitempty"`
	Processed           bool   `json:"processed,omitempty"`
	Open                bool   `json:"open,omitempty"`
	Click               bool   `json:"click,omitempty"`
	Dropped             bool   `json:"dropped,omitempty"`
	FriendlyName        string `json:"friendly_name,omitempty"`
	CreatedDate         string `json:"created_date,omitempty"`
	UpdatedDate         string `json:"updated_date,omitempty"`
	OAuthClientID       string `json:"oauth_client_id,omitempty"`
	OAuthTokenURL       string `json:"oauth_token_url,omitempty"`
}

type OutputCreateInboundParseWebhook added in v1.1.1

type OutputCreateInboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	SpamCheck bool   `json:"spam_check,omitempty"`
	SendRaw   bool   `json:"send_raw,omitempty"`
}

type OutputCreateReverseDNS added in v0.0.17

type OutputCreateReverseDNS struct {
	ID                      int64   `json:"id,omitempty"`
	IP                      string  `json:"ip,omitempty"`
	RDNS                    string  `json:"rdns,omitempty"`
	Users                   []*User `json:"users,omitempty"`
	Subdomain               string  `json:"subdomain,omitempty"`
	Domain                  string  `json:"domain,omitempty"`
	Valid                   bool    `json:"valid,omitempty"`
	Legacy                  bool    `json:"legacy,omitempty"`
	LastValidationAttemptAt int64   `json:"last_validation_attempt_at,omitempty"`
	ARecord                 ARecord `json:"a_record,omitempty"`
}

type OutputCreateSSOCertificate added in v0.0.20

type OutputCreateSSOCertificate struct {
	ID                int64  `json:"id,omitempty"`
	PublicCertificate string `json:"public_certificate,omitempty"`
	NotBefore         int64  `json:"not_before,omitempty"`
	NotAfter          int64  `json:"not_after,omitempty"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type OutputCreateSSOIntegration added in v0.0.19

type OutputCreateSSOIntegration struct {
	ID                   string `json:"id,omitempty"`
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled,omitempty"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration,omitempty"`
	LastUpdated          int64  `json:"last_updated,omitempty"`
	SingleSignonURL      string `json:"single_signon_url,omitempty"`
	AudienceURL          string `json:"audience_url,omitempty"`
}

type OutputCreateSSOTeammate added in v1.2.0

type OutputCreateSSOTeammate struct {
	FirstName                  string                `json:"first_name,omitempty"`
	LastName                   string                `json:"last_name,omitempty"`
	Email                      string                `json:"email,omitempty"`
	IsAdmin                    bool                  `json:"is_admin,omitempty"`
	IsSSO                      bool                  `json:"is_sso,omitempty"`
	Scopes                     []string              `json:"scopes,omitempty"`
	HasRestrictedSubuserAccess bool                  `json:"has_restricted_subuser_access,omitempty"`
	SubuserAccess              []OutputSubuserAccess `json:"subuser_access,omitempty"`
}

type OutputCreateSubuser added in v0.0.3

type OutputCreateSubuser struct {
	UserID             int64            `json:"user_id"`
	Username           string           `json:"username"`
	Email              string           `json:"email"`
	SignupSessionToken string           `json:"signup_session_token"`
	AuthorizationToken string           `json:"authorization_token"`
	CreditAllocation   CreditAllocation `json:"credit_allocation"`
	Region             string           `json:"region"`
}

type OutputCreateSuppressionGroup added in v0.0.13

type OutputCreateSuppressionGroup struct {
	ID          int64  `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	IsDefault   bool   `json:"is_default,omitempty"`
}

type OutputCreateTemplate added in v0.0.14

type OutputCreateTemplate struct {
	ID         string    `json:"id,omitempty"`
	Name       string    `json:"name,omitempty"`
	Generation string    `json:"generation,omitempty"`
	UpdatedAt  string    `json:"updated_at,omitempty"`
	Versions   []Version `json:"versions,omitempty"`
	Warning    Warning   `json:"warning,omitempty"`
}

type OutputCreateTemplateVersion added in v0.0.14

type OutputCreateTemplateVersion struct {
	ID                   string    `json:"id,omitempty"`
	TemplateID           string    `json:"template_id,omitempty"`
	Active               int       `json:"active,omitempty"`
	Name                 string    `json:"name,omitempty"`
	HTMLContent          string    `json:"html_content,omitempty"`
	PlainContent         string    `json:"plain_content,omitempty"`
	GeneratePlainContent bool      `json:"generate_plain_content,omitempty"`
	Subject              string    `json:"subject,omitempty"`
	Editor               string    `json:"editor,omitempty"`
	TestData             string    `json:"test_data,omitempty"`
	UpdatedAt            string    `json:"updated_at,omitempty"`
	Warnings             []Warning `json:"warnings,omitempty"`
	ThumbnailURL         string    `json:"thumbnail_url,omitempty"`
}

type OutputCreateVerifiedSenderRequest added in v0.0.10

type OutputCreateVerifiedSenderRequest struct {
	ID          int64  `json:"id,omitempty"`
	Nickname    string `json:"nickname,omitempty"`
	FromEmail   string `json:"from_email,omitempty"`
	FromName    string `json:"from_name,omitempty"`
	ReplyTo     string `json:"reply_to,omitempty"`
	ReplyToName string `json:"reply_to_name,omitempty"`
	Address     string `json:"address,omitempty"`
	Address2    string `json:"address2,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	Zip         string `json:"zip,omitempty"`
	Country     string `json:"country,omitempty"`
	Verified    bool   `json:"verified,omitempty"`
	Locked      bool   `json:"locked,omitempty"`
}

type OutputDuplicateTemplate added in v0.0.14

type OutputDuplicateTemplate struct {
	ID         string    `json:"id,omitempty"`
	Name       string    `json:"name,omitempty"`
	Generation string    `json:"generation,omitempty"`
	UpdatedAt  string    `json:"updated_at,omitempty"`
	Versions   []Version `json:"versions,omitempty"`
	Warning    Warning   `json:"warning,omitempty"`
}

type OutputGetAPIKey added in v0.0.2

type OutputGetAPIKey struct {
	ApiKeyId string   `json:"api_key_id,omitempty"`
	Name     string   `json:"name,omitempty"`
	Scopes   []string `json:"scopes,omitempty"`
}

type OutputGetAPIKeys added in v0.0.2

type OutputGetAPIKeys struct {
	APIKeys []APIKey `json:"result,omitempty"`
}

type OutputGetAlert added in v1.4.0

type OutputGetAlert struct {
	ID         int64  `json:"id,omitempty"`
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Type       string `json:"type,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
	CreatedAt  int64  `json:"created_at,omitempty"`
	UpdatedAt  int64  `json:"updated_at,omitempty"`
}

type OutputGetAuthenticatedDomain added in v0.0.6

type OutputGetAuthenticatedDomain struct {
	ID                int64    `json:"id,omitempty"`
	UserID            int64    `json:"user_id,omitempty"`
	Subdomain         string   `json:"subdomain,omitempty"`
	Domain            string   `json:"domain,omitempty"`
	Username          string   `json:"username,omitempty"`
	IPs               []string `json:"ips,omitempty"`
	CustomSpf         bool     `json:"custom_spf,omitempty"`
	Default           bool     `json:"default,omitempty"`
	Legacy            bool     `json:"legacy,omitempty"`
	AutomaticSecurity bool     `json:"automatic_security,omitempty"`
	Valid             bool     `json:"valid,omitempty"`
	DNS               DNS      `json:"dns,omitempty"`
}

type OutputGetAuthenticatedDomainAssociatedWithSubuser added in v0.0.6

type OutputGetAuthenticatedDomainAssociatedWithSubuser struct {
	ID                      int64    `json:"id,omitempty"`
	UserID                  int64    `json:"user_id,omitempty"`
	Subdomain               string   `json:"subdomain,omitempty"`
	Domain                  string   `json:"domain,omitempty"`
	Username                string   `json:"username,omitempty"`
	IPs                     []string `json:"ips,omitempty"`
	CustomSpf               bool     `json:"custom_spf,omitempty"`
	Default                 bool     `json:"default,omitempty"`
	Legacy                  bool     `json:"legacy,omitempty"`
	AutomaticSecurity       bool     `json:"automatic_security,omitempty"`
	Valid                   bool     `json:"valid,omitempty"`
	DNS                     DNS      `json:"dns,omitempty"`
	LastValidationAttemptAt int64    `json:"last_validation_attempt_at,omitempty"`
}

type OutputGetBlocks added in v1.6.0

type OutputGetBlocks struct {
	Blocks []Block `json:"blocks,omitempty"`
}

OutputGetBlocks represents the response for blocks list

type OutputGetBounceSettings added in v1.8.1

type OutputGetBounceSettings struct {
	Enabled     bool  `json:"enabled,omitempty"`
	SoftBounces int64 `json:"soft_bounces,omitempty"`
	HardBounces int64 `json:"hard_bounces,omitempty"`
}

type OutputGetBounces added in v1.6.0

type OutputGetBounces struct {
	Bounces []Bounce `json:"bounces,omitempty"`
}

OutputGetBounces represents the response for bounces list

type OutputGetBrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputGetClickTrackingSettings added in v0.0.18

type OutputGetClickTrackingSettings struct {
	EnableText bool `json:"enable_text,omitempty"`
	Enabled    bool `json:"enabled,omitempty"`
}

type OutputGetDefaultAuthentication added in v0.0.6

type OutputGetDefaultAuthentication struct {
	ID                      int64                         `json:"id,omitempty"`
	UserID                  int64                         `json:"user_id,omitempty"`
	Subdomain               string                        `json:"subdomain,omitempty"`
	Domain                  string                        `json:"domain,omitempty"`
	Username                string                        `json:"username,omitempty"`
	IPs                     []string                      `json:"ips,omitempty"`
	CustomSpf               bool                          `json:"custom_spf,omitempty"`
	Default                 bool                          `json:"default,omitempty"`
	Legacy                  bool                          `json:"legacy,omitempty"`
	AutomaticSecurity       bool                          `json:"automatic_security,omitempty"`
	Valid                   bool                          `json:"valid,omitempty"`
	DNS                     DNS                           `json:"dns,omitempty"`
	Subusers                []SubuserSenderAuthentication `json:"subusers,omitempty"`
	LastValidationAttemptAt int64                         `json:"last_validation_attempt_at,omitempty"`
}
type OutputGetDefaultBrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputGetDesign added in v1.0.3

type OutputGetDesign struct {
	ID                   string   `json:"id,omitempty"`
	UpdatedAt            string   `json:"updated_at,omitempty"`
	CreatedAt            string   `json:"created_at,omitempty"`
	ThumbnailURL         string   `json:"thumbnail_url,omitempty"`
	Name                 string   `json:"name,omitempty"`
	Editor               string   `json:"editor,omitempty"`
	HTMLContent          string   `json:"html_content,omitempty"`
	PlainContent         string   `json:"plain_content,omitempty"`
	GeneratePlainContent bool     `json:"generate_plain_content,omitempty"`
	Subject              string   `json:"subject,omitempty"`
	Categories           []string `json:"categories,omitempty"`
}

type OutputGetDesigns added in v1.0.3

type OutputGetDesigns struct {
	Result   []*Design `json:"result,omitempty"`
	Metadata _Metadata `json:"_metadata,omitempty"`
}

type OutputGetEnforceTLS added in v0.0.15

type OutputGetEnforceTLS struct {
	RequireTLS       bool    `json:"require_tls,omitempty"`
	RequireValidCert bool    `json:"require_valid_cert,omitempty"`
	Version          float64 `json:"version,omitempty"`
}

type OutputGetEventWebhook added in v1.0.2

type OutputGetEventWebhook struct {
	ID               string `json:"id,omitempty"`
	Enabled          bool   `json:"enabled,omitempty"`
	URL              string `json:"url,omitempty"`
	GroupResubscribe bool   `json:"group_resubscribe,omitempty"`
	Delivered        bool   `json:"delivered,omitempty"`
	GroupUnsubscribe bool   `json:"group_unsubscribe,omitempty"`
	SpamReport       bool   `json:"spam_report,omitempty"`
	Bounce           bool   `json:"bounce,omitempty"`
	Deferred         bool   `json:"deferred,omitempty"`
	Unsubscribe      bool   `json:"unsubscribe,omitempty"`
	Processed        bool   `json:"processed,omitempty"`
	Open             bool   `json:"open,omitempty"`
	Click            bool   `json:"click,omitempty"`
	Dropped          bool   `json:"dropped,omitempty"`
	FriendlyName     string `json:"friendly_name,omitempty"`
	OAuthClientID    string `json:"oauth_client_id,omitempty"`
	OAuthTokenURL    string `json:"oauth_token_url,omitempty"`
	PublicKey        string `json:"public_key,omitempty"`
}

type OutputGetEventWebhooks added in v1.0.2

type OutputGetEventWebhooks struct {
	MaxAllowed int             `json:"max_allowed,omitempty"`
	Webhooks   []*EventWebhook `json:"webhooks,omitempty"`
}

type OutputGetGoogleAnalyticsSettings added in v0.0.18

type OutputGetGoogleAnalyticsSettings struct {
	Enabled     bool   `json:"enabled,omitempty"`
	UTMCampaign string `json:"utm_campaign,omitempty"`
	UTMContent  string `json:"utm_content,omitempty"`
	UTMMedium   string `json:"utm_medium,omitempty"`
	UTMSource   string `json:"utm_source,omitempty"`
	UTMTerm     string `json:"utm_term,omitempty"`
}

type OutputGetInboundParseWebhook added in v1.1.1

type OutputGetInboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	SpamCheck bool   `json:"spam_check,omitempty"`
	SendRaw   bool   `json:"send_raw,omitempty"`
}

type OutputGetInboundParseWebhooks added in v1.1.1

type OutputGetInboundParseWebhooks struct {
	Result []*InboundParseWebhook `json:"result,omitempty"`
}

type OutputGetInvalidEmails added in v1.6.0

type OutputGetInvalidEmails struct {
	InvalidEmails []InvalidEmail `json:"invalid_emails,omitempty"`
}

OutputGetInvalidEmails represents the response for invalid emails list

type OutputGetOpenTrackingSettings added in v0.0.18

type OutputGetOpenTrackingSettings struct {
	Enabled bool `json:"enabled,omitempty"`
}

type OutputGetPendingTeammates

type OutputGetPendingTeammates struct {
	PendingTeammates []PendingTeammate `json:"result,omitempty"`
}

type OutputGetReverseDNS added in v0.0.17

type OutputGetReverseDNS struct {
	ID                      int64   `json:"id,omitempty"`
	IP                      string  `json:"ip,omitempty"`
	RDNS                    string  `json:"rdns,omitempty"`
	Users                   []*User `json:"users,omitempty"`
	Subdomain               string  `json:"subdomain,omitempty"`
	Domain                  string  `json:"domain,omitempty"`
	Valid                   bool    `json:"valid,omitempty"`
	Legacy                  bool    `json:"legacy,omitempty"`
	LastValidationAttemptAt int64   `json:"last_validation_attempt_at,omitempty"`
	ARecord                 ARecord `json:"a_record,omitempty"`
}

type OutputGetSSOCertificate added in v0.0.19

type OutputGetSSOCertificate struct {
	ID                int64  `json:"id,omitempty"`
	PublicCertificate string `json:"public_certificate,omitempty"`
	NotBefore         int64  `json:"not_before,omitempty"`
	NotAfter          int64  `json:"not_after,omitempty"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type OutputGetSSOIntegration added in v0.0.19

type OutputGetSSOIntegration struct {
	ID                   string `json:"id,omitempty"`
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled,omitempty"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration,omitempty"`
	LastUpdated          int64  `json:"last_updated,omitempty"`
	SingleSignonURL      string `json:"single_signon_url,omitempty"`
	AudienceURL          string `json:"audience_url,omitempty"`
}

type OutputGetSignedEventWebhooksPublicKey added in v1.7.0

type OutputGetSignedEventWebhooksPublicKey struct {
	PublicKey string `json:"public_key,omitempty"`
}

type OutputGetSpamReports added in v1.6.0

type OutputGetSpamReports struct {
	SpamReports []SpamReport `json:"spam_reports,omitempty"`
}

OutputGetSpamReports represents the response for spam reports list

type OutputGetSubscriptionTrackingSettings added in v0.0.18

type OutputGetSubscriptionTrackingSettings struct {
	Enabled      bool   `json:"enabled,omitempty"`
	HTMLContent  string `json:"html_content,omitempty"`
	Landing      string `json:"landing,omitempty"`
	PlainContent string `json:"plain_content,omitempty"`
	Replace      string `json:"replace,omitempty"`
	URL          string `json:"url,omitempty"`
}
type OutputGetSubuserBrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputGetTeammate

type OutputGetTeammate struct {
	Username  string   `json:"username,omitempty"`
	FirstName string   `json:"first_name,omitempty"`
	LastName  string   `json:"last_name,omitempty"`
	Email     string   `json:"email,omitempty"`
	Scopes    []string `json:"scopes,omitempty"`
	UserType  string   `json:"user_type,omitempty"`
	IsAdmin   bool     `json:"is_admin,omitempty"`
	Phone     string   `json:"phone,omitempty"`
	Website   string   `json:"website,omitempty"`
	Address   string   `json:"address,omitempty"`
	Address2  string   `json:"address2,omitempty"`
	City      string   `json:"city,omitempty"`
	State     string   `json:"state,omitempty"`
	Zip       string   `json:"zip,omitempty"`
	Country   string   `json:"country,omitempty"`
}

type OutputGetTeammateSubuserAccess added in v1.3.0

type OutputGetTeammateSubuserAccess struct {
	HasRestrictedSubuserAccess bool                             `json:"has_restricted_subuser_access,omitempty"`
	SubuserAccess              []SubuserAccess                  `json:"subuser_access,omitempty"`
	Metadata                   MetadataGetTeammateSubuserAccess `json:"_metadata,omitempty"`
}

type OutputGetTeammates

type OutputGetTeammates struct {
	Teammates []Teammate `json:"result,omitempty"`
}

type OutputGetTemplate added in v0.0.14

type OutputGetTemplate struct {
	ID         string    `json:"id,omitempty"`
	Name       string    `json:"name,omitempty"`
	Generation string    `json:"generation,omitempty"`
	UpdatedAt  string    `json:"updated_at,omitempty"`
	Versions   []Version `json:"versions,omitempty"`
	Warning    Warning   `json:"warning,omitempty"`
}

type OutputGetTemplateVersion added in v0.0.14

type OutputGetTemplateVersion struct {
	ID                   string  `json:"id,omitempty"`
	TemplateID           string  `json:"template_id,omitempty"`
	Active               int     `json:"active,omitempty"`
	Name                 string  `json:"name,omitempty"`
	HTMLContent          string  `json:"html_content,omitempty"`
	PlainContent         string  `json:"plain_content,omitempty"`
	GeneratePlainContent bool    `json:"generate_plain_content,omitempty"`
	Subject              string  `json:"subject,omitempty"`
	Editor               string  `json:"editor,omitempty"`
	TestData             string  `json:"test_data,omitempty"`
	UpdatedAt            string  `json:"updated_at,omitempty"`
	Warnings             Warning `json:"warnings,omitempty"`
	ThumbnailURL         string  `json:"thumbnail_url,omitempty"`
}

type OutputGetTemplates added in v0.0.14

type OutputGetTemplates struct {
	Templates []Template `json:"result,omitempty"`
	Metadata  Metadata   `json:"_metadata,omitempty"`
}

type OutputGetTrackingSettings added in v0.0.18

type OutputGetTrackingSettings struct {
	Result []*ResultGetTrackingSettings `json:"result,omitempty"`
}

type OutputGetVerifiedSenders added in v0.0.10

type OutputGetVerifiedSenders struct {
	VerifiedSenders []*VerifiedSender `json:"results,omitempty"`
}

type OutputInviteTeammate

type OutputInviteTeammate struct {
	Token   string   `json:"token,omitempty"`
	Email   string   `json:"email"`
	IsAdmin bool     `json:"is_admin"`
	Scopes  []string `json:"scopes"`
}

type OutputSendMail added in v1.6.0

type OutputSendMail struct {
	MessageID string `json:"message-id,omitempty"`
}

OutputSendMail represents the response from sending mail

type OutputSubuserAccess added in v1.2.0

type OutputSubuserAccess struct {
	ID             int64    `json:"id,omitempty"`
	Username       string   `json:"username,omitempty"`
	Email          string   `json:"email,omitempty"`
	Disabled       bool     `json:"disabled,omitempty"`
	PermissionType string   `json:"permission_type,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
}

type OutputToggleSignatureVerification added in v1.7.0

type OutputToggleSignatureVerification struct {
	ID        string `json:"id,omitempty"`
	PublicKey string `json:"public_key,omitempty"`
}

type OutputUpdateAPIKeyName added in v0.0.2

type OutputUpdateAPIKeyName struct {
	ApiKeyId string `json:"api_key_id,omitempty"`
	Name     string `json:"name,omitempty"`
}

type OutputUpdateAPIKeyNameAndScopes added in v0.0.2

type OutputUpdateAPIKeyNameAndScopes struct {
	ApiKeyId string   `json:"api_key_id,omitempty"`
	Name     string   `json:"name"`
	Scopes   []string `json:"scopes,omitempty"`
}

type OutputUpdateAlert added in v1.4.0

type OutputUpdateAlert struct {
	ID         int64  `json:"id,omitempty"`
	EmailTo    string `json:"email_to,omitempty"`
	Frequency  string `json:"frequency,omitempty"`
	Type       string `json:"type,omitempty"`
	Percentage int64  `json:"percentage,omitempty"`
	CreatedAt  int64  `json:"created_at,omitempty"`
	UpdatedAt  int64  `json:"updated_at,omitempty"`
}

type OutputUpdateBounceSettings added in v1.8.1

type OutputUpdateBounceSettings struct {
	Enabled     bool  `json:"enabled,omitempty"`
	SoftBounces int64 `json:"soft_bounces,omitempty"`
	HardBounces int64 `json:"hard_bounces,omitempty"`
}
type OutputUpdateBrandedLink struct {
	ID        int64          `json:"id,omitempty"`
	Domain    string         `json:"domain,omitempty"`
	Subdomain string         `json:"subdomain,omitempty"`
	Username  string         `json:"username,omitempty"`
	UserID    int64          `json:"user_id,omitempty"`
	Default   bool           `json:"default,omitempty"`
	Valid     bool           `json:"valid,omitempty"`
	Legacy    bool           `json:"legacy,omitempty"`
	DNS       DNSBrandedLink `json:"dns,omitempty"`
}

type OutputUpdateClickTrackingSettings added in v0.0.18

type OutputUpdateClickTrackingSettings struct {
	EnableText bool `json:"enable_text,omitempty"`
	Enabled    bool `json:"enabled,omitempty"`
}

type OutputUpdateDesign added in v1.0.3

type OutputUpdateDesign struct {
	ID                   string   `json:"id,omitempty"`
	UpdatedAt            string   `json:"updated_at,omitempty"`
	CreatedAt            string   `json:"created_at,omitempty"`
	ThumbnailURL         string   `json:"thumbnail_url,omitempty"`
	Name                 string   `json:"name,omitempty"`
	Editor               string   `json:"editor,omitempty"`
	HTMLContent          string   `json:"html_content,omitempty"`
	PlainContent         string   `json:"plain_content,omitempty"`
	GeneratePlainContent bool     `json:"generate_plain_content,omitempty"`
	Subject              string   `json:"subject,omitempty"`
	Categories           []string `json:"categories,omitempty"`
}

type OutputUpdateDomainAuthentication added in v0.0.6

type OutputUpdateDomainAuthentication struct {
	ID                      int64                         `json:"id,omitempty"`
	UserID                  int64                         `json:"user_id,omitempty"`
	Subdomain               string                        `json:"subdomain,omitempty"`
	Domain                  string                        `json:"domain,omitempty"`
	Username                string                        `json:"username,omitempty"`
	IPs                     []string                      `json:"ips,omitempty"`
	CustomSpf               bool                          `json:"custom_spf,omitempty"`
	Default                 bool                          `json:"default,omitempty"`
	Legacy                  bool                          `json:"legacy,omitempty"`
	AutomaticSecurity       bool                          `json:"automatic_security,omitempty"`
	Valid                   bool                          `json:"valid,omitempty"`
	DNS                     DNS                           `json:"dns,omitempty"`
	Subusers                []SubuserSenderAuthentication `json:"subusers,omitempty"`
	LastValidationAttemptAt int64                         `json:"last_validation_attempt_at,omitempty"`
}

type OutputUpdateEnforceTLS added in v0.0.15

type OutputUpdateEnforceTLS struct {
	RequireTLS       bool    `json:"require_tls,omitempty"`
	RequireValidCert bool    `json:"require_valid_cert,omitempty"`
	Version          float64 `json:"version,omitempty"`
}

type OutputUpdateEventWebhook added in v1.0.2

type OutputUpdateEventWebhook struct {
	ID               string `json:"id,omitempty"`
	Enabled          bool   `json:"enabled,omitempty"`
	URL              string `json:"url,omitempty"`
	GroupResubscribe bool   `json:"group_resubscribe,omitempty"`
	Delivered        bool   `json:"delivered,omitempty"`
	GroupUnsubscribe bool   `json:"group_unsubscribe,omitempty"`
	SpamReport       bool   `json:"spam_report,omitempty"`
	Bounce           bool   `json:"bounce,omitempty"`
	Deferred         bool   `json:"deferred,omitempty"`
	Unsubscribe      bool   `json:"unsubscribe,omitempty"`
	Processed        bool   `json:"processed,omitempty"`
	Open             bool   `json:"open,omitempty"`
	Click            bool   `json:"click,omitempty"`
	Dropped          bool   `json:"dropped,omitempty"`
	FriendlyName     string `json:"friendly_name,omitempty"`
	CreatedDate      string `json:"created_date,omitempty"`
	UpdatedDate      string `json:"updated_date,omitempty"`
	OAuthClientID    string `json:"oauth_client_id,omitempty"`
	OAuthTokenURL    string `json:"oauth_token_url,omitempty"`
}

type OutputUpdateGoogleAnalyticsSettings added in v0.0.18

type OutputUpdateGoogleAnalyticsSettings struct {
	Enabled     bool   `json:"enabled,omitempty"`
	UTMCampaign string `json:"utm_campaign,omitempty"`
	UTMContent  string `json:"utm_content,omitempty"`
	UTMMedium   string `json:"utm_medium,omitempty"`
	UTMSource   string `json:"utm_source,omitempty"`
	UTMTerm     string `json:"utm_term,omitempty"`
}

type OutputUpdateInboundParseWebhook added in v1.1.1

type OutputUpdateInboundParseWebhook struct {
	URL       string `json:"url,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
	SpamCheck bool   `json:"spam_check,omitempty"`
	SendRaw   bool   `json:"send_raw,omitempty"`
}

type OutputUpdateOpenTrackingSettings added in v0.0.18

type OutputUpdateOpenTrackingSettings struct {
	Enabled bool `json:"enabled,omitempty"`
}

type OutputUpdateSSOCertificate added in v0.0.19

type OutputUpdateSSOCertificate struct {
	ID                int64  `json:"id,omitempty"`
	PublicCertificate string `json:"public_certificate,omitempty"`
	NotBefore         int64  `json:"not_before,omitempty"`
	NotAfter          int64  `json:"not_after,omitempty"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type OutputUpdateSSOIntegration added in v0.0.19

type OutputUpdateSSOIntegration struct {
	ID                   string `json:"id,omitempty"`
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled,omitempty"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration,omitempty"`
	LastUpdated          int64  `json:"last_updated,omitempty"`
	SingleSignonURL      string `json:"single_signon_url,omitempty"`
	AudienceURL          string `json:"audience_url,omitempty"`
}

type OutputUpdateSSOTeammate added in v1.2.0

type OutputUpdateSSOTeammate struct {
	Address                    string                `json:"address,omitempty"`
	Address2                   string                `json:"address2,omitempty"`
	City                       string                `json:"city,omitempty"`
	Company                    string                `json:"company,omitempty"`
	Country                    string                `json:"country,omitempty"`
	Username                   string                `json:"username,omitempty"`
	Phone                      string                `json:"phone,omitempty"`
	State                      string                `json:"state,omitempty"`
	UserType                   string                `json:"user_type,omitempty"`
	Website                    string                `json:"website,omitempty"`
	Zip                        string                `json:"zip,omitempty"`
	FirstName                  string                `json:"first_name,omitempty"`
	LastName                   string                `json:"last_name,omitempty"`
	Email                      string                `json:"email,omitempty"`
	IsAdmin                    bool                  `json:"is_admin,omitempty"`
	IsSSO                      bool                  `json:"is_sso,omitempty"`
	Scopes                     []string              `json:"scopes,omitempty"`
	HasRestrictedSubuserAccess bool                  `json:"has_restricted_subuser_access,omitempty"`
	SubuserAccess              []OutputSubuserAccess `json:"subuser_access,omitempty"`
}

type OutputUpdateSubscriptionTrackingSettings added in v0.0.18

type OutputUpdateSubscriptionTrackingSettings struct {
	Enabled      bool   `json:"enabled,omitempty"`
	HTMLContent  string `json:"html_content,omitempty"`
	Landing      string `json:"landing,omitempty"`
	PlainContent string `json:"plain_content,omitempty"`
	Replace      string `json:"replace,omitempty"`
	URL          string `json:"url,omitempty"`
}

type OutputUpdateSuppressionGroup added in v0.0.13

type OutputUpdateSuppressionGroup struct {
	ID              int64  `json:"id,omitempty"`
	Name            string `json:"name,omitempty"`
	Description     string `json:"description,omitempty"`
	IsDefault       bool   `json:"is_default,omitempty"`
	LastEmailSentAt string `json:"last_email_sent_at,omitempty"`
	Unsubscribes    int64  `json:"unsubscribes,omitempty"`
}

type OutputUpdateTeammatePermissions

type OutputUpdateTeammatePermissions struct {
	Username  string   `json:"username,omitempty"`
	FirstName string   `json:"first_name,omitempty"`
	LastName  string   `json:"last_name,omitempty"`
	Email     string   `json:"email,omitempty"`
	Scopes    []string `json:"scopes,omitempty"`
	UserType  string   `json:"user_type,omitempty"`
	IsAdmin   bool     `json:"is_admin,omitempty"`
	Phone     string   `json:"phone,omitempty"`
	Website   string   `json:"website,omitempty"`
	Address   string   `json:"address,omitempty"`
	Address2  string   `json:"address2,omitempty"`
	City      string   `json:"city,omitempty"`
	State     string   `json:"state,omitempty"`
	Zip       string   `json:"zip,omitempty"`
	Country   string   `json:"country,omitempty"`
}

type OutputUpdateTemplate added in v0.0.14

type OutputUpdateTemplate struct {
	ID         string    `json:"id,omitempty"`
	Name       string    `json:"name,omitempty"`
	Generation string    `json:"generation,omitempty"`
	UpdatedAt  string    `json:"updated_at,omitempty"`
	Versions   []Version `json:"versions,omitempty"`
}

type OutputUpdateTemplateVersion added in v0.0.14

type OutputUpdateTemplateVersion struct {
	ID                   string    `json:"id,omitempty"`
	TemplateID           string    `json:"template_id,omitempty"`
	Active               int       `json:"active,omitempty"`
	Name                 string    `json:"name,omitempty"`
	HTMLContent          string    `json:"html_content,omitempty"`
	PlainContent         string    `json:"plain_content,omitempty"`
	GeneratePlainContent bool      `json:"generate_plain_content,omitempty"`
	Subject              string    `json:"subject,omitempty"`
	Editor               string    `json:"editor,omitempty"`
	TestData             string    `json:"test_data,omitempty"`
	UpdatedAt            string    `json:"updated_at,omitempty"`
	Warnings             []Warning `json:"warnings,omitempty"`
	ThumbnailURL         string    `json:"thumbnail_url,omitempty"`
}

type OutputUpdateVerifiedSender added in v0.0.10

type OutputUpdateVerifiedSender struct {
	ID          int64  `json:"id,omitempty"`
	Nickname    string `json:"nickname,omitempty"`
	FromEmail   string `json:"from_email,omitempty"`
	FromName    string `json:"from_name,omitempty"`
	ReplyTo     string `json:"reply_to,omitempty"`
	ReplyToName string `json:"reply_to_name,omitempty"`
	Address     string `json:"address,omitempty"`
	Address2    string `json:"address2,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	Zip         string `json:"zip,omitempty"`
	Country     string `json:"country,omitempty"`
	Verified    bool   `json:"verified,omitempty"`
	Locked      bool   `json:"locked,omitempty"`
}
type OutputValidateBrandedLink struct {
	ID                int64                        `json:"id,omitempty"`
	Valid             bool                         `json:"valid,omitempty"`
	ValidationResults ValidationResultsBrandedLink `json:"validation_results,omitempty"`
}

type OutputValidateDomainAuthentication added in v0.0.6

type OutputValidateDomainAuthentication struct {
	ID                int64             `json:"id,omitempty"`
	Valid             bool              `json:"valid,omitempty"`
	ValidationResults ValidationResults `json:"validation_results,omitempty"`
}

type OutputValidateReverseDNS added in v0.0.17

type OutputValidateReverseDNS struct {
	ID                int64                       `json:"id,omitempty"`
	Valid             bool                        `json:"valid,omitempty"`
	ValidationResults ValidationResultsReverseDNS `json:"validation_results,omitempty"`
}

type PendingTeammate

type PendingTeammate struct {
	Email          string   `json:"email,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
	IsAdmin        bool     `json:"is_admin,omitempty"`
	Token          string   `json:"token,omitempty"`
	ExpirationDate int      `json:"expiration_date,omitempty"`
}

type Personalization added in v1.6.0

type Personalization struct {
	To                  []*Email               `json:"to,omitempty"`
	Cc                  []*Email               `json:"cc,omitempty"`
	Bcc                 []*Email               `json:"bcc,omitempty"`
	Subject             string                 `json:"subject,omitempty"`
	Headers             map[string]string      `json:"headers,omitempty"`
	Substitutions       map[string]string      `json:"substitutions,omitempty"`
	DynamicTemplateData map[string]interface{} `json:"dynamic_template_data,omitempty"`
	CustomArgs          map[string]string      `json:"custom_args,omitempty"`
	SendAt              int64                  `json:"send_at,omitempty"`
}

Personalization contains personalized data for recipients

func NewPersonalization added in v1.6.0

func NewPersonalization() *Personalization

NewPersonalization creates a new Personalization struct

func (*Personalization) AddBcc added in v1.6.0

func (p *Personalization) AddBcc(email *Email)

AddBcc adds a BCC recipient to personalization

func (*Personalization) AddCc added in v1.6.0

func (p *Personalization) AddCc(email *Email)

AddCc adds a CC recipient to personalization

func (*Personalization) AddTo added in v1.6.0

func (p *Personalization) AddTo(email *Email)

AddTo adds a recipient to personalization

func (*Personalization) SetSendAt added in v1.6.0

func (p *Personalization) SetSendAt(sendAt time.Time)

SetSendAt sets the send time for personalization

type RateLimitedError added in v1.0.0

type RateLimitedError struct {
	RetryAfter time.Duration
}

func (*RateLimitedError) Error added in v1.0.0

func (e *RateLimitedError) Error() string

type Record added in v0.0.6

type Record struct {
	Valid bool   `json:"valid,omitempty"`
	Type  string `json:"type,omitempty"`
	Host  string `json:"host,omitempty"`
	Data  string `json:"data,omitempty"`
}

type ReplyTo added in v1.6.0

type ReplyTo struct {
	Email string `json:"email"`
	Name  string `json:"name,omitempty"`
}

ReplyTo represents reply-to settings

type ReplyToList added in v1.6.0

type ReplyToList struct {
	Email string `json:"email"`
	Name  string `json:"name,omitempty"`
}

ReplyToList represents a list of reply-to addresses

type Reputation added in v0.0.3

type Reputation struct {
	Reputation float64 `json:"reputation,omitempty"`
	Username   string  `json:"username,omitempty"`
}

type ResultGetTrackingSettings added in v0.0.18

type ResultGetTrackingSettings struct {
	Name        string `json:"name,omitempty"`
	Title       string `json:"title,omitempty"`
	Description string `json:"description,omitempty"`
	Enabled     bool   `json:"enabled,omitempty"`
}

type SSOCertificate added in v0.0.19

type SSOCertificate struct {
	ID                int64  `json:"id,omitempty"`
	PublicCertificate string `json:"public_certificate,omitempty"`
	NotBefore         int64  `json:"not_before,omitempty"`
	NotAfter          int64  `json:"not_after,omitempty"`
	IntegrationID     string `json:"integration_id,omitempty"`
}

type SSOIntegration added in v0.0.19

type SSOIntegration struct {
	ID                   string `json:"id,omitempty"`
	Name                 string `json:"name,omitempty"`
	Enabled              bool   `json:"enabled,omitempty"`
	SigninURL            string `json:"signin_url,omitempty"`
	SignoutURL           string `json:"signout_url,omitempty"`
	EntityID             string `json:"entity_id,omitempty"`
	CompletedIntegration bool   `json:"completed_integration,omitempty"`
	LastUpdated          int64  `json:"last_updated,omitempty"`
	SingleSignonURL      string `json:"single_signon_url,omitempty"`
	AudienceURL          string `json:"audience_url,omitempty"`
}

type Setting added in v1.6.0

type Setting struct {
	Enable *bool `json:"enable,omitempty"`
}

Setting represents a boolean setting

type SpamCheckSetting added in v1.6.0

type SpamCheckSetting struct {
	Enable    *bool  `json:"enable,omitempty"`
	Threshold int    `json:"threshold,omitempty"`
	PostToURL string `json:"post_to_url,omitempty"`
}

SpamCheckSetting represents spam check settings

type SpamReport added in v1.6.0

type SpamReport struct {
	Created int64  `json:"created"`
	Email   string `json:"email"`
	IP      string `json:"ip"`
}

SpamReport represents a spam report

type Stat added in v1.6.0

type Stat struct {
	Date  string     `json:"date,omitempty"`
	Stats []StatItem `json:"stats,omitempty"`
}

Stat represents statistics data

type StatItem added in v1.6.0

type StatItem struct {
	Metrics StatMetrics `json:"metrics,omitempty"`
	Name    string      `json:"name,omitempty"`
	Type    string      `json:"type,omitempty"`
}

StatItem represents individual statistic metrics

type StatMetrics added in v1.6.0

type StatMetrics struct {
	Blocks           int `json:"blocks,omitempty"`
	BounceDrops      int `json:"bounce_drops,omitempty"`
	Bounces          int `json:"bounces,omitempty"`
	Clicks           int `json:"clicks,omitempty"`
	DeferredDrops    int `json:"deferred_drops,omitempty"`
	Delivered        int `json:"delivered,omitempty"`
	InvalidEmails    int `json:"invalid_emails,omitempty"`
	Opens            int `json:"opens,omitempty"`
	Processed        int `json:"processed,omitempty"`
	Requests         int `json:"requests,omitempty"`
	SpamReportDrops  int `json:"spam_report_drops,omitempty"`
	SpamReports      int `json:"spam_reports,omitempty"`
	UniqueClicks     int `json:"unique_clicks,omitempty"`
	UniqueOpens      int `json:"unique_opens,omitempty"`
	UnsubscribeDrops int `json:"unsubscribe_drops,omitempty"`
	Unsubscribes     int `json:"unsubscribes,omitempty"`
}

StatMetrics represents metric data

type StatsOptions added in v1.6.0

type StatsOptions struct {
	StartDate   string   `url:"start_date,omitempty"`
	EndDate     string   `url:"end_date,omitempty"`
	Aggregation string   `url:"aggregated_by,omitempty"`
	Categories  []string `url:"-"`
	Subusers    []string `url:"-"`
	Tags        []string `url:"-"`
	Limit       int      `url:"limit,omitempty"`
	Offset      int      `url:"offset,omitempty"`
}

StatsOptions represents query parameters for stats requests

type SubscriptionTrackingSetting added in v1.6.0

type SubscriptionTrackingSetting struct {
	Enable          *bool  `json:"enable,omitempty"`
	Text            string `json:"text,omitempty"`
	HTML            string `json:"html,omitempty"`
	SubstitutionTag string `json:"substitution_tag,omitempty"`
}

SubscriptionTrackingSetting represents subscription tracking settings

type Subuser added in v0.0.3

type Subuser struct {
	ID       int64  `json:"id,omitempty"`
	Disabled bool   `json:"disabled,omitempty"`
	Username string `json:"username,omitempty"`
	Email    string `json:"email,omitempty"`
	Region   string `json:"region,omitempty"`
}

type SubuserAccess added in v1.3.0

type SubuserAccess struct {
	ID             int64    `json:"id,omitempty"`
	Username       string   `json:"username,omitempty"`
	Email          string   `json:"email,omitempty"`
	Disabled       bool     `json:"disabled,omitempty"`
	PermissionType string   `json:"permission_type,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
}

type SubuserSenderAuthentication added in v0.0.6

type SubuserSenderAuthentication struct {
	UserID   int64  `json:"user_id,omitempty"`
	Username string `json:"username,omitempty"`
}

type SubuserStat added in v1.6.0

type SubuserStat struct {
	Date  string     `json:"date,omitempty"`
	Stats []StatItem `json:"stats,omitempty"`
}

SubuserStat represents subuser statistics

type SuppressionGroup added in v0.0.13

type SuppressionGroup struct {
	ID              int64  `json:"id,omitempty"`
	Name            string `json:"name,omitempty"`
	Description     string `json:"description,omitempty"`
	IsDefault       bool   `json:"is_default,omitempty"`
	Unsubscribes    int64  `json:"unsubscribes,omitempty"`
	LastEmailSentAt string `json:"last_email_sent_at,omitempty"`
}

type SuppressionListOptions added in v1.6.0

type SuppressionListOptions struct {
	StartTime int64  `url:"start_time,omitempty"`
	EndTime   int64  `url:"end_time,omitempty"`
	Limit     int    `url:"limit,omitempty"`
	Offset    int    `url:"offset,omitempty"`
	Email     string `url:"email,omitempty"`
}

SuppressionListOptions represents query parameters for suppression list requests

type Teammate

type Teammate struct {
	Username  string `json:"username,omitempty"`
	Email     string `json:"email,omitempty"`
	FirstName string `json:"first_name,omitempty"`
	LastName  string `json:"last_name,omitempty"`
	UserType  string `json:"user_type,omitempty"`
	IsAdmin   bool   `json:"is_admin,omitempty"`
	Phone     string `json:"phone,omitempty"`
	Website   string `json:"website,omitempty"`
	Address   string `json:"address,omitempty"`
	Address2  string `json:"address2,omitempty"`
	City      string `json:"city,omitempty"`
	State     string `json:"state,omitempty"`
	Zip       string `json:"zip,omitempty"`
	Country   string `json:"country,omitempty"`
}

type Template added in v0.0.14

type Template struct {
	ID         string    `json:"id,omitempty"`
	Name       string    `json:"name,omitempty"`
	Generation string    `json:"generation,omitempty"`
	UpdatedAt  string    `json:"updated_at,omitempty"`
	Versions   []Version `json:"versions,omitempty"`
}

type TrackingSettings added in v1.6.0

type TrackingSettings struct {
	ClickTracking        *ClickTrackingSetting        `json:"click_tracking,omitempty"`
	OpenTracking         *OpenTrackingSetting         `json:"open_tracking,omitempty"`
	SubscriptionTracking *SubscriptionTrackingSetting `json:"subscription_tracking,omitempty"`
	GoogleAnalytics      *GoogleAnalyticsSetting      `json:"ganalytics,omitempty"`
}

TrackingSettings contains various tracking settings

type User added in v0.0.17

type User struct {
	Username string `json:"username,omitempty"`
	UserID   int64  `json:"user_id,omitempty"`
}

type ValidationResult added in v0.0.6

type ValidationResult struct {
	Valid  bool   `json:"valid,omitempty"`
	Reason string `json:"reason,omitempty"`
}

type ValidationResults added in v0.0.6

type ValidationResults struct {
	MailCname ValidationResult `json:"mail_cname,omitempty"`
	Dkim1     ValidationResult `json:"dkim1,omitempty"`
	Dkim2     ValidationResult `json:"dkim2,omitempty"`
	SPF       ValidationResult `json:"spf,omitempty"`
}
type ValidationResultsBrandedLink struct {
	DomainCname ValidationResult `json:"domain_cname,omitempty"`
	OwnerCname  ValidationResult `json:"owner_cname,omitempty"`
}

type ValidationResultsReverseDNS added in v0.0.17

type ValidationResultsReverseDNS struct {
	ARecordValidationResults ARecordValidationResults `json:"a_record,omitempty"`
}

type VerifiedSender added in v0.0.10

type VerifiedSender struct {
	ID          int64  `json:"id,omitempty"`
	Nickname    string `json:"nickname,omitempty"`
	FromEmail   string `json:"from_email,omitempty"`
	FromName    string `json:"from_name,omitempty"`
	ReplyTo     string `json:"reply_to,omitempty"`
	ReplyToName string `json:"reply_to_name,omitempty"`
	Address     string `json:"address,omitempty"`
	Address2    string `json:"address2,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	Zip         string `json:"zip,omitempty"`
	Country     string `json:"country,omitempty"`
	Verified    bool   `json:"verified,omitempty"`
	Locked      bool   `json:"locked,omitempty"`
}

type Version added in v0.0.14

type Version struct {
	ID                   string `json:"id,omitempty"`
	TemplateID           string `json:"template_id,omitempty"`
	Name                 string `json:"name,omitempty"`
	Subject              string `json:"subject,omitempty"`
	UpdatedAt            string `json:"updated_at,omitempty"`
	GeneratePlainContent bool   `json:"generate_plain_content,omitempty"`
	HTMLContent          string `json:"html_content,omitempty"`
	PlainContent         string `json:"plain_content,omitempty"`
	Editor               string `json:"editor,omitempty"`
	ThumbnailURL         string `json:"thumbnail_url,omitempty"`
}

type Warning added in v0.0.14

type Warning struct {
	Message string `json:"message,omitempty"`
}

Directories

Path Synopsis
examples
create_alert command
create_api_key command
create_design command
create_subuser command
create_template command
delete_alert command
delete_api_key command
delete_design command
delete_subuser command
delete_teammate command
delete_template command
get_alert command
get_alerts command
get_api_key command
get_api_keys command
get_bounces command
get_design command
get_designs command
get_enforce_tls command
get_ip_address command
get_subuser command
get_subusers command
get_teammate command
get_teammates command
get_template command
get_templates command
invite_teammate command
send_mail command
update_alert command
update_design command
update_subuser command
update_template command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL