sendgrid

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2024 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 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 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) 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) CreateSSOCertificate added in v0.0.20

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

func (*Client) CreateSubuser added in v0.0.3

func (c *Client) CreateSubuser(ctx context.Context, input *InputCreateSubuser) (*OutputCreateSubuser, 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 (c *Client) DeleteBrandedLink(ctx context.Context, id int64) error

func (*Client) DeletePendingTeammate

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

func (*Client) DeleteSubuser added in v0.0.3

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

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) 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 (c *Client) GetBrandedLink(ctx context.Context, id int64) (*OutputGetBrandedLink, error)
func (c *Client) GetBrandedLinks(ctx context.Context, input *InputGetBrandedLinks) ([]*BrandedLink, error)

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) GetPendingTeammates

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

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 (c *Client) GetSubuserBrandedLink(ctx context.Context, subuser string) (*OutputGetSubuserBrandedLink, error)

func (*Client) GetSubuserReputations added in v0.0.3

func (c *Client) GetSubuserReputations(ctx context.Context, usernames string) ([]*Reputation, error)

func (*Client) GetSubusers added in v0.0.3

func (c *Client) GetSubusers(ctx context.Context, input *InputGetSubusers) ([]*Subuser, error)

func (*Client) GetTeammate

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

func (*Client) GetTeammates

func (c *Client) GetTeammates(ctx context.Context) (*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) ResendVerifiedSenderRequest added in v0.0.10

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

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) UpdateSubuserIps added in v0.0.3

func (c *Client) UpdateSubuserIps(ctx context.Context, username string, ips []string) error

func (*Client) UpdateSubuserStatus added in v0.0.3

func (c *Client) UpdateSubuserStatus(ctx context.Context, username string, input *InputUpdateSubuserStatus) error

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 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 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 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 InputAddIPToAuthenticatedDomain added in v0.0.6

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

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 InputCreateBrandedLink struct {
	Domain    string `json:"domain,omitempty"`
	Subdomain string `json:"subdomain,omitempty"`
	Default   bool   `json:"default,omitempty"`
}

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,omitempty"`
	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,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"`
}

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"`
}

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,omitempty"`
}

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,omitempty"`
	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 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
}

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 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 InputUpdateBrandedLink struct {
	Default bool `json:"default"`
}

type InputUpdateClickTrackingSettings added in v0.0.18

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

type InputUpdateDomainAuthentication added in v0.0.6

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

type InputUpdateEnforceTLS added in v0.0.15

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

type InputUpdateGoogleAnalyticsSettings added in v0.0.18

type InputUpdateGoogleAnalyticsSettings 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 InputUpdateOpenTrackingSettings added in v0.0.18

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

type InputUpdateSSOCertificate added in v0.0.19

type InputUpdateSSOCertificate struct {
	PublicCertificate string `json:"public_certificate,omitempty"`
	Enabled           bool   `json:"enabled,omitempty"`
	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,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"`
}

type InputUpdateSubscriptionTrackingSettings added in v0.0.18

type InputUpdateSubscriptionTrackingSettings 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 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,omitempty"`
}

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,omitempty"`
	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 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 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 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 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 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 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"`
}

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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"`
}

type SubuserSenderAuthentication added in v0.0.6

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

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 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 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"`
}

Jump to

Keyboard shortcuts

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