oapi

package
v0.41.0 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package oapi provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.7.0 DO NOT EDIT.

Index

Constants

View Source
const (
	BearerAuthScopes     bearerAuthContextKey     = "BearerAuth.Scopes"
	CookieAuthScopes     cookieAuthContextKey     = "CookieAuth.Scopes"
	RealtimeKeyScopes    realtimeKeyContextKey    = "RealtimeKey.Scopes"
	RealtimeSecretScopes realtimeSecretContextKey = "RealtimeSecret.Scopes"
)

Variables

This section is empty.

Functions

func NewArchiveContactPropertyRequest added in v0.4.0

func NewArchiveContactPropertyRequest(server string, propertyId ContactPropertyID, params *ArchiveContactPropertyParams) (*http.Request, error)

NewArchiveContactPropertyRequest generates requests for ArchiveContactProperty

func NewAssignAudienceContactsRequest added in v0.4.0

func NewAssignAudienceContactsRequest(server string, audienceId AudienceID, params *AssignAudienceContactsParams, body AssignAudienceContactsJSONRequestBody) (*http.Request, error)

NewAssignAudienceContactsRequest calls the generic AssignAudienceContacts builder with application/json body

func NewAssignAudienceContactsRequestWithBody added in v0.4.0

func NewAssignAudienceContactsRequestWithBody(server string, audienceId AudienceID, params *AssignAudienceContactsParams, contentType string, body io.Reader) (*http.Request, error)

NewAssignAudienceContactsRequestWithBody generates requests for AssignAudienceContacts with any type of body

func NewCancelEmailMessageRequest added in v0.4.1

func NewCancelEmailMessageRequest(server string, messageId EmailID, params *CancelEmailMessageParams) (*http.Request, error)

NewCancelEmailMessageRequest generates requests for CancelEmailMessage

func NewCreateAudienceRequest added in v0.4.0

func NewCreateAudienceRequest(server string, params *CreateAudienceParams, body CreateAudienceJSONRequestBody) (*http.Request, error)

NewCreateAudienceRequest calls the generic CreateAudience builder with application/json body

func NewCreateAudienceRequestWithBody added in v0.4.0

func NewCreateAudienceRequestWithBody(server string, params *CreateAudienceParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateAudienceRequestWithBody generates requests for CreateAudience with any type of body

func NewCreateContactBatchRequest added in v0.4.0

func NewCreateContactBatchRequest(server string, params *CreateContactBatchParams, body CreateContactBatchJSONRequestBody) (*http.Request, error)

NewCreateContactBatchRequest calls the generic CreateContactBatch builder with application/json body

func NewCreateContactBatchRequestWithBody added in v0.4.0

func NewCreateContactBatchRequestWithBody(server string, params *CreateContactBatchParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateContactBatchRequestWithBody generates requests for CreateContactBatch with any type of body

func NewCreateContactPropertyRequest added in v0.4.0

func NewCreateContactPropertyRequest(server string, params *CreateContactPropertyParams, body CreateContactPropertyJSONRequestBody) (*http.Request, error)

NewCreateContactPropertyRequest calls the generic CreateContactProperty builder with application/json body

func NewCreateContactPropertyRequestWithBody added in v0.4.0

func NewCreateContactPropertyRequestWithBody(server string, params *CreateContactPropertyParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateContactPropertyRequestWithBody generates requests for CreateContactProperty with any type of body

func NewCreateContactRequest added in v0.4.0

func NewCreateContactRequest(server string, params *CreateContactParams, body CreateContactJSONRequestBody) (*http.Request, error)

NewCreateContactRequest calls the generic CreateContact builder with application/json body

func NewCreateContactRequestWithBody added in v0.4.0

func NewCreateContactRequestWithBody(server string, params *CreateContactParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateContactRequestWithBody generates requests for CreateContact with any type of body

func NewCreateDomainRequest added in v0.8.0

func NewCreateDomainRequest(server string, params *CreateDomainParams, body CreateDomainJSONRequestBody) (*http.Request, error)

NewCreateDomainRequest calls the generic CreateDomain builder with application/json body

func NewCreateDomainRequestWithBody added in v0.8.0

func NewCreateDomainRequestWithBody(server string, params *CreateDomainParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateDomainRequestWithBody generates requests for CreateDomain with any type of body

func NewCreateEmailLookupRequest added in v0.31.0

func NewCreateEmailLookupRequest(server string, params *CreateEmailLookupParams, body CreateEmailLookupJSONRequestBody) (*http.Request, error)

NewCreateEmailLookupRequest calls the generic CreateEmailLookup builder with application/json body

func NewCreateEmailLookupRequestWithBody added in v0.31.0

func NewCreateEmailLookupRequestWithBody(server string, params *CreateEmailLookupParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateEmailLookupRequestWithBody generates requests for CreateEmailLookup with any type of body

func NewCreateEmailMessageBatchRequest added in v0.2.0

func NewCreateEmailMessageBatchRequest(server string, params *CreateEmailMessageBatchParams, body CreateEmailMessageBatchJSONRequestBody) (*http.Request, error)

NewCreateEmailMessageBatchRequest calls the generic CreateEmailMessageBatch builder with application/json body

func NewCreateEmailMessageBatchRequestWithBody added in v0.2.0

func NewCreateEmailMessageBatchRequestWithBody(server string, params *CreateEmailMessageBatchParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateEmailMessageBatchRequestWithBody generates requests for CreateEmailMessageBatch with any type of body

func NewCreateEmailMessageRequest

func NewCreateEmailMessageRequest(server string, params *CreateEmailMessageParams, body CreateEmailMessageJSONRequestBody) (*http.Request, error)

NewCreateEmailMessageRequest calls the generic CreateEmailMessage builder with application/json body

func NewCreateEmailMessageRequestWithBody

func NewCreateEmailMessageRequestWithBody(server string, params *CreateEmailMessageParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateEmailMessageRequestWithBody generates requests for CreateEmailMessage with any type of body

func NewCreateMailboxMessageRequest added in v0.12.0

func NewCreateMailboxMessageRequest(server string, mailboxId MailboxID, params *CreateMailboxMessageParams, body CreateMailboxMessageJSONRequestBody) (*http.Request, error)

NewCreateMailboxMessageRequest calls the generic CreateMailboxMessage builder with application/json body

func NewCreateMailboxMessageRequestWithBody added in v0.12.0

func NewCreateMailboxMessageRequestWithBody(server string, mailboxId MailboxID, params *CreateMailboxMessageParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateMailboxMessageRequestWithBody generates requests for CreateMailboxMessage with any type of body

func NewCreateMailboxReceiveRuleRequest added in v0.12.0

func NewCreateMailboxReceiveRuleRequest(server string, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, body CreateMailboxReceiveRuleJSONRequestBody) (*http.Request, error)

NewCreateMailboxReceiveRuleRequest calls the generic CreateMailboxReceiveRule builder with application/json body

func NewCreateMailboxReceiveRuleRequestWithBody added in v0.12.0

func NewCreateMailboxReceiveRuleRequestWithBody(server string, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateMailboxReceiveRuleRequestWithBody generates requests for CreateMailboxReceiveRule with any type of body

func NewCreateMailboxRequest added in v0.12.0

func NewCreateMailboxRequest(server string, params *CreateMailboxParams, body CreateMailboxJSONRequestBody) (*http.Request, error)

NewCreateMailboxRequest calls the generic CreateMailbox builder with application/json body

func NewCreateMailboxRequestWithBody added in v0.12.0

func NewCreateMailboxRequestWithBody(server string, params *CreateMailboxParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateMailboxRequestWithBody generates requests for CreateMailbox with any type of body

func NewCreateNumbersOrderRequest added in v0.34.0

func NewCreateNumbersOrderRequest(server string, params *CreateNumbersOrderParams, body CreateNumbersOrderJSONRequestBody) (*http.Request, error)

NewCreateNumbersOrderRequest calls the generic CreateNumbersOrder builder with application/json body

func NewCreateNumbersOrderRequestWithBody added in v0.34.0

func NewCreateNumbersOrderRequestWithBody(server string, params *CreateNumbersOrderParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateNumbersOrderRequestWithBody generates requests for CreateNumbersOrder with any type of body

func NewCreatePhoneNumberLookupRequest added in v0.31.0

func NewCreatePhoneNumberLookupRequest(server string, params *CreatePhoneNumberLookupParams, body CreatePhoneNumberLookupJSONRequestBody) (*http.Request, error)

NewCreatePhoneNumberLookupRequest calls the generic CreatePhoneNumberLookup builder with application/json body

func NewCreatePhoneNumberLookupRequestWithBody added in v0.31.0

func NewCreatePhoneNumberLookupRequestWithBody(server string, params *CreatePhoneNumberLookupParams, contentType string, body io.Reader) (*http.Request, error)

NewCreatePhoneNumberLookupRequestWithBody generates requests for CreatePhoneNumberLookup with any type of body

func NewCreatePreferenceRequest added in v0.41.0

func NewCreatePreferenceRequest(server string, params *CreatePreferenceParams, body CreatePreferenceJSONRequestBody) (*http.Request, error)

NewCreatePreferenceRequest calls the generic CreatePreference builder with application/json body

func NewCreatePreferenceRequestWithBody added in v0.41.0

func NewCreatePreferenceRequestWithBody(server string, params *CreatePreferenceParams, contentType string, body io.Reader) (*http.Request, error)

NewCreatePreferenceRequestWithBody generates requests for CreatePreference with any type of body

func NewCreateSMSKeywordRuleRequest added in v0.33.0

func NewCreateSMSKeywordRuleRequest(server string, params *CreateSMSKeywordRuleParams, body CreateSMSKeywordRuleJSONRequestBody) (*http.Request, error)

NewCreateSMSKeywordRuleRequest calls the generic CreateSMSKeywordRule builder with application/json body

func NewCreateSMSKeywordRuleRequestWithBody added in v0.33.0

func NewCreateSMSKeywordRuleRequestWithBody(server string, params *CreateSMSKeywordRuleParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateSMSKeywordRuleRequestWithBody generates requests for CreateSMSKeywordRule with any type of body

func NewCreateSMSMessageBatchRequest added in v0.3.0

func NewCreateSMSMessageBatchRequest(server string, params *CreateSMSMessageBatchParams, body CreateSMSMessageBatchJSONRequestBody) (*http.Request, error)

NewCreateSMSMessageBatchRequest calls the generic CreateSMSMessageBatch builder with application/json body

func NewCreateSMSMessageBatchRequestWithBody added in v0.3.0

func NewCreateSMSMessageBatchRequestWithBody(server string, params *CreateSMSMessageBatchParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateSMSMessageBatchRequestWithBody generates requests for CreateSMSMessageBatch with any type of body

func NewCreateSMSMessageRequest added in v0.3.0

func NewCreateSMSMessageRequest(server string, params *CreateSMSMessageParams, body CreateSMSMessageJSONRequestBody) (*http.Request, error)

NewCreateSMSMessageRequest calls the generic CreateSMSMessage builder with application/json body

func NewCreateSMSMessageRequestWithBody added in v0.3.0

func NewCreateSMSMessageRequestWithBody(server string, params *CreateSMSMessageParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateSMSMessageRequestWithBody generates requests for CreateSMSMessage with any type of body

func NewCreateSMSSuppressionRequest added in v0.33.0

func NewCreateSMSSuppressionRequest(server string, params *CreateSMSSuppressionParams, body CreateSMSSuppressionJSONRequestBody) (*http.Request, error)

NewCreateSMSSuppressionRequest calls the generic CreateSMSSuppression builder with application/json body

func NewCreateSMSSuppressionRequestWithBody added in v0.33.0

func NewCreateSMSSuppressionRequestWithBody(server string, params *CreateSMSSuppressionParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateSMSSuppressionRequestWithBody generates requests for CreateSMSSuppression with any type of body

func NewCreateVerificationCheckRequest added in v0.7.0

func NewCreateVerificationCheckRequest(server string, params *CreateVerificationCheckParams, body CreateVerificationCheckJSONRequestBody) (*http.Request, error)

NewCreateVerificationCheckRequest calls the generic CreateVerificationCheck builder with application/json body

func NewCreateVerificationCheckRequestWithBody added in v0.7.0

func NewCreateVerificationCheckRequestWithBody(server string, params *CreateVerificationCheckParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateVerificationCheckRequestWithBody generates requests for CreateVerificationCheck with any type of body

func NewCreateVerificationNextChannelRequest added in v0.27.0

func NewCreateVerificationNextChannelRequest(server string, params *CreateVerificationNextChannelParams, body CreateVerificationNextChannelJSONRequestBody) (*http.Request, error)

NewCreateVerificationNextChannelRequest calls the generic CreateVerificationNextChannel builder with application/json body

func NewCreateVerificationNextChannelRequestWithBody added in v0.27.0

func NewCreateVerificationNextChannelRequestWithBody(server string, params *CreateVerificationNextChannelParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateVerificationNextChannelRequestWithBody generates requests for CreateVerificationNextChannel with any type of body

func NewCreateVerificationRequest added in v0.7.0

func NewCreateVerificationRequest(server string, params *CreateVerificationParams, body CreateVerificationJSONRequestBody) (*http.Request, error)

NewCreateVerificationRequest calls the generic CreateVerification builder with application/json body

func NewCreateVerificationRequestWithBody added in v0.7.0

func NewCreateVerificationRequestWithBody(server string, params *CreateVerificationParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateVerificationRequestWithBody generates requests for CreateVerification with any type of body

func NewCreateWhatsAppMessageRequest added in v0.23.0

func NewCreateWhatsAppMessageRequest(server string, params *CreateWhatsAppMessageParams, body CreateWhatsAppMessageJSONRequestBody) (*http.Request, error)

NewCreateWhatsAppMessageRequest calls the generic CreateWhatsAppMessage builder with application/json body

func NewCreateWhatsAppMessageRequestWithBody added in v0.23.0

func NewCreateWhatsAppMessageRequestWithBody(server string, params *CreateWhatsAppMessageParams, contentType string, body io.Reader) (*http.Request, error)

NewCreateWhatsAppMessageRequestWithBody generates requests for CreateWhatsAppMessage with any type of body

func NewDeleteAudienceRequest added in v0.4.0

func NewDeleteAudienceRequest(server string, audienceId AudienceID, params *DeleteAudienceParams) (*http.Request, error)

NewDeleteAudienceRequest generates requests for DeleteAudience

func NewDeleteContactRequest added in v0.4.0

func NewDeleteContactRequest(server string, contactId ContactID, params *DeleteContactParams) (*http.Request, error)

NewDeleteContactRequest generates requests for DeleteContact

func NewDeleteDomainRequest added in v0.8.0

func NewDeleteDomainRequest(server string, domainId DomainID, params *DeleteDomainParams) (*http.Request, error)

NewDeleteDomainRequest generates requests for DeleteDomain

func NewDeleteEmailThreadRequest added in v0.12.0

func NewDeleteEmailThreadRequest(server string, threadId ThreadID, params *DeleteEmailThreadParams) (*http.Request, error)

NewDeleteEmailThreadRequest generates requests for DeleteEmailThread

func NewDeleteMailboxReceiveRuleRequest added in v0.12.0

func NewDeleteMailboxReceiveRuleRequest(server string, mailboxId MailboxID, ruleId ReceiveRuleID, params *DeleteMailboxReceiveRuleParams) (*http.Request, error)

NewDeleteMailboxReceiveRuleRequest generates requests for DeleteMailboxReceiveRule

func NewDeleteMailboxRequest added in v0.12.0

func NewDeleteMailboxRequest(server string, mailboxId MailboxID, params *DeleteMailboxParams) (*http.Request, error)

NewDeleteMailboxRequest generates requests for DeleteMailbox

func NewDeletePreferenceRequest added in v0.41.0

func NewDeletePreferenceRequest(server string, preferenceId PreferenceID, params *DeletePreferenceParams) (*http.Request, error)

NewDeletePreferenceRequest generates requests for DeletePreference

func NewDeleteSMSKeywordRuleRequest added in v0.33.0

func NewDeleteSMSKeywordRuleRequest(server string, id SMSKeywordRuleID, params *DeleteSMSKeywordRuleParams) (*http.Request, error)

NewDeleteSMSKeywordRuleRequest generates requests for DeleteSMSKeywordRule

func NewDeleteSMSSuppressionRequest added in v0.33.0

func NewDeleteSMSSuppressionRequest(server string, suppressionId SMSSuppressionID, params *DeleteSMSSuppressionParams) (*http.Request, error)

NewDeleteSMSSuppressionRequest generates requests for DeleteSMSSuppression

func NewDisconnectRealtimeAppMemberRequest added in v0.15.0

func NewDisconnectRealtimeAppMemberRequest(server string, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *DisconnectRealtimeAppMemberParams) (*http.Request, error)

NewDisconnectRealtimeAppMemberRequest generates requests for DisconnectRealtimeAppMember

func NewGetAudienceRequest added in v0.4.0

func NewGetAudienceRequest(server string, audienceId AudienceID) (*http.Request, error)

NewGetAudienceRequest generates requests for GetAudience

func NewGetAvailableNumberRequest added in v0.34.0

func NewGetAvailableNumberRequest(server string, number string, params *GetAvailableNumberParams) (*http.Request, error)

NewGetAvailableNumberRequest generates requests for GetAvailableNumber

func NewGetContactPropertyRequest added in v0.4.0

func NewGetContactPropertyRequest(server string, propertyId ContactPropertyID) (*http.Request, error)

NewGetContactPropertyRequest generates requests for GetContactProperty

func NewGetContactRequest added in v0.4.0

func NewGetContactRequest(server string, contactId ContactID) (*http.Request, error)

NewGetContactRequest generates requests for GetContact

func NewGetDomainRequest added in v0.8.0

func NewGetDomainRequest(server string, domainId DomainID) (*http.Request, error)

NewGetDomainRequest generates requests for GetDomain

func NewGetEmailMessageRequest

func NewGetEmailMessageRequest(server string, messageId EmailID) (*http.Request, error)

NewGetEmailMessageRequest generates requests for GetEmailMessage

func NewGetEmailStatsByBounceCodeRequest added in v0.10.0

func NewGetEmailStatsByBounceCodeRequest(server string, params *GetEmailStatsByBounceCodeParams) (*http.Request, error)

NewGetEmailStatsByBounceCodeRequest generates requests for GetEmailStatsByBounceCode

func NewGetEmailStatsByBroadcastRequest added in v0.10.0

func NewGetEmailStatsByBroadcastRequest(server string, params *GetEmailStatsByBroadcastParams) (*http.Request, error)

NewGetEmailStatsByBroadcastRequest generates requests for GetEmailStatsByBroadcast

func NewGetEmailStatsByCategoryRequest added in v0.10.0

func NewGetEmailStatsByCategoryRequest(server string, params *GetEmailStatsByCategoryParams) (*http.Request, error)

NewGetEmailStatsByCategoryRequest generates requests for GetEmailStatsByCategory

func NewGetEmailStatsByClientRequest added in v0.10.0

func NewGetEmailStatsByClientRequest(server string, params *GetEmailStatsByClientParams) (*http.Request, error)

NewGetEmailStatsByClientRequest generates requests for GetEmailStatsByClient

func NewGetEmailStatsByComplaintTypeRequest added in v0.10.0

func NewGetEmailStatsByComplaintTypeRequest(server string, params *GetEmailStatsByComplaintTypeParams) (*http.Request, error)

NewGetEmailStatsByComplaintTypeRequest generates requests for GetEmailStatsByComplaintType

func NewGetEmailStatsByLocationRequest added in v0.10.0

func NewGetEmailStatsByLocationRequest(server string, params *GetEmailStatsByLocationParams) (*http.Request, error)

NewGetEmailStatsByLocationRequest generates requests for GetEmailStatsByLocation

func NewGetEmailStatsByMailboxProviderRegionRequest added in v0.10.0

func NewGetEmailStatsByMailboxProviderRegionRequest(server string, params *GetEmailStatsByMailboxProviderRegionParams) (*http.Request, error)

NewGetEmailStatsByMailboxProviderRegionRequest generates requests for GetEmailStatsByMailboxProviderRegion

func NewGetEmailStatsByMailboxProviderRequest added in v0.10.0

func NewGetEmailStatsByMailboxProviderRequest(server string, params *GetEmailStatsByMailboxProviderParams) (*http.Request, error)

NewGetEmailStatsByMailboxProviderRequest generates requests for GetEmailStatsByMailboxProvider

func NewGetEmailStatsByRecipientDomainRequest added in v0.10.0

func NewGetEmailStatsByRecipientDomainRequest(server string, params *GetEmailStatsByRecipientDomainParams) (*http.Request, error)

NewGetEmailStatsByRecipientDomainRequest generates requests for GetEmailStatsByRecipientDomain

func NewGetEmailStatsBySendingDomainRequest added in v0.10.0

func NewGetEmailStatsBySendingDomainRequest(server string, params *GetEmailStatsBySendingDomainParams) (*http.Request, error)

NewGetEmailStatsBySendingDomainRequest generates requests for GetEmailStatsBySendingDomain

func NewGetEmailStatsBySendingIpRequest added in v0.10.0

func NewGetEmailStatsBySendingIpRequest(server string, params *GetEmailStatsBySendingIpParams) (*http.Request, error)

NewGetEmailStatsBySendingIpRequest generates requests for GetEmailStatsBySendingIp

func NewGetEmailStatsByTagRequest added in v0.10.0

func NewGetEmailStatsByTagRequest(server string, params *GetEmailStatsByTagParams) (*http.Request, error)

NewGetEmailStatsByTagRequest generates requests for GetEmailStatsByTag

func NewGetEmailStatsByTemplateRequest added in v0.10.0

func NewGetEmailStatsByTemplateRequest(server string, params *GetEmailStatsByTemplateParams) (*http.Request, error)

NewGetEmailStatsByTemplateRequest generates requests for GetEmailStatsByTemplate

func NewGetEmailStatsDailyRequest added in v0.10.0

func NewGetEmailStatsDailyRequest(server string, params *GetEmailStatsDailyParams) (*http.Request, error)

NewGetEmailStatsDailyRequest generates requests for GetEmailStatsDaily

func NewGetEmailStatsHourlyRequest added in v0.10.0

func NewGetEmailStatsHourlyRequest(server string, params *GetEmailStatsHourlyParams) (*http.Request, error)

NewGetEmailStatsHourlyRequest generates requests for GetEmailStatsHourly

func NewGetEmailStatsSummaryRequest added in v0.10.0

func NewGetEmailStatsSummaryRequest(server string, params *GetEmailStatsSummaryParams) (*http.Request, error)

NewGetEmailStatsSummaryRequest generates requests for GetEmailStatsSummary

func NewGetEmailThreadMessageBodyRequest added in v0.12.0

func NewGetEmailThreadMessageBodyRequest(server string, threadId ThreadID, messageId string) (*http.Request, error)

NewGetEmailThreadMessageBodyRequest generates requests for GetEmailThreadMessageBody

func NewGetEmailThreadMessageRequest added in v0.12.0

func NewGetEmailThreadMessageRequest(server string, threadId ThreadID, messageId string) (*http.Request, error)

NewGetEmailThreadMessageRequest generates requests for GetEmailThreadMessage

func NewGetEmailThreadRequest added in v0.12.0

func NewGetEmailThreadRequest(server string, threadId ThreadID) (*http.Request, error)

NewGetEmailThreadRequest generates requests for GetEmailThread

func NewGetMailboxRequest added in v0.12.0

func NewGetMailboxRequest(server string, mailboxId MailboxID) (*http.Request, error)

NewGetMailboxRequest generates requests for GetMailbox

func NewGetMailboxStatsRequest added in v0.12.0

func NewGetMailboxStatsRequest(server string, mailboxId MailboxID, params *GetMailboxStatsParams) (*http.Request, error)

NewGetMailboxStatsRequest generates requests for GetMailboxStats

func NewGetNumbersOrderRequest added in v0.34.0

func NewGetNumbersOrderRequest(server string, orderId NumbersOrderID, params *GetNumbersOrderParams) (*http.Request, error)

NewGetNumbersOrderRequest generates requests for GetNumbersOrder

func NewGetPreferenceRequest added in v0.41.0

func NewGetPreferenceRequest(server string, preferenceId PreferenceID) (*http.Request, error)

NewGetPreferenceRequest generates requests for GetPreference

func NewGetRealtimeAppChannelRequest added in v0.15.0

func NewGetRealtimeAppChannelRequest(server string, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *GetRealtimeAppChannelParams) (*http.Request, error)

NewGetRealtimeAppChannelRequest generates requests for GetRealtimeAppChannel

func NewGetSMSInboundStatsByCountryRequest added in v0.33.0

func NewGetSMSInboundStatsByCountryRequest(server string, params *GetSMSInboundStatsByCountryParams) (*http.Request, error)

NewGetSMSInboundStatsByCountryRequest generates requests for GetSMSInboundStatsByCountry

func NewGetSMSInboundStatsByNumberRequest added in v0.33.0

func NewGetSMSInboundStatsByNumberRequest(server string, params *GetSMSInboundStatsByNumberParams) (*http.Request, error)

NewGetSMSInboundStatsByNumberRequest generates requests for GetSMSInboundStatsByNumber

func NewGetSMSInboundStatsByOperatorRequest added in v0.33.0

func NewGetSMSInboundStatsByOperatorRequest(server string, params *GetSMSInboundStatsByOperatorParams) (*http.Request, error)

NewGetSMSInboundStatsByOperatorRequest generates requests for GetSMSInboundStatsByOperator

func NewGetSMSInboundStatsDailyRequest added in v0.33.0

func NewGetSMSInboundStatsDailyRequest(server string, params *GetSMSInboundStatsDailyParams) (*http.Request, error)

NewGetSMSInboundStatsDailyRequest generates requests for GetSMSInboundStatsDaily

func NewGetSMSInboundStatsHourlyRequest added in v0.33.0

func NewGetSMSInboundStatsHourlyRequest(server string, params *GetSMSInboundStatsHourlyParams) (*http.Request, error)

NewGetSMSInboundStatsHourlyRequest generates requests for GetSMSInboundStatsHourly

func NewGetSMSInboundStatsSummaryRequest added in v0.33.0

func NewGetSMSInboundStatsSummaryRequest(server string, params *GetSMSInboundStatsSummaryParams) (*http.Request, error)

NewGetSMSInboundStatsSummaryRequest generates requests for GetSMSInboundStatsSummary

func NewGetSMSKeywordRuleRequest added in v0.33.0

func NewGetSMSKeywordRuleRequest(server string, id SMSKeywordRuleID, params *GetSMSKeywordRuleParams) (*http.Request, error)

NewGetSMSKeywordRuleRequest generates requests for GetSMSKeywordRule

func NewGetSMSMessageRequest added in v0.3.0

func NewGetSMSMessageRequest(server string, messageId SMSMessageID) (*http.Request, error)

NewGetSMSMessageRequest generates requests for GetSMSMessage

func NewGetSMSStatsByCarrierRequest added in v0.33.0

func NewGetSMSStatsByCarrierRequest(server string, params *GetSMSStatsByCarrierParams) (*http.Request, error)

NewGetSMSStatsByCarrierRequest generates requests for GetSMSStatsByCarrier

func NewGetSMSStatsByCategoryRequest added in v0.33.0

func NewGetSMSStatsByCategoryRequest(server string, params *GetSMSStatsByCategoryParams) (*http.Request, error)

NewGetSMSStatsByCategoryRequest generates requests for GetSMSStatsByCategory

func NewGetSMSStatsByCountryRequest added in v0.33.0

func NewGetSMSStatsByCountryRequest(server string, params *GetSMSStatsByCountryParams) (*http.Request, error)

NewGetSMSStatsByCountryRequest generates requests for GetSMSStatsByCountry

func NewGetSMSStatsByErrorCodeRequest added in v0.33.0

func NewGetSMSStatsByErrorCodeRequest(server string, params *GetSMSStatsByErrorCodeParams) (*http.Request, error)

NewGetSMSStatsByErrorCodeRequest generates requests for GetSMSStatsByErrorCode

func NewGetSMSStatsByOriginatorRequest added in v0.33.0

func NewGetSMSStatsByOriginatorRequest(server string, params *GetSMSStatsByOriginatorParams) (*http.Request, error)

NewGetSMSStatsByOriginatorRequest generates requests for GetSMSStatsByOriginator

func NewGetSMSStatsByStatusRequest added in v0.33.0

func NewGetSMSStatsByStatusRequest(server string, params *GetSMSStatsByStatusParams) (*http.Request, error)

NewGetSMSStatsByStatusRequest generates requests for GetSMSStatsByStatus

func NewGetSMSStatsByTagRequest added in v0.33.0

func NewGetSMSStatsByTagRequest(server string, params *GetSMSStatsByTagParams) (*http.Request, error)

NewGetSMSStatsByTagRequest generates requests for GetSMSStatsByTag

func NewGetSMSStatsDailyRequest added in v0.33.0

func NewGetSMSStatsDailyRequest(server string, params *GetSMSStatsDailyParams) (*http.Request, error)

NewGetSMSStatsDailyRequest generates requests for GetSMSStatsDaily

func NewGetSMSStatsHourlyRequest added in v0.33.0

func NewGetSMSStatsHourlyRequest(server string, params *GetSMSStatsHourlyParams) (*http.Request, error)

NewGetSMSStatsHourlyRequest generates requests for GetSMSStatsHourly

func NewGetSMSStatsSummaryRequest added in v0.33.0

func NewGetSMSStatsSummaryRequest(server string, params *GetSMSStatsSummaryParams) (*http.Request, error)

NewGetSMSStatsSummaryRequest generates requests for GetSMSStatsSummary

func NewGetSMSSuppressionRequest added in v0.33.0

func NewGetSMSSuppressionRequest(server string, suppressionId SMSSuppressionID) (*http.Request, error)

NewGetSMSSuppressionRequest generates requests for GetSMSSuppression

func NewGetSMSTemplateRequest added in v0.3.0

func NewGetSMSTemplateRequest(server string, templateRef string) (*http.Request, error)

NewGetSMSTemplateRequest generates requests for GetSMSTemplate

func NewGetVoiceCallRequest added in v0.27.0

func NewGetVoiceCallRequest(server string, callId VoiceCallID) (*http.Request, error)

NewGetVoiceCallRequest generates requests for GetVoiceCall

func NewGetWhatsAppMessageRequest added in v0.6.0

func NewGetWhatsAppMessageRequest(server string, messageId WhatsAppMessageID) (*http.Request, error)

NewGetWhatsAppMessageRequest generates requests for GetWhatsAppMessage

func NewGetWorkspaceNumberRequest added in v0.34.0

func NewGetWorkspaceNumberRequest(server string, numberId AllocatedNumberID, params *GetWorkspaceNumberParams) (*http.Request, error)

NewGetWorkspaceNumberRequest generates requests for GetWorkspaceNumber

func NewListAudienceContactsRequest added in v0.4.0

func NewListAudienceContactsRequest(server string, audienceId AudienceID, params *ListAudienceContactsParams) (*http.Request, error)

NewListAudienceContactsRequest generates requests for ListAudienceContacts

func NewListAudiencesRequest added in v0.4.0

func NewListAudiencesRequest(server string, params *ListAudiencesParams) (*http.Request, error)

NewListAudiencesRequest generates requests for ListAudiences

func NewListAvailableNumbersRequest added in v0.34.0

func NewListAvailableNumbersRequest(server string, params *ListAvailableNumbersParams) (*http.Request, error)

NewListAvailableNumbersRequest generates requests for ListAvailableNumbers

func NewListContactPreferencesRequest added in v0.41.0

func NewListContactPreferencesRequest(server string, contactId ContactID, params *ListContactPreferencesParams) (*http.Request, error)

NewListContactPreferencesRequest generates requests for ListContactPreferences

func NewListContactPropertiesRequest added in v0.4.0

func NewListContactPropertiesRequest(server string, params *ListContactPropertiesParams) (*http.Request, error)

NewListContactPropertiesRequest generates requests for ListContactProperties

func NewListContactsRequest added in v0.4.0

func NewListContactsRequest(server string, params *ListContactsParams) (*http.Request, error)

NewListContactsRequest generates requests for ListContacts

func NewListDomainsRequest added in v0.8.0

func NewListDomainsRequest(server string, params *ListDomainsParams) (*http.Request, error)

NewListDomainsRequest generates requests for ListDomains

func NewListEmailMessagesRequest

func NewListEmailMessagesRequest(server string, params *ListEmailMessagesParams) (*http.Request, error)

NewListEmailMessagesRequest generates requests for ListEmailMessages

func NewListEmailThreadMessageAttachmentsRequest added in v0.12.0

func NewListEmailThreadMessageAttachmentsRequest(server string, threadId ThreadID, messageId string) (*http.Request, error)

NewListEmailThreadMessageAttachmentsRequest generates requests for ListEmailThreadMessageAttachments

func NewListEmailThreadMessagesRequest added in v0.12.0

func NewListEmailThreadMessagesRequest(server string, threadId ThreadID, params *ListEmailThreadMessagesParams) (*http.Request, error)

NewListEmailThreadMessagesRequest generates requests for ListEmailThreadMessages

func NewListEmailThreadsRequest added in v0.12.0

func NewListEmailThreadsRequest(server string, params *ListEmailThreadsParams) (*http.Request, error)

NewListEmailThreadsRequest generates requests for ListEmailThreads

func NewListMailboxLabelsRequest added in v0.12.0

func NewListMailboxLabelsRequest(server string, mailboxId MailboxID) (*http.Request, error)

NewListMailboxLabelsRequest generates requests for ListMailboxLabels

func NewListMailboxReceiveRulesRequest added in v0.12.0

func NewListMailboxReceiveRulesRequest(server string, mailboxId MailboxID, params *ListMailboxReceiveRulesParams) (*http.Request, error)

NewListMailboxReceiveRulesRequest generates requests for ListMailboxReceiveRules

func NewListMailboxesRequest added in v0.12.0

func NewListMailboxesRequest(server string, params *ListMailboxesParams) (*http.Request, error)

NewListMailboxesRequest generates requests for ListMailboxes

func NewListNumbersOrdersRequest added in v0.34.0

func NewListNumbersOrdersRequest(server string, params *ListNumbersOrdersParams) (*http.Request, error)

NewListNumbersOrdersRequest generates requests for ListNumbersOrders

func NewListPreferencesRequest added in v0.41.0

func NewListPreferencesRequest(server string, params *ListPreferencesParams) (*http.Request, error)

NewListPreferencesRequest generates requests for ListPreferences

func NewListRealtimeAppChannelMembersRequest added in v0.15.0

func NewListRealtimeAppChannelMembersRequest(server string, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *ListRealtimeAppChannelMembersParams) (*http.Request, error)

NewListRealtimeAppChannelMembersRequest generates requests for ListRealtimeAppChannelMembers

func NewListRealtimeAppChannelsRequest added in v0.15.0

func NewListRealtimeAppChannelsRequest(server string, realtimeAppId RealtimeAppID, params *ListRealtimeAppChannelsParams) (*http.Request, error)

NewListRealtimeAppChannelsRequest generates requests for ListRealtimeAppChannels

func NewListSMSKeywordRulesRequest added in v0.33.0

func NewListSMSKeywordRulesRequest(server string, params *ListSMSKeywordRulesParams) (*http.Request, error)

NewListSMSKeywordRulesRequest generates requests for ListSMSKeywordRules

func NewListSMSMessageEventsRequest added in v0.33.0

func NewListSMSMessageEventsRequest(server string, messageId SMSMessageID, params *ListSMSMessageEventsParams) (*http.Request, error)

NewListSMSMessageEventsRequest generates requests for ListSMSMessageEvents

func NewListSMSMessagesRequest added in v0.3.0

func NewListSMSMessagesRequest(server string, params *ListSMSMessagesParams) (*http.Request, error)

NewListSMSMessagesRequest generates requests for ListSMSMessages

func NewListSMSSuppressionsRequest added in v0.33.0

func NewListSMSSuppressionsRequest(server string, params *ListSMSSuppressionsParams) (*http.Request, error)

NewListSMSSuppressionsRequest generates requests for ListSMSSuppressions

func NewListSMSTemplatesRequest added in v0.3.0

func NewListSMSTemplatesRequest(server string, params *ListSMSTemplatesParams) (*http.Request, error)

NewListSMSTemplatesRequest generates requests for ListSMSTemplates

func NewListVoiceCallsRequest added in v0.27.0

func NewListVoiceCallsRequest(server string, params *ListVoiceCallsParams) (*http.Request, error)

NewListVoiceCallsRequest generates requests for ListVoiceCalls

func NewListWhatsAppMessageEventsRequest added in v0.6.0

func NewListWhatsAppMessageEventsRequest(server string, messageId WhatsAppMessageID, params *ListWhatsAppMessageEventsParams) (*http.Request, error)

NewListWhatsAppMessageEventsRequest generates requests for ListWhatsAppMessageEvents

func NewListWhatsAppMessagesRequest added in v0.6.0

func NewListWhatsAppMessagesRequest(server string, params *ListWhatsAppMessagesParams) (*http.Request, error)

NewListWhatsAppMessagesRequest generates requests for ListWhatsAppMessages

func NewListWorkspaceNumbersRequest added in v0.34.0

func NewListWorkspaceNumbersRequest(server string, params *ListWorkspaceNumbersParams) (*http.Request, error)

NewListWorkspaceNumbersRequest generates requests for ListWorkspaceNumbers

func NewPublishRealtimeAppBatchRequest added in v0.15.0

func NewPublishRealtimeAppBatchRequest(server string, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, body PublishRealtimeAppBatchJSONRequestBody) (*http.Request, error)

NewPublishRealtimeAppBatchRequest calls the generic PublishRealtimeAppBatch builder with application/json body

func NewPublishRealtimeAppBatchRequestWithBody added in v0.15.0

func NewPublishRealtimeAppBatchRequestWithBody(server string, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, contentType string, body io.Reader) (*http.Request, error)

NewPublishRealtimeAppBatchRequestWithBody generates requests for PublishRealtimeAppBatch with any type of body

func NewPublishRealtimeAppEventRequest added in v0.15.0

func NewPublishRealtimeAppEventRequest(server string, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, body PublishRealtimeAppEventJSONRequestBody) (*http.Request, error)

NewPublishRealtimeAppEventRequest calls the generic PublishRealtimeAppEvent builder with application/json body

func NewPublishRealtimeAppEventRequestWithBody added in v0.15.0

func NewPublishRealtimeAppEventRequestWithBody(server string, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, contentType string, body io.Reader) (*http.Request, error)

NewPublishRealtimeAppEventRequestWithBody generates requests for PublishRealtimeAppEvent with any type of body

func NewReleaseWorkspaceNumberRequest added in v0.34.0

func NewReleaseWorkspaceNumberRequest(server string, numberId AllocatedNumberID, params *ReleaseWorkspaceNumberParams) (*http.Request, error)

NewReleaseWorkspaceNumberRequest generates requests for ReleaseWorkspaceNumber

func NewReplyEmailThreadMessageRequest added in v0.12.0

func NewReplyEmailThreadMessageRequest(server string, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, body ReplyEmailThreadMessageJSONRequestBody) (*http.Request, error)

NewReplyEmailThreadMessageRequest calls the generic ReplyEmailThreadMessage builder with application/json body

func NewReplyEmailThreadMessageRequestWithBody added in v0.12.0

func NewReplyEmailThreadMessageRequestWithBody(server string, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, contentType string, body io.Reader) (*http.Request, error)

NewReplyEmailThreadMessageRequestWithBody generates requests for ReplyEmailThreadMessage with any type of body

func NewRestoreMailboxRequest added in v0.12.0

func NewRestoreMailboxRequest(server string, mailboxId MailboxID, params *RestoreMailboxParams) (*http.Request, error)

NewRestoreMailboxRequest generates requests for RestoreMailbox

func NewResumeMailboxRequest added in v0.12.0

func NewResumeMailboxRequest(server string, mailboxId MailboxID, params *ResumeMailboxParams) (*http.Request, error)

NewResumeMailboxRequest generates requests for ResumeMailbox

func NewSendRealtimeAppMemberEventRequest added in v0.21.0

func NewSendRealtimeAppMemberEventRequest(server string, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, body SendRealtimeAppMemberEventJSONRequestBody) (*http.Request, error)

NewSendRealtimeAppMemberEventRequest calls the generic SendRealtimeAppMemberEvent builder with application/json body

func NewSendRealtimeAppMemberEventRequestWithBody added in v0.21.0

func NewSendRealtimeAppMemberEventRequestWithBody(server string, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, contentType string, body io.Reader) (*http.Request, error)

NewSendRealtimeAppMemberEventRequestWithBody generates requests for SendRealtimeAppMemberEvent with any type of body

func NewUnarchiveContactPropertyRequest added in v0.4.0

func NewUnarchiveContactPropertyRequest(server string, propertyId ContactPropertyID, params *UnarchiveContactPropertyParams) (*http.Request, error)

NewUnarchiveContactPropertyRequest generates requests for UnarchiveContactProperty

func NewUnassignAudienceContactRequest added in v0.4.0

func NewUnassignAudienceContactRequest(server string, audienceId AudienceID, contactId ContactID, params *UnassignAudienceContactParams) (*http.Request, error)

NewUnassignAudienceContactRequest generates requests for UnassignAudienceContact

func NewUnassignAudienceContactsRequest added in v0.4.0

func NewUnassignAudienceContactsRequest(server string, audienceId AudienceID, params *UnassignAudienceContactsParams, body UnassignAudienceContactsJSONRequestBody) (*http.Request, error)

NewUnassignAudienceContactsRequest calls the generic UnassignAudienceContacts builder with application/json body

func NewUnassignAudienceContactsRequestWithBody added in v0.4.0

func NewUnassignAudienceContactsRequestWithBody(server string, audienceId AudienceID, params *UnassignAudienceContactsParams, contentType string, body io.Reader) (*http.Request, error)

NewUnassignAudienceContactsRequestWithBody generates requests for UnassignAudienceContacts with any type of body

func NewUpdateAudienceRequest added in v0.4.0

func NewUpdateAudienceRequest(server string, audienceId AudienceID, params *UpdateAudienceParams, body UpdateAudienceJSONRequestBody) (*http.Request, error)

NewUpdateAudienceRequest calls the generic UpdateAudience builder with application/json body

func NewUpdateAudienceRequestWithBody added in v0.4.0

func NewUpdateAudienceRequestWithBody(server string, audienceId AudienceID, params *UpdateAudienceParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateAudienceRequestWithBody generates requests for UpdateAudience with any type of body

func NewUpdateContactPropertyRequest added in v0.4.0

func NewUpdateContactPropertyRequest(server string, propertyId ContactPropertyID, params *UpdateContactPropertyParams, body UpdateContactPropertyJSONRequestBody) (*http.Request, error)

NewUpdateContactPropertyRequest calls the generic UpdateContactProperty builder with application/json body

func NewUpdateContactPropertyRequestWithBody added in v0.4.0

func NewUpdateContactPropertyRequestWithBody(server string, propertyId ContactPropertyID, params *UpdateContactPropertyParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateContactPropertyRequestWithBody generates requests for UpdateContactProperty with any type of body

func NewUpdateContactRequest added in v0.4.0

func NewUpdateContactRequest(server string, contactId ContactID, params *UpdateContactParams, body UpdateContactJSONRequestBody) (*http.Request, error)

NewUpdateContactRequest calls the generic UpdateContact builder with application/json body

func NewUpdateContactRequestWithBody added in v0.4.0

func NewUpdateContactRequestWithBody(server string, contactId ContactID, params *UpdateContactParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateContactRequestWithBody generates requests for UpdateContact with any type of body

func NewUpdateDomainRequest added in v0.8.0

func NewUpdateDomainRequest(server string, domainId DomainID, params *UpdateDomainParams, body UpdateDomainJSONRequestBody) (*http.Request, error)

NewUpdateDomainRequest calls the generic UpdateDomain builder with application/json body

func NewUpdateDomainRequestWithBody added in v0.8.0

func NewUpdateDomainRequestWithBody(server string, domainId DomainID, params *UpdateDomainParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateDomainRequestWithBody generates requests for UpdateDomain with any type of body

func NewUpdateEmailThreadRequest added in v0.12.0

func NewUpdateEmailThreadRequest(server string, threadId ThreadID, params *UpdateEmailThreadParams, body UpdateEmailThreadJSONRequestBody) (*http.Request, error)

NewUpdateEmailThreadRequest calls the generic UpdateEmailThread builder with application/json body

func NewUpdateEmailThreadRequestWithBody added in v0.12.0

func NewUpdateEmailThreadRequestWithBody(server string, threadId ThreadID, params *UpdateEmailThreadParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateEmailThreadRequestWithBody generates requests for UpdateEmailThread with any type of body

func NewUpdateMailboxRequest added in v0.12.0

func NewUpdateMailboxRequest(server string, mailboxId MailboxID, params *UpdateMailboxParams, body UpdateMailboxJSONRequestBody) (*http.Request, error)

NewUpdateMailboxRequest calls the generic UpdateMailbox builder with application/json body

func NewUpdateMailboxRequestWithBody added in v0.12.0

func NewUpdateMailboxRequestWithBody(server string, mailboxId MailboxID, params *UpdateMailboxParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateMailboxRequestWithBody generates requests for UpdateMailbox with any type of body

func NewUpdateSMSKeywordRuleRequest added in v0.33.0

func NewUpdateSMSKeywordRuleRequest(server string, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, body UpdateSMSKeywordRuleJSONRequestBody) (*http.Request, error)

NewUpdateSMSKeywordRuleRequest calls the generic UpdateSMSKeywordRule builder with application/json body

func NewUpdateSMSKeywordRuleRequestWithBody added in v0.33.0

func NewUpdateSMSKeywordRuleRequestWithBody(server string, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, contentType string, body io.Reader) (*http.Request, error)

NewUpdateSMSKeywordRuleRequestWithBody generates requests for UpdateSMSKeywordRule with any type of body

func NewVerifyDomainRequest added in v0.8.0

func NewVerifyDomainRequest(server string, domainId DomainID, params *VerifyDomainParams) (*http.Request, error)

NewVerifyDomainRequest generates requests for VerifyDomain

Types

type APIKeyID added in v0.4.0

type APIKeyID = string

APIKeyID defines model for APIKeyID.

type Actor added in v0.36.1

type Actor struct {
	// DisplayName The label the actor is shown under: typically a member's name or email address, or the API key's name. Null when it could not be resolved.
	DisplayName *string `json:"display_name,omitempty"`

	// Id Actor identifier.
	Id string `json:"id"`

	// Type Who or what performed the action: `user` for a member's own session, `oauth_token` for a token issued to a caller on a member's behalf, `api_key` for a workspace API key, `system` for our own automation, `sso` for an organization's SSO connection, and `service_account` for a workspace's connected Integration acting with no member behind it. Open enum: new actor types may be added over time, so treat any unrecognized value as a future type rather than an error.
	Type string `json:"type"`
}

Actor defines model for Actor.

type AllocatedNumberID added in v0.34.0

type AllocatedNumberID = string

AllocatedNumberID Identifier of a number allocated to your workspace, as returned in the id field of `GET /v1/numbers`.

type ArchiveContactPropertyParams added in v0.4.0

type ArchiveContactPropertyParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

ArchiveContactPropertyParams defines parameters for ArchiveContactProperty.

type ArchiveContactPropertyResponse added in v0.4.0

type ArchiveContactPropertyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactProperty
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseArchiveContactPropertyResponse added in v0.4.0

func ParseArchiveContactPropertyResponse(rsp *http.Response) (*ArchiveContactPropertyResponse, error)

ParseArchiveContactPropertyResponse parses an HTTP response from a ArchiveContactPropertyWithResponse call

func (ArchiveContactPropertyResponse) ContentType added in v0.4.0

func (r ArchiveContactPropertyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ArchiveContactPropertyResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (ArchiveContactPropertyResponse) StatusCode added in v0.4.0

func (r ArchiveContactPropertyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type AssignAudienceContactsJSONRequestBody added in v0.4.0

type AssignAudienceContactsJSONRequestBody = AudienceContactsAddRequest

AssignAudienceContactsJSONRequestBody defines body for AssignAudienceContacts for application/json ContentType.

type AssignAudienceContactsParams added in v0.4.0

type AssignAudienceContactsParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

AssignAudienceContactsParams defines parameters for AssignAudienceContacts.

type AssignAudienceContactsResponse added in v0.4.0

type AssignAudienceContactsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseAssignAudienceContactsResponse added in v0.4.0

func ParseAssignAudienceContactsResponse(rsp *http.Response) (*AssignAudienceContactsResponse, error)

ParseAssignAudienceContactsResponse parses an HTTP response from a AssignAudienceContactsWithResponse call

func (AssignAudienceContactsResponse) ContentType added in v0.4.0

func (r AssignAudienceContactsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (AssignAudienceContactsResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (AssignAudienceContactsResponse) StatusCode added in v0.4.0

func (r AssignAudienceContactsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Audience added in v0.4.0

type Audience struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Description Longer description of who this audience is.
	Description *string    `json:"description,omitempty"`
	Id          AudienceID `json:"id"`

	// Name Display name for the audience.
	Name string `json:"name"`

	// Type How the audience's recipients are determined. `static` is an explicit member list you manage by adding and removing contacts.
	Type      AudienceType `json:"type"`
	UpdatedAt *time.Time   `json:"updated_at,omitempty"`
}

Audience defines model for Audience.

type AudienceContactsAddRequest added in v0.4.0

type AudienceContactsAddRequest struct {
	// ContactIds Contacts to add to the audience. Adding a contact that is already a member has no effect and keeps its original join time. Duplicate IDs in the list are collapsed. If any ID does not exist in the workspace, the whole request fails with a validation error and no contacts are added.
	ContactIds []ContactID `json:"contact_ids"`
}

AudienceContactsAddRequest defines model for AudienceContactsAddRequest.

type AudienceContactsRemoveRequest added in v0.4.0

type AudienceContactsRemoveRequest struct {
	// ContactIds Contacts to remove from the audience. Removing a contact that is not a member has no effect. Duplicate IDs in the list are collapsed. If any ID does not exist in the workspace, the whole request fails with a validation error and no memberships are removed.
	ContactIds []ContactID `json:"contact_ids"`
}

AudienceContactsRemoveRequest defines model for AudienceContactsRemoveRequest.

type AudienceCreateRequest added in v0.4.0

type AudienceCreateRequest struct {
	// Description Longer description of who this audience is.
	Description *string `json:"description,omitempty"`

	// Name Display name for the audience.
	Name string `json:"name"`

	// Type How the audience's recipients are determined. `static` is an explicit member list you manage by adding and removing contacts.
	Type *AudienceCreateRequestType `json:"type,omitempty"`
}

AudienceCreateRequest defines model for AudienceCreateRequest.

type AudienceCreateRequestType added in v0.4.0

type AudienceCreateRequestType string

AudienceCreateRequestType How the audience's recipients are determined. `static` is an explicit member list you manage by adding and removing contacts.

const (
	AudienceCreateRequestTypeAudienceTypeStatic AudienceCreateRequestType = "static"
)

Defines values for AudienceCreateRequestType.

func (AudienceCreateRequestType) Valid added in v0.4.0

func (e AudienceCreateRequestType) Valid() bool

Valid indicates whether the value is a known member of the AudienceCreateRequestType enum.

type AudienceID added in v0.4.0

type AudienceID = string

AudienceID defines model for AudienceID.

type AudienceList added in v0.4.0

type AudienceList struct {
	// Data Page of audience objects.
	Data []Audience `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

AudienceList defines model for AudienceList.

type AudienceMember added in v0.4.0

type AudienceMember struct {
	// Audiences The audiences this contact belongs to, including the one being listed, most-recently-joined first.
	Audiences *[]AudienceRef `json:"audiences,omitempty"`
	Contact   Contact        `json:"contact"`

	// JoinedAt When this contact joined the audience. Members are listed in join order, most recent first.
	JoinedAt *time.Time `json:"joined_at,omitempty"`
}

AudienceMember defines model for AudienceMember.

type AudienceMemberList added in v0.4.0

type AudienceMemberList struct {
	// Data Page of audience members, each a contact paired with the time it joined the audience.
	Data []AudienceMember `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

AudienceMemberList defines model for AudienceMemberList.

type AudienceRef added in v0.7.4

type AudienceRef struct {
	Id AudienceID `json:"id"`

	// Name The audience's display name.
	Name string `json:"name"`
}

AudienceRef A compact reference to an audience, carrying its ID and display name.

type AudienceType added in v0.4.0

type AudienceType string

AudienceType How the audience's recipients are determined. `static` is an explicit member list you manage by adding and removing contacts.

const (
	AudienceTypeAudienceTypeStatic AudienceType = "static"
)

Defines values for AudienceType.

func (AudienceType) Valid added in v0.4.0

func (e AudienceType) Valid() bool

Valid indicates whether the value is a known member of the AudienceType enum.

type AudienceUpdateRequest added in v0.4.0

type AudienceUpdateRequest struct {
	// Description Longer description of who this audience is. Set to null to clear.
	Description nullable.Nullable[string] `json:"description,omitempty"`

	// Name New display name for the audience. Omit to keep the current name. The name cannot be cleared, and a whitespace-only value returns a validation error.
	Name *string `json:"name,omitempty"`
}

AudienceUpdateRequest defines model for AudienceUpdateRequest.

type AvailableNumber added in v0.34.0

type AvailableNumber struct {
	// Capabilities Capabilities supported by this number.
	Capabilities []NumberCapability `json:"capabilities"`

	// CountryCode ISO 3166-1 alpha-2 country code.
	CountryCode CountryCode `json:"country_code"`

	// Number Phone number in E.164 format.
	Number string `json:"number"`

	// NumberType Physical type of this phone number.
	NumberType NumberType `json:"number_type"`
}

AvailableNumber defines model for AvailableNumber.

type AvailableNumberList added in v0.34.0

type AvailableNumberList struct {
	Data []AvailableNumber `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

AvailableNumberList defines model for AvailableNumberList.

type BadRequest

type BadRequest = Error

BadRequest defines model for BadRequest.

type CancelEmailMessageParams added in v0.4.1

type CancelEmailMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CancelEmailMessageParams defines parameters for CancelEmailMessage.

type CancelEmailMessageResponse added in v0.4.1

type CancelEmailMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCancelEmailMessageResponse added in v0.4.1

func ParseCancelEmailMessageResponse(rsp *http.Response) (*CancelEmailMessageResponse, error)

ParseCancelEmailMessageResponse parses an HTTP response from a CancelEmailMessageWithResponse call

func (CancelEmailMessageResponse) ContentType added in v0.4.1

func (r CancelEmailMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CancelEmailMessageResponse) Status added in v0.4.1

Status returns HTTPResponse.Status

func (CancelEmailMessageResponse) StatusCode added in v0.4.1

func (r CancelEmailMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) ArchiveContactProperty added in v0.4.0

func (c *Client) ArchiveContactProperty(ctx context.Context, propertyId ContactPropertyID, params *ArchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) AssignAudienceContacts added in v0.4.0

func (c *Client) AssignAudienceContacts(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, body AssignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) AssignAudienceContactsWithBody added in v0.4.0

func (c *Client) AssignAudienceContactsWithBody(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CancelEmailMessage added in v0.4.1

func (c *Client) CancelEmailMessage(ctx context.Context, messageId EmailID, params *CancelEmailMessageParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateAudience added in v0.4.0

func (c *Client) CreateAudience(ctx context.Context, params *CreateAudienceParams, body CreateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateAudienceWithBody added in v0.4.0

func (c *Client) CreateAudienceWithBody(ctx context.Context, params *CreateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContact added in v0.4.0

func (c *Client) CreateContact(ctx context.Context, params *CreateContactParams, body CreateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContactBatch added in v0.4.0

func (c *Client) CreateContactBatch(ctx context.Context, params *CreateContactBatchParams, body CreateContactBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContactBatchWithBody added in v0.4.0

func (c *Client) CreateContactBatchWithBody(ctx context.Context, params *CreateContactBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContactProperty added in v0.4.0

func (c *Client) CreateContactProperty(ctx context.Context, params *CreateContactPropertyParams, body CreateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContactPropertyWithBody added in v0.4.0

func (c *Client) CreateContactPropertyWithBody(ctx context.Context, params *CreateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateContactWithBody added in v0.4.0

func (c *Client) CreateContactWithBody(ctx context.Context, params *CreateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateDomain added in v0.8.0

func (c *Client) CreateDomain(ctx context.Context, params *CreateDomainParams, body CreateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateDomainWithBody added in v0.8.0

func (c *Client) CreateDomainWithBody(ctx context.Context, params *CreateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailLookup added in v0.31.0

func (c *Client) CreateEmailLookup(ctx context.Context, params *CreateEmailLookupParams, body CreateEmailLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailLookupWithBody added in v0.31.0

func (c *Client) CreateEmailLookupWithBody(ctx context.Context, params *CreateEmailLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailMessage

func (c *Client) CreateEmailMessage(ctx context.Context, params *CreateEmailMessageParams, body CreateEmailMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailMessageBatch added in v0.2.0

func (c *Client) CreateEmailMessageBatch(ctx context.Context, params *CreateEmailMessageBatchParams, body CreateEmailMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailMessageBatchWithBody added in v0.2.0

func (c *Client) CreateEmailMessageBatchWithBody(ctx context.Context, params *CreateEmailMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateEmailMessageWithBody

func (c *Client) CreateEmailMessageWithBody(ctx context.Context, params *CreateEmailMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailbox added in v0.12.0

func (c *Client) CreateMailbox(ctx context.Context, params *CreateMailboxParams, body CreateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailboxMessage added in v0.12.0

func (c *Client) CreateMailboxMessage(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, body CreateMailboxMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailboxMessageWithBody added in v0.12.0

func (c *Client) CreateMailboxMessageWithBody(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailboxReceiveRule added in v0.12.0

func (c *Client) CreateMailboxReceiveRule(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, body CreateMailboxReceiveRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailboxReceiveRuleWithBody added in v0.12.0

func (c *Client) CreateMailboxReceiveRuleWithBody(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateMailboxWithBody added in v0.12.0

func (c *Client) CreateMailboxWithBody(ctx context.Context, params *CreateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateNumbersOrder added in v0.34.0

func (c *Client) CreateNumbersOrder(ctx context.Context, params *CreateNumbersOrderParams, body CreateNumbersOrderJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateNumbersOrderWithBody added in v0.34.0

func (c *Client) CreateNumbersOrderWithBody(ctx context.Context, params *CreateNumbersOrderParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreatePhoneNumberLookup added in v0.31.0

func (c *Client) CreatePhoneNumberLookup(ctx context.Context, params *CreatePhoneNumberLookupParams, body CreatePhoneNumberLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreatePhoneNumberLookupWithBody added in v0.31.0

func (c *Client) CreatePhoneNumberLookupWithBody(ctx context.Context, params *CreatePhoneNumberLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreatePreference added in v0.41.0

func (c *Client) CreatePreference(ctx context.Context, params *CreatePreferenceParams, body CreatePreferenceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreatePreferenceWithBody added in v0.41.0

func (c *Client) CreatePreferenceWithBody(ctx context.Context, params *CreatePreferenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSKeywordRule added in v0.33.0

func (c *Client) CreateSMSKeywordRule(ctx context.Context, params *CreateSMSKeywordRuleParams, body CreateSMSKeywordRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSKeywordRuleWithBody added in v0.33.0

func (c *Client) CreateSMSKeywordRuleWithBody(ctx context.Context, params *CreateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSMessage added in v0.3.0

func (c *Client) CreateSMSMessage(ctx context.Context, params *CreateSMSMessageParams, body CreateSMSMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSMessageBatch added in v0.3.0

func (c *Client) CreateSMSMessageBatch(ctx context.Context, params *CreateSMSMessageBatchParams, body CreateSMSMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSMessageBatchWithBody added in v0.3.0

func (c *Client) CreateSMSMessageBatchWithBody(ctx context.Context, params *CreateSMSMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSMessageWithBody added in v0.3.0

func (c *Client) CreateSMSMessageWithBody(ctx context.Context, params *CreateSMSMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSSuppression added in v0.33.0

func (c *Client) CreateSMSSuppression(ctx context.Context, params *CreateSMSSuppressionParams, body CreateSMSSuppressionJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateSMSSuppressionWithBody added in v0.33.0

func (c *Client) CreateSMSSuppressionWithBody(ctx context.Context, params *CreateSMSSuppressionParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerification added in v0.7.0

func (c *Client) CreateVerification(ctx context.Context, params *CreateVerificationParams, body CreateVerificationJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerificationCheck added in v0.7.0

func (c *Client) CreateVerificationCheck(ctx context.Context, params *CreateVerificationCheckParams, body CreateVerificationCheckJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerificationCheckWithBody added in v0.7.0

func (c *Client) CreateVerificationCheckWithBody(ctx context.Context, params *CreateVerificationCheckParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerificationNextChannel added in v0.27.0

func (c *Client) CreateVerificationNextChannel(ctx context.Context, params *CreateVerificationNextChannelParams, body CreateVerificationNextChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerificationNextChannelWithBody added in v0.27.0

func (c *Client) CreateVerificationNextChannelWithBody(ctx context.Context, params *CreateVerificationNextChannelParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateVerificationWithBody added in v0.7.0

func (c *Client) CreateVerificationWithBody(ctx context.Context, params *CreateVerificationParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateWhatsAppMessage added in v0.23.0

func (c *Client) CreateWhatsAppMessage(ctx context.Context, params *CreateWhatsAppMessageParams, body CreateWhatsAppMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) CreateWhatsAppMessageWithBody added in v0.23.0

func (c *Client) CreateWhatsAppMessageWithBody(ctx context.Context, params *CreateWhatsAppMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteAudience added in v0.4.0

func (c *Client) DeleteAudience(ctx context.Context, audienceId AudienceID, params *DeleteAudienceParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteContact added in v0.4.0

func (c *Client) DeleteContact(ctx context.Context, contactId ContactID, params *DeleteContactParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteDomain added in v0.8.0

func (c *Client) DeleteDomain(ctx context.Context, domainId DomainID, params *DeleteDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteEmailThread added in v0.12.0

func (c *Client) DeleteEmailThread(ctx context.Context, threadId ThreadID, params *DeleteEmailThreadParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteMailbox added in v0.12.0

func (c *Client) DeleteMailbox(ctx context.Context, mailboxId MailboxID, params *DeleteMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteMailboxReceiveRule added in v0.12.0

func (c *Client) DeleteMailboxReceiveRule(ctx context.Context, mailboxId MailboxID, ruleId ReceiveRuleID, params *DeleteMailboxReceiveRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeletePreference added in v0.41.0

func (c *Client) DeletePreference(ctx context.Context, preferenceId PreferenceID, params *DeletePreferenceParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteSMSKeywordRule added in v0.33.0

func (c *Client) DeleteSMSKeywordRule(ctx context.Context, id SMSKeywordRuleID, params *DeleteSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteSMSSuppression added in v0.33.0

func (c *Client) DeleteSMSSuppression(ctx context.Context, suppressionId SMSSuppressionID, params *DeleteSMSSuppressionParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DisconnectRealtimeAppMember added in v0.15.0

func (c *Client) DisconnectRealtimeAppMember(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *DisconnectRealtimeAppMemberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetAudience added in v0.4.0

func (c *Client) GetAudience(ctx context.Context, audienceId AudienceID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetAvailableNumber added in v0.34.0

func (c *Client) GetAvailableNumber(ctx context.Context, number string, params *GetAvailableNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetContact added in v0.4.0

func (c *Client) GetContact(ctx context.Context, contactId ContactID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetContactProperty added in v0.4.0

func (c *Client) GetContactProperty(ctx context.Context, propertyId ContactPropertyID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetDomain added in v0.8.0

func (c *Client) GetDomain(ctx context.Context, domainId DomainID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailMessage

func (c *Client) GetEmailMessage(ctx context.Context, messageId EmailID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByBounceCode added in v0.10.0

func (c *Client) GetEmailStatsByBounceCode(ctx context.Context, params *GetEmailStatsByBounceCodeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByBroadcast added in v0.10.0

func (c *Client) GetEmailStatsByBroadcast(ctx context.Context, params *GetEmailStatsByBroadcastParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByCategory added in v0.10.0

func (c *Client) GetEmailStatsByCategory(ctx context.Context, params *GetEmailStatsByCategoryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByClient added in v0.10.0

func (c *Client) GetEmailStatsByClient(ctx context.Context, params *GetEmailStatsByClientParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByComplaintType added in v0.10.0

func (c *Client) GetEmailStatsByComplaintType(ctx context.Context, params *GetEmailStatsByComplaintTypeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByLocation added in v0.10.0

func (c *Client) GetEmailStatsByLocation(ctx context.Context, params *GetEmailStatsByLocationParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByMailboxProvider added in v0.10.0

func (c *Client) GetEmailStatsByMailboxProvider(ctx context.Context, params *GetEmailStatsByMailboxProviderParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByMailboxProviderRegion added in v0.10.0

func (c *Client) GetEmailStatsByMailboxProviderRegion(ctx context.Context, params *GetEmailStatsByMailboxProviderRegionParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByRecipientDomain added in v0.10.0

func (c *Client) GetEmailStatsByRecipientDomain(ctx context.Context, params *GetEmailStatsByRecipientDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsBySendingDomain added in v0.10.0

func (c *Client) GetEmailStatsBySendingDomain(ctx context.Context, params *GetEmailStatsBySendingDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsBySendingIp added in v0.10.0

func (c *Client) GetEmailStatsBySendingIp(ctx context.Context, params *GetEmailStatsBySendingIpParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByTag added in v0.10.0

func (c *Client) GetEmailStatsByTag(ctx context.Context, params *GetEmailStatsByTagParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsByTemplate added in v0.10.0

func (c *Client) GetEmailStatsByTemplate(ctx context.Context, params *GetEmailStatsByTemplateParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsDaily added in v0.10.0

func (c *Client) GetEmailStatsDaily(ctx context.Context, params *GetEmailStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsHourly added in v0.10.0

func (c *Client) GetEmailStatsHourly(ctx context.Context, params *GetEmailStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailStatsSummary added in v0.10.0

func (c *Client) GetEmailStatsSummary(ctx context.Context, params *GetEmailStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailThread added in v0.12.0

func (c *Client) GetEmailThread(ctx context.Context, threadId ThreadID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailThreadMessage added in v0.12.0

func (c *Client) GetEmailThreadMessage(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetEmailThreadMessageBody added in v0.12.0

func (c *Client) GetEmailThreadMessageBody(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetMailbox added in v0.12.0

func (c *Client) GetMailbox(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetMailboxStats added in v0.12.0

func (c *Client) GetMailboxStats(ctx context.Context, mailboxId MailboxID, params *GetMailboxStatsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetNumbersOrder added in v0.34.0

func (c *Client) GetNumbersOrder(ctx context.Context, orderId NumbersOrderID, params *GetNumbersOrderParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetPreference added in v0.41.0

func (c *Client) GetPreference(ctx context.Context, preferenceId PreferenceID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetRealtimeAppChannel added in v0.15.0

func (c *Client) GetRealtimeAppChannel(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *GetRealtimeAppChannelParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsByCountry added in v0.33.0

func (c *Client) GetSMSInboundStatsByCountry(ctx context.Context, params *GetSMSInboundStatsByCountryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsByNumber added in v0.33.0

func (c *Client) GetSMSInboundStatsByNumber(ctx context.Context, params *GetSMSInboundStatsByNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsByOperator added in v0.33.0

func (c *Client) GetSMSInboundStatsByOperator(ctx context.Context, params *GetSMSInboundStatsByOperatorParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsDaily added in v0.33.0

func (c *Client) GetSMSInboundStatsDaily(ctx context.Context, params *GetSMSInboundStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsHourly added in v0.33.0

func (c *Client) GetSMSInboundStatsHourly(ctx context.Context, params *GetSMSInboundStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSInboundStatsSummary added in v0.33.0

func (c *Client) GetSMSInboundStatsSummary(ctx context.Context, params *GetSMSInboundStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSKeywordRule added in v0.33.0

func (c *Client) GetSMSKeywordRule(ctx context.Context, id SMSKeywordRuleID, params *GetSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSMessage added in v0.3.0

func (c *Client) GetSMSMessage(ctx context.Context, messageId SMSMessageID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByCarrier added in v0.33.0

func (c *Client) GetSMSStatsByCarrier(ctx context.Context, params *GetSMSStatsByCarrierParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByCategory added in v0.33.0

func (c *Client) GetSMSStatsByCategory(ctx context.Context, params *GetSMSStatsByCategoryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByCountry added in v0.33.0

func (c *Client) GetSMSStatsByCountry(ctx context.Context, params *GetSMSStatsByCountryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByErrorCode added in v0.33.0

func (c *Client) GetSMSStatsByErrorCode(ctx context.Context, params *GetSMSStatsByErrorCodeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByOriginator added in v0.33.0

func (c *Client) GetSMSStatsByOriginator(ctx context.Context, params *GetSMSStatsByOriginatorParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByStatus added in v0.33.0

func (c *Client) GetSMSStatsByStatus(ctx context.Context, params *GetSMSStatsByStatusParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsByTag added in v0.33.0

func (c *Client) GetSMSStatsByTag(ctx context.Context, params *GetSMSStatsByTagParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsDaily added in v0.33.0

func (c *Client) GetSMSStatsDaily(ctx context.Context, params *GetSMSStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsHourly added in v0.33.0

func (c *Client) GetSMSStatsHourly(ctx context.Context, params *GetSMSStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSStatsSummary added in v0.33.0

func (c *Client) GetSMSStatsSummary(ctx context.Context, params *GetSMSStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSSuppression added in v0.33.0

func (c *Client) GetSMSSuppression(ctx context.Context, suppressionId SMSSuppressionID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetSMSTemplate added in v0.3.0

func (c *Client) GetSMSTemplate(ctx context.Context, templateRef string, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetVoiceCall added in v0.27.0

func (c *Client) GetVoiceCall(ctx context.Context, callId VoiceCallID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetWhatsAppMessage added in v0.6.0

func (c *Client) GetWhatsAppMessage(ctx context.Context, messageId WhatsAppMessageID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetWorkspaceNumber added in v0.34.0

func (c *Client) GetWorkspaceNumber(ctx context.Context, numberId AllocatedNumberID, params *GetWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListAudienceContacts added in v0.4.0

func (c *Client) ListAudienceContacts(ctx context.Context, audienceId AudienceID, params *ListAudienceContactsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListAudiences added in v0.4.0

func (c *Client) ListAudiences(ctx context.Context, params *ListAudiencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListAvailableNumbers added in v0.34.0

func (c *Client) ListAvailableNumbers(ctx context.Context, params *ListAvailableNumbersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListContactPreferences added in v0.41.0

func (c *Client) ListContactPreferences(ctx context.Context, contactId ContactID, params *ListContactPreferencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListContactProperties added in v0.4.0

func (c *Client) ListContactProperties(ctx context.Context, params *ListContactPropertiesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListContacts added in v0.4.0

func (c *Client) ListContacts(ctx context.Context, params *ListContactsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListDomains added in v0.8.0

func (c *Client) ListDomains(ctx context.Context, params *ListDomainsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListEmailMessages

func (c *Client) ListEmailMessages(ctx context.Context, params *ListEmailMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListEmailThreadMessageAttachments added in v0.12.0

func (c *Client) ListEmailThreadMessageAttachments(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListEmailThreadMessages added in v0.12.0

func (c *Client) ListEmailThreadMessages(ctx context.Context, threadId ThreadID, params *ListEmailThreadMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListEmailThreads added in v0.12.0

func (c *Client) ListEmailThreads(ctx context.Context, params *ListEmailThreadsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListMailboxLabels added in v0.12.0

func (c *Client) ListMailboxLabels(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListMailboxReceiveRules added in v0.12.0

func (c *Client) ListMailboxReceiveRules(ctx context.Context, mailboxId MailboxID, params *ListMailboxReceiveRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListMailboxes added in v0.12.0

func (c *Client) ListMailboxes(ctx context.Context, params *ListMailboxesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListNumbersOrders added in v0.34.0

func (c *Client) ListNumbersOrders(ctx context.Context, params *ListNumbersOrdersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListPreferences added in v0.41.0

func (c *Client) ListPreferences(ctx context.Context, params *ListPreferencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListRealtimeAppChannelMembers added in v0.15.0

func (c *Client) ListRealtimeAppChannelMembers(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *ListRealtimeAppChannelMembersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListRealtimeAppChannels added in v0.15.0

func (c *Client) ListRealtimeAppChannels(ctx context.Context, realtimeAppId RealtimeAppID, params *ListRealtimeAppChannelsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListSMSKeywordRules added in v0.33.0

func (c *Client) ListSMSKeywordRules(ctx context.Context, params *ListSMSKeywordRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListSMSMessageEvents added in v0.33.0

func (c *Client) ListSMSMessageEvents(ctx context.Context, messageId SMSMessageID, params *ListSMSMessageEventsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListSMSMessages added in v0.3.0

func (c *Client) ListSMSMessages(ctx context.Context, params *ListSMSMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListSMSSuppressions added in v0.33.0

func (c *Client) ListSMSSuppressions(ctx context.Context, params *ListSMSSuppressionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListSMSTemplates added in v0.3.0

func (c *Client) ListSMSTemplates(ctx context.Context, params *ListSMSTemplatesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListVoiceCalls added in v0.27.0

func (c *Client) ListVoiceCalls(ctx context.Context, params *ListVoiceCallsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListWhatsAppMessageEvents added in v0.6.0

func (c *Client) ListWhatsAppMessageEvents(ctx context.Context, messageId WhatsAppMessageID, params *ListWhatsAppMessageEventsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListWhatsAppMessages added in v0.6.0

func (c *Client) ListWhatsAppMessages(ctx context.Context, params *ListWhatsAppMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListWorkspaceNumbers added in v0.34.0

func (c *Client) ListWorkspaceNumbers(ctx context.Context, params *ListWorkspaceNumbersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PublishRealtimeAppBatch added in v0.15.0

func (c *Client) PublishRealtimeAppBatch(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, body PublishRealtimeAppBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PublishRealtimeAppBatchWithBody added in v0.15.0

func (c *Client) PublishRealtimeAppBatchWithBody(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PublishRealtimeAppEvent added in v0.15.0

func (c *Client) PublishRealtimeAppEvent(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, body PublishRealtimeAppEventJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PublishRealtimeAppEventWithBody added in v0.15.0

func (c *Client) PublishRealtimeAppEventWithBody(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ReleaseWorkspaceNumber added in v0.34.0

func (c *Client) ReleaseWorkspaceNumber(ctx context.Context, numberId AllocatedNumberID, params *ReleaseWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ReplyEmailThreadMessage added in v0.12.0

func (c *Client) ReplyEmailThreadMessage(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, body ReplyEmailThreadMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ReplyEmailThreadMessageWithBody added in v0.12.0

func (c *Client) ReplyEmailThreadMessageWithBody(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) RestoreMailbox added in v0.12.0

func (c *Client) RestoreMailbox(ctx context.Context, mailboxId MailboxID, params *RestoreMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ResumeMailbox added in v0.12.0

func (c *Client) ResumeMailbox(ctx context.Context, mailboxId MailboxID, params *ResumeMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SendRealtimeAppMemberEvent added in v0.21.0

func (c *Client) SendRealtimeAppMemberEvent(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, body SendRealtimeAppMemberEventJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SendRealtimeAppMemberEventWithBody added in v0.21.0

func (c *Client) SendRealtimeAppMemberEventWithBody(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UnarchiveContactProperty added in v0.4.0

func (c *Client) UnarchiveContactProperty(ctx context.Context, propertyId ContactPropertyID, params *UnarchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UnassignAudienceContact added in v0.4.0

func (c *Client) UnassignAudienceContact(ctx context.Context, audienceId AudienceID, contactId ContactID, params *UnassignAudienceContactParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UnassignAudienceContacts added in v0.4.0

func (c *Client) UnassignAudienceContacts(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, body UnassignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UnassignAudienceContactsWithBody added in v0.4.0

func (c *Client) UnassignAudienceContactsWithBody(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateAudience added in v0.4.0

func (c *Client) UpdateAudience(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, body UpdateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateAudienceWithBody added in v0.4.0

func (c *Client) UpdateAudienceWithBody(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateContact added in v0.4.0

func (c *Client) UpdateContact(ctx context.Context, contactId ContactID, params *UpdateContactParams, body UpdateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateContactProperty added in v0.4.0

func (c *Client) UpdateContactProperty(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, body UpdateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateContactPropertyWithBody added in v0.4.0

func (c *Client) UpdateContactPropertyWithBody(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateContactWithBody added in v0.4.0

func (c *Client) UpdateContactWithBody(ctx context.Context, contactId ContactID, params *UpdateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateDomain added in v0.8.0

func (c *Client) UpdateDomain(ctx context.Context, domainId DomainID, params *UpdateDomainParams, body UpdateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateDomainWithBody added in v0.8.0

func (c *Client) UpdateDomainWithBody(ctx context.Context, domainId DomainID, params *UpdateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateEmailThread added in v0.12.0

func (c *Client) UpdateEmailThread(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, body UpdateEmailThreadJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateEmailThreadWithBody added in v0.12.0

func (c *Client) UpdateEmailThreadWithBody(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateMailbox added in v0.12.0

func (c *Client) UpdateMailbox(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, body UpdateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateMailboxWithBody added in v0.12.0

func (c *Client) UpdateMailboxWithBody(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateSMSKeywordRule added in v0.33.0

func (*Client) UpdateSMSKeywordRuleWithBody added in v0.33.0

func (c *Client) UpdateSMSKeywordRuleWithBody(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) VerifyDomain added in v0.8.0

func (c *Client) VerifyDomain(ctx context.Context, domainId DomainID, params *VerifyDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

type ClientInterface

type ClientInterface interface {
	// ListAudiences request
	ListAudiences(ctx context.Context, params *ListAudiencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateAudienceWithBody request with any body
	CreateAudienceWithBody(ctx context.Context, params *CreateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateAudience(ctx context.Context, params *CreateAudienceParams, body CreateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteAudience request
	DeleteAudience(ctx context.Context, audienceId AudienceID, params *DeleteAudienceParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetAudience request
	GetAudience(ctx context.Context, audienceId AudienceID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateAudienceWithBody request with any body
	UpdateAudienceWithBody(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateAudience(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, body UpdateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListAudienceContacts request
	ListAudienceContacts(ctx context.Context, audienceId AudienceID, params *ListAudienceContactsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// AssignAudienceContactsWithBody request with any body
	AssignAudienceContactsWithBody(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	AssignAudienceContacts(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, body AssignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UnassignAudienceContactsWithBody request with any body
	UnassignAudienceContactsWithBody(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UnassignAudienceContacts(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, body UnassignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UnassignAudienceContact request
	UnassignAudienceContact(ctx context.Context, audienceId AudienceID, contactId ContactID, params *UnassignAudienceContactParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListContactProperties request
	ListContactProperties(ctx context.Context, params *ListContactPropertiesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateContactPropertyWithBody request with any body
	CreateContactPropertyWithBody(ctx context.Context, params *CreateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateContactProperty(ctx context.Context, params *CreateContactPropertyParams, body CreateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetContactProperty request
	GetContactProperty(ctx context.Context, propertyId ContactPropertyID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateContactPropertyWithBody request with any body
	UpdateContactPropertyWithBody(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateContactProperty(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, body UpdateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ArchiveContactProperty request
	ArchiveContactProperty(ctx context.Context, propertyId ContactPropertyID, params *ArchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UnarchiveContactProperty request
	UnarchiveContactProperty(ctx context.Context, propertyId ContactPropertyID, params *UnarchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListContacts request
	ListContacts(ctx context.Context, params *ListContactsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateContactWithBody request with any body
	CreateContactWithBody(ctx context.Context, params *CreateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateContact(ctx context.Context, params *CreateContactParams, body CreateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateContactBatchWithBody request with any body
	CreateContactBatchWithBody(ctx context.Context, params *CreateContactBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateContactBatch(ctx context.Context, params *CreateContactBatchParams, body CreateContactBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteContact request
	DeleteContact(ctx context.Context, contactId ContactID, params *DeleteContactParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetContact request
	GetContact(ctx context.Context, contactId ContactID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateContactWithBody request with any body
	UpdateContactWithBody(ctx context.Context, contactId ContactID, params *UpdateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateContact(ctx context.Context, contactId ContactID, params *UpdateContactParams, body UpdateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListContactPreferences request
	ListContactPreferences(ctx context.Context, contactId ContactID, params *ListContactPreferencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateEmailMessageBatchWithBody request with any body
	CreateEmailMessageBatchWithBody(ctx context.Context, params *CreateEmailMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateEmailMessageBatch(ctx context.Context, params *CreateEmailMessageBatchParams, body CreateEmailMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListDomains request
	ListDomains(ctx context.Context, params *ListDomainsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateDomainWithBody request with any body
	CreateDomainWithBody(ctx context.Context, params *CreateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateDomain(ctx context.Context, params *CreateDomainParams, body CreateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteDomain request
	DeleteDomain(ctx context.Context, domainId DomainID, params *DeleteDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetDomain request
	GetDomain(ctx context.Context, domainId DomainID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateDomainWithBody request with any body
	UpdateDomainWithBody(ctx context.Context, domainId DomainID, params *UpdateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateDomain(ctx context.Context, domainId DomainID, params *UpdateDomainParams, body UpdateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// VerifyDomain request
	VerifyDomain(ctx context.Context, domainId DomainID, params *VerifyDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListMailboxes request
	ListMailboxes(ctx context.Context, params *ListMailboxesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateMailboxWithBody request with any body
	CreateMailboxWithBody(ctx context.Context, params *CreateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateMailbox(ctx context.Context, params *CreateMailboxParams, body CreateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteMailbox request
	DeleteMailbox(ctx context.Context, mailboxId MailboxID, params *DeleteMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetMailbox request
	GetMailbox(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateMailboxWithBody request with any body
	UpdateMailboxWithBody(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateMailbox(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, body UpdateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListMailboxLabels request
	ListMailboxLabels(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateMailboxMessageWithBody request with any body
	CreateMailboxMessageWithBody(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateMailboxMessage(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, body CreateMailboxMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListMailboxReceiveRules request
	ListMailboxReceiveRules(ctx context.Context, mailboxId MailboxID, params *ListMailboxReceiveRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateMailboxReceiveRuleWithBody request with any body
	CreateMailboxReceiveRuleWithBody(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateMailboxReceiveRule(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, body CreateMailboxReceiveRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteMailboxReceiveRule request
	DeleteMailboxReceiveRule(ctx context.Context, mailboxId MailboxID, ruleId ReceiveRuleID, params *DeleteMailboxReceiveRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// RestoreMailbox request
	RestoreMailbox(ctx context.Context, mailboxId MailboxID, params *RestoreMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ResumeMailbox request
	ResumeMailbox(ctx context.Context, mailboxId MailboxID, params *ResumeMailboxParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetMailboxStats request
	GetMailboxStats(ctx context.Context, mailboxId MailboxID, params *GetMailboxStatsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListEmailMessages request
	ListEmailMessages(ctx context.Context, params *ListEmailMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateEmailMessageWithBody request with any body
	CreateEmailMessageWithBody(ctx context.Context, params *CreateEmailMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateEmailMessage(ctx context.Context, params *CreateEmailMessageParams, body CreateEmailMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailMessage request
	GetEmailMessage(ctx context.Context, messageId EmailID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CancelEmailMessage request
	CancelEmailMessage(ctx context.Context, messageId EmailID, params *CancelEmailMessageParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByBounceCode request
	GetEmailStatsByBounceCode(ctx context.Context, params *GetEmailStatsByBounceCodeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByBroadcast request
	GetEmailStatsByBroadcast(ctx context.Context, params *GetEmailStatsByBroadcastParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByCategory request
	GetEmailStatsByCategory(ctx context.Context, params *GetEmailStatsByCategoryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByClient request
	GetEmailStatsByClient(ctx context.Context, params *GetEmailStatsByClientParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByComplaintType request
	GetEmailStatsByComplaintType(ctx context.Context, params *GetEmailStatsByComplaintTypeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsDaily request
	GetEmailStatsDaily(ctx context.Context, params *GetEmailStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsHourly request
	GetEmailStatsHourly(ctx context.Context, params *GetEmailStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByLocation request
	GetEmailStatsByLocation(ctx context.Context, params *GetEmailStatsByLocationParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByMailboxProviderRegion request
	GetEmailStatsByMailboxProviderRegion(ctx context.Context, params *GetEmailStatsByMailboxProviderRegionParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByMailboxProvider request
	GetEmailStatsByMailboxProvider(ctx context.Context, params *GetEmailStatsByMailboxProviderParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByRecipientDomain request
	GetEmailStatsByRecipientDomain(ctx context.Context, params *GetEmailStatsByRecipientDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsBySendingDomain request
	GetEmailStatsBySendingDomain(ctx context.Context, params *GetEmailStatsBySendingDomainParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsBySendingIp request
	GetEmailStatsBySendingIp(ctx context.Context, params *GetEmailStatsBySendingIpParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsSummary request
	GetEmailStatsSummary(ctx context.Context, params *GetEmailStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByTag request
	GetEmailStatsByTag(ctx context.Context, params *GetEmailStatsByTagParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailStatsByTemplate request
	GetEmailStatsByTemplate(ctx context.Context, params *GetEmailStatsByTemplateParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListEmailThreads request
	ListEmailThreads(ctx context.Context, params *ListEmailThreadsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteEmailThread request
	DeleteEmailThread(ctx context.Context, threadId ThreadID, params *DeleteEmailThreadParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailThread request
	GetEmailThread(ctx context.Context, threadId ThreadID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateEmailThreadWithBody request with any body
	UpdateEmailThreadWithBody(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateEmailThread(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, body UpdateEmailThreadJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListEmailThreadMessages request
	ListEmailThreadMessages(ctx context.Context, threadId ThreadID, params *ListEmailThreadMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailThreadMessage request
	GetEmailThreadMessage(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListEmailThreadMessageAttachments request
	ListEmailThreadMessageAttachments(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEmailThreadMessageBody request
	GetEmailThreadMessageBody(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ReplyEmailThreadMessageWithBody request with any body
	ReplyEmailThreadMessageWithBody(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	ReplyEmailThreadMessage(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, body ReplyEmailThreadMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateEmailLookupWithBody request with any body
	CreateEmailLookupWithBody(ctx context.Context, params *CreateEmailLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateEmailLookup(ctx context.Context, params *CreateEmailLookupParams, body CreateEmailLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreatePhoneNumberLookupWithBody request with any body
	CreatePhoneNumberLookupWithBody(ctx context.Context, params *CreatePhoneNumberLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreatePhoneNumberLookup(ctx context.Context, params *CreatePhoneNumberLookupParams, body CreatePhoneNumberLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListWorkspaceNumbers request
	ListWorkspaceNumbers(ctx context.Context, params *ListWorkspaceNumbersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListAvailableNumbers request
	ListAvailableNumbers(ctx context.Context, params *ListAvailableNumbersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetAvailableNumber request
	GetAvailableNumber(ctx context.Context, number string, params *GetAvailableNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListNumbersOrders request
	ListNumbersOrders(ctx context.Context, params *ListNumbersOrdersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateNumbersOrderWithBody request with any body
	CreateNumbersOrderWithBody(ctx context.Context, params *CreateNumbersOrderParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateNumbersOrder(ctx context.Context, params *CreateNumbersOrderParams, body CreateNumbersOrderJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetNumbersOrder request
	GetNumbersOrder(ctx context.Context, orderId NumbersOrderID, params *GetNumbersOrderParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ReleaseWorkspaceNumber request
	ReleaseWorkspaceNumber(ctx context.Context, numberId AllocatedNumberID, params *ReleaseWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetWorkspaceNumber request
	GetWorkspaceNumber(ctx context.Context, numberId AllocatedNumberID, params *GetWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListPreferences request
	ListPreferences(ctx context.Context, params *ListPreferencesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreatePreferenceWithBody request with any body
	CreatePreferenceWithBody(ctx context.Context, params *CreatePreferenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreatePreference(ctx context.Context, params *CreatePreferenceParams, body CreatePreferenceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeletePreference request
	DeletePreference(ctx context.Context, preferenceId PreferenceID, params *DeletePreferenceParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetPreference request
	GetPreference(ctx context.Context, preferenceId PreferenceID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PublishRealtimeAppBatchWithBody request with any body
	PublishRealtimeAppBatchWithBody(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	PublishRealtimeAppBatch(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, body PublishRealtimeAppBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListRealtimeAppChannels request
	ListRealtimeAppChannels(ctx context.Context, realtimeAppId RealtimeAppID, params *ListRealtimeAppChannelsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRealtimeAppChannel request
	GetRealtimeAppChannel(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *GetRealtimeAppChannelParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListRealtimeAppChannelMembers request
	ListRealtimeAppChannelMembers(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *ListRealtimeAppChannelMembersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PublishRealtimeAppEventWithBody request with any body
	PublishRealtimeAppEventWithBody(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	PublishRealtimeAppEvent(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, body PublishRealtimeAppEventJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DisconnectRealtimeAppMember request
	DisconnectRealtimeAppMember(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *DisconnectRealtimeAppMemberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SendRealtimeAppMemberEventWithBody request with any body
	SendRealtimeAppMemberEventWithBody(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	SendRealtimeAppMemberEvent(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, body SendRealtimeAppMemberEventJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateSMSMessageBatchWithBody request with any body
	CreateSMSMessageBatchWithBody(ctx context.Context, params *CreateSMSMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateSMSMessageBatch(ctx context.Context, params *CreateSMSMessageBatchParams, body CreateSMSMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListSMSKeywordRules request
	ListSMSKeywordRules(ctx context.Context, params *ListSMSKeywordRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateSMSKeywordRuleWithBody request with any body
	CreateSMSKeywordRuleWithBody(ctx context.Context, params *CreateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateSMSKeywordRule(ctx context.Context, params *CreateSMSKeywordRuleParams, body CreateSMSKeywordRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteSMSKeywordRule request
	DeleteSMSKeywordRule(ctx context.Context, id SMSKeywordRuleID, params *DeleteSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSKeywordRule request
	GetSMSKeywordRule(ctx context.Context, id SMSKeywordRuleID, params *GetSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateSMSKeywordRuleWithBody request with any body
	UpdateSMSKeywordRuleWithBody(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateSMSKeywordRule(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, body UpdateSMSKeywordRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListSMSMessages request
	ListSMSMessages(ctx context.Context, params *ListSMSMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateSMSMessageWithBody request with any body
	CreateSMSMessageWithBody(ctx context.Context, params *CreateSMSMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateSMSMessage(ctx context.Context, params *CreateSMSMessageParams, body CreateSMSMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSMessage request
	GetSMSMessage(ctx context.Context, messageId SMSMessageID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListSMSMessageEvents request
	ListSMSMessageEvents(ctx context.Context, messageId SMSMessageID, params *ListSMSMessageEventsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByCarrier request
	GetSMSStatsByCarrier(ctx context.Context, params *GetSMSStatsByCarrierParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByCategory request
	GetSMSStatsByCategory(ctx context.Context, params *GetSMSStatsByCategoryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByCountry request
	GetSMSStatsByCountry(ctx context.Context, params *GetSMSStatsByCountryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsDaily request
	GetSMSStatsDaily(ctx context.Context, params *GetSMSStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByErrorCode request
	GetSMSStatsByErrorCode(ctx context.Context, params *GetSMSStatsByErrorCodeParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsHourly request
	GetSMSStatsHourly(ctx context.Context, params *GetSMSStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsByCountry request
	GetSMSInboundStatsByCountry(ctx context.Context, params *GetSMSInboundStatsByCountryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsDaily request
	GetSMSInboundStatsDaily(ctx context.Context, params *GetSMSInboundStatsDailyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsHourly request
	GetSMSInboundStatsHourly(ctx context.Context, params *GetSMSInboundStatsHourlyParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsByNumber request
	GetSMSInboundStatsByNumber(ctx context.Context, params *GetSMSInboundStatsByNumberParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsByOperator request
	GetSMSInboundStatsByOperator(ctx context.Context, params *GetSMSInboundStatsByOperatorParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSInboundStatsSummary request
	GetSMSInboundStatsSummary(ctx context.Context, params *GetSMSInboundStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByOriginator request
	GetSMSStatsByOriginator(ctx context.Context, params *GetSMSStatsByOriginatorParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByStatus request
	GetSMSStatsByStatus(ctx context.Context, params *GetSMSStatsByStatusParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsSummary request
	GetSMSStatsSummary(ctx context.Context, params *GetSMSStatsSummaryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSStatsByTag request
	GetSMSStatsByTag(ctx context.Context, params *GetSMSStatsByTagParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListSMSSuppressions request
	ListSMSSuppressions(ctx context.Context, params *ListSMSSuppressionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateSMSSuppressionWithBody request with any body
	CreateSMSSuppressionWithBody(ctx context.Context, params *CreateSMSSuppressionParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateSMSSuppression(ctx context.Context, params *CreateSMSSuppressionParams, body CreateSMSSuppressionJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteSMSSuppression request
	DeleteSMSSuppression(ctx context.Context, suppressionId SMSSuppressionID, params *DeleteSMSSuppressionParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSSuppression request
	GetSMSSuppression(ctx context.Context, suppressionId SMSSuppressionID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListSMSTemplates request
	ListSMSTemplates(ctx context.Context, params *ListSMSTemplatesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetSMSTemplate request
	GetSMSTemplate(ctx context.Context, templateRef string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateVerificationWithBody request with any body
	CreateVerificationWithBody(ctx context.Context, params *CreateVerificationParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateVerification(ctx context.Context, params *CreateVerificationParams, body CreateVerificationJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateVerificationCheckWithBody request with any body
	CreateVerificationCheckWithBody(ctx context.Context, params *CreateVerificationCheckParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateVerificationCheck(ctx context.Context, params *CreateVerificationCheckParams, body CreateVerificationCheckJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateVerificationNextChannelWithBody request with any body
	CreateVerificationNextChannelWithBody(ctx context.Context, params *CreateVerificationNextChannelParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateVerificationNextChannel(ctx context.Context, params *CreateVerificationNextChannelParams, body CreateVerificationNextChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListVoiceCalls request
	ListVoiceCalls(ctx context.Context, params *ListVoiceCallsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetVoiceCall request
	GetVoiceCall(ctx context.Context, callId VoiceCallID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListWhatsAppMessages request
	ListWhatsAppMessages(ctx context.Context, params *ListWhatsAppMessagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateWhatsAppMessageWithBody request with any body
	CreateWhatsAppMessageWithBody(ctx context.Context, params *CreateWhatsAppMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateWhatsAppMessage(ctx context.Context, params *CreateWhatsAppMessageParams, body CreateWhatsAppMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetWhatsAppMessage request
	GetWhatsAppMessage(ctx context.Context, messageId WhatsAppMessageID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListWhatsAppMessageEvents request
	ListWhatsAppMessageEvents(ctx context.Context, messageId WhatsAppMessageID, params *ListWhatsAppMessageEventsParams, reqEditors ...RequestEditorFn) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) ArchiveContactPropertyWithResponse added in v0.4.0

func (c *ClientWithResponses) ArchiveContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *ArchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*ArchiveContactPropertyResponse, error)

ArchiveContactPropertyWithResponse request returning *ArchiveContactPropertyResponse

func (*ClientWithResponses) AssignAudienceContactsWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) AssignAudienceContactsWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AssignAudienceContactsResponse, error)

AssignAudienceContactsWithBodyWithResponse request with arbitrary body returning *AssignAudienceContactsResponse

func (*ClientWithResponses) AssignAudienceContactsWithResponse added in v0.4.0

func (c *ClientWithResponses) AssignAudienceContactsWithResponse(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, body AssignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*AssignAudienceContactsResponse, error)

func (*ClientWithResponses) CancelEmailMessageWithResponse added in v0.4.1

func (c *ClientWithResponses) CancelEmailMessageWithResponse(ctx context.Context, messageId EmailID, params *CancelEmailMessageParams, reqEditors ...RequestEditorFn) (*CancelEmailMessageResponse, error)

CancelEmailMessageWithResponse request returning *CancelEmailMessageResponse

func (*ClientWithResponses) CreateAudienceWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateAudienceWithBodyWithResponse(ctx context.Context, params *CreateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateAudienceResponse, error)

CreateAudienceWithBodyWithResponse request with arbitrary body returning *CreateAudienceResponse

func (*ClientWithResponses) CreateAudienceWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateAudienceWithResponse(ctx context.Context, params *CreateAudienceParams, body CreateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateAudienceResponse, error)

func (*ClientWithResponses) CreateContactBatchWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateContactBatchWithBodyWithResponse(ctx context.Context, params *CreateContactBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactBatchResponse, error)

CreateContactBatchWithBodyWithResponse request with arbitrary body returning *CreateContactBatchResponse

func (*ClientWithResponses) CreateContactBatchWithResponse added in v0.4.0

func (*ClientWithResponses) CreateContactPropertyWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateContactPropertyWithBodyWithResponse(ctx context.Context, params *CreateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactPropertyResponse, error)

CreateContactPropertyWithBodyWithResponse request with arbitrary body returning *CreateContactPropertyResponse

func (*ClientWithResponses) CreateContactPropertyWithResponse added in v0.4.0

func (*ClientWithResponses) CreateContactWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateContactWithBodyWithResponse(ctx context.Context, params *CreateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactResponse, error)

CreateContactWithBodyWithResponse request with arbitrary body returning *CreateContactResponse

func (*ClientWithResponses) CreateContactWithResponse added in v0.4.0

func (c *ClientWithResponses) CreateContactWithResponse(ctx context.Context, params *CreateContactParams, body CreateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateContactResponse, error)

func (*ClientWithResponses) CreateDomainWithBodyWithResponse added in v0.8.0

func (c *ClientWithResponses) CreateDomainWithBodyWithResponse(ctx context.Context, params *CreateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateDomainResponse, error)

CreateDomainWithBodyWithResponse request with arbitrary body returning *CreateDomainResponse

func (*ClientWithResponses) CreateDomainWithResponse added in v0.8.0

func (c *ClientWithResponses) CreateDomainWithResponse(ctx context.Context, params *CreateDomainParams, body CreateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateDomainResponse, error)

func (*ClientWithResponses) CreateEmailLookupWithBodyWithResponse added in v0.31.0

func (c *ClientWithResponses) CreateEmailLookupWithBodyWithResponse(ctx context.Context, params *CreateEmailLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailLookupResponse, error)

CreateEmailLookupWithBodyWithResponse request with arbitrary body returning *CreateEmailLookupResponse

func (*ClientWithResponses) CreateEmailLookupWithResponse added in v0.31.0

func (*ClientWithResponses) CreateEmailMessageBatchWithBodyWithResponse added in v0.2.0

func (c *ClientWithResponses) CreateEmailMessageBatchWithBodyWithResponse(ctx context.Context, params *CreateEmailMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailMessageBatchResponse, error)

CreateEmailMessageBatchWithBodyWithResponse request with arbitrary body returning *CreateEmailMessageBatchResponse

func (*ClientWithResponses) CreateEmailMessageBatchWithResponse added in v0.2.0

func (*ClientWithResponses) CreateEmailMessageWithBodyWithResponse

func (c *ClientWithResponses) CreateEmailMessageWithBodyWithResponse(ctx context.Context, params *CreateEmailMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailMessageResponse, error)

CreateEmailMessageWithBodyWithResponse request with arbitrary body returning *CreateEmailMessageResponse

func (*ClientWithResponses) CreateEmailMessageWithResponse

func (*ClientWithResponses) CreateMailboxMessageWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) CreateMailboxMessageWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxMessageResponse, error)

CreateMailboxMessageWithBodyWithResponse request with arbitrary body returning *CreateMailboxMessageResponse

func (*ClientWithResponses) CreateMailboxMessageWithResponse added in v0.12.0

func (c *ClientWithResponses) CreateMailboxMessageWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, body CreateMailboxMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateMailboxMessageResponse, error)

func (*ClientWithResponses) CreateMailboxReceiveRuleWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) CreateMailboxReceiveRuleWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxReceiveRuleResponse, error)

CreateMailboxReceiveRuleWithBodyWithResponse request with arbitrary body returning *CreateMailboxReceiveRuleResponse

func (*ClientWithResponses) CreateMailboxReceiveRuleWithResponse added in v0.12.0

func (*ClientWithResponses) CreateMailboxWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) CreateMailboxWithBodyWithResponse(ctx context.Context, params *CreateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxResponse, error)

CreateMailboxWithBodyWithResponse request with arbitrary body returning *CreateMailboxResponse

func (*ClientWithResponses) CreateMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) CreateMailboxWithResponse(ctx context.Context, params *CreateMailboxParams, body CreateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateMailboxResponse, error)

func (*ClientWithResponses) CreateNumbersOrderWithBodyWithResponse added in v0.34.0

func (c *ClientWithResponses) CreateNumbersOrderWithBodyWithResponse(ctx context.Context, params *CreateNumbersOrderParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateNumbersOrderResponse, error)

CreateNumbersOrderWithBodyWithResponse request with arbitrary body returning *CreateNumbersOrderResponse

func (*ClientWithResponses) CreateNumbersOrderWithResponse added in v0.34.0

func (*ClientWithResponses) CreatePhoneNumberLookupWithBodyWithResponse added in v0.31.0

func (c *ClientWithResponses) CreatePhoneNumberLookupWithBodyWithResponse(ctx context.Context, params *CreatePhoneNumberLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreatePhoneNumberLookupResponse, error)

CreatePhoneNumberLookupWithBodyWithResponse request with arbitrary body returning *CreatePhoneNumberLookupResponse

func (*ClientWithResponses) CreatePhoneNumberLookupWithResponse added in v0.31.0

func (*ClientWithResponses) CreatePreferenceWithBodyWithResponse added in v0.41.0

func (c *ClientWithResponses) CreatePreferenceWithBodyWithResponse(ctx context.Context, params *CreatePreferenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreatePreferenceResponse, error)

CreatePreferenceWithBodyWithResponse request with arbitrary body returning *CreatePreferenceResponse

func (*ClientWithResponses) CreatePreferenceWithResponse added in v0.41.0

func (c *ClientWithResponses) CreatePreferenceWithResponse(ctx context.Context, params *CreatePreferenceParams, body CreatePreferenceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreatePreferenceResponse, error)

func (*ClientWithResponses) CreateSMSKeywordRuleWithBodyWithResponse added in v0.33.0

func (c *ClientWithResponses) CreateSMSKeywordRuleWithBodyWithResponse(ctx context.Context, params *CreateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSKeywordRuleResponse, error)

CreateSMSKeywordRuleWithBodyWithResponse request with arbitrary body returning *CreateSMSKeywordRuleResponse

func (*ClientWithResponses) CreateSMSKeywordRuleWithResponse added in v0.33.0

func (*ClientWithResponses) CreateSMSMessageBatchWithBodyWithResponse added in v0.3.0

func (c *ClientWithResponses) CreateSMSMessageBatchWithBodyWithResponse(ctx context.Context, params *CreateSMSMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSMessageBatchResponse, error)

CreateSMSMessageBatchWithBodyWithResponse request with arbitrary body returning *CreateSMSMessageBatchResponse

func (*ClientWithResponses) CreateSMSMessageBatchWithResponse added in v0.3.0

func (*ClientWithResponses) CreateSMSMessageWithBodyWithResponse added in v0.3.0

func (c *ClientWithResponses) CreateSMSMessageWithBodyWithResponse(ctx context.Context, params *CreateSMSMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSMessageResponse, error)

CreateSMSMessageWithBodyWithResponse request with arbitrary body returning *CreateSMSMessageResponse

func (*ClientWithResponses) CreateSMSMessageWithResponse added in v0.3.0

func (c *ClientWithResponses) CreateSMSMessageWithResponse(ctx context.Context, params *CreateSMSMessageParams, body CreateSMSMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateSMSMessageResponse, error)

func (*ClientWithResponses) CreateSMSSuppressionWithBodyWithResponse added in v0.33.0

func (c *ClientWithResponses) CreateSMSSuppressionWithBodyWithResponse(ctx context.Context, params *CreateSMSSuppressionParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSSuppressionResponse, error)

CreateSMSSuppressionWithBodyWithResponse request with arbitrary body returning *CreateSMSSuppressionResponse

func (*ClientWithResponses) CreateSMSSuppressionWithResponse added in v0.33.0

func (*ClientWithResponses) CreateVerificationCheckWithBodyWithResponse added in v0.7.0

func (c *ClientWithResponses) CreateVerificationCheckWithBodyWithResponse(ctx context.Context, params *CreateVerificationCheckParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationCheckResponse, error)

CreateVerificationCheckWithBodyWithResponse request with arbitrary body returning *CreateVerificationCheckResponse

func (*ClientWithResponses) CreateVerificationCheckWithResponse added in v0.7.0

func (*ClientWithResponses) CreateVerificationNextChannelWithBodyWithResponse added in v0.27.0

func (c *ClientWithResponses) CreateVerificationNextChannelWithBodyWithResponse(ctx context.Context, params *CreateVerificationNextChannelParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationNextChannelResponse, error)

CreateVerificationNextChannelWithBodyWithResponse request with arbitrary body returning *CreateVerificationNextChannelResponse

func (*ClientWithResponses) CreateVerificationNextChannelWithResponse added in v0.27.0

func (*ClientWithResponses) CreateVerificationWithBodyWithResponse added in v0.7.0

func (c *ClientWithResponses) CreateVerificationWithBodyWithResponse(ctx context.Context, params *CreateVerificationParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationResponse, error)

CreateVerificationWithBodyWithResponse request with arbitrary body returning *CreateVerificationResponse

func (*ClientWithResponses) CreateVerificationWithResponse added in v0.7.0

func (*ClientWithResponses) CreateWhatsAppMessageWithBodyWithResponse added in v0.23.0

func (c *ClientWithResponses) CreateWhatsAppMessageWithBodyWithResponse(ctx context.Context, params *CreateWhatsAppMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateWhatsAppMessageResponse, error)

CreateWhatsAppMessageWithBodyWithResponse request with arbitrary body returning *CreateWhatsAppMessageResponse

func (*ClientWithResponses) CreateWhatsAppMessageWithResponse added in v0.23.0

func (*ClientWithResponses) DeleteAudienceWithResponse added in v0.4.0

func (c *ClientWithResponses) DeleteAudienceWithResponse(ctx context.Context, audienceId AudienceID, params *DeleteAudienceParams, reqEditors ...RequestEditorFn) (*DeleteAudienceResponse, error)

DeleteAudienceWithResponse request returning *DeleteAudienceResponse

func (*ClientWithResponses) DeleteContactWithResponse added in v0.4.0

func (c *ClientWithResponses) DeleteContactWithResponse(ctx context.Context, contactId ContactID, params *DeleteContactParams, reqEditors ...RequestEditorFn) (*DeleteContactResponse, error)

DeleteContactWithResponse request returning *DeleteContactResponse

func (*ClientWithResponses) DeleteDomainWithResponse added in v0.8.0

func (c *ClientWithResponses) DeleteDomainWithResponse(ctx context.Context, domainId DomainID, params *DeleteDomainParams, reqEditors ...RequestEditorFn) (*DeleteDomainResponse, error)

DeleteDomainWithResponse request returning *DeleteDomainResponse

func (*ClientWithResponses) DeleteEmailThreadWithResponse added in v0.12.0

func (c *ClientWithResponses) DeleteEmailThreadWithResponse(ctx context.Context, threadId ThreadID, params *DeleteEmailThreadParams, reqEditors ...RequestEditorFn) (*DeleteEmailThreadResponse, error)

DeleteEmailThreadWithResponse request returning *DeleteEmailThreadResponse

func (*ClientWithResponses) DeleteMailboxReceiveRuleWithResponse added in v0.12.0

func (c *ClientWithResponses) DeleteMailboxReceiveRuleWithResponse(ctx context.Context, mailboxId MailboxID, ruleId ReceiveRuleID, params *DeleteMailboxReceiveRuleParams, reqEditors ...RequestEditorFn) (*DeleteMailboxReceiveRuleResponse, error)

DeleteMailboxReceiveRuleWithResponse request returning *DeleteMailboxReceiveRuleResponse

func (*ClientWithResponses) DeleteMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) DeleteMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *DeleteMailboxParams, reqEditors ...RequestEditorFn) (*DeleteMailboxResponse, error)

DeleteMailboxWithResponse request returning *DeleteMailboxResponse

func (*ClientWithResponses) DeletePreferenceWithResponse added in v0.41.0

func (c *ClientWithResponses) DeletePreferenceWithResponse(ctx context.Context, preferenceId PreferenceID, params *DeletePreferenceParams, reqEditors ...RequestEditorFn) (*DeletePreferenceResponse, error)

DeletePreferenceWithResponse request returning *DeletePreferenceResponse

func (*ClientWithResponses) DeleteSMSKeywordRuleWithResponse added in v0.33.0

func (c *ClientWithResponses) DeleteSMSKeywordRuleWithResponse(ctx context.Context, id SMSKeywordRuleID, params *DeleteSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*DeleteSMSKeywordRuleResponse, error)

DeleteSMSKeywordRuleWithResponse request returning *DeleteSMSKeywordRuleResponse

func (*ClientWithResponses) DeleteSMSSuppressionWithResponse added in v0.33.0

func (c *ClientWithResponses) DeleteSMSSuppressionWithResponse(ctx context.Context, suppressionId SMSSuppressionID, params *DeleteSMSSuppressionParams, reqEditors ...RequestEditorFn) (*DeleteSMSSuppressionResponse, error)

DeleteSMSSuppressionWithResponse request returning *DeleteSMSSuppressionResponse

func (*ClientWithResponses) DisconnectRealtimeAppMemberWithResponse added in v0.15.0

func (c *ClientWithResponses) DisconnectRealtimeAppMemberWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *DisconnectRealtimeAppMemberParams, reqEditors ...RequestEditorFn) (*DisconnectRealtimeAppMemberResponse, error)

DisconnectRealtimeAppMemberWithResponse request returning *DisconnectRealtimeAppMemberResponse

func (*ClientWithResponses) GetAudienceWithResponse added in v0.4.0

func (c *ClientWithResponses) GetAudienceWithResponse(ctx context.Context, audienceId AudienceID, reqEditors ...RequestEditorFn) (*GetAudienceResponse, error)

GetAudienceWithResponse request returning *GetAudienceResponse

func (*ClientWithResponses) GetAvailableNumberWithResponse added in v0.34.0

func (c *ClientWithResponses) GetAvailableNumberWithResponse(ctx context.Context, number string, params *GetAvailableNumberParams, reqEditors ...RequestEditorFn) (*GetAvailableNumberResponse, error)

GetAvailableNumberWithResponse request returning *GetAvailableNumberResponse

func (*ClientWithResponses) GetContactPropertyWithResponse added in v0.4.0

func (c *ClientWithResponses) GetContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, reqEditors ...RequestEditorFn) (*GetContactPropertyResponse, error)

GetContactPropertyWithResponse request returning *GetContactPropertyResponse

func (*ClientWithResponses) GetContactWithResponse added in v0.4.0

func (c *ClientWithResponses) GetContactWithResponse(ctx context.Context, contactId ContactID, reqEditors ...RequestEditorFn) (*GetContactResponse, error)

GetContactWithResponse request returning *GetContactResponse

func (*ClientWithResponses) GetDomainWithResponse added in v0.8.0

func (c *ClientWithResponses) GetDomainWithResponse(ctx context.Context, domainId DomainID, reqEditors ...RequestEditorFn) (*GetDomainResponse, error)

GetDomainWithResponse request returning *GetDomainResponse

func (*ClientWithResponses) GetEmailMessageWithResponse

func (c *ClientWithResponses) GetEmailMessageWithResponse(ctx context.Context, messageId EmailID, reqEditors ...RequestEditorFn) (*GetEmailMessageResponse, error)

GetEmailMessageWithResponse request returning *GetEmailMessageResponse

func (*ClientWithResponses) GetEmailStatsByBounceCodeWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByBounceCodeWithResponse(ctx context.Context, params *GetEmailStatsByBounceCodeParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByBounceCodeResponse, error)

GetEmailStatsByBounceCodeWithResponse request returning *GetEmailStatsByBounceCodeResponse

func (*ClientWithResponses) GetEmailStatsByBroadcastWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByBroadcastWithResponse(ctx context.Context, params *GetEmailStatsByBroadcastParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByBroadcastResponse, error)

GetEmailStatsByBroadcastWithResponse request returning *GetEmailStatsByBroadcastResponse

func (*ClientWithResponses) GetEmailStatsByCategoryWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByCategoryWithResponse(ctx context.Context, params *GetEmailStatsByCategoryParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByCategoryResponse, error)

GetEmailStatsByCategoryWithResponse request returning *GetEmailStatsByCategoryResponse

func (*ClientWithResponses) GetEmailStatsByClientWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByClientWithResponse(ctx context.Context, params *GetEmailStatsByClientParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByClientResponse, error)

GetEmailStatsByClientWithResponse request returning *GetEmailStatsByClientResponse

func (*ClientWithResponses) GetEmailStatsByComplaintTypeWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByComplaintTypeWithResponse(ctx context.Context, params *GetEmailStatsByComplaintTypeParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByComplaintTypeResponse, error)

GetEmailStatsByComplaintTypeWithResponse request returning *GetEmailStatsByComplaintTypeResponse

func (*ClientWithResponses) GetEmailStatsByLocationWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByLocationWithResponse(ctx context.Context, params *GetEmailStatsByLocationParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByLocationResponse, error)

GetEmailStatsByLocationWithResponse request returning *GetEmailStatsByLocationResponse

func (*ClientWithResponses) GetEmailStatsByMailboxProviderRegionWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByMailboxProviderRegionWithResponse(ctx context.Context, params *GetEmailStatsByMailboxProviderRegionParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByMailboxProviderRegionResponse, error)

GetEmailStatsByMailboxProviderRegionWithResponse request returning *GetEmailStatsByMailboxProviderRegionResponse

func (*ClientWithResponses) GetEmailStatsByMailboxProviderWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByMailboxProviderWithResponse(ctx context.Context, params *GetEmailStatsByMailboxProviderParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByMailboxProviderResponse, error)

GetEmailStatsByMailboxProviderWithResponse request returning *GetEmailStatsByMailboxProviderResponse

func (*ClientWithResponses) GetEmailStatsByRecipientDomainWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByRecipientDomainWithResponse(ctx context.Context, params *GetEmailStatsByRecipientDomainParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByRecipientDomainResponse, error)

GetEmailStatsByRecipientDomainWithResponse request returning *GetEmailStatsByRecipientDomainResponse

func (*ClientWithResponses) GetEmailStatsBySendingDomainWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsBySendingDomainWithResponse(ctx context.Context, params *GetEmailStatsBySendingDomainParams, reqEditors ...RequestEditorFn) (*GetEmailStatsBySendingDomainResponse, error)

GetEmailStatsBySendingDomainWithResponse request returning *GetEmailStatsBySendingDomainResponse

func (*ClientWithResponses) GetEmailStatsBySendingIpWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsBySendingIpWithResponse(ctx context.Context, params *GetEmailStatsBySendingIpParams, reqEditors ...RequestEditorFn) (*GetEmailStatsBySendingIpResponse, error)

GetEmailStatsBySendingIpWithResponse request returning *GetEmailStatsBySendingIpResponse

func (*ClientWithResponses) GetEmailStatsByTagWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByTagWithResponse(ctx context.Context, params *GetEmailStatsByTagParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByTagResponse, error)

GetEmailStatsByTagWithResponse request returning *GetEmailStatsByTagResponse

func (*ClientWithResponses) GetEmailStatsByTemplateWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsByTemplateWithResponse(ctx context.Context, params *GetEmailStatsByTemplateParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByTemplateResponse, error)

GetEmailStatsByTemplateWithResponse request returning *GetEmailStatsByTemplateResponse

func (*ClientWithResponses) GetEmailStatsDailyWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsDailyWithResponse(ctx context.Context, params *GetEmailStatsDailyParams, reqEditors ...RequestEditorFn) (*GetEmailStatsDailyResponse, error)

GetEmailStatsDailyWithResponse request returning *GetEmailStatsDailyResponse

func (*ClientWithResponses) GetEmailStatsHourlyWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsHourlyWithResponse(ctx context.Context, params *GetEmailStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetEmailStatsHourlyResponse, error)

GetEmailStatsHourlyWithResponse request returning *GetEmailStatsHourlyResponse

func (*ClientWithResponses) GetEmailStatsSummaryWithResponse added in v0.10.0

func (c *ClientWithResponses) GetEmailStatsSummaryWithResponse(ctx context.Context, params *GetEmailStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetEmailStatsSummaryResponse, error)

GetEmailStatsSummaryWithResponse request returning *GetEmailStatsSummaryResponse

func (*ClientWithResponses) GetEmailThreadMessageBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) GetEmailThreadMessageBodyWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*GetEmailThreadMessageBodyResponse, error)

GetEmailThreadMessageBodyWithResponse request returning *GetEmailThreadMessageBodyResponse

func (*ClientWithResponses) GetEmailThreadMessageWithResponse added in v0.12.0

func (c *ClientWithResponses) GetEmailThreadMessageWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*GetEmailThreadMessageResponse, error)

GetEmailThreadMessageWithResponse request returning *GetEmailThreadMessageResponse

func (*ClientWithResponses) GetEmailThreadWithResponse added in v0.12.0

func (c *ClientWithResponses) GetEmailThreadWithResponse(ctx context.Context, threadId ThreadID, reqEditors ...RequestEditorFn) (*GetEmailThreadResponse, error)

GetEmailThreadWithResponse request returning *GetEmailThreadResponse

func (*ClientWithResponses) GetMailboxStatsWithResponse added in v0.12.0

func (c *ClientWithResponses) GetMailboxStatsWithResponse(ctx context.Context, mailboxId MailboxID, params *GetMailboxStatsParams, reqEditors ...RequestEditorFn) (*GetMailboxStatsResponse, error)

GetMailboxStatsWithResponse request returning *GetMailboxStatsResponse

func (*ClientWithResponses) GetMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) GetMailboxWithResponse(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*GetMailboxResponse, error)

GetMailboxWithResponse request returning *GetMailboxResponse

func (*ClientWithResponses) GetNumbersOrderWithResponse added in v0.34.0

func (c *ClientWithResponses) GetNumbersOrderWithResponse(ctx context.Context, orderId NumbersOrderID, params *GetNumbersOrderParams, reqEditors ...RequestEditorFn) (*GetNumbersOrderResponse, error)

GetNumbersOrderWithResponse request returning *GetNumbersOrderResponse

func (*ClientWithResponses) GetPreferenceWithResponse added in v0.41.0

func (c *ClientWithResponses) GetPreferenceWithResponse(ctx context.Context, preferenceId PreferenceID, reqEditors ...RequestEditorFn) (*GetPreferenceResponse, error)

GetPreferenceWithResponse request returning *GetPreferenceResponse

func (*ClientWithResponses) GetRealtimeAppChannelWithResponse added in v0.15.0

func (c *ClientWithResponses) GetRealtimeAppChannelWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *GetRealtimeAppChannelParams, reqEditors ...RequestEditorFn) (*GetRealtimeAppChannelResponse, error)

GetRealtimeAppChannelWithResponse request returning *GetRealtimeAppChannelResponse

func (*ClientWithResponses) GetSMSInboundStatsByCountryWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsByCountryWithResponse(ctx context.Context, params *GetSMSInboundStatsByCountryParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByCountryResponse, error)

GetSMSInboundStatsByCountryWithResponse request returning *GetSMSInboundStatsByCountryResponse

func (*ClientWithResponses) GetSMSInboundStatsByNumberWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsByNumberWithResponse(ctx context.Context, params *GetSMSInboundStatsByNumberParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByNumberResponse, error)

GetSMSInboundStatsByNumberWithResponse request returning *GetSMSInboundStatsByNumberResponse

func (*ClientWithResponses) GetSMSInboundStatsByOperatorWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsByOperatorWithResponse(ctx context.Context, params *GetSMSInboundStatsByOperatorParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByOperatorResponse, error)

GetSMSInboundStatsByOperatorWithResponse request returning *GetSMSInboundStatsByOperatorResponse

func (*ClientWithResponses) GetSMSInboundStatsDailyWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsDailyWithResponse(ctx context.Context, params *GetSMSInboundStatsDailyParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsDailyResponse, error)

GetSMSInboundStatsDailyWithResponse request returning *GetSMSInboundStatsDailyResponse

func (*ClientWithResponses) GetSMSInboundStatsHourlyWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsHourlyWithResponse(ctx context.Context, params *GetSMSInboundStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsHourlyResponse, error)

GetSMSInboundStatsHourlyWithResponse request returning *GetSMSInboundStatsHourlyResponse

func (*ClientWithResponses) GetSMSInboundStatsSummaryWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSInboundStatsSummaryWithResponse(ctx context.Context, params *GetSMSInboundStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsSummaryResponse, error)

GetSMSInboundStatsSummaryWithResponse request returning *GetSMSInboundStatsSummaryResponse

func (*ClientWithResponses) GetSMSKeywordRuleWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSKeywordRuleWithResponse(ctx context.Context, id SMSKeywordRuleID, params *GetSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*GetSMSKeywordRuleResponse, error)

GetSMSKeywordRuleWithResponse request returning *GetSMSKeywordRuleResponse

func (*ClientWithResponses) GetSMSMessageWithResponse added in v0.3.0

func (c *ClientWithResponses) GetSMSMessageWithResponse(ctx context.Context, messageId SMSMessageID, reqEditors ...RequestEditorFn) (*GetSMSMessageResponse, error)

GetSMSMessageWithResponse request returning *GetSMSMessageResponse

func (*ClientWithResponses) GetSMSStatsByCarrierWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByCarrierWithResponse(ctx context.Context, params *GetSMSStatsByCarrierParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCarrierResponse, error)

GetSMSStatsByCarrierWithResponse request returning *GetSMSStatsByCarrierResponse

func (*ClientWithResponses) GetSMSStatsByCategoryWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByCategoryWithResponse(ctx context.Context, params *GetSMSStatsByCategoryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCategoryResponse, error)

GetSMSStatsByCategoryWithResponse request returning *GetSMSStatsByCategoryResponse

func (*ClientWithResponses) GetSMSStatsByCountryWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByCountryWithResponse(ctx context.Context, params *GetSMSStatsByCountryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCountryResponse, error)

GetSMSStatsByCountryWithResponse request returning *GetSMSStatsByCountryResponse

func (*ClientWithResponses) GetSMSStatsByErrorCodeWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByErrorCodeWithResponse(ctx context.Context, params *GetSMSStatsByErrorCodeParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByErrorCodeResponse, error)

GetSMSStatsByErrorCodeWithResponse request returning *GetSMSStatsByErrorCodeResponse

func (*ClientWithResponses) GetSMSStatsByOriginatorWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByOriginatorWithResponse(ctx context.Context, params *GetSMSStatsByOriginatorParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByOriginatorResponse, error)

GetSMSStatsByOriginatorWithResponse request returning *GetSMSStatsByOriginatorResponse

func (*ClientWithResponses) GetSMSStatsByStatusWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByStatusWithResponse(ctx context.Context, params *GetSMSStatsByStatusParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByStatusResponse, error)

GetSMSStatsByStatusWithResponse request returning *GetSMSStatsByStatusResponse

func (*ClientWithResponses) GetSMSStatsByTagWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsByTagWithResponse(ctx context.Context, params *GetSMSStatsByTagParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByTagResponse, error)

GetSMSStatsByTagWithResponse request returning *GetSMSStatsByTagResponse

func (*ClientWithResponses) GetSMSStatsDailyWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsDailyWithResponse(ctx context.Context, params *GetSMSStatsDailyParams, reqEditors ...RequestEditorFn) (*GetSMSStatsDailyResponse, error)

GetSMSStatsDailyWithResponse request returning *GetSMSStatsDailyResponse

func (*ClientWithResponses) GetSMSStatsHourlyWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsHourlyWithResponse(ctx context.Context, params *GetSMSStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetSMSStatsHourlyResponse, error)

GetSMSStatsHourlyWithResponse request returning *GetSMSStatsHourlyResponse

func (*ClientWithResponses) GetSMSStatsSummaryWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSStatsSummaryWithResponse(ctx context.Context, params *GetSMSStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsSummaryResponse, error)

GetSMSStatsSummaryWithResponse request returning *GetSMSStatsSummaryResponse

func (*ClientWithResponses) GetSMSSuppressionWithResponse added in v0.33.0

func (c *ClientWithResponses) GetSMSSuppressionWithResponse(ctx context.Context, suppressionId SMSSuppressionID, reqEditors ...RequestEditorFn) (*GetSMSSuppressionResponse, error)

GetSMSSuppressionWithResponse request returning *GetSMSSuppressionResponse

func (*ClientWithResponses) GetSMSTemplateWithResponse added in v0.3.0

func (c *ClientWithResponses) GetSMSTemplateWithResponse(ctx context.Context, templateRef string, reqEditors ...RequestEditorFn) (*GetSMSTemplateResponse, error)

GetSMSTemplateWithResponse request returning *GetSMSTemplateResponse

func (*ClientWithResponses) GetVoiceCallWithResponse added in v0.27.0

func (c *ClientWithResponses) GetVoiceCallWithResponse(ctx context.Context, callId VoiceCallID, reqEditors ...RequestEditorFn) (*GetVoiceCallResponse, error)

GetVoiceCallWithResponse request returning *GetVoiceCallResponse

func (*ClientWithResponses) GetWhatsAppMessageWithResponse added in v0.6.0

func (c *ClientWithResponses) GetWhatsAppMessageWithResponse(ctx context.Context, messageId WhatsAppMessageID, reqEditors ...RequestEditorFn) (*GetWhatsAppMessageResponse, error)

GetWhatsAppMessageWithResponse request returning *GetWhatsAppMessageResponse

func (*ClientWithResponses) GetWorkspaceNumberWithResponse added in v0.34.0

func (c *ClientWithResponses) GetWorkspaceNumberWithResponse(ctx context.Context, numberId AllocatedNumberID, params *GetWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*GetWorkspaceNumberResponse, error)

GetWorkspaceNumberWithResponse request returning *GetWorkspaceNumberResponse

func (*ClientWithResponses) ListAudienceContactsWithResponse added in v0.4.0

func (c *ClientWithResponses) ListAudienceContactsWithResponse(ctx context.Context, audienceId AudienceID, params *ListAudienceContactsParams, reqEditors ...RequestEditorFn) (*ListAudienceContactsResponse, error)

ListAudienceContactsWithResponse request returning *ListAudienceContactsResponse

func (*ClientWithResponses) ListAudiencesWithResponse added in v0.4.0

func (c *ClientWithResponses) ListAudiencesWithResponse(ctx context.Context, params *ListAudiencesParams, reqEditors ...RequestEditorFn) (*ListAudiencesResponse, error)

ListAudiencesWithResponse request returning *ListAudiencesResponse

func (*ClientWithResponses) ListAvailableNumbersWithResponse added in v0.34.0

func (c *ClientWithResponses) ListAvailableNumbersWithResponse(ctx context.Context, params *ListAvailableNumbersParams, reqEditors ...RequestEditorFn) (*ListAvailableNumbersResponse, error)

ListAvailableNumbersWithResponse request returning *ListAvailableNumbersResponse

func (*ClientWithResponses) ListContactPreferencesWithResponse added in v0.41.0

func (c *ClientWithResponses) ListContactPreferencesWithResponse(ctx context.Context, contactId ContactID, params *ListContactPreferencesParams, reqEditors ...RequestEditorFn) (*ListContactPreferencesResponse, error)

ListContactPreferencesWithResponse request returning *ListContactPreferencesResponse

func (*ClientWithResponses) ListContactPropertiesWithResponse added in v0.4.0

func (c *ClientWithResponses) ListContactPropertiesWithResponse(ctx context.Context, params *ListContactPropertiesParams, reqEditors ...RequestEditorFn) (*ListContactPropertiesResponse, error)

ListContactPropertiesWithResponse request returning *ListContactPropertiesResponse

func (*ClientWithResponses) ListContactsWithResponse added in v0.4.0

func (c *ClientWithResponses) ListContactsWithResponse(ctx context.Context, params *ListContactsParams, reqEditors ...RequestEditorFn) (*ListContactsResponse, error)

ListContactsWithResponse request returning *ListContactsResponse

func (*ClientWithResponses) ListDomainsWithResponse added in v0.8.0

func (c *ClientWithResponses) ListDomainsWithResponse(ctx context.Context, params *ListDomainsParams, reqEditors ...RequestEditorFn) (*ListDomainsResponse, error)

ListDomainsWithResponse request returning *ListDomainsResponse

func (*ClientWithResponses) ListEmailMessagesWithResponse

func (c *ClientWithResponses) ListEmailMessagesWithResponse(ctx context.Context, params *ListEmailMessagesParams, reqEditors ...RequestEditorFn) (*ListEmailMessagesResponse, error)

ListEmailMessagesWithResponse request returning *ListEmailMessagesResponse

func (*ClientWithResponses) ListEmailThreadMessageAttachmentsWithResponse added in v0.12.0

func (c *ClientWithResponses) ListEmailThreadMessageAttachmentsWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*ListEmailThreadMessageAttachmentsResponse, error)

ListEmailThreadMessageAttachmentsWithResponse request returning *ListEmailThreadMessageAttachmentsResponse

func (*ClientWithResponses) ListEmailThreadMessagesWithResponse added in v0.12.0

func (c *ClientWithResponses) ListEmailThreadMessagesWithResponse(ctx context.Context, threadId ThreadID, params *ListEmailThreadMessagesParams, reqEditors ...RequestEditorFn) (*ListEmailThreadMessagesResponse, error)

ListEmailThreadMessagesWithResponse request returning *ListEmailThreadMessagesResponse

func (*ClientWithResponses) ListEmailThreadsWithResponse added in v0.12.0

func (c *ClientWithResponses) ListEmailThreadsWithResponse(ctx context.Context, params *ListEmailThreadsParams, reqEditors ...RequestEditorFn) (*ListEmailThreadsResponse, error)

ListEmailThreadsWithResponse request returning *ListEmailThreadsResponse

func (*ClientWithResponses) ListMailboxLabelsWithResponse added in v0.12.0

func (c *ClientWithResponses) ListMailboxLabelsWithResponse(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*ListMailboxLabelsResponse, error)

ListMailboxLabelsWithResponse request returning *ListMailboxLabelsResponse

func (*ClientWithResponses) ListMailboxReceiveRulesWithResponse added in v0.12.0

func (c *ClientWithResponses) ListMailboxReceiveRulesWithResponse(ctx context.Context, mailboxId MailboxID, params *ListMailboxReceiveRulesParams, reqEditors ...RequestEditorFn) (*ListMailboxReceiveRulesResponse, error)

ListMailboxReceiveRulesWithResponse request returning *ListMailboxReceiveRulesResponse

func (*ClientWithResponses) ListMailboxesWithResponse added in v0.12.0

func (c *ClientWithResponses) ListMailboxesWithResponse(ctx context.Context, params *ListMailboxesParams, reqEditors ...RequestEditorFn) (*ListMailboxesResponse, error)

ListMailboxesWithResponse request returning *ListMailboxesResponse

func (*ClientWithResponses) ListNumbersOrdersWithResponse added in v0.34.0

func (c *ClientWithResponses) ListNumbersOrdersWithResponse(ctx context.Context, params *ListNumbersOrdersParams, reqEditors ...RequestEditorFn) (*ListNumbersOrdersResponse, error)

ListNumbersOrdersWithResponse request returning *ListNumbersOrdersResponse

func (*ClientWithResponses) ListPreferencesWithResponse added in v0.41.0

func (c *ClientWithResponses) ListPreferencesWithResponse(ctx context.Context, params *ListPreferencesParams, reqEditors ...RequestEditorFn) (*ListPreferencesResponse, error)

ListPreferencesWithResponse request returning *ListPreferencesResponse

func (*ClientWithResponses) ListRealtimeAppChannelMembersWithResponse added in v0.15.0

func (c *ClientWithResponses) ListRealtimeAppChannelMembersWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *ListRealtimeAppChannelMembersParams, reqEditors ...RequestEditorFn) (*ListRealtimeAppChannelMembersResponse, error)

ListRealtimeAppChannelMembersWithResponse request returning *ListRealtimeAppChannelMembersResponse

func (*ClientWithResponses) ListRealtimeAppChannelsWithResponse added in v0.15.0

func (c *ClientWithResponses) ListRealtimeAppChannelsWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *ListRealtimeAppChannelsParams, reqEditors ...RequestEditorFn) (*ListRealtimeAppChannelsResponse, error)

ListRealtimeAppChannelsWithResponse request returning *ListRealtimeAppChannelsResponse

func (*ClientWithResponses) ListSMSKeywordRulesWithResponse added in v0.33.0

func (c *ClientWithResponses) ListSMSKeywordRulesWithResponse(ctx context.Context, params *ListSMSKeywordRulesParams, reqEditors ...RequestEditorFn) (*ListSMSKeywordRulesResponse, error)

ListSMSKeywordRulesWithResponse request returning *ListSMSKeywordRulesResponse

func (*ClientWithResponses) ListSMSMessageEventsWithResponse added in v0.33.0

func (c *ClientWithResponses) ListSMSMessageEventsWithResponse(ctx context.Context, messageId SMSMessageID, params *ListSMSMessageEventsParams, reqEditors ...RequestEditorFn) (*ListSMSMessageEventsResponse, error)

ListSMSMessageEventsWithResponse request returning *ListSMSMessageEventsResponse

func (*ClientWithResponses) ListSMSMessagesWithResponse added in v0.3.0

func (c *ClientWithResponses) ListSMSMessagesWithResponse(ctx context.Context, params *ListSMSMessagesParams, reqEditors ...RequestEditorFn) (*ListSMSMessagesResponse, error)

ListSMSMessagesWithResponse request returning *ListSMSMessagesResponse

func (*ClientWithResponses) ListSMSSuppressionsWithResponse added in v0.33.0

func (c *ClientWithResponses) ListSMSSuppressionsWithResponse(ctx context.Context, params *ListSMSSuppressionsParams, reqEditors ...RequestEditorFn) (*ListSMSSuppressionsResponse, error)

ListSMSSuppressionsWithResponse request returning *ListSMSSuppressionsResponse

func (*ClientWithResponses) ListSMSTemplatesWithResponse added in v0.3.0

func (c *ClientWithResponses) ListSMSTemplatesWithResponse(ctx context.Context, params *ListSMSTemplatesParams, reqEditors ...RequestEditorFn) (*ListSMSTemplatesResponse, error)

ListSMSTemplatesWithResponse request returning *ListSMSTemplatesResponse

func (*ClientWithResponses) ListVoiceCallsWithResponse added in v0.27.0

func (c *ClientWithResponses) ListVoiceCallsWithResponse(ctx context.Context, params *ListVoiceCallsParams, reqEditors ...RequestEditorFn) (*ListVoiceCallsResponse, error)

ListVoiceCallsWithResponse request returning *ListVoiceCallsResponse

func (*ClientWithResponses) ListWhatsAppMessageEventsWithResponse added in v0.6.0

func (c *ClientWithResponses) ListWhatsAppMessageEventsWithResponse(ctx context.Context, messageId WhatsAppMessageID, params *ListWhatsAppMessageEventsParams, reqEditors ...RequestEditorFn) (*ListWhatsAppMessageEventsResponse, error)

ListWhatsAppMessageEventsWithResponse request returning *ListWhatsAppMessageEventsResponse

func (*ClientWithResponses) ListWhatsAppMessagesWithResponse added in v0.6.0

func (c *ClientWithResponses) ListWhatsAppMessagesWithResponse(ctx context.Context, params *ListWhatsAppMessagesParams, reqEditors ...RequestEditorFn) (*ListWhatsAppMessagesResponse, error)

ListWhatsAppMessagesWithResponse request returning *ListWhatsAppMessagesResponse

func (*ClientWithResponses) ListWorkspaceNumbersWithResponse added in v0.34.0

func (c *ClientWithResponses) ListWorkspaceNumbersWithResponse(ctx context.Context, params *ListWorkspaceNumbersParams, reqEditors ...RequestEditorFn) (*ListWorkspaceNumbersResponse, error)

ListWorkspaceNumbersWithResponse request returning *ListWorkspaceNumbersResponse

func (*ClientWithResponses) PublishRealtimeAppBatchWithBodyWithResponse added in v0.15.0

func (c *ClientWithResponses) PublishRealtimeAppBatchWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PublishRealtimeAppBatchResponse, error)

PublishRealtimeAppBatchWithBodyWithResponse request with arbitrary body returning *PublishRealtimeAppBatchResponse

func (*ClientWithResponses) PublishRealtimeAppBatchWithResponse added in v0.15.0

func (c *ClientWithResponses) PublishRealtimeAppBatchWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, body PublishRealtimeAppBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*PublishRealtimeAppBatchResponse, error)

func (*ClientWithResponses) PublishRealtimeAppEventWithBodyWithResponse added in v0.15.0

func (c *ClientWithResponses) PublishRealtimeAppEventWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PublishRealtimeAppEventResponse, error)

PublishRealtimeAppEventWithBodyWithResponse request with arbitrary body returning *PublishRealtimeAppEventResponse

func (*ClientWithResponses) PublishRealtimeAppEventWithResponse added in v0.15.0

func (c *ClientWithResponses) PublishRealtimeAppEventWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, body PublishRealtimeAppEventJSONRequestBody, reqEditors ...RequestEditorFn) (*PublishRealtimeAppEventResponse, error)

func (*ClientWithResponses) ReleaseWorkspaceNumberWithResponse added in v0.34.0

func (c *ClientWithResponses) ReleaseWorkspaceNumberWithResponse(ctx context.Context, numberId AllocatedNumberID, params *ReleaseWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*ReleaseWorkspaceNumberResponse, error)

ReleaseWorkspaceNumberWithResponse request returning *ReleaseWorkspaceNumberResponse

func (*ClientWithResponses) ReplyEmailThreadMessageWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) ReplyEmailThreadMessageWithBodyWithResponse(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ReplyEmailThreadMessageResponse, error)

ReplyEmailThreadMessageWithBodyWithResponse request with arbitrary body returning *ReplyEmailThreadMessageResponse

func (*ClientWithResponses) ReplyEmailThreadMessageWithResponse added in v0.12.0

func (c *ClientWithResponses) ReplyEmailThreadMessageWithResponse(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, body ReplyEmailThreadMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*ReplyEmailThreadMessageResponse, error)

func (*ClientWithResponses) RestoreMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) RestoreMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *RestoreMailboxParams, reqEditors ...RequestEditorFn) (*RestoreMailboxResponse, error)

RestoreMailboxWithResponse request returning *RestoreMailboxResponse

func (*ClientWithResponses) ResumeMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) ResumeMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *ResumeMailboxParams, reqEditors ...RequestEditorFn) (*ResumeMailboxResponse, error)

ResumeMailboxWithResponse request returning *ResumeMailboxResponse

func (*ClientWithResponses) SendRealtimeAppMemberEventWithBodyWithResponse added in v0.21.0

func (c *ClientWithResponses) SendRealtimeAppMemberEventWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SendRealtimeAppMemberEventResponse, error)

SendRealtimeAppMemberEventWithBodyWithResponse request with arbitrary body returning *SendRealtimeAppMemberEventResponse

func (*ClientWithResponses) SendRealtimeAppMemberEventWithResponse added in v0.21.0

func (*ClientWithResponses) UnarchiveContactPropertyWithResponse added in v0.4.0

func (c *ClientWithResponses) UnarchiveContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *UnarchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*UnarchiveContactPropertyResponse, error)

UnarchiveContactPropertyWithResponse request returning *UnarchiveContactPropertyResponse

func (*ClientWithResponses) UnassignAudienceContactWithResponse added in v0.4.0

func (c *ClientWithResponses) UnassignAudienceContactWithResponse(ctx context.Context, audienceId AudienceID, contactId ContactID, params *UnassignAudienceContactParams, reqEditors ...RequestEditorFn) (*UnassignAudienceContactResponse, error)

UnassignAudienceContactWithResponse request returning *UnassignAudienceContactResponse

func (*ClientWithResponses) UnassignAudienceContactsWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) UnassignAudienceContactsWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UnassignAudienceContactsResponse, error)

UnassignAudienceContactsWithBodyWithResponse request with arbitrary body returning *UnassignAudienceContactsResponse

func (*ClientWithResponses) UnassignAudienceContactsWithResponse added in v0.4.0

func (*ClientWithResponses) UpdateAudienceWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) UpdateAudienceWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAudienceResponse, error)

UpdateAudienceWithBodyWithResponse request with arbitrary body returning *UpdateAudienceResponse

func (*ClientWithResponses) UpdateAudienceWithResponse added in v0.4.0

func (c *ClientWithResponses) UpdateAudienceWithResponse(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, body UpdateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAudienceResponse, error)

func (*ClientWithResponses) UpdateContactPropertyWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) UpdateContactPropertyWithBodyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateContactPropertyResponse, error)

UpdateContactPropertyWithBodyWithResponse request with arbitrary body returning *UpdateContactPropertyResponse

func (*ClientWithResponses) UpdateContactPropertyWithResponse added in v0.4.0

func (*ClientWithResponses) UpdateContactWithBodyWithResponse added in v0.4.0

func (c *ClientWithResponses) UpdateContactWithBodyWithResponse(ctx context.Context, contactId ContactID, params *UpdateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateContactResponse, error)

UpdateContactWithBodyWithResponse request with arbitrary body returning *UpdateContactResponse

func (*ClientWithResponses) UpdateContactWithResponse added in v0.4.0

func (c *ClientWithResponses) UpdateContactWithResponse(ctx context.Context, contactId ContactID, params *UpdateContactParams, body UpdateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateContactResponse, error)

func (*ClientWithResponses) UpdateDomainWithBodyWithResponse added in v0.8.0

func (c *ClientWithResponses) UpdateDomainWithBodyWithResponse(ctx context.Context, domainId DomainID, params *UpdateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDomainResponse, error)

UpdateDomainWithBodyWithResponse request with arbitrary body returning *UpdateDomainResponse

func (*ClientWithResponses) UpdateDomainWithResponse added in v0.8.0

func (c *ClientWithResponses) UpdateDomainWithResponse(ctx context.Context, domainId DomainID, params *UpdateDomainParams, body UpdateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDomainResponse, error)

func (*ClientWithResponses) UpdateEmailThreadWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) UpdateEmailThreadWithBodyWithResponse(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateEmailThreadResponse, error)

UpdateEmailThreadWithBodyWithResponse request with arbitrary body returning *UpdateEmailThreadResponse

func (*ClientWithResponses) UpdateEmailThreadWithResponse added in v0.12.0

func (c *ClientWithResponses) UpdateEmailThreadWithResponse(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, body UpdateEmailThreadJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateEmailThreadResponse, error)

func (*ClientWithResponses) UpdateMailboxWithBodyWithResponse added in v0.12.0

func (c *ClientWithResponses) UpdateMailboxWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateMailboxResponse, error)

UpdateMailboxWithBodyWithResponse request with arbitrary body returning *UpdateMailboxResponse

func (*ClientWithResponses) UpdateMailboxWithResponse added in v0.12.0

func (c *ClientWithResponses) UpdateMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, body UpdateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateMailboxResponse, error)

func (*ClientWithResponses) UpdateSMSKeywordRuleWithBodyWithResponse added in v0.33.0

func (c *ClientWithResponses) UpdateSMSKeywordRuleWithBodyWithResponse(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateSMSKeywordRuleResponse, error)

UpdateSMSKeywordRuleWithBodyWithResponse request with arbitrary body returning *UpdateSMSKeywordRuleResponse

func (*ClientWithResponses) UpdateSMSKeywordRuleWithResponse added in v0.33.0

func (*ClientWithResponses) VerifyDomainWithResponse added in v0.8.0

func (c *ClientWithResponses) VerifyDomainWithResponse(ctx context.Context, domainId DomainID, params *VerifyDomainParams, reqEditors ...RequestEditorFn) (*VerifyDomainResponse, error)

VerifyDomainWithResponse request returning *VerifyDomainResponse

type ClientWithResponsesInterface

type ClientWithResponsesInterface interface {
	// ListAudiencesWithResponse request
	ListAudiencesWithResponse(ctx context.Context, params *ListAudiencesParams, reqEditors ...RequestEditorFn) (*ListAudiencesResponse, error)

	// CreateAudienceWithBodyWithResponse request with any body
	CreateAudienceWithBodyWithResponse(ctx context.Context, params *CreateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateAudienceResponse, error)

	CreateAudienceWithResponse(ctx context.Context, params *CreateAudienceParams, body CreateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateAudienceResponse, error)

	// DeleteAudienceWithResponse request
	DeleteAudienceWithResponse(ctx context.Context, audienceId AudienceID, params *DeleteAudienceParams, reqEditors ...RequestEditorFn) (*DeleteAudienceResponse, error)

	// GetAudienceWithResponse request
	GetAudienceWithResponse(ctx context.Context, audienceId AudienceID, reqEditors ...RequestEditorFn) (*GetAudienceResponse, error)

	// UpdateAudienceWithBodyWithResponse request with any body
	UpdateAudienceWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAudienceResponse, error)

	UpdateAudienceWithResponse(ctx context.Context, audienceId AudienceID, params *UpdateAudienceParams, body UpdateAudienceJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAudienceResponse, error)

	// ListAudienceContactsWithResponse request
	ListAudienceContactsWithResponse(ctx context.Context, audienceId AudienceID, params *ListAudienceContactsParams, reqEditors ...RequestEditorFn) (*ListAudienceContactsResponse, error)

	// AssignAudienceContactsWithBodyWithResponse request with any body
	AssignAudienceContactsWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AssignAudienceContactsResponse, error)

	AssignAudienceContactsWithResponse(ctx context.Context, audienceId AudienceID, params *AssignAudienceContactsParams, body AssignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*AssignAudienceContactsResponse, error)

	// UnassignAudienceContactsWithBodyWithResponse request with any body
	UnassignAudienceContactsWithBodyWithResponse(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UnassignAudienceContactsResponse, error)

	UnassignAudienceContactsWithResponse(ctx context.Context, audienceId AudienceID, params *UnassignAudienceContactsParams, body UnassignAudienceContactsJSONRequestBody, reqEditors ...RequestEditorFn) (*UnassignAudienceContactsResponse, error)

	// UnassignAudienceContactWithResponse request
	UnassignAudienceContactWithResponse(ctx context.Context, audienceId AudienceID, contactId ContactID, params *UnassignAudienceContactParams, reqEditors ...RequestEditorFn) (*UnassignAudienceContactResponse, error)

	// ListContactPropertiesWithResponse request
	ListContactPropertiesWithResponse(ctx context.Context, params *ListContactPropertiesParams, reqEditors ...RequestEditorFn) (*ListContactPropertiesResponse, error)

	// CreateContactPropertyWithBodyWithResponse request with any body
	CreateContactPropertyWithBodyWithResponse(ctx context.Context, params *CreateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactPropertyResponse, error)

	CreateContactPropertyWithResponse(ctx context.Context, params *CreateContactPropertyParams, body CreateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateContactPropertyResponse, error)

	// GetContactPropertyWithResponse request
	GetContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, reqEditors ...RequestEditorFn) (*GetContactPropertyResponse, error)

	// UpdateContactPropertyWithBodyWithResponse request with any body
	UpdateContactPropertyWithBodyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateContactPropertyResponse, error)

	UpdateContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *UpdateContactPropertyParams, body UpdateContactPropertyJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateContactPropertyResponse, error)

	// ArchiveContactPropertyWithResponse request
	ArchiveContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *ArchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*ArchiveContactPropertyResponse, error)

	// UnarchiveContactPropertyWithResponse request
	UnarchiveContactPropertyWithResponse(ctx context.Context, propertyId ContactPropertyID, params *UnarchiveContactPropertyParams, reqEditors ...RequestEditorFn) (*UnarchiveContactPropertyResponse, error)

	// ListContactsWithResponse request
	ListContactsWithResponse(ctx context.Context, params *ListContactsParams, reqEditors ...RequestEditorFn) (*ListContactsResponse, error)

	// CreateContactWithBodyWithResponse request with any body
	CreateContactWithBodyWithResponse(ctx context.Context, params *CreateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactResponse, error)

	CreateContactWithResponse(ctx context.Context, params *CreateContactParams, body CreateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateContactResponse, error)

	// CreateContactBatchWithBodyWithResponse request with any body
	CreateContactBatchWithBodyWithResponse(ctx context.Context, params *CreateContactBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateContactBatchResponse, error)

	CreateContactBatchWithResponse(ctx context.Context, params *CreateContactBatchParams, body CreateContactBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateContactBatchResponse, error)

	// DeleteContactWithResponse request
	DeleteContactWithResponse(ctx context.Context, contactId ContactID, params *DeleteContactParams, reqEditors ...RequestEditorFn) (*DeleteContactResponse, error)

	// GetContactWithResponse request
	GetContactWithResponse(ctx context.Context, contactId ContactID, reqEditors ...RequestEditorFn) (*GetContactResponse, error)

	// UpdateContactWithBodyWithResponse request with any body
	UpdateContactWithBodyWithResponse(ctx context.Context, contactId ContactID, params *UpdateContactParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateContactResponse, error)

	UpdateContactWithResponse(ctx context.Context, contactId ContactID, params *UpdateContactParams, body UpdateContactJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateContactResponse, error)

	// ListContactPreferencesWithResponse request
	ListContactPreferencesWithResponse(ctx context.Context, contactId ContactID, params *ListContactPreferencesParams, reqEditors ...RequestEditorFn) (*ListContactPreferencesResponse, error)

	// CreateEmailMessageBatchWithBodyWithResponse request with any body
	CreateEmailMessageBatchWithBodyWithResponse(ctx context.Context, params *CreateEmailMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailMessageBatchResponse, error)

	CreateEmailMessageBatchWithResponse(ctx context.Context, params *CreateEmailMessageBatchParams, body CreateEmailMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateEmailMessageBatchResponse, error)

	// ListDomainsWithResponse request
	ListDomainsWithResponse(ctx context.Context, params *ListDomainsParams, reqEditors ...RequestEditorFn) (*ListDomainsResponse, error)

	// CreateDomainWithBodyWithResponse request with any body
	CreateDomainWithBodyWithResponse(ctx context.Context, params *CreateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateDomainResponse, error)

	CreateDomainWithResponse(ctx context.Context, params *CreateDomainParams, body CreateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateDomainResponse, error)

	// DeleteDomainWithResponse request
	DeleteDomainWithResponse(ctx context.Context, domainId DomainID, params *DeleteDomainParams, reqEditors ...RequestEditorFn) (*DeleteDomainResponse, error)

	// GetDomainWithResponse request
	GetDomainWithResponse(ctx context.Context, domainId DomainID, reqEditors ...RequestEditorFn) (*GetDomainResponse, error)

	// UpdateDomainWithBodyWithResponse request with any body
	UpdateDomainWithBodyWithResponse(ctx context.Context, domainId DomainID, params *UpdateDomainParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDomainResponse, error)

	UpdateDomainWithResponse(ctx context.Context, domainId DomainID, params *UpdateDomainParams, body UpdateDomainJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDomainResponse, error)

	// VerifyDomainWithResponse request
	VerifyDomainWithResponse(ctx context.Context, domainId DomainID, params *VerifyDomainParams, reqEditors ...RequestEditorFn) (*VerifyDomainResponse, error)

	// ListMailboxesWithResponse request
	ListMailboxesWithResponse(ctx context.Context, params *ListMailboxesParams, reqEditors ...RequestEditorFn) (*ListMailboxesResponse, error)

	// CreateMailboxWithBodyWithResponse request with any body
	CreateMailboxWithBodyWithResponse(ctx context.Context, params *CreateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxResponse, error)

	CreateMailboxWithResponse(ctx context.Context, params *CreateMailboxParams, body CreateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateMailboxResponse, error)

	// DeleteMailboxWithResponse request
	DeleteMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *DeleteMailboxParams, reqEditors ...RequestEditorFn) (*DeleteMailboxResponse, error)

	// GetMailboxWithResponse request
	GetMailboxWithResponse(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*GetMailboxResponse, error)

	// UpdateMailboxWithBodyWithResponse request with any body
	UpdateMailboxWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateMailboxResponse, error)

	UpdateMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *UpdateMailboxParams, body UpdateMailboxJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateMailboxResponse, error)

	// ListMailboxLabelsWithResponse request
	ListMailboxLabelsWithResponse(ctx context.Context, mailboxId MailboxID, reqEditors ...RequestEditorFn) (*ListMailboxLabelsResponse, error)

	// CreateMailboxMessageWithBodyWithResponse request with any body
	CreateMailboxMessageWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxMessageResponse, error)

	CreateMailboxMessageWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxMessageParams, body CreateMailboxMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateMailboxMessageResponse, error)

	// ListMailboxReceiveRulesWithResponse request
	ListMailboxReceiveRulesWithResponse(ctx context.Context, mailboxId MailboxID, params *ListMailboxReceiveRulesParams, reqEditors ...RequestEditorFn) (*ListMailboxReceiveRulesResponse, error)

	// CreateMailboxReceiveRuleWithBodyWithResponse request with any body
	CreateMailboxReceiveRuleWithBodyWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateMailboxReceiveRuleResponse, error)

	CreateMailboxReceiveRuleWithResponse(ctx context.Context, mailboxId MailboxID, params *CreateMailboxReceiveRuleParams, body CreateMailboxReceiveRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateMailboxReceiveRuleResponse, error)

	// DeleteMailboxReceiveRuleWithResponse request
	DeleteMailboxReceiveRuleWithResponse(ctx context.Context, mailboxId MailboxID, ruleId ReceiveRuleID, params *DeleteMailboxReceiveRuleParams, reqEditors ...RequestEditorFn) (*DeleteMailboxReceiveRuleResponse, error)

	// RestoreMailboxWithResponse request
	RestoreMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *RestoreMailboxParams, reqEditors ...RequestEditorFn) (*RestoreMailboxResponse, error)

	// ResumeMailboxWithResponse request
	ResumeMailboxWithResponse(ctx context.Context, mailboxId MailboxID, params *ResumeMailboxParams, reqEditors ...RequestEditorFn) (*ResumeMailboxResponse, error)

	// GetMailboxStatsWithResponse request
	GetMailboxStatsWithResponse(ctx context.Context, mailboxId MailboxID, params *GetMailboxStatsParams, reqEditors ...RequestEditorFn) (*GetMailboxStatsResponse, error)

	// ListEmailMessagesWithResponse request
	ListEmailMessagesWithResponse(ctx context.Context, params *ListEmailMessagesParams, reqEditors ...RequestEditorFn) (*ListEmailMessagesResponse, error)

	// CreateEmailMessageWithBodyWithResponse request with any body
	CreateEmailMessageWithBodyWithResponse(ctx context.Context, params *CreateEmailMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailMessageResponse, error)

	CreateEmailMessageWithResponse(ctx context.Context, params *CreateEmailMessageParams, body CreateEmailMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateEmailMessageResponse, error)

	// GetEmailMessageWithResponse request
	GetEmailMessageWithResponse(ctx context.Context, messageId EmailID, reqEditors ...RequestEditorFn) (*GetEmailMessageResponse, error)

	// CancelEmailMessageWithResponse request
	CancelEmailMessageWithResponse(ctx context.Context, messageId EmailID, params *CancelEmailMessageParams, reqEditors ...RequestEditorFn) (*CancelEmailMessageResponse, error)

	// GetEmailStatsByBounceCodeWithResponse request
	GetEmailStatsByBounceCodeWithResponse(ctx context.Context, params *GetEmailStatsByBounceCodeParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByBounceCodeResponse, error)

	// GetEmailStatsByBroadcastWithResponse request
	GetEmailStatsByBroadcastWithResponse(ctx context.Context, params *GetEmailStatsByBroadcastParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByBroadcastResponse, error)

	// GetEmailStatsByCategoryWithResponse request
	GetEmailStatsByCategoryWithResponse(ctx context.Context, params *GetEmailStatsByCategoryParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByCategoryResponse, error)

	// GetEmailStatsByClientWithResponse request
	GetEmailStatsByClientWithResponse(ctx context.Context, params *GetEmailStatsByClientParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByClientResponse, error)

	// GetEmailStatsByComplaintTypeWithResponse request
	GetEmailStatsByComplaintTypeWithResponse(ctx context.Context, params *GetEmailStatsByComplaintTypeParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByComplaintTypeResponse, error)

	// GetEmailStatsDailyWithResponse request
	GetEmailStatsDailyWithResponse(ctx context.Context, params *GetEmailStatsDailyParams, reqEditors ...RequestEditorFn) (*GetEmailStatsDailyResponse, error)

	// GetEmailStatsHourlyWithResponse request
	GetEmailStatsHourlyWithResponse(ctx context.Context, params *GetEmailStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetEmailStatsHourlyResponse, error)

	// GetEmailStatsByLocationWithResponse request
	GetEmailStatsByLocationWithResponse(ctx context.Context, params *GetEmailStatsByLocationParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByLocationResponse, error)

	// GetEmailStatsByMailboxProviderRegionWithResponse request
	GetEmailStatsByMailboxProviderRegionWithResponse(ctx context.Context, params *GetEmailStatsByMailboxProviderRegionParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByMailboxProviderRegionResponse, error)

	// GetEmailStatsByMailboxProviderWithResponse request
	GetEmailStatsByMailboxProviderWithResponse(ctx context.Context, params *GetEmailStatsByMailboxProviderParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByMailboxProviderResponse, error)

	// GetEmailStatsByRecipientDomainWithResponse request
	GetEmailStatsByRecipientDomainWithResponse(ctx context.Context, params *GetEmailStatsByRecipientDomainParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByRecipientDomainResponse, error)

	// GetEmailStatsBySendingDomainWithResponse request
	GetEmailStatsBySendingDomainWithResponse(ctx context.Context, params *GetEmailStatsBySendingDomainParams, reqEditors ...RequestEditorFn) (*GetEmailStatsBySendingDomainResponse, error)

	// GetEmailStatsBySendingIpWithResponse request
	GetEmailStatsBySendingIpWithResponse(ctx context.Context, params *GetEmailStatsBySendingIpParams, reqEditors ...RequestEditorFn) (*GetEmailStatsBySendingIpResponse, error)

	// GetEmailStatsSummaryWithResponse request
	GetEmailStatsSummaryWithResponse(ctx context.Context, params *GetEmailStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetEmailStatsSummaryResponse, error)

	// GetEmailStatsByTagWithResponse request
	GetEmailStatsByTagWithResponse(ctx context.Context, params *GetEmailStatsByTagParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByTagResponse, error)

	// GetEmailStatsByTemplateWithResponse request
	GetEmailStatsByTemplateWithResponse(ctx context.Context, params *GetEmailStatsByTemplateParams, reqEditors ...RequestEditorFn) (*GetEmailStatsByTemplateResponse, error)

	// ListEmailThreadsWithResponse request
	ListEmailThreadsWithResponse(ctx context.Context, params *ListEmailThreadsParams, reqEditors ...RequestEditorFn) (*ListEmailThreadsResponse, error)

	// DeleteEmailThreadWithResponse request
	DeleteEmailThreadWithResponse(ctx context.Context, threadId ThreadID, params *DeleteEmailThreadParams, reqEditors ...RequestEditorFn) (*DeleteEmailThreadResponse, error)

	// GetEmailThreadWithResponse request
	GetEmailThreadWithResponse(ctx context.Context, threadId ThreadID, reqEditors ...RequestEditorFn) (*GetEmailThreadResponse, error)

	// UpdateEmailThreadWithBodyWithResponse request with any body
	UpdateEmailThreadWithBodyWithResponse(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateEmailThreadResponse, error)

	UpdateEmailThreadWithResponse(ctx context.Context, threadId ThreadID, params *UpdateEmailThreadParams, body UpdateEmailThreadJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateEmailThreadResponse, error)

	// ListEmailThreadMessagesWithResponse request
	ListEmailThreadMessagesWithResponse(ctx context.Context, threadId ThreadID, params *ListEmailThreadMessagesParams, reqEditors ...RequestEditorFn) (*ListEmailThreadMessagesResponse, error)

	// GetEmailThreadMessageWithResponse request
	GetEmailThreadMessageWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*GetEmailThreadMessageResponse, error)

	// ListEmailThreadMessageAttachmentsWithResponse request
	ListEmailThreadMessageAttachmentsWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*ListEmailThreadMessageAttachmentsResponse, error)

	// GetEmailThreadMessageBodyWithResponse request
	GetEmailThreadMessageBodyWithResponse(ctx context.Context, threadId ThreadID, messageId string, reqEditors ...RequestEditorFn) (*GetEmailThreadMessageBodyResponse, error)

	// ReplyEmailThreadMessageWithBodyWithResponse request with any body
	ReplyEmailThreadMessageWithBodyWithResponse(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ReplyEmailThreadMessageResponse, error)

	ReplyEmailThreadMessageWithResponse(ctx context.Context, threadId ThreadID, messageId string, params *ReplyEmailThreadMessageParams, body ReplyEmailThreadMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*ReplyEmailThreadMessageResponse, error)

	// CreateEmailLookupWithBodyWithResponse request with any body
	CreateEmailLookupWithBodyWithResponse(ctx context.Context, params *CreateEmailLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEmailLookupResponse, error)

	CreateEmailLookupWithResponse(ctx context.Context, params *CreateEmailLookupParams, body CreateEmailLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateEmailLookupResponse, error)

	// CreatePhoneNumberLookupWithBodyWithResponse request with any body
	CreatePhoneNumberLookupWithBodyWithResponse(ctx context.Context, params *CreatePhoneNumberLookupParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreatePhoneNumberLookupResponse, error)

	CreatePhoneNumberLookupWithResponse(ctx context.Context, params *CreatePhoneNumberLookupParams, body CreatePhoneNumberLookupJSONRequestBody, reqEditors ...RequestEditorFn) (*CreatePhoneNumberLookupResponse, error)

	// ListWorkspaceNumbersWithResponse request
	ListWorkspaceNumbersWithResponse(ctx context.Context, params *ListWorkspaceNumbersParams, reqEditors ...RequestEditorFn) (*ListWorkspaceNumbersResponse, error)

	// ListAvailableNumbersWithResponse request
	ListAvailableNumbersWithResponse(ctx context.Context, params *ListAvailableNumbersParams, reqEditors ...RequestEditorFn) (*ListAvailableNumbersResponse, error)

	// GetAvailableNumberWithResponse request
	GetAvailableNumberWithResponse(ctx context.Context, number string, params *GetAvailableNumberParams, reqEditors ...RequestEditorFn) (*GetAvailableNumberResponse, error)

	// ListNumbersOrdersWithResponse request
	ListNumbersOrdersWithResponse(ctx context.Context, params *ListNumbersOrdersParams, reqEditors ...RequestEditorFn) (*ListNumbersOrdersResponse, error)

	// CreateNumbersOrderWithBodyWithResponse request with any body
	CreateNumbersOrderWithBodyWithResponse(ctx context.Context, params *CreateNumbersOrderParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateNumbersOrderResponse, error)

	CreateNumbersOrderWithResponse(ctx context.Context, params *CreateNumbersOrderParams, body CreateNumbersOrderJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateNumbersOrderResponse, error)

	// GetNumbersOrderWithResponse request
	GetNumbersOrderWithResponse(ctx context.Context, orderId NumbersOrderID, params *GetNumbersOrderParams, reqEditors ...RequestEditorFn) (*GetNumbersOrderResponse, error)

	// ReleaseWorkspaceNumberWithResponse request
	ReleaseWorkspaceNumberWithResponse(ctx context.Context, numberId AllocatedNumberID, params *ReleaseWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*ReleaseWorkspaceNumberResponse, error)

	// GetWorkspaceNumberWithResponse request
	GetWorkspaceNumberWithResponse(ctx context.Context, numberId AllocatedNumberID, params *GetWorkspaceNumberParams, reqEditors ...RequestEditorFn) (*GetWorkspaceNumberResponse, error)

	// ListPreferencesWithResponse request
	ListPreferencesWithResponse(ctx context.Context, params *ListPreferencesParams, reqEditors ...RequestEditorFn) (*ListPreferencesResponse, error)

	// CreatePreferenceWithBodyWithResponse request with any body
	CreatePreferenceWithBodyWithResponse(ctx context.Context, params *CreatePreferenceParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreatePreferenceResponse, error)

	CreatePreferenceWithResponse(ctx context.Context, params *CreatePreferenceParams, body CreatePreferenceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreatePreferenceResponse, error)

	// DeletePreferenceWithResponse request
	DeletePreferenceWithResponse(ctx context.Context, preferenceId PreferenceID, params *DeletePreferenceParams, reqEditors ...RequestEditorFn) (*DeletePreferenceResponse, error)

	// GetPreferenceWithResponse request
	GetPreferenceWithResponse(ctx context.Context, preferenceId PreferenceID, reqEditors ...RequestEditorFn) (*GetPreferenceResponse, error)

	// PublishRealtimeAppBatchWithBodyWithResponse request with any body
	PublishRealtimeAppBatchWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PublishRealtimeAppBatchResponse, error)

	PublishRealtimeAppBatchWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppBatchParams, body PublishRealtimeAppBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*PublishRealtimeAppBatchResponse, error)

	// ListRealtimeAppChannelsWithResponse request
	ListRealtimeAppChannelsWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *ListRealtimeAppChannelsParams, reqEditors ...RequestEditorFn) (*ListRealtimeAppChannelsResponse, error)

	// GetRealtimeAppChannelWithResponse request
	GetRealtimeAppChannelWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *GetRealtimeAppChannelParams, reqEditors ...RequestEditorFn) (*GetRealtimeAppChannelResponse, error)

	// ListRealtimeAppChannelMembersWithResponse request
	ListRealtimeAppChannelMembersWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, channelName RealtimeChannelName, params *ListRealtimeAppChannelMembersParams, reqEditors ...RequestEditorFn) (*ListRealtimeAppChannelMembersResponse, error)

	// PublishRealtimeAppEventWithBodyWithResponse request with any body
	PublishRealtimeAppEventWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PublishRealtimeAppEventResponse, error)

	PublishRealtimeAppEventWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, params *PublishRealtimeAppEventParams, body PublishRealtimeAppEventJSONRequestBody, reqEditors ...RequestEditorFn) (*PublishRealtimeAppEventResponse, error)

	// DisconnectRealtimeAppMemberWithResponse request
	DisconnectRealtimeAppMemberWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *DisconnectRealtimeAppMemberParams, reqEditors ...RequestEditorFn) (*DisconnectRealtimeAppMemberResponse, error)

	// SendRealtimeAppMemberEventWithBodyWithResponse request with any body
	SendRealtimeAppMemberEventWithBodyWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SendRealtimeAppMemberEventResponse, error)

	SendRealtimeAppMemberEventWithResponse(ctx context.Context, realtimeAppId RealtimeAppID, memberId RealtimeMemberID, params *SendRealtimeAppMemberEventParams, body SendRealtimeAppMemberEventJSONRequestBody, reqEditors ...RequestEditorFn) (*SendRealtimeAppMemberEventResponse, error)

	// CreateSMSMessageBatchWithBodyWithResponse request with any body
	CreateSMSMessageBatchWithBodyWithResponse(ctx context.Context, params *CreateSMSMessageBatchParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSMessageBatchResponse, error)

	CreateSMSMessageBatchWithResponse(ctx context.Context, params *CreateSMSMessageBatchParams, body CreateSMSMessageBatchJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateSMSMessageBatchResponse, error)

	// ListSMSKeywordRulesWithResponse request
	ListSMSKeywordRulesWithResponse(ctx context.Context, params *ListSMSKeywordRulesParams, reqEditors ...RequestEditorFn) (*ListSMSKeywordRulesResponse, error)

	// CreateSMSKeywordRuleWithBodyWithResponse request with any body
	CreateSMSKeywordRuleWithBodyWithResponse(ctx context.Context, params *CreateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSKeywordRuleResponse, error)

	CreateSMSKeywordRuleWithResponse(ctx context.Context, params *CreateSMSKeywordRuleParams, body CreateSMSKeywordRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateSMSKeywordRuleResponse, error)

	// DeleteSMSKeywordRuleWithResponse request
	DeleteSMSKeywordRuleWithResponse(ctx context.Context, id SMSKeywordRuleID, params *DeleteSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*DeleteSMSKeywordRuleResponse, error)

	// GetSMSKeywordRuleWithResponse request
	GetSMSKeywordRuleWithResponse(ctx context.Context, id SMSKeywordRuleID, params *GetSMSKeywordRuleParams, reqEditors ...RequestEditorFn) (*GetSMSKeywordRuleResponse, error)

	// UpdateSMSKeywordRuleWithBodyWithResponse request with any body
	UpdateSMSKeywordRuleWithBodyWithResponse(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateSMSKeywordRuleResponse, error)

	UpdateSMSKeywordRuleWithResponse(ctx context.Context, id SMSKeywordRuleID, params *UpdateSMSKeywordRuleParams, body UpdateSMSKeywordRuleJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateSMSKeywordRuleResponse, error)

	// ListSMSMessagesWithResponse request
	ListSMSMessagesWithResponse(ctx context.Context, params *ListSMSMessagesParams, reqEditors ...RequestEditorFn) (*ListSMSMessagesResponse, error)

	// CreateSMSMessageWithBodyWithResponse request with any body
	CreateSMSMessageWithBodyWithResponse(ctx context.Context, params *CreateSMSMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSMessageResponse, error)

	CreateSMSMessageWithResponse(ctx context.Context, params *CreateSMSMessageParams, body CreateSMSMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateSMSMessageResponse, error)

	// GetSMSMessageWithResponse request
	GetSMSMessageWithResponse(ctx context.Context, messageId SMSMessageID, reqEditors ...RequestEditorFn) (*GetSMSMessageResponse, error)

	// ListSMSMessageEventsWithResponse request
	ListSMSMessageEventsWithResponse(ctx context.Context, messageId SMSMessageID, params *ListSMSMessageEventsParams, reqEditors ...RequestEditorFn) (*ListSMSMessageEventsResponse, error)

	// GetSMSStatsByCarrierWithResponse request
	GetSMSStatsByCarrierWithResponse(ctx context.Context, params *GetSMSStatsByCarrierParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCarrierResponse, error)

	// GetSMSStatsByCategoryWithResponse request
	GetSMSStatsByCategoryWithResponse(ctx context.Context, params *GetSMSStatsByCategoryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCategoryResponse, error)

	// GetSMSStatsByCountryWithResponse request
	GetSMSStatsByCountryWithResponse(ctx context.Context, params *GetSMSStatsByCountryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByCountryResponse, error)

	// GetSMSStatsDailyWithResponse request
	GetSMSStatsDailyWithResponse(ctx context.Context, params *GetSMSStatsDailyParams, reqEditors ...RequestEditorFn) (*GetSMSStatsDailyResponse, error)

	// GetSMSStatsByErrorCodeWithResponse request
	GetSMSStatsByErrorCodeWithResponse(ctx context.Context, params *GetSMSStatsByErrorCodeParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByErrorCodeResponse, error)

	// GetSMSStatsHourlyWithResponse request
	GetSMSStatsHourlyWithResponse(ctx context.Context, params *GetSMSStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetSMSStatsHourlyResponse, error)

	// GetSMSInboundStatsByCountryWithResponse request
	GetSMSInboundStatsByCountryWithResponse(ctx context.Context, params *GetSMSInboundStatsByCountryParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByCountryResponse, error)

	// GetSMSInboundStatsDailyWithResponse request
	GetSMSInboundStatsDailyWithResponse(ctx context.Context, params *GetSMSInboundStatsDailyParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsDailyResponse, error)

	// GetSMSInboundStatsHourlyWithResponse request
	GetSMSInboundStatsHourlyWithResponse(ctx context.Context, params *GetSMSInboundStatsHourlyParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsHourlyResponse, error)

	// GetSMSInboundStatsByNumberWithResponse request
	GetSMSInboundStatsByNumberWithResponse(ctx context.Context, params *GetSMSInboundStatsByNumberParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByNumberResponse, error)

	// GetSMSInboundStatsByOperatorWithResponse request
	GetSMSInboundStatsByOperatorWithResponse(ctx context.Context, params *GetSMSInboundStatsByOperatorParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsByOperatorResponse, error)

	// GetSMSInboundStatsSummaryWithResponse request
	GetSMSInboundStatsSummaryWithResponse(ctx context.Context, params *GetSMSInboundStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetSMSInboundStatsSummaryResponse, error)

	// GetSMSStatsByOriginatorWithResponse request
	GetSMSStatsByOriginatorWithResponse(ctx context.Context, params *GetSMSStatsByOriginatorParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByOriginatorResponse, error)

	// GetSMSStatsByStatusWithResponse request
	GetSMSStatsByStatusWithResponse(ctx context.Context, params *GetSMSStatsByStatusParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByStatusResponse, error)

	// GetSMSStatsSummaryWithResponse request
	GetSMSStatsSummaryWithResponse(ctx context.Context, params *GetSMSStatsSummaryParams, reqEditors ...RequestEditorFn) (*GetSMSStatsSummaryResponse, error)

	// GetSMSStatsByTagWithResponse request
	GetSMSStatsByTagWithResponse(ctx context.Context, params *GetSMSStatsByTagParams, reqEditors ...RequestEditorFn) (*GetSMSStatsByTagResponse, error)

	// ListSMSSuppressionsWithResponse request
	ListSMSSuppressionsWithResponse(ctx context.Context, params *ListSMSSuppressionsParams, reqEditors ...RequestEditorFn) (*ListSMSSuppressionsResponse, error)

	// CreateSMSSuppressionWithBodyWithResponse request with any body
	CreateSMSSuppressionWithBodyWithResponse(ctx context.Context, params *CreateSMSSuppressionParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateSMSSuppressionResponse, error)

	CreateSMSSuppressionWithResponse(ctx context.Context, params *CreateSMSSuppressionParams, body CreateSMSSuppressionJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateSMSSuppressionResponse, error)

	// DeleteSMSSuppressionWithResponse request
	DeleteSMSSuppressionWithResponse(ctx context.Context, suppressionId SMSSuppressionID, params *DeleteSMSSuppressionParams, reqEditors ...RequestEditorFn) (*DeleteSMSSuppressionResponse, error)

	// GetSMSSuppressionWithResponse request
	GetSMSSuppressionWithResponse(ctx context.Context, suppressionId SMSSuppressionID, reqEditors ...RequestEditorFn) (*GetSMSSuppressionResponse, error)

	// ListSMSTemplatesWithResponse request
	ListSMSTemplatesWithResponse(ctx context.Context, params *ListSMSTemplatesParams, reqEditors ...RequestEditorFn) (*ListSMSTemplatesResponse, error)

	// GetSMSTemplateWithResponse request
	GetSMSTemplateWithResponse(ctx context.Context, templateRef string, reqEditors ...RequestEditorFn) (*GetSMSTemplateResponse, error)

	// CreateVerificationWithBodyWithResponse request with any body
	CreateVerificationWithBodyWithResponse(ctx context.Context, params *CreateVerificationParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationResponse, error)

	CreateVerificationWithResponse(ctx context.Context, params *CreateVerificationParams, body CreateVerificationJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateVerificationResponse, error)

	// CreateVerificationCheckWithBodyWithResponse request with any body
	CreateVerificationCheckWithBodyWithResponse(ctx context.Context, params *CreateVerificationCheckParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationCheckResponse, error)

	CreateVerificationCheckWithResponse(ctx context.Context, params *CreateVerificationCheckParams, body CreateVerificationCheckJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateVerificationCheckResponse, error)

	// CreateVerificationNextChannelWithBodyWithResponse request with any body
	CreateVerificationNextChannelWithBodyWithResponse(ctx context.Context, params *CreateVerificationNextChannelParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateVerificationNextChannelResponse, error)

	CreateVerificationNextChannelWithResponse(ctx context.Context, params *CreateVerificationNextChannelParams, body CreateVerificationNextChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateVerificationNextChannelResponse, error)

	// ListVoiceCallsWithResponse request
	ListVoiceCallsWithResponse(ctx context.Context, params *ListVoiceCallsParams, reqEditors ...RequestEditorFn) (*ListVoiceCallsResponse, error)

	// GetVoiceCallWithResponse request
	GetVoiceCallWithResponse(ctx context.Context, callId VoiceCallID, reqEditors ...RequestEditorFn) (*GetVoiceCallResponse, error)

	// ListWhatsAppMessagesWithResponse request
	ListWhatsAppMessagesWithResponse(ctx context.Context, params *ListWhatsAppMessagesParams, reqEditors ...RequestEditorFn) (*ListWhatsAppMessagesResponse, error)

	// CreateWhatsAppMessageWithBodyWithResponse request with any body
	CreateWhatsAppMessageWithBodyWithResponse(ctx context.Context, params *CreateWhatsAppMessageParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateWhatsAppMessageResponse, error)

	CreateWhatsAppMessageWithResponse(ctx context.Context, params *CreateWhatsAppMessageParams, body CreateWhatsAppMessageJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateWhatsAppMessageResponse, error)

	// GetWhatsAppMessageWithResponse request
	GetWhatsAppMessageWithResponse(ctx context.Context, messageId WhatsAppMessageID, reqEditors ...RequestEditorFn) (*GetWhatsAppMessageResponse, error)

	// ListWhatsAppMessageEventsWithResponse request
	ListWhatsAppMessageEventsWithResponse(ctx context.Context, messageId WhatsAppMessageID, params *ListWhatsAppMessageEventsParams, reqEditors ...RequestEditorFn) (*ListWhatsAppMessageEventsResponse, error)
}

ClientWithResponsesInterface is the interface specification for the client with responses above.

type Conflict added in v0.3.0

type Conflict = Error

Conflict defines model for Conflict.

type Contact added in v0.4.0

type Contact struct {
	// Audiences The audiences this contact belongs to, most-recently-joined first. Only present when listing contacts; omitted from every other contact operation.
	Audiences *[]AudienceRef `json:"audiences,omitempty"`
	CreatedAt *time.Time     `json:"created_at,omitempty"`

	// Data Custom property values for this contact, available in broadcast templates as `bird.contact.<key>`. Each key is a property created via the contact properties API, and each value is a string, number, boolean, or RFC 3339 datetime matching the property's declared type (strings up to `500` characters). Total size is capped at 2 KB serialized. Values stored under a property that was later archived remain readable here.
	Data *map[string]interface{} `json:"data,omitempty"`

	// Email The contact's email address, in its stored form, trimmed and lowercased before uniqueness is checked. Unique within the workspace. `null` when the contact has no email address.
	Email *openapi_types.Email `json:"email"`

	// ExternalId Your own identifier for this contact, such as a user ID in your system. Unique within the workspace when set.
	ExternalId *string `json:"external_id,omitempty"`

	// FirstName The contact's first name. Available in broadcast templates as `bird.contact.first_name`.
	FirstName *string   `json:"first_name,omitempty"`
	Id        ContactID `json:"id"`

	// LastName The contact's last name. Available in broadcast templates as `bird.contact.last_name`.
	LastName *string `json:"last_name,omitempty"`

	// PhoneNumber The contact's phone number in normalized international form: a leading `+` and four to 15 digits. We normalize formatting but do not verify the number against numbering-plan metadata. The number is unique within the workspace. Because carriers recycle disconnected numbers, use `external_id` as the durable key for your own records. `null` when the contact has no phone number.
	PhoneNumber *string    `json:"phone_number"`
	UpdatedAt   *time.Time `json:"updated_at,omitempty"`
}

Contact defines model for Contact.

type ContactCreateRequest added in v0.4.0

type ContactCreateRequest struct {
	// Data Custom property values for this contact. Each key must be an active contact property. Each value must match the property's declared type: string, number, boolean, or RFC 3339 datetime. Strings can contain up to `500` characters, and a `null` value is ignored. Unregistered or archived keys return a validation error. The serialized data is limited to 2 KB.
	Data *map[string]interface{} `json:"data,omitempty"`

	// Email The contact's email address. Trimmed and lowercased before it is stored and checked for uniqueness. Unique within the workspace. Supply an email address, a phone number, or both.
	Email *openapi_types.Email `json:"email,omitempty"`

	// ExternalId Your own identifier for this contact, such as a user ID in your system. Unique within the workspace when set.
	ExternalId *string `json:"external_id,omitempty"`

	// FirstName The contact's first name.
	FirstName *string `json:"first_name,omitempty"`

	// LastName The contact's last name.
	LastName *string `json:"last_name,omitempty"`

	// PhoneNumber The contact's phone number in E.164 format, including the leading `+` and country code. Spaces and punctuation are accepted and stripped; the number is stored in its canonical form, which may differ from what you send, and is unique within the workspace. An empty string is treated as if the field were omitted. Supply an email address, a phone number, or both.
	PhoneNumber *string `json:"phone_number,omitempty"`
}

ContactCreateRequest defines model for ContactCreateRequest.

type ContactID added in v0.4.0

type ContactID = string

ContactID defines model for ContactID.

type ContactIdentifierFilter added in v0.27.0

type ContactIdentifierFilter string

ContactIdentifierFilter Which identifier a contact has on file, `email` for an email address or `phone_number` for a phone number.

const (
	ContactIdentifierFilterEmail       ContactIdentifierFilter = "email"
	ContactIdentifierFilterPhoneNumber ContactIdentifierFilter = "phone_number"
)

Defines values for ContactIdentifierFilter.

func (ContactIdentifierFilter) Valid added in v0.27.0

func (e ContactIdentifierFilter) Valid() bool

Valid indicates whether the value is a known member of the ContactIdentifierFilter enum.

type ContactList added in v0.4.0

type ContactList struct {
	// Data Page of contact objects.
	Data []Contact `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

ContactList defines model for ContactList.

type ContactMatchKey added in v0.24.0

type ContactMatchKey string

ContactMatchKey A contact identifier a batch entry can be matched on.

const (
	ContactMatchKeyEmail       ContactMatchKey = "email"
	ContactMatchKeyExternalId  ContactMatchKey = "external_id"
	ContactMatchKeyPhoneNumber ContactMatchKey = "phone_number"
)

Defines values for ContactMatchKey.

func (ContactMatchKey) Valid added in v0.24.0

func (e ContactMatchKey) Valid() bool

Valid indicates whether the value is a known member of the ContactMatchKey enum.

type ContactMatchedOn added in v0.24.0

type ContactMatchedOn string

ContactMatchedOn Which identifier matched a batch entry to an existing contact. `null` when the entry created a new contact.

const (
	ContactMatchedOnEmail       ContactMatchedOn = "email"
	ContactMatchedOnExternalId  ContactMatchedOn = "external_id"
	ContactMatchedOnLessThannil ContactMatchedOn = "<nil>"
	ContactMatchedOnPhoneNumber ContactMatchedOn = "phone_number"
)

Defines values for ContactMatchedOn.

func (ContactMatchedOn) Valid added in v0.24.0

func (e ContactMatchedOn) Valid() bool

Valid indicates whether the value is a known member of the ContactMatchedOn enum.

type ContactProperty added in v0.4.0

type ContactProperty struct {
	// Archived Whether the property is archived. An archived property is rejected in new contact writes and stops rendering in templates, but every value already stored on contacts is preserved. Reactivate it with unarchive.
	Archived  *bool      `json:"archived,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// FallbackValue Default used when a contact has no value for this property and the template does not supply an inline fallback. A string, number, boolean, or RFC 3339 datetime matching the declared type (strings up to `500` characters), or `null` when no fallback is set.
	FallbackValue interface{}       `json:"fallback_value,omitempty"`
	Id            ContactPropertyID `json:"id"`

	// Key The property key, used as the key in contact data and as the attribute in the `bird.contact.<key>` broadcast template variable. Lowercase letters, digits, and underscores, starting with a letter. Cannot be changed after creation.
	Key string `json:"key"`

	// Type The value type every contact must use for a property. Cannot be changed after creation.
	//
	// `datetime` values are RFC 3339 timestamps with an explicit offset. Examples include `2024-01-15T09:30:00Z` and `2024-01-15T11:30:00+02:00`. A bare date or a time with no offset is rejected. The value is normalized to UTC with second precision on write, so `2024-01-15T11:30:00+02:00` is stored and returned as `2024-01-15T09:30:00Z`, and any fractional seconds are dropped.
	Type      ContactPropertyType `json:"type"`
	UpdatedAt *time.Time          `json:"updated_at,omitempty"`
}

ContactProperty defines model for ContactProperty.

type ContactPropertyCreateRequest added in v0.4.0

type ContactPropertyCreateRequest struct {
	// FallbackValue Default used when a contact has no value for this property and the template does not supply an inline fallback. A string, number, boolean, or RFC 3339 datetime matching the declared type (strings up to `500` characters), or `null` for no fallback; a value of another type returns a validation error.
	FallbackValue interface{} `json:"fallback_value,omitempty"`

	// Key The property key, used as the key in contact data and as the attribute in the `bird.contact.<key>` broadcast template variable. Lowercase letters, digits, and underscores, starting with a letter. Cannot be changed after creation.
	Key string `json:"key"`

	// Type The value type every contact must use for a property. Cannot be changed after creation.
	//
	// `datetime` values are RFC 3339 timestamps with an explicit offset. Examples include `2024-01-15T09:30:00Z` and `2024-01-15T11:30:00+02:00`. A bare date or a time with no offset is rejected. The value is normalized to UTC with second precision on write, so `2024-01-15T11:30:00+02:00` is stored and returned as `2024-01-15T09:30:00Z`, and any fractional seconds are dropped.
	Type ContactPropertyType `json:"type"`
}

ContactPropertyCreateRequest defines model for ContactPropertyCreateRequest.

type ContactPropertyID added in v0.4.0

type ContactPropertyID = string

ContactPropertyID defines model for ContactPropertyID.

type ContactPropertyList added in v0.4.0

type ContactPropertyList struct {
	// Data Page of contact property objects.
	Data []ContactProperty `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

ContactPropertyList defines model for ContactPropertyList.

type ContactPropertyType added in v0.4.0

type ContactPropertyType string

ContactPropertyType The value type every contact must use for a property. Cannot be changed after creation.

`datetime` values are RFC 3339 timestamps with an explicit offset. Examples include `2024-01-15T09:30:00Z` and `2024-01-15T11:30:00+02:00`. A bare date or a time with no offset is rejected. The value is normalized to UTC with second precision on write, so `2024-01-15T11:30:00+02:00` is stored and returned as `2024-01-15T09:30:00Z`, and any fractional seconds are dropped.

const (
	ContactPropertyTypeBoolean  ContactPropertyType = "boolean"
	ContactPropertyTypeDatetime ContactPropertyType = "datetime"
	ContactPropertyTypeNumber   ContactPropertyType = "number"
	ContactPropertyTypeString   ContactPropertyType = "string"
)

Defines values for ContactPropertyType.

func (ContactPropertyType) Valid added in v0.4.0

func (e ContactPropertyType) Valid() bool

Valid indicates whether the value is a known member of the ContactPropertyType enum.

type ContactPropertyUpdateRequest added in v0.4.0

type ContactPropertyUpdateRequest struct {
	// FallbackValue Default used when a contact has no value for this property and the template does not supply an inline fallback. A string, number, boolean, or RFC 3339 datetime matching the declared type (strings up to `500` characters); a value of another type returns a validation error. Set to `null` to remove the fallback.
	FallbackValue interface{} `json:"fallback_value,omitempty"`
}

ContactPropertyUpdateRequest defines model for ContactPropertyUpdateRequest.

type ContactUpdateRequest added in v0.4.0

type ContactUpdateRequest struct {
	// Data Custom property values to merge into the contact's existing data. Supplied keys are set, keys with a `null` value are removed, and omitted keys remain unchanged. Each key must be an active contact property. Each value must match the property's declared type: string, number, boolean, or RFC 3339 datetime. Strings can contain up to `500` characters. An unregistered or archived key returns a validation error. The serialized result is limited to 2 KB.
	Data *map[string]interface{} `json:"data,omitempty"`

	// Email New email address for the contact. Trimmed and lowercased before it is stored and checked for uniqueness. Must not be in use by another contact in the workspace. Omit to keep the current address; set to `null` to remove it, as long as the contact keeps at least one identifier.
	Email nullable.Nullable[string] `json:"email,omitempty"`

	// ExternalId Your own identifier for this contact. Unique within the workspace when set. Set to `null` to clear.
	ExternalId nullable.Nullable[string] `json:"external_id,omitempty"`

	// FirstName The contact's first name. Set to `null` to clear.
	FirstName nullable.Nullable[string] `json:"first_name,omitempty"`

	// LastName The contact's last name. Set to `null` to clear.
	LastName nullable.Nullable[string] `json:"last_name,omitempty"`

	// PhoneNumber New phone number for the contact, in E.164 format with the leading `+` and country code. Spaces and punctuation are accepted and stripped. Stored in its canonical form, which may differ from what you send, and unique within the workspace. Omit to keep the current number; set to `null` to remove it, as long as the contact keeps at least one identifier. An empty string behaves as `null`.
	PhoneNumber nullable.Nullable[string] `json:"phone_number,omitempty"`
}

ContactUpdateRequest defines model for ContactUpdateRequest.

type ContactUpsertEntry added in v0.24.0

type ContactUpsertEntry struct {
	// Email Email address this entry carried, trimmed and lowercased. `null` when the entry carried none.
	Email *string `json:"email"`

	// ExternalId Your own identifier for this entry, when the entry supplied one.
	ExternalId *string `json:"external_id"`

	// PhoneNumber Phone number this entry carried, in its normalized international form. `null` when the entry carried none. A row rejected for an invalid phone echoes the value as sent, trimmed, since no normalized form exists.
	PhoneNumber *string `json:"phone_number"`
}

ContactUpsertEntry The identifiers a batch entry supplied, in the normalized form used for matching. A field is `null` when the entry did not include it. These values identify the request entry and do not represent the contact's current state.

type ContactUpsertError added in v0.4.0

type ContactUpsertError struct {
	// Code Specific error code for this entry, from the same catalog as the top-level error `code`. `E04058` means the entry matched two contacts and requires review. `E04055` means the phone number belongs to another contact and you must retry with different data. Both are `conflict_error` errors; the code distinguishes them.
	Code string `json:"code"`

	// Message Human-readable explanation of why this entry failed.
	Message string `json:"message"`

	// Type Machine-readable error category for this entry, such as `validation_error` or `conflict_error`, in the same vocabulary as the top-level error `type`. New categories may be added over time, so treat unrecognized values as a generic failure.
	Type string `json:"type"`
}

ContactUpsertError defines model for ContactUpsertError.

type ContactUpsertRequest added in v0.4.0

type ContactUpsertRequest struct {
	// AudienceIds Audiences every contact in this request is added to. Contacts that are already members are left in place. Every listed audience must exist, or the whole request fails with a validation error and nothing is written.
	AudienceIds *[]AudienceID `json:"audience_ids,omitempty"`

	// Contacts Contacts to create or update, matched automatically against every identifier an entry supplies. Existing contacts are updated with the fields each entry supplies; omitted fields keep their stored values, so an entry can set fields but never clear them. Unmatched entries create contacts.
	Contacts []ContactCreateRequest `json:"contacts"`

	// DataMode How a supplied `data` object is applied to an existing contact. The default `merge` mode adds the supplied keys to the contact's stored custom values. A key with a `null` value deletes that key. The `replace` mode overwrites the whole stored `data` map with the supplied map. In both modes a contact that omits `data` keeps its stored values unchanged, so an import that touches one attribute never wipes the others.
	DataMode *ContactUpsertRequestDataMode `json:"data_mode,omitempty"`

	// MatchOn A contact identifier a batch entry can be matched on.
	MatchOn *ContactMatchKey `json:"match_on,omitempty"`
}

ContactUpsertRequest defines model for ContactUpsertRequest.

type ContactUpsertRequestDataMode added in v0.4.0

type ContactUpsertRequestDataMode string

ContactUpsertRequestDataMode How a supplied `data` object is applied to an existing contact. The default `merge` mode adds the supplied keys to the contact's stored custom values. A key with a `null` value deletes that key. The `replace` mode overwrites the whole stored `data` map with the supplied map. In both modes a contact that omits `data` keeps its stored values unchanged, so an import that touches one attribute never wipes the others.

const (
	Merge   ContactUpsertRequestDataMode = "merge"
	Replace ContactUpsertRequestDataMode = "replace"
)

Defines values for ContactUpsertRequestDataMode.

func (ContactUpsertRequestDataMode) Valid added in v0.4.0

Valid indicates whether the value is a known member of the ContactUpsertRequestDataMode enum.

type ContactUpsertResult added in v0.4.0

type ContactUpsertResult struct {
	// Data One entry per contact in the request, in submission order.
	Data []ContactUpsertResultItem `json:"data"`
}

ContactUpsertResult defines model for ContactUpsertResult.

type ContactUpsertResultItem added in v0.4.0

type ContactUpsertResultItem struct {
	ContactId *ContactID `json:"contact_id,omitempty"`

	// Entry The identifiers a batch entry supplied, in the normalized form used for matching. A field is `null` when the entry did not include it. These values identify the request entry and do not represent the contact's current state.
	Entry ContactUpsertEntry  `json:"entry"`
	Error *ContactUpsertError `json:"error,omitempty"`

	// MatchedOn Which identifier matched a batch entry to an existing contact. `null` when the entry created a new contact.
	MatchedOn *ContactMatchedOn `json:"matched_on"`

	// Status What happened to this contact.
	//
	// - `created`: a new contact was created for the address.
	// - `updated`: an existing contact with the address was updated.
	// - `failed`: the entry was rejected and `error` explains why. A failed entry
	//   does not affect the other entries in the request.
	Status ContactUpsertResultItemStatus `json:"status"`
}

ContactUpsertResultItem defines model for ContactUpsertResultItem.

type ContactUpsertResultItemStatus added in v0.4.0

type ContactUpsertResultItemStatus string

ContactUpsertResultItemStatus What happened to this contact.

  • `created`: a new contact was created for the address.
  • `updated`: an existing contact with the address was updated.
  • `failed`: the entry was rejected and `error` explains why. A failed entry does not affect the other entries in the request.
const (
	ContactUpsertResultItemStatusCreated ContactUpsertResultItemStatus = "created"
	ContactUpsertResultItemStatusFailed  ContactUpsertResultItemStatus = "failed"
	ContactUpsertResultItemStatusUpdated ContactUpsertResultItemStatus = "updated"
)

Defines values for ContactUpsertResultItemStatus.

func (ContactUpsertResultItemStatus) Valid added in v0.4.0

Valid indicates whether the value is a known member of the ContactUpsertResultItemStatus enum.

type CountryCode added in v0.31.0

type CountryCode = string

CountryCode ISO 3166-1 alpha-2 country code.

type CreateAudienceJSONRequestBody added in v0.4.0

type CreateAudienceJSONRequestBody = AudienceCreateRequest

CreateAudienceJSONRequestBody defines body for CreateAudience for application/json ContentType.

type CreateAudienceParams added in v0.4.0

type CreateAudienceParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateAudienceParams defines parameters for CreateAudience.

type CreateAudienceResponse added in v0.4.0

type CreateAudienceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *Audience
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateAudienceResponse added in v0.4.0

func ParseCreateAudienceResponse(rsp *http.Response) (*CreateAudienceResponse, error)

ParseCreateAudienceResponse parses an HTTP response from a CreateAudienceWithResponse call

func (CreateAudienceResponse) ContentType added in v0.4.0

func (r CreateAudienceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateAudienceResponse) Status added in v0.4.0

func (r CreateAudienceResponse) Status() string

Status returns HTTPResponse.Status

func (CreateAudienceResponse) StatusCode added in v0.4.0

func (r CreateAudienceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateContactBatchJSONRequestBody added in v0.4.0

type CreateContactBatchJSONRequestBody = ContactUpsertRequest

CreateContactBatchJSONRequestBody defines body for CreateContactBatch for application/json ContentType.

type CreateContactBatchParams added in v0.4.0

type CreateContactBatchParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateContactBatchParams defines parameters for CreateContactBatch.

type CreateContactBatchResponse added in v0.4.0

type CreateContactBatchResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactUpsertResult
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateContactBatchResponse added in v0.4.0

func ParseCreateContactBatchResponse(rsp *http.Response) (*CreateContactBatchResponse, error)

ParseCreateContactBatchResponse parses an HTTP response from a CreateContactBatchWithResponse call

func (CreateContactBatchResponse) ContentType added in v0.4.0

func (r CreateContactBatchResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateContactBatchResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (CreateContactBatchResponse) StatusCode added in v0.4.0

func (r CreateContactBatchResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateContactJSONRequestBody added in v0.4.0

type CreateContactJSONRequestBody = ContactCreateRequest

CreateContactJSONRequestBody defines body for CreateContact for application/json ContentType.

type CreateContactParams added in v0.4.0

type CreateContactParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateContactParams defines parameters for CreateContact.

type CreateContactPropertyJSONRequestBody added in v0.4.0

type CreateContactPropertyJSONRequestBody = ContactPropertyCreateRequest

CreateContactPropertyJSONRequestBody defines body for CreateContactProperty for application/json ContentType.

type CreateContactPropertyParams added in v0.4.0

type CreateContactPropertyParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateContactPropertyParams defines parameters for CreateContactProperty.

type CreateContactPropertyResponse added in v0.4.0

type CreateContactPropertyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *ContactProperty
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateContactPropertyResponse added in v0.4.0

func ParseCreateContactPropertyResponse(rsp *http.Response) (*CreateContactPropertyResponse, error)

ParseCreateContactPropertyResponse parses an HTTP response from a CreateContactPropertyWithResponse call

func (CreateContactPropertyResponse) ContentType added in v0.4.0

func (r CreateContactPropertyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateContactPropertyResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (CreateContactPropertyResponse) StatusCode added in v0.4.0

func (r CreateContactPropertyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateContactResponse added in v0.4.0

type CreateContactResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *Contact
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateContactResponse added in v0.4.0

func ParseCreateContactResponse(rsp *http.Response) (*CreateContactResponse, error)

ParseCreateContactResponse parses an HTTP response from a CreateContactWithResponse call

func (CreateContactResponse) ContentType added in v0.4.0

func (r CreateContactResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateContactResponse) Status added in v0.4.0

func (r CreateContactResponse) Status() string

Status returns HTTPResponse.Status

func (CreateContactResponse) StatusCode added in v0.4.0

func (r CreateContactResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateDomainJSONRequestBody added in v0.8.0

type CreateDomainJSONRequestBody = DomainCreate

CreateDomainJSONRequestBody defines body for CreateDomain for application/json ContentType.

type CreateDomainParams added in v0.8.0

type CreateDomainParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateDomainParams defines parameters for CreateDomain.

type CreateDomainResponse added in v0.8.0

type CreateDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *Domain
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateDomainResponse added in v0.8.0

func ParseCreateDomainResponse(rsp *http.Response) (*CreateDomainResponse, error)

ParseCreateDomainResponse parses an HTTP response from a CreateDomainWithResponse call

func (CreateDomainResponse) ContentType added in v0.8.0

func (r CreateDomainResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateDomainResponse) Status added in v0.8.0

func (r CreateDomainResponse) Status() string

Status returns HTTPResponse.Status

func (CreateDomainResponse) StatusCode added in v0.8.0

func (r CreateDomainResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateEmailLookupJSONRequestBody added in v0.31.0

type CreateEmailLookupJSONRequestBody = EmailLookupRequest

CreateEmailLookupJSONRequestBody defines body for CreateEmailLookup for application/json ContentType.

type CreateEmailLookupParams added in v0.31.0

type CreateEmailLookupParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateEmailLookupParams defines parameters for CreateEmailLookup.

type CreateEmailLookupResponse added in v0.31.0

type CreateEmailLookupResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailLookup
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseCreateEmailLookupResponse added in v0.31.0

func ParseCreateEmailLookupResponse(rsp *http.Response) (*CreateEmailLookupResponse, error)

ParseCreateEmailLookupResponse parses an HTTP response from a CreateEmailLookupWithResponse call

func (CreateEmailLookupResponse) ContentType added in v0.31.0

func (r CreateEmailLookupResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateEmailLookupResponse) Status added in v0.31.0

func (r CreateEmailLookupResponse) Status() string

Status returns HTTPResponse.Status

func (CreateEmailLookupResponse) StatusCode added in v0.31.0

func (r CreateEmailLookupResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateEmailMessageBatchJSONRequestBody added in v0.2.0

type CreateEmailMessageBatchJSONRequestBody = EmailMessageBatchRequest

CreateEmailMessageBatchJSONRequestBody defines body for CreateEmailMessageBatch for application/json ContentType.

type CreateEmailMessageBatchParams added in v0.2.0

type CreateEmailMessageBatchParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateEmailMessageBatchParams defines parameters for CreateEmailMessageBatch.

type CreateEmailMessageBatchResponse added in v0.2.0

type CreateEmailMessageBatchResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *EmailMessageBatchResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON413      *PayloadTooLarge
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateEmailMessageBatchResponse added in v0.2.0

func ParseCreateEmailMessageBatchResponse(rsp *http.Response) (*CreateEmailMessageBatchResponse, error)

ParseCreateEmailMessageBatchResponse parses an HTTP response from a CreateEmailMessageBatchWithResponse call

func (CreateEmailMessageBatchResponse) ContentType added in v0.2.0

func (r CreateEmailMessageBatchResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateEmailMessageBatchResponse) Status added in v0.2.0

Status returns HTTPResponse.Status

func (CreateEmailMessageBatchResponse) StatusCode added in v0.2.0

func (r CreateEmailMessageBatchResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateEmailMessageJSONRequestBody

type CreateEmailMessageJSONRequestBody = EmailMessageSendRequest

CreateEmailMessageJSONRequestBody defines body for CreateEmailMessage for application/json ContentType.

type CreateEmailMessageParams

type CreateEmailMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateEmailMessageParams defines parameters for CreateEmailMessage.

type CreateEmailMessageResponse

type CreateEmailMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *EmailMessage
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON413      *PayloadTooLarge
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateEmailMessageResponse

func ParseCreateEmailMessageResponse(rsp *http.Response) (*CreateEmailMessageResponse, error)

ParseCreateEmailMessageResponse parses an HTTP response from a CreateEmailMessageWithResponse call

func (CreateEmailMessageResponse) ContentType

func (r CreateEmailMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateEmailMessageResponse) Status

Status returns HTTPResponse.Status

func (CreateEmailMessageResponse) StatusCode

func (r CreateEmailMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateMailboxJSONRequestBody added in v0.12.0

type CreateMailboxJSONRequestBody = MailboxCreate

CreateMailboxJSONRequestBody defines body for CreateMailbox for application/json ContentType.

type CreateMailboxMessageJSONRequestBody added in v0.12.0

type CreateMailboxMessageJSONRequestBody = EmailMailboxComposeRequest

CreateMailboxMessageJSONRequestBody defines body for CreateMailboxMessage for application/json ContentType.

type CreateMailboxMessageParams added in v0.12.0

type CreateMailboxMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateMailboxMessageParams defines parameters for CreateMailboxMessage.

type CreateMailboxMessageResponse added in v0.12.0

type CreateMailboxMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *EmailThreadMessage
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateMailboxMessageResponse added in v0.12.0

func ParseCreateMailboxMessageResponse(rsp *http.Response) (*CreateMailboxMessageResponse, error)

ParseCreateMailboxMessageResponse parses an HTTP response from a CreateMailboxMessageWithResponse call

func (CreateMailboxMessageResponse) ContentType added in v0.12.0

func (r CreateMailboxMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateMailboxMessageResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (CreateMailboxMessageResponse) StatusCode added in v0.12.0

func (r CreateMailboxMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateMailboxParams added in v0.12.0

type CreateMailboxParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateMailboxParams defines parameters for CreateMailbox.

type CreateMailboxReceiveRuleJSONRequestBody added in v0.12.0

type CreateMailboxReceiveRuleJSONRequestBody = ReceiveRuleCreate

CreateMailboxReceiveRuleJSONRequestBody defines body for CreateMailboxReceiveRule for application/json ContentType.

type CreateMailboxReceiveRuleParams added in v0.12.0

type CreateMailboxReceiveRuleParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateMailboxReceiveRuleParams defines parameters for CreateMailboxReceiveRule.

type CreateMailboxReceiveRuleResponse added in v0.12.0

type CreateMailboxReceiveRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *ReceiveRule
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateMailboxReceiveRuleResponse added in v0.12.0

func ParseCreateMailboxReceiveRuleResponse(rsp *http.Response) (*CreateMailboxReceiveRuleResponse, error)

ParseCreateMailboxReceiveRuleResponse parses an HTTP response from a CreateMailboxReceiveRuleWithResponse call

func (CreateMailboxReceiveRuleResponse) ContentType added in v0.12.0

func (r CreateMailboxReceiveRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateMailboxReceiveRuleResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (CreateMailboxReceiveRuleResponse) StatusCode added in v0.12.0

func (r CreateMailboxReceiveRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateMailboxResponse added in v0.12.0

type CreateMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *Mailbox
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateMailboxResponse added in v0.12.0

func ParseCreateMailboxResponse(rsp *http.Response) (*CreateMailboxResponse, error)

ParseCreateMailboxResponse parses an HTTP response from a CreateMailboxWithResponse call

func (CreateMailboxResponse) ContentType added in v0.12.0

func (r CreateMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateMailboxResponse) Status added in v0.12.0

func (r CreateMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (CreateMailboxResponse) StatusCode added in v0.12.0

func (r CreateMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateNumbersOrderJSONRequestBody added in v0.34.0

type CreateNumbersOrderJSONRequestBody = NumbersOrderCreate

CreateNumbersOrderJSONRequestBody defines body for CreateNumbersOrder for application/json ContentType.

type CreateNumbersOrderParams added in v0.34.0

type CreateNumbersOrderParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateNumbersOrderParams defines parameters for CreateNumbersOrder.

type CreateNumbersOrderResponse added in v0.34.0

type CreateNumbersOrderResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *NumbersOrder
	JSON202      *NumbersOrder
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON412      *PreconditionFailed
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateNumbersOrderResponse added in v0.34.0

func ParseCreateNumbersOrderResponse(rsp *http.Response) (*CreateNumbersOrderResponse, error)

ParseCreateNumbersOrderResponse parses an HTTP response from a CreateNumbersOrderWithResponse call

func (CreateNumbersOrderResponse) ContentType added in v0.34.0

func (r CreateNumbersOrderResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateNumbersOrderResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (CreateNumbersOrderResponse) StatusCode added in v0.34.0

func (r CreateNumbersOrderResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreatePhoneNumberLookupJSONRequestBody added in v0.31.0

type CreatePhoneNumberLookupJSONRequestBody = PhoneNumberLookupRequest

CreatePhoneNumberLookupJSONRequestBody defines body for CreatePhoneNumberLookup for application/json ContentType.

type CreatePhoneNumberLookupParams added in v0.31.0

type CreatePhoneNumberLookupParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreatePhoneNumberLookupParams defines parameters for CreatePhoneNumberLookup.

type CreatePhoneNumberLookupResponse added in v0.31.0

type CreatePhoneNumberLookupResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *PhoneNumberLookup
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseCreatePhoneNumberLookupResponse added in v0.31.0

func ParseCreatePhoneNumberLookupResponse(rsp *http.Response) (*CreatePhoneNumberLookupResponse, error)

ParseCreatePhoneNumberLookupResponse parses an HTTP response from a CreatePhoneNumberLookupWithResponse call

func (CreatePhoneNumberLookupResponse) ContentType added in v0.31.0

func (r CreatePhoneNumberLookupResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreatePhoneNumberLookupResponse) Status added in v0.31.0

Status returns HTTPResponse.Status

func (CreatePhoneNumberLookupResponse) StatusCode added in v0.31.0

func (r CreatePhoneNumberLookupResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreatePreferenceJSONRequestBody added in v0.41.0

type CreatePreferenceJSONRequestBody = PreferenceCreate

CreatePreferenceJSONRequestBody defines body for CreatePreference for application/json ContentType.

type CreatePreferenceParams added in v0.41.0

type CreatePreferenceParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreatePreferenceParams defines parameters for CreatePreference.

type CreatePreferenceResponse added in v0.41.0

type CreatePreferenceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *PreferenceWriteResult
	JSON201      *PreferenceWriteResult
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreatePreferenceResponse added in v0.41.0

func ParseCreatePreferenceResponse(rsp *http.Response) (*CreatePreferenceResponse, error)

ParseCreatePreferenceResponse parses an HTTP response from a CreatePreferenceWithResponse call

func (CreatePreferenceResponse) ContentType added in v0.41.0

func (r CreatePreferenceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreatePreferenceResponse) Status added in v0.41.0

func (r CreatePreferenceResponse) Status() string

Status returns HTTPResponse.Status

func (CreatePreferenceResponse) StatusCode added in v0.41.0

func (r CreatePreferenceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateSMSKeywordRuleJSONRequestBody added in v0.33.0

type CreateSMSKeywordRuleJSONRequestBody = SMSKeywordRuleCreate

CreateSMSKeywordRuleJSONRequestBody defines body for CreateSMSKeywordRule for application/json ContentType.

type CreateSMSKeywordRuleParams added in v0.33.0

type CreateSMSKeywordRuleParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateSMSKeywordRuleParams defines parameters for CreateSMSKeywordRule.

type CreateSMSKeywordRuleResponse added in v0.33.0

type CreateSMSKeywordRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *SMSKeywordRule
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateSMSKeywordRuleResponse added in v0.33.0

func ParseCreateSMSKeywordRuleResponse(rsp *http.Response) (*CreateSMSKeywordRuleResponse, error)

ParseCreateSMSKeywordRuleResponse parses an HTTP response from a CreateSMSKeywordRuleWithResponse call

func (CreateSMSKeywordRuleResponse) ContentType added in v0.33.0

func (r CreateSMSKeywordRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateSMSKeywordRuleResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (CreateSMSKeywordRuleResponse) StatusCode added in v0.33.0

func (r CreateSMSKeywordRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateSMSMessageBatchJSONRequestBody added in v0.3.0

type CreateSMSMessageBatchJSONRequestBody = SMSMessageBatchRequest

CreateSMSMessageBatchJSONRequestBody defines body for CreateSMSMessageBatch for application/json ContentType.

type CreateSMSMessageBatchParams added in v0.3.0

type CreateSMSMessageBatchParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateSMSMessageBatchParams defines parameters for CreateSMSMessageBatch.

type CreateSMSMessageBatchResponse added in v0.3.0

type CreateSMSMessageBatchResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *SMSMessageBatchResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateSMSMessageBatchResponse added in v0.3.0

func ParseCreateSMSMessageBatchResponse(rsp *http.Response) (*CreateSMSMessageBatchResponse, error)

ParseCreateSMSMessageBatchResponse parses an HTTP response from a CreateSMSMessageBatchWithResponse call

func (CreateSMSMessageBatchResponse) ContentType added in v0.3.0

func (r CreateSMSMessageBatchResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateSMSMessageBatchResponse) Status added in v0.3.0

Status returns HTTPResponse.Status

func (CreateSMSMessageBatchResponse) StatusCode added in v0.3.0

func (r CreateSMSMessageBatchResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateSMSMessageJSONRequestBody added in v0.3.0

type CreateSMSMessageJSONRequestBody = SMSMessageSendRequest

CreateSMSMessageJSONRequestBody defines body for CreateSMSMessage for application/json ContentType.

type CreateSMSMessageParams added in v0.3.0

type CreateSMSMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateSMSMessageParams defines parameters for CreateSMSMessage.

type CreateSMSMessageResponse added in v0.3.0

type CreateSMSMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *SMSMessage
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateSMSMessageResponse added in v0.3.0

func ParseCreateSMSMessageResponse(rsp *http.Response) (*CreateSMSMessageResponse, error)

ParseCreateSMSMessageResponse parses an HTTP response from a CreateSMSMessageWithResponse call

func (CreateSMSMessageResponse) ContentType added in v0.3.0

func (r CreateSMSMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateSMSMessageResponse) Status added in v0.3.0

func (r CreateSMSMessageResponse) Status() string

Status returns HTTPResponse.Status

func (CreateSMSMessageResponse) StatusCode added in v0.3.0

func (r CreateSMSMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateSMSSuppressionJSONRequestBody added in v0.33.0

type CreateSMSSuppressionJSONRequestBody = SMSSuppressionCreate

CreateSMSSuppressionJSONRequestBody defines body for CreateSMSSuppression for application/json ContentType.

type CreateSMSSuppressionParams added in v0.33.0

type CreateSMSSuppressionParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateSMSSuppressionParams defines parameters for CreateSMSSuppression.

type CreateSMSSuppressionResponse added in v0.33.0

type CreateSMSSuppressionResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSSuppression
	JSON201      *SMSSuppression
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateSMSSuppressionResponse added in v0.33.0

func ParseCreateSMSSuppressionResponse(rsp *http.Response) (*CreateSMSSuppressionResponse, error)

ParseCreateSMSSuppressionResponse parses an HTTP response from a CreateSMSSuppressionWithResponse call

func (CreateSMSSuppressionResponse) ContentType added in v0.33.0

func (r CreateSMSSuppressionResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateSMSSuppressionResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (CreateSMSSuppressionResponse) StatusCode added in v0.33.0

func (r CreateSMSSuppressionResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateVerificationCheckJSONRequestBody added in v0.7.0

type CreateVerificationCheckJSONRequestBody = VerificationCheckRequest

CreateVerificationCheckJSONRequestBody defines body for CreateVerificationCheck for application/json ContentType.

type CreateVerificationCheckParams added in v0.7.0

type CreateVerificationCheckParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateVerificationCheckParams defines parameters for CreateVerificationCheck.

type CreateVerificationCheckResponse added in v0.7.0

type CreateVerificationCheckResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *VerificationCheckResult
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseCreateVerificationCheckResponse added in v0.7.0

func ParseCreateVerificationCheckResponse(rsp *http.Response) (*CreateVerificationCheckResponse, error)

ParseCreateVerificationCheckResponse parses an HTTP response from a CreateVerificationCheckWithResponse call

func (CreateVerificationCheckResponse) ContentType added in v0.7.0

func (r CreateVerificationCheckResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateVerificationCheckResponse) Status added in v0.7.0

Status returns HTTPResponse.Status

func (CreateVerificationCheckResponse) StatusCode added in v0.7.0

func (r CreateVerificationCheckResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateVerificationJSONRequestBody added in v0.7.0

type CreateVerificationJSONRequestBody = VerificationCreateRequest

CreateVerificationJSONRequestBody defines body for CreateVerification for application/json ContentType.

type CreateVerificationNextChannelJSONRequestBody added in v0.27.0

type CreateVerificationNextChannelJSONRequestBody = VerificationNextChannelRequest

CreateVerificationNextChannelJSONRequestBody defines body for CreateVerificationNextChannel for application/json ContentType.

type CreateVerificationNextChannelParams added in v0.27.0

type CreateVerificationNextChannelParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateVerificationNextChannelParams defines parameters for CreateVerificationNextChannel.

type CreateVerificationNextChannelResponse added in v0.27.0

type CreateVerificationNextChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Verification
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseCreateVerificationNextChannelResponse added in v0.27.0

func ParseCreateVerificationNextChannelResponse(rsp *http.Response) (*CreateVerificationNextChannelResponse, error)

ParseCreateVerificationNextChannelResponse parses an HTTP response from a CreateVerificationNextChannelWithResponse call

func (CreateVerificationNextChannelResponse) ContentType added in v0.27.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateVerificationNextChannelResponse) Status added in v0.27.0

Status returns HTTPResponse.Status

func (CreateVerificationNextChannelResponse) StatusCode added in v0.27.0

StatusCode returns HTTPResponse.StatusCode

type CreateVerificationParams added in v0.7.0

type CreateVerificationParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateVerificationParams defines parameters for CreateVerification.

type CreateVerificationResponse added in v0.7.0

type CreateVerificationResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Verification
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseCreateVerificationResponse added in v0.7.0

func ParseCreateVerificationResponse(rsp *http.Response) (*CreateVerificationResponse, error)

ParseCreateVerificationResponse parses an HTTP response from a CreateVerificationWithResponse call

func (CreateVerificationResponse) ContentType added in v0.7.0

func (r CreateVerificationResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateVerificationResponse) Status added in v0.7.0

Status returns HTTPResponse.Status

func (CreateVerificationResponse) StatusCode added in v0.7.0

func (r CreateVerificationResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateWhatsAppMessageJSONRequestBody added in v0.23.0

type CreateWhatsAppMessageJSONRequestBody = WhatsAppMessageSendRequest

CreateWhatsAppMessageJSONRequestBody defines body for CreateWhatsAppMessage for application/json ContentType.

type CreateWhatsAppMessageParams added in v0.23.0

type CreateWhatsAppMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

CreateWhatsAppMessageParams defines parameters for CreateWhatsAppMessage.

type CreateWhatsAppMessageResponse added in v0.23.0

type CreateWhatsAppMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *WhatsAppMessage
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseCreateWhatsAppMessageResponse added in v0.23.0

func ParseCreateWhatsAppMessageResponse(rsp *http.Response) (*CreateWhatsAppMessageResponse, error)

ParseCreateWhatsAppMessageResponse parses an HTTP response from a CreateWhatsAppMessageWithResponse call

func (CreateWhatsAppMessageResponse) ContentType added in v0.23.0

func (r CreateWhatsAppMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateWhatsAppMessageResponse) Status added in v0.23.0

Status returns HTTPResponse.Status

func (CreateWhatsAppMessageResponse) StatusCode added in v0.23.0

func (r CreateWhatsAppMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreatedAfter

type CreatedAfter = time.Time

CreatedAfter defines model for CreatedAfter.

type CreatedBefore

type CreatedBefore = time.Time

CreatedBefore defines model for CreatedBefore.

type CurrencyCode added in v0.3.0

type CurrencyCode = string

CurrencyCode ISO 4217 three-letter currency code.

type DNSRecord added in v0.7.4

type DNSRecord struct {
	// Error Human-readable detail for a failed check on this record: what was found in DNS and why it did not match. `null` when the record is verified or not yet checked.
	Error *string `json:"error,omitempty"`

	// Host The fully qualified hostname for this record (for example, `bird1._domainkey.mail.acme.com`).
	Host string `json:"host"`

	// Name The record name: the part you enter in your DNS provider's `Name` or `Host` field, relative to the DNS zone the record belongs in (your registered domain). For a sending domain `mail.acme.com` the DKIM record name is `bird1._domainkey.mail`, entered in the `acme.com` zone. `@` for records at the zone apex.
	Name string `json:"name"`

	// Optional Whether this record can be skipped. An optional record enables extra functionality (branded tracking, or receiving) rather than sending, so publish one only when you want what it enables. The `inbound_mx` records are optional until you enable receiving on the domain, and publishing one before then changes where mail to the domain is delivered.
	Optional *bool `json:"optional,omitempty"`

	// Purpose What this record is for.
	//
	// - `dkim`: signs outbound mail and proves domain ownership.
	// - `return_path`: identifies the return-path (bounce) CNAME for sending.
	// - `tracking`: identifies the optional branded open/click tracking CNAME.
	// - `inbound_mx`: identifies the MX record routing mail to us for receiving.
	//   Always present wherever inbound is available, as a regional reference,
	//   regardless of whether receiving is enabled; publishing it does not
	//   enable receiving on its own: see `DomainUpdate.inbound`. It is
	//   `optional` until receiving is enabled, and publishing it before then
	//   is destructive: on a domain at the zone apex it replaces the MX
	//   records that carry the domain's existing mail.
	// - `dmarc`: identifies the advisory DMARC policy record.
	Purpose DNSRecordPurpose `json:"purpose"`

	// SafeToRemove Only set on `deprecated` records: `true` once the record is no longer referenced by in-flight mail or live tracked links and can be deleted from your DNS. `null` on `active` and `pending` records.
	SafeToRemove *bool `json:"safe_to_remove,omitempty"`

	// State Lifecycle state of this record.
	//
	// - `active`: the record backs the domain's current configuration.
	// - `pending`: the record belongs to a staged configuration change;
	//   publish it to complete the change.
	// - `deprecated`: the record belonged to a previous configuration.
	//   Keep it in DNS until `safe_to_remove` is `true`; in-flight mail and
	//   previously sent tracked links may still resolve through it.
	State *DNSRecordState `json:"state,omitempty"`

	// Status Verification status of this record's most recent DNS check.
	//
	// - `pending`: the record has not verified yet; publish it (or correct it)
	//   and it verifies on the next check.
	// - `verified`: the most recent check matched the expected value.
	// - `warning`: the record verified before and a recent check no longer
	//   matched, but it is still within the grace period. Sending is not yet
	//   affected; fix the record before the grace period ends to avoid it
	//   being blocked.
	// - `failed`: the record verified before but later checks kept failing
	//   past the grace period; the configuration has regressed and needs
	//   attention.
	Status *DNSRecordStatus `json:"status,omitempty"`

	// Type The DNS record type to publish, determined by `purpose`.
	//
	// - `TXT`: used for the `dkim` and `dmarc` purposes.
	// - `CNAME`: used for the `return_path` and `tracking` purposes.
	// - `MX`: used for the `inbound_mx` purpose.
	Type DNSRecordType `json:"type"`

	// Value The value to publish, as entered in your DNS provider's `Value` or `Content` field. For `TXT`, enter the full record content. For `CNAME`, enter the target hostname. For `MX`, enter the priority followed by the mail server hostname.
	Value string `json:"value"`
}

DNSRecord defines model for DNSRecord.

type DNSRecordPurpose added in v0.7.4

type DNSRecordPurpose string

DNSRecordPurpose What this record is for.

  • `dkim`: signs outbound mail and proves domain ownership.
  • `return_path`: identifies the return-path (bounce) CNAME for sending.
  • `tracking`: identifies the optional branded open/click tracking CNAME.
  • `inbound_mx`: identifies the MX record routing mail to us for receiving. Always present wherever inbound is available, as a regional reference, regardless of whether receiving is enabled; publishing it does not enable receiving on its own: see `DomainUpdate.inbound`. It is `optional` until receiving is enabled, and publishing it before then is destructive: on a domain at the zone apex it replaces the MX records that carry the domain's existing mail.
  • `dmarc`: identifies the advisory DMARC policy record.
const (
	Dkim       DNSRecordPurpose = "dkim"
	Dmarc      DNSRecordPurpose = "dmarc"
	InboundMx  DNSRecordPurpose = "inbound_mx"
	ReturnPath DNSRecordPurpose = "return_path"
	Tracking   DNSRecordPurpose = "tracking"
)

Defines values for DNSRecordPurpose.

func (DNSRecordPurpose) Valid added in v0.7.4

func (e DNSRecordPurpose) Valid() bool

Valid indicates whether the value is a known member of the DNSRecordPurpose enum.

type DNSRecordState added in v0.7.4

type DNSRecordState string

DNSRecordState Lifecycle state of this record.

  • `active`: the record backs the domain's current configuration.
  • `pending`: the record belongs to a staged configuration change; publish it to complete the change.
  • `deprecated`: the record belonged to a previous configuration. Keep it in DNS until `safe_to_remove` is `true`; in-flight mail and previously sent tracked links may still resolve through it.
const (
	DNSRecordStateActive     DNSRecordState = "active"
	DNSRecordStateDeprecated DNSRecordState = "deprecated"
	DNSRecordStatePending    DNSRecordState = "pending"
)

Defines values for DNSRecordState.

func (DNSRecordState) Valid added in v0.7.4

func (e DNSRecordState) Valid() bool

Valid indicates whether the value is a known member of the DNSRecordState enum.

type DNSRecordStatus added in v0.7.4

type DNSRecordStatus string

DNSRecordStatus Verification status of this record's most recent DNS check.

  • `pending`: the record has not verified yet; publish it (or correct it) and it verifies on the next check.
  • `verified`: the most recent check matched the expected value.
  • `warning`: the record verified before and a recent check no longer matched, but it is still within the grace period. Sending is not yet affected; fix the record before the grace period ends to avoid it being blocked.
  • `failed`: the record verified before but later checks kept failing past the grace period; the configuration has regressed and needs attention.
const (
	DNSRecordStatusFailed   DNSRecordStatus = "failed"
	DNSRecordStatusPending  DNSRecordStatus = "pending"
	DNSRecordStatusVerified DNSRecordStatus = "verified"
	DNSRecordStatusWarning  DNSRecordStatus = "warning"
)

Defines values for DNSRecordStatus.

func (DNSRecordStatus) Valid added in v0.7.4

func (e DNSRecordStatus) Valid() bool

Valid indicates whether the value is a known member of the DNSRecordStatus enum.

type DNSRecordType added in v0.7.4

type DNSRecordType string

DNSRecordType The DNS record type to publish, determined by `purpose`.

- `TXT`: used for the `dkim` and `dmarc` purposes. - `CNAME`: used for the `return_path` and `tracking` purposes. - `MX`: used for the `inbound_mx` purpose.

const (
	CNAME DNSRecordType = "CNAME"
	MX    DNSRecordType = "MX"
	TXT   DNSRecordType = "TXT"
)

Defines values for DNSRecordType.

func (DNSRecordType) Valid added in v0.7.4

func (e DNSRecordType) Valid() bool

Valid indicates whether the value is a known member of the DNSRecordType enum.

type DeleteAudienceParams added in v0.4.0

type DeleteAudienceParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteAudienceParams defines parameters for DeleteAudience.

type DeleteAudienceResponse added in v0.4.0

type DeleteAudienceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteAudienceResponse added in v0.4.0

func ParseDeleteAudienceResponse(rsp *http.Response) (*DeleteAudienceResponse, error)

ParseDeleteAudienceResponse parses an HTTP response from a DeleteAudienceWithResponse call

func (DeleteAudienceResponse) ContentType added in v0.4.0

func (r DeleteAudienceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteAudienceResponse) Status added in v0.4.0

func (r DeleteAudienceResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteAudienceResponse) StatusCode added in v0.4.0

func (r DeleteAudienceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteContactParams added in v0.4.0

type DeleteContactParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteContactParams defines parameters for DeleteContact.

type DeleteContactResponse added in v0.4.0

type DeleteContactResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteContactResponse added in v0.4.0

func ParseDeleteContactResponse(rsp *http.Response) (*DeleteContactResponse, error)

ParseDeleteContactResponse parses an HTTP response from a DeleteContactWithResponse call

func (DeleteContactResponse) ContentType added in v0.4.0

func (r DeleteContactResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteContactResponse) Status added in v0.4.0

func (r DeleteContactResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteContactResponse) StatusCode added in v0.4.0

func (r DeleteContactResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteDomainParams added in v0.8.0

type DeleteDomainParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteDomainParams defines parameters for DeleteDomain.

type DeleteDomainResponse added in v0.8.0

type DeleteDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteDomainResponse added in v0.8.0

func ParseDeleteDomainResponse(rsp *http.Response) (*DeleteDomainResponse, error)

ParseDeleteDomainResponse parses an HTTP response from a DeleteDomainWithResponse call

func (DeleteDomainResponse) ContentType added in v0.8.0

func (r DeleteDomainResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteDomainResponse) Status added in v0.8.0

func (r DeleteDomainResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteDomainResponse) StatusCode added in v0.8.0

func (r DeleteDomainResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteEmailThreadParams added in v0.12.0

type DeleteEmailThreadParams struct {
	// Permanent Permanently delete the conversation and its messages immediately instead of moving them to the trash.
	Permanent *bool `form:"permanent,omitempty" json:"permanent,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteEmailThreadParams defines parameters for DeleteEmailThread.

type DeleteEmailThreadResponse added in v0.12.0

type DeleteEmailThreadResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteEmailThreadResponse added in v0.12.0

func ParseDeleteEmailThreadResponse(rsp *http.Response) (*DeleteEmailThreadResponse, error)

ParseDeleteEmailThreadResponse parses an HTTP response from a DeleteEmailThreadWithResponse call

func (DeleteEmailThreadResponse) ContentType added in v0.12.0

func (r DeleteEmailThreadResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteEmailThreadResponse) Status added in v0.12.0

func (r DeleteEmailThreadResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteEmailThreadResponse) StatusCode added in v0.12.0

func (r DeleteEmailThreadResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteMailboxParams added in v0.12.0

type DeleteMailboxParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteMailboxParams defines parameters for DeleteMailbox.

type DeleteMailboxReceiveRuleParams added in v0.12.0

type DeleteMailboxReceiveRuleParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteMailboxReceiveRuleParams defines parameters for DeleteMailboxReceiveRule.

type DeleteMailboxReceiveRuleResponse added in v0.12.0

type DeleteMailboxReceiveRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteMailboxReceiveRuleResponse added in v0.12.0

func ParseDeleteMailboxReceiveRuleResponse(rsp *http.Response) (*DeleteMailboxReceiveRuleResponse, error)

ParseDeleteMailboxReceiveRuleResponse parses an HTTP response from a DeleteMailboxReceiveRuleWithResponse call

func (DeleteMailboxReceiveRuleResponse) ContentType added in v0.12.0

func (r DeleteMailboxReceiveRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteMailboxReceiveRuleResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (DeleteMailboxReceiveRuleResponse) StatusCode added in v0.12.0

func (r DeleteMailboxReceiveRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteMailboxResponse added in v0.12.0

type DeleteMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteMailboxResponse added in v0.12.0

func ParseDeleteMailboxResponse(rsp *http.Response) (*DeleteMailboxResponse, error)

ParseDeleteMailboxResponse parses an HTTP response from a DeleteMailboxWithResponse call

func (DeleteMailboxResponse) ContentType added in v0.12.0

func (r DeleteMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteMailboxResponse) Status added in v0.12.0

func (r DeleteMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteMailboxResponse) StatusCode added in v0.12.0

func (r DeleteMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeletePreferenceParams added in v0.41.0

type DeletePreferenceParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeletePreferenceParams defines parameters for DeletePreference.

type DeletePreferenceResponse added in v0.41.0

type DeletePreferenceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *PreferenceWriteResult
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeletePreferenceResponse added in v0.41.0

func ParseDeletePreferenceResponse(rsp *http.Response) (*DeletePreferenceResponse, error)

ParseDeletePreferenceResponse parses an HTTP response from a DeletePreferenceWithResponse call

func (DeletePreferenceResponse) ContentType added in v0.41.0

func (r DeletePreferenceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeletePreferenceResponse) Status added in v0.41.0

func (r DeletePreferenceResponse) Status() string

Status returns HTTPResponse.Status

func (DeletePreferenceResponse) StatusCode added in v0.41.0

func (r DeletePreferenceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteSMSKeywordRuleParams added in v0.33.0

type DeleteSMSKeywordRuleParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteSMSKeywordRuleParams defines parameters for DeleteSMSKeywordRule.

type DeleteSMSKeywordRuleResponse added in v0.33.0

type DeleteSMSKeywordRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteSMSKeywordRuleResponse added in v0.33.0

func ParseDeleteSMSKeywordRuleResponse(rsp *http.Response) (*DeleteSMSKeywordRuleResponse, error)

ParseDeleteSMSKeywordRuleResponse parses an HTTP response from a DeleteSMSKeywordRuleWithResponse call

func (DeleteSMSKeywordRuleResponse) ContentType added in v0.33.0

func (r DeleteSMSKeywordRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteSMSKeywordRuleResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (DeleteSMSKeywordRuleResponse) StatusCode added in v0.33.0

func (r DeleteSMSKeywordRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteSMSSuppressionParams added in v0.33.0

type DeleteSMSSuppressionParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DeleteSMSSuppressionParams defines parameters for DeleteSMSSuppression.

type DeleteSMSSuppressionResponse added in v0.33.0

type DeleteSMSSuppressionResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDeleteSMSSuppressionResponse added in v0.33.0

func ParseDeleteSMSSuppressionResponse(rsp *http.Response) (*DeleteSMSSuppressionResponse, error)

ParseDeleteSMSSuppressionResponse parses an HTTP response from a DeleteSMSSuppressionWithResponse call

func (DeleteSMSSuppressionResponse) ContentType added in v0.33.0

func (r DeleteSMSSuppressionResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteSMSSuppressionResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (DeleteSMSSuppressionResponse) StatusCode added in v0.33.0

func (r DeleteSMSSuppressionResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DisconnectRealtimeAppMemberParams added in v0.15.0

type DisconnectRealtimeAppMemberParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

DisconnectRealtimeAppMemberParams defines parameters for DisconnectRealtimeAppMember.

type DisconnectRealtimeAppMemberResponse added in v0.15.0

type DisconnectRealtimeAppMemberResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseDisconnectRealtimeAppMemberResponse added in v0.15.0

func ParseDisconnectRealtimeAppMemberResponse(rsp *http.Response) (*DisconnectRealtimeAppMemberResponse, error)

ParseDisconnectRealtimeAppMemberResponse parses an HTTP response from a DisconnectRealtimeAppMemberWithResponse call

func (DisconnectRealtimeAppMemberResponse) ContentType added in v0.15.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DisconnectRealtimeAppMemberResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (DisconnectRealtimeAppMemberResponse) StatusCode added in v0.15.0

StatusCode returns HTTPResponse.StatusCode

type DocsPage added in v0.9.1

type DocsPage struct {
	// Locale Documentation locale the page was drawn from.
	Locale *string `json:"locale,omitempty"`

	// Markdown The page's full content as Markdown.
	Markdown *string `json:"markdown,omitempty"`

	// Slug Slug of the page, echoing the requested slug.
	Slug *string `json:"slug,omitempty"`

	// Url Absolute URL of the page, suitable to cite as the source of an answer.
	Url *string `json:"url,omitempty"`
}

DocsPage defines model for DocsPage.

type DocsSearchResponse added in v0.2.1

type DocsSearchResponse struct {
	// Locale The documentation locale the results were drawn from.
	Locale *string `json:"locale,omitempty"`

	// Query The search query that produced these results.
	Query *string `json:"query,omitempty"`

	// Results Matching documentation sections, ordered by descending relevance.
	Results *[]DocsSearchResult `json:"results,omitempty"`
}

DocsSearchResponse defines model for DocsSearchResponse.

type DocsSearchResult added in v0.2.1

type DocsSearchResult struct {
	// DocUrl Absolute URL of the page, without the section anchor. Results from the same page share it, so it can be used to group them.
	DocUrl *string `json:"doc_url,omitempty"`

	// Highlights The passages of the section that match the query, longer than the snippet. Returned only when `contents` is `highlights`.
	Highlights *[]string `json:"highlights,omitempty"`

	// MarkdownUrl Absolute URL that returns the page's full content as Markdown; also the page's canonical source URL.
	MarkdownUrl *string `json:"markdown_url,omitempty"`

	// Score Relevance score. Higher is more relevant; results are ordered by descending score.
	Score *float32 `json:"score,omitempty"`

	// Section Heading of the matching section within the page.
	Section *string `json:"section,omitempty"`

	// Slug Stable identifier of the page. Pass it as the `slug` parameter of `GET /v1/docs/pages` to read the whole page as Markdown.
	Slug *string `json:"slug,omitempty"`

	// Snippet Short excerpt of the matching content, with the query terms in context. Always returned.
	Snippet *string `json:"snippet,omitempty"`

	// Title Title of the documentation page this result belongs to.
	Title *string `json:"title,omitempty"`

	// TokenEstimate Approximate token count of the full page returned by `markdown_url`, to budget reading it. Results from the same page share it.
	TokenEstimate *int `json:"token_estimate,omitempty"`

	// Url Absolute URL of the matching section, including the heading anchor.
	Url *string `json:"url,omitempty"`
}

DocsSearchResult defines model for DocsSearchResult.

type Domain added in v0.7.4

type Domain struct {
	Capabilities DomainCapabilities `json:"capabilities"`

	// CreatedAt When the domain was added.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Dkim Active DKIM signing configuration for the domain.
	Dkim DomainDKIM `json:"dkim"`

	// DnsRecords The domain's DNS records and their individual verification state, returned in full on both the list and single-domain responses. This is the complete set to publish across DKIM, return-path, DMARC, tracking, and inbound; records for a staged change carry `state: pending`. Inbound MX records are always included as a regional reference, even while receiving is off and `capabilities.inbound.status` is `not_configured`. Their presence alone does not mean receiving is enabled; see `DomainUpdate.inbound`.
	DnsRecords *[]DNSRecord `json:"dns_records,omitempty"`

	// Domain The sending domain name. Set at creation and immutable.
	Domain *string  `json:"domain,omitempty"`
	Id     DomainID `json:"id"`

	// LastCheckedAt When we last checked this domain's DNS records, whether or not the outcome changed. Updated on every verification: your manual refresh and the periodic automatic re-checks alike. `null` if the domain has never been checked.
	LastCheckedAt *time.Time `json:"last_checked_at,omitempty"`

	// Next What to do next about this domain, given the state it is in. Each entry names one action and says
	// why it is worth taking, so you can act on this response without working out the order
	// yourself. Present on reads that compute it: an empty list means there is nothing to do,
	// and the field is absent entirely on responses that do not report next actions.
	//
	// This answers whether you own the domain, which is what `status` reports. What each
	// capability still needs before it can send or receive is reported separately under
	// `capabilities`, so an empty list here does not on its own mean the domain is ready.
	Next *[]NextAction `json:"next,omitempty"`

	// Settings Per-domain behavior toggles. Changes apply immediately to new sends.
	Settings DomainSettings `json:"settings"`

	// Status Domain ownership verification, proven by the DKIM record. Readiness to
	// send or track is reported separately per capability under
	// `capabilities.*.status`.
	//
	// - `pending`: the DKIM record has not been published yet.
	// - `verified`: the DKIM record is in place; ownership is confirmed.
	// - `failed`: a DKIM record exists but does not match the expected
	//   value (for example a stale record from an earlier setup), or a
	//   previously verified record was removed. Correct the record to
	//   recover.
	// - `temporary_failure`: DNS resolution failed transiently, such as from a
	//   timeout or unreachable nameserver. Verification retries automatically;
	//   do not change the DNS records unless they are incorrect.
	// - `rejected`: the domain was refused for policy reasons and cannot be
	//   used for sending. Contact support if you believe this is an error.
	Status *DomainStatus `json:"status,omitempty"`

	// UpdatedAt When the domain's configuration was last changed (such as a settings or return-path change). Verification re-checks do not change this; see `last_checked_at` and `verified_at` for verification timing.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Vendor The DNS provider hosting this domain's nameservers, so you know which provider's dashboard to manage the required DNS records in. Returns `other` when the provider has not been detected or is not recognized.
	Vendor *DomainVendor `json:"vendor,omitempty"`

	// VerifiedAt When the domain's ownership was confirmed: the moment `status` became `verified` via the DKIM record. Unchanged by later re-checks while it stays verified. `null` if the domain has never been verified.
	VerifiedAt  *time.Time  `json:"verified_at,omitempty"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

Domain defines model for Domain.

type DomainCapabilities added in v0.7.4

type DomainCapabilities struct {
	Dmarc      DomainCapability  `json:"dmarc"`
	Inbound    *DomainCapability `json:"inbound,omitempty"`
	ReturnPath DomainCapability  `json:"return_path"`
	Sending    DomainCapability  `json:"sending"`
	Tracking   DomainCapability  `json:"tracking"`
}

DomainCapabilities defines model for DomainCapabilities.

type DomainCapability added in v0.7.4

type DomainCapability struct {
	// Domain Hostname this capability is configured with: the return-path domain, the tracking domain, or the domain where the DMARC policy was found. `null` when not applicable or not configured.
	Domain *string `json:"domain,omitempty"`

	// Pending A staged configuration change awaiting DNS verification. The currently active configuration keeps serving until the staged one verifies, at which point it is promoted automatically. Submitting another change for the same capability replaces the staged value.
	Pending *DomainCapabilityPending `json:"pending,omitempty"`

	// Reason Machine-readable reason code for a failed capability status. Only set when
	// `status` is `failed`. Use this to display a specific message to users rather
	// than a generic failure message.
	//
	// - `tracking_domain_in_use`: the link tracking subdomain is already claimed
	//   by another organization.
	Reason *string `json:"reason,omitempty"`

	// Status Capability verification status.
	//
	// - `pending`: verification has not run, or is currently running.
	// - `verified`: all DNS records for this capability resolved with the
	//   expected values.
	// - `warning`: a record for this capability verified before and a recent
	//   check no longer matches, but it is still within the grace period.
	//   Sending is not yet affected; fix it before the grace period ends.
	// - `failed`: DNS records resolved but at least one value is wrong.
	//   Update your DNS to recover.
	// - `temporary_failure`: DNS lookup failed transiently. Verification retries
	//   automatically; do not change DNS records unless they are incorrect.
	// - `not_configured`: the capability is not set up on this domain
	//   (for example, no tracking domain configured).
	Status *DomainCapabilityStatus `json:"status,omitempty"`
}

DomainCapability defines model for DomainCapability.

type DomainCapabilityPending added in v0.7.4

type DomainCapabilityPending struct {
	// Domain Hostname the capability uses after the staged change verifies.
	Domain *string `json:"domain,omitempty"`

	// Status Verification status of the staged change.
	//
	// - `pending`: the DNS records have not been detected yet.
	// - `failed`: the records resolved with wrong values; correct them
	//   or submit a different change.
	// - `temporary_failure`: the DNS lookup failed transiently and is
	//   queued for retry.
	Status *DomainCapabilityPendingStatus `json:"status,omitempty"`
}

DomainCapabilityPending A staged configuration change awaiting DNS verification. The currently active configuration keeps serving until the staged one verifies, at which point it is promoted automatically. Submitting another change for the same capability replaces the staged value.

type DomainCapabilityPendingStatus added in v0.7.4

type DomainCapabilityPendingStatus string

DomainCapabilityPendingStatus Verification status of the staged change.

  • `pending`: the DNS records have not been detected yet.
  • `failed`: the records resolved with wrong values; correct them or submit a different change.
  • `temporary_failure`: the DNS lookup failed transiently and is queued for retry.
const (
	DomainCapabilityPendingStatusFailed           DomainCapabilityPendingStatus = "failed"
	DomainCapabilityPendingStatusPending          DomainCapabilityPendingStatus = "pending"
	DomainCapabilityPendingStatusTemporaryFailure DomainCapabilityPendingStatus = "temporary_failure"
)

Defines values for DomainCapabilityPendingStatus.

func (DomainCapabilityPendingStatus) Valid added in v0.7.4

Valid indicates whether the value is a known member of the DomainCapabilityPendingStatus enum.

type DomainCapabilityStatus added in v0.7.4

type DomainCapabilityStatus string

DomainCapabilityStatus Capability verification status.

  • `pending`: verification has not run, or is currently running.
  • `verified`: all DNS records for this capability resolved with the expected values.
  • `warning`: a record for this capability verified before and a recent check no longer matches, but it is still within the grace period. Sending is not yet affected; fix it before the grace period ends.
  • `failed`: DNS records resolved but at least one value is wrong. Update your DNS to recover.
  • `temporary_failure`: DNS lookup failed transiently. Verification retries automatically; do not change DNS records unless they are incorrect.
  • `not_configured`: the capability is not set up on this domain (for example, no tracking domain configured).
const (
	DomainCapabilityStatusFailed           DomainCapabilityStatus = "failed"
	DomainCapabilityStatusNotConfigured    DomainCapabilityStatus = "not_configured"
	DomainCapabilityStatusPending          DomainCapabilityStatus = "pending"
	DomainCapabilityStatusTemporaryFailure DomainCapabilityStatus = "temporary_failure"
	DomainCapabilityStatusVerified         DomainCapabilityStatus = "verified"
	DomainCapabilityStatusWarning          DomainCapabilityStatus = "warning"
)

Defines values for DomainCapabilityStatus.

func (DomainCapabilityStatus) Valid added in v0.7.4

func (e DomainCapabilityStatus) Valid() bool

Valid indicates whether the value is a known member of the DomainCapabilityStatus enum.

type DomainCreate added in v0.7.4

type DomainCreate struct {
	// Dkim DKIM signing configuration.
	Dkim *DomainDKIMConfig `json:"dkim,omitempty"`

	// Domain The domain you send from: the domain of your `from` addresses. Use a dedicated subdomain (for example, `mail.acme.com`) rather than your registered domain so sending reputation stays separate from other services on the domain.
	Domain string `json:"domain"`

	// ReturnPath Return-path (bounce) domain configuration. The return-path domain receives bounce and complaint notifications for mail sent from this domain and is what mailbox providers check for SPF. Provide only the name part; we add the sending domain automatically.
	ReturnPath *DomainReturnPathConfig `json:"return_path,omitempty"`

	// Settings Per-domain behavior toggles. Changes apply immediately to new sends.
	Settings *DomainSettings `json:"settings,omitempty"`

	// Tracking Tracking domain configuration for branded open and click tracking URLs. Provide only the name part; we add the sending domain automatically. A domain created with no tracking configuration defaults to `links`. Tracked links are served over HTTPS after the tracking record verifies.
	Tracking *DomainTrackingConfig `json:"tracking,omitempty"`
}

DomainCreate defines model for DomainCreate.

type DomainDKIM added in v0.7.4

type DomainDKIM struct {
	// KeySize RSA key size in bits.
	KeySize *int `json:"key_size,omitempty"`

	// Mode How the DKIM public key is published in your DNS. `txt`: you publish the key as a TXT record. `delegated`: you publish a single CNAME and we host and rotate the key.
	Mode *DomainDKIMMode `json:"mode,omitempty"`

	// Selector DKIM selector used to sign mail from this domain.
	Selector *string `json:"selector,omitempty"`
}

DomainDKIM Active DKIM signing configuration for the domain.

type DomainDKIMConfig added in v0.7.4

type DomainDKIMConfig struct {
	// Mode How the DKIM public key is published in your DNS.
	//
	// - `txt` (default): you publish the DKIM public key as a TXT record. Key
	//   rotation requires updating the record.
	// - `delegated`: you publish a CNAME that points to a DKIM key we host and
	//   rotate. This mode is unavailable for new configurations; supplying it
	//   returns `422`.
	Mode *DomainDKIMConfigMode `json:"mode,omitempty"`
}

DomainDKIMConfig DKIM signing configuration.

type DomainDKIMConfigMode added in v0.7.4

type DomainDKIMConfigMode string

DomainDKIMConfigMode How the DKIM public key is published in your DNS.

  • `txt` (default): you publish the DKIM public key as a TXT record. Key rotation requires updating the record.
  • `delegated`: you publish a CNAME that points to a DKIM key we host and rotate. This mode is unavailable for new configurations; supplying it returns `422`.
const (
	DomainDKIMConfigModeDelegated DomainDKIMConfigMode = "delegated"
	DomainDKIMConfigModeTxt       DomainDKIMConfigMode = "txt"
)

Defines values for DomainDKIMConfigMode.

func (DomainDKIMConfigMode) Valid added in v0.7.4

func (e DomainDKIMConfigMode) Valid() bool

Valid indicates whether the value is a known member of the DomainDKIMConfigMode enum.

type DomainDKIMMode added in v0.7.4

type DomainDKIMMode string

DomainDKIMMode How the DKIM public key is published in your DNS. `txt`: you publish the key as a TXT record. `delegated`: you publish a single CNAME and we host and rotate the key.

const (
	DomainDKIMModeDelegated DomainDKIMMode = "delegated"
	DomainDKIMModeTxt       DomainDKIMMode = "txt"
)

Defines values for DomainDKIMMode.

func (DomainDKIMMode) Valid added in v0.7.4

func (e DomainDKIMMode) Valid() bool

Valid indicates whether the value is a known member of the DomainDKIMMode enum.

type DomainEvent added in v0.7.4

type DomainEvent struct {
	// CreatedAt When the event was recorded.
	CreatedAt time.Time     `json:"created_at"`
	Id        DomainEventID `json:"id"`

	// Metadata Structured details for the event. Status-change events carry `from` and `to`; record-level changes also carry `domain`, the affected hostname.
	Metadata map[string]interface{} `json:"metadata"`

	// Summary Human-readable summary of what changed.
	Summary string `json:"summary"`

	// Type Type of domain event. `domain.status_changed` tracks ownership verification through the domain-level `status`. `domain.sending_status_changed` tracks readiness to send through `capabilities.sending`. The remaining `*_status_changed` types each track one DNS record's verification. Open enum: new event types may be added over time, so treat any unrecognized value as a future event rather than an error. The values below are the types known at this version.
	Type string `json:"type"`
}

DomainEvent defines model for DomainEvent.

type DomainEventID added in v0.7.4

type DomainEventID = string

DomainEventID defines model for DomainEventID.

type DomainEventList added in v0.7.4

type DomainEventList struct {
	// Data Page of domain events, newest first by default.
	Data []DomainEvent `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

DomainEventList defines model for DomainEventList.

type DomainID added in v0.7.0

type DomainID = string

DomainID defines model for DomainID.

type DomainInboundConfig added in v0.7.4

type DomainInboundConfig struct {
	// Enabled Set `true` to enable receiving on this domain, `false` to disable it. Disabling tears receiving down and removes the MX records from `dns_records`; this is immediate in the normal case, and if a step needs retrying the capability clears as soon as teardown finishes.
	Enabled bool `json:"enabled"`
}

DomainInboundConfig Inbound (receiving) configuration. Enable inbound to receive email addressed to this domain. We return MX records to publish. After they verify, mail to any local-part at this domain is delivered as an inbound message and triggers the `email.received` webhook. Use a dedicated subdomain, such as `inbound.acme.com`, because using your apex domain would capture your corporate mail.

type DomainList added in v0.7.4

type DomainList struct {
	// Data Page of sending domains, newest first by default.
	Data []Domain `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

DomainList defines model for DomainList.

type DomainReturnPathConfig added in v0.7.4

type DomainReturnPathConfig struct {
	// Name Name part to use for the return-path domain. For example, `send` on `mail.acme.com` becomes `send.mail.acme.com`. Defaults to `send` when omitted at creation.
	Name string `json:"name"`
}

DomainReturnPathConfig Return-path (bounce) domain configuration. The return-path domain receives bounce and complaint notifications for mail sent from this domain and is what mailbox providers check for SPF. Provide only the name part; we add the sending domain automatically.

type DomainSettings added in v0.7.4

type DomainSettings struct {
	// ClickTracking Rewrite links in HTML email through your tracking domain to record clicks. You can enable this before your tracking domain has verified; it begins working once verification completes. A tracking domain must be configured; enabling it without one returns `409`.
	ClickTracking *bool `json:"click_tracking,omitempty"`

	// OpenTracking Insert a tracking pixel in HTML email to record opens. You can enable this before your tracking domain has verified: it begins working once verification completes. A tracking domain must be configured; enabling it without one returns `409`.
	OpenTracking *bool `json:"open_tracking,omitempty"`
}

DomainSettings Per-domain behavior toggles. Changes apply immediately to new sends.

type DomainStatus added in v0.7.4

type DomainStatus string

DomainStatus Domain ownership verification, proven by the DKIM record. Readiness to send or track is reported separately per capability under `capabilities.*.status`.

  • `pending`: the DKIM record has not been published yet.
  • `verified`: the DKIM record is in place; ownership is confirmed.
  • `failed`: a DKIM record exists but does not match the expected value (for example a stale record from an earlier setup), or a previously verified record was removed. Correct the record to recover.
  • `temporary_failure`: DNS resolution failed transiently, such as from a timeout or unreachable nameserver. Verification retries automatically; do not change the DNS records unless they are incorrect.
  • `rejected`: the domain was refused for policy reasons and cannot be used for sending. Contact support if you believe this is an error.
const (
	DomainStatusFailed           DomainStatus = "failed"
	DomainStatusPending          DomainStatus = "pending"
	DomainStatusRejected         DomainStatus = "rejected"
	DomainStatusTemporaryFailure DomainStatus = "temporary_failure"
	DomainStatusVerified         DomainStatus = "verified"
)

Defines values for DomainStatus.

func (DomainStatus) Valid added in v0.7.4

func (e DomainStatus) Valid() bool

Valid indicates whether the value is a known member of the DomainStatus enum.

type DomainTrackingConfig added in v0.7.4

type DomainTrackingConfig struct {
	// Name Name part to use for branded open and click tracking URLs. For example, `links` on `mail.acme.com` becomes `links.mail.acme.com`.
	Name string `json:"name"`
}

DomainTrackingConfig Tracking domain configuration for branded open and click tracking URLs. Provide only the name part; we add the sending domain automatically. A domain created with no tracking configuration defaults to `links`. Tracked links are served over HTTPS after the tracking record verifies.

type DomainUpdate added in v0.7.4

type DomainUpdate struct {
	// Dkim DKIM signing configuration.
	Dkim *DomainDKIMConfig `json:"dkim,omitempty"`

	// Inbound Inbound (receiving) configuration. Enable inbound to receive email addressed to this domain. We return MX records to publish. After they verify, mail to any local-part at this domain is delivered as an inbound message and triggers the `email.received` webhook. Use a dedicated subdomain, such as `inbound.acme.com`, because using your apex domain would capture your corporate mail.
	Inbound *DomainInboundConfig `json:"inbound,omitempty"`

	// ReturnPath Return-path (bounce) domain configuration. The return-path domain receives bounce and complaint notifications for mail sent from this domain and is what mailbox providers check for SPF. Provide only the name part; we add the sending domain automatically.
	ReturnPath *DomainReturnPathConfig `json:"return_path,omitempty"`

	// Settings Per-domain behavior toggles. Changes apply immediately to new sends.
	Settings *DomainSettings `json:"settings,omitempty"`

	// Tracking Set or change the tracking name part, or remove tracking by passing `null`. Removal requires `click_tracking` and `open_tracking` to be disabled first, and returns `409` otherwise. After removal, links in previously sent email keep resolving while the tracking records are reported as `deprecated`.
	Tracking nullable.Nullable[DomainTrackingConfig] `json:"tracking,omitempty"`
}

DomainUpdate Partial update. `settings` changes apply immediately. Changes to `return_path`, `tracking`, or `dkim` on a verified capability are staged. The current configuration keeps serving until the new DNS records verify. The change is then promoted automatically and the old records are marked `deprecated`. The staged value is visible under `capabilities.*.pending` and can be replaced by submitting another change.

type DomainVendor added in v0.7.4

type DomainVendor string

DomainVendor The DNS provider hosting this domain's nameservers, so you know which provider's dashboard to manage the required DNS records in. Returns `other` when the provider has not been detected or is not recognized.

const (
	DomainVendorAzure        DomainVendor = "azure"
	DomainVendorCloudflare   DomainVendor = "cloudflare"
	DomainVendorDigitalocean DomainVendor = "digitalocean"
	DomainVendorGodaddy      DomainVendor = "godaddy"
	DomainVendorGoogle       DomainVendor = "google"
	DomainVendorNamecheap    DomainVendor = "namecheap"
	DomainVendorOther        DomainVendor = "other"
	DomainVendorRoute53      DomainVendor = "route53"
	DomainVendorSquarespace  DomainVendor = "squarespace"
)

Defines values for DomainVendor.

func (DomainVendor) Valid added in v0.7.4

func (e DomainVendor) Valid() bool

Valid indicates whether the value is a known member of the DomainVendor enum.

type EmailAddress

type EmailAddress struct {
	// Email Email address.
	Email openapi_types.Email `json:"email"`

	// Name Display name shown alongside the address in mail clients.
	Name *string `json:"name,omitempty"`
}

EmailAddress An email address with an optional display name.

type EmailAddressInput

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

EmailAddressInput A sender or recipient address. Accepts a plain email string (`jane@acme.com`), an RFC 5322 mailbox string with an embedded display name (`Jane Doe <jane@acme.com>`), or an object carrying the address and an optional display name. All forms can be mixed freely within one request. Responses always return the object form.

func (EmailAddressInput) AsEmailAddress

func (t EmailAddressInput) AsEmailAddress() (EmailAddress, error)

AsEmailAddress returns the union data inside the EmailAddressInput as a EmailAddress

func (EmailAddressInput) AsEmailAddressInput0

func (t EmailAddressInput) AsEmailAddressInput0() (EmailAddressInput0, error)

AsEmailAddressInput0 returns the union data inside the EmailAddressInput as a EmailAddressInput0

func (*EmailAddressInput) FromEmailAddress

func (t *EmailAddressInput) FromEmailAddress(v EmailAddress) error

FromEmailAddress overwrites any union data inside the EmailAddressInput as the provided EmailAddress

func (*EmailAddressInput) FromEmailAddressInput0

func (t *EmailAddressInput) FromEmailAddressInput0(v EmailAddressInput0) error

FromEmailAddressInput0 overwrites any union data inside the EmailAddressInput as the provided EmailAddressInput0

func (EmailAddressInput) MarshalJSON

func (t EmailAddressInput) MarshalJSON() ([]byte, error)

func (*EmailAddressInput) MergeEmailAddress

func (t *EmailAddressInput) MergeEmailAddress(v EmailAddress) error

MergeEmailAddress performs a merge with any union data inside the EmailAddressInput, using the provided EmailAddress

func (*EmailAddressInput) MergeEmailAddressInput0

func (t *EmailAddressInput) MergeEmailAddressInput0(v EmailAddressInput0) error

MergeEmailAddressInput0 performs a merge with any union data inside the EmailAddressInput, using the provided EmailAddressInput0

func (*EmailAddressInput) UnmarshalJSON

func (t *EmailAddressInput) UnmarshalJSON(b []byte) error

type EmailAddressInput0

type EmailAddressInput0 = string

EmailAddressInput0 Email address, optionally in RFC 5322 mailbox form with an embedded display name.

type EmailAttachment

type EmailAttachment struct {
	// Content Base64-encoded file bytes. The encoded value and MIME wrapping count toward the 20 MB message limit.
	Content []byte `json:"content"`

	// ContentId An RFC 2392 Content-ID for an inline file. Reference it from the HTML body with `<img src="cid:{content_id}"/>`. Omit it to send a downloadable attachment.
	ContentId *string `json:"content_id,omitempty"`

	// ContentType The file's MIME type. If omitted, the API infers it from the extension in `filename`. The API rejects executable and script types based on this value.
	ContentType *string `json:"content_type,omitempty"`

	// Filename The name the recipient sees on the attachment.
	Filename string `json:"filename"`
}

EmailAttachment A file attached to an email. Put the base64-encoded bytes in `content` and the recipient-facing name in `filename`. To show an image inline, set `content_id` and reference it from the HTML body with `<img src="cid:..."/>`.

The generated message is limited to 20 MB across the HTML body, text body, attachments, and inline images after base64 and MIME encoding. Keep raw attachment content at or below 15 MB to leave room for encoding and the body.

Batch sends apply the same 20 MB limit to each message and to the full request body. Executable and script content types are rejected.

type EmailAttachmentID added in v0.2.0

type EmailAttachmentID = string

EmailAttachmentID defines model for EmailAttachmentID.

type EmailAttachmentRef

type EmailAttachmentRef struct {
	// ContentId The Content-ID set at send time, when the attachment was inline.
	ContentId *string `json:"content_id,omitempty"`

	// ContentType Resolved MIME type at send time.
	ContentType *string `json:"content_type,omitempty"`

	// Filename Filename as shown to the recipient.
	Filename string             `json:"filename"`
	Id       *EmailAttachmentID `json:"id,omitempty"`

	// Inline True when the attachment was sent inline via a `content_id` reference in the HTML body, false for regular file attachments.
	Inline *bool `json:"inline,omitempty"`

	// Size Decoded size in bytes.
	Size int `json:"size"`
}

EmailAttachmentRef Attachment metadata returned on API reads. Download the file during its retention window with `GET /v1/email/messages/{message_id}/attachments/{attachment_id}`.

type EmailBounceCodeStatsPoint added in v0.10.0

type EmailBounceCodeStatsPoint struct {
	// Bounced Distinct recipients whose delivery failed with this SMTP status code, approximately equal to the sum of the five `bounces.*` sub-counts. The two are computed independently, so they can differ slightly because of approximation.
	Bounced *int              `json:"bounced,omitempty"`
	Bounces *EmailBounceStats `json:"bounces,omitempty"`

	// SmtpErrorCode The SMTP error code the receiving mail server returned for these bounces, as reported by that server (for example `5.1.1` for an unknown recipient, `4.2.2` for a full mailbox). The form varies by server, and the set of codes is open.
	SmtpErrorCode *string `json:"smtp_error_code,omitempty"`
}

EmailBounceCodeStatsPoint Bounce counts for a single SMTP status code over the requested period, with the per-type breakdown. This is a deliverability-debugging view keyed on what the receiving mail server returned, so it only reports the failure side: bounced recipients, and their `hard`, `soft`, `admin`, `block`, and `undetermined` split. It has no delivered, open, or rate fields.

type EmailBounceStats added in v0.10.0

type EmailBounceStats struct {
	// Admin Distinct recipients refused by a policy at the receiving end, such as relaying denied or a blocklisted domain. Fix these by changing your content or sender configuration. Cleaning the recipient list does not usually help.
	Admin *int `json:"admin,omitempty"`

	// Block Distinct recipients bounced because the receiving mail server blocked the sending IP for reputation reasons (mail block, spam block, spam content). Triage usually focuses on IP reputation and sending volume.
	Block *int `json:"block,omitempty"`

	// Hard Distinct recipients with a permanent delivery failure (invalid address or non-existent domain). The address is automatically added to the suppression list.
	Hard *int `json:"hard,omitempty"`

	// Soft Distinct recipients with a transient delivery failure (mailbox full or server temporarily unavailable). Delivery was retried.
	Soft *int `json:"soft,omitempty"`

	// Undetermined Distinct recipients bounced where the receiving server's response did not allow precise classification.
	Undetermined *int `json:"undetermined,omitempty"`
}

EmailBounceStats Breakdown of `bounced` by failure type. Each field counts distinct bounced recipients of that type in this row's scope; the five types approximately partition `bounced`.

type EmailBounceStatsWithRates added in v0.10.0

type EmailBounceStatsWithRates struct {
	// Admin Distinct recipients refused by a policy at the receiving end, such as relaying denied or a blocklisted domain.
	Admin *int `json:"admin,omitempty"`

	// AdminRate Fraction of bounced recipients that admin bounced, computed as `admin / bounced`. Null when `bounced` is zero.
	AdminRate *float32 `json:"admin_rate,omitempty"`

	// Block Distinct recipients bounced because the receiving mail server blocked the sending IP for reputation reasons.
	Block *int `json:"block,omitempty"`

	// BlockRate Fraction of bounced recipients that block bounced, computed as `block / bounced`. Null when `bounced` is zero.
	BlockRate *float32 `json:"block_rate,omitempty"`

	// Hard Distinct recipients with a permanent delivery failure (invalid address or non-existent domain).
	Hard *int `json:"hard,omitempty"`

	// HardRate Fraction of bounced recipients that hard bounced, computed as `hard / bounced`. Null when `bounced` is zero.
	HardRate *float32 `json:"hard_rate,omitempty"`

	// Soft Distinct recipients with a transient delivery failure (mailbox full or server temporarily unavailable).
	Soft *int `json:"soft,omitempty"`

	// SoftRate Fraction of bounced recipients that soft bounced, computed as `soft / bounced`. Null when `bounced` is zero.
	SoftRate *float32 `json:"soft_rate,omitempty"`

	// Undetermined Distinct recipients bounced where the receiving server's response did not allow precise classification.
	Undetermined *int `json:"undetermined,omitempty"`

	// UndeterminedRate Fraction of bounced recipients with undetermined classification, computed as `undetermined / bounced`. Null when `bounced` is zero.
	UndeterminedRate *float32 `json:"undetermined_rate,omitempty"`
}

EmailBounceStatsWithRates Breakdown of `bounced` by failure type, with each rate as a fraction of `bounced`. Counts are distinct bounced recipients of that type; the five types approximately partition `bounced`, so the five rates sum to roughly 1.0 when `bounced` is non-zero.

type EmailBounceType

type EmailBounceType string

EmailBounceType Bounce classification.

- `hard`: A permanent failure, such as an invalid address or a domain that does not exist. - `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable. - `block`: The receiving mail server refused the sending IP on reputation grounds. - `admin`: An administrative refusal, such as relaying denied or a blocklisted domain. - `undetermined`: The receiving server's response was ambiguous.

const (
	EmailBounceTypeAdmin        EmailBounceType = "admin"
	EmailBounceTypeBlock        EmailBounceType = "block"
	EmailBounceTypeHard         EmailBounceType = "hard"
	EmailBounceTypeSoft         EmailBounceType = "soft"
	EmailBounceTypeUndetermined EmailBounceType = "undetermined"
)

Defines values for EmailBounceType.

func (EmailBounceType) Valid

func (e EmailBounceType) Valid() bool

Valid indicates whether the value is a known member of the EmailBounceType enum.

type EmailBroadcastStatsPoint added in v0.10.0

type EmailBroadcastStatsPoint struct {
	// BroadcastId The broadcast this row covers, the same ID the broadcast endpoints return. Only mail sent as part of a broadcast has a broadcast ID, so one-off and transactional sends do not appear in this breakdown at all.
	BroadcastId *string               `json:"broadcast_id,omitempty"`
	Delivery    *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement  *EmailEngagementStats `json:"engagement,omitempty"`
	Latency     *EmailLatencyStats    `json:"latency,omitempty"`
}

EmailBroadcastStatsPoint Delivery, engagement and latency figures for one broadcast's messages over the period you asked for.

type EmailCategoryStatsPoint added in v0.10.0

type EmailCategoryStatsPoint struct {
	// Category The category this row aggregates, as set at send time. `transactional` is one-to-one mail triggered by a user action. `marketing` is bulk sending. New categories may be added over time.
	Category   *string               `json:"category,omitempty"`
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// Trend Per-bucket rate series for this category over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailCategoryStatsPoint Aggregate delivery and engagement stats for a single category over the requested period.

type EmailClientStatsPoint added in v0.10.0

type EmailClientStatsPoint struct {
	// DeviceType The device type this row aggregates (for example `mobile`, `desktop`, `tablet`). Populated only when `group_by=device_type`. Null otherwise.
	DeviceType *string `json:"device_type,omitempty"`

	// EmailClient The mail client this row aggregates (for example `Gmail`, `Apple Mail`, `Outlook`). Populated only when `group_by=email_client`. Null otherwise.
	EmailClient *string                `json:"email_client,omitempty"`
	Engagement  *EmailEngagementCounts `json:"engagement,omitempty"`

	// Os The operating system this row aggregates (for example `iOS`, `Android`, `Windows`, `macOS`). Populated only when `group_by=os`. Null otherwise.
	Os *string `json:"os,omitempty"`
}

EmailClientStatsPoint Engagement counts for messages opened or clicked from a single email client, operating system, or device type over the requested period. The reading environment is resolved from open and click events only, so this breakdown reports engagement activity: opens, clicks, and the recipients behind them. It has no delivery counts and no open or click rates, because the receiving mail server reports delivery without a client or device, preventing a per-client delivered denominator and rates. Exactly one of `email_client`, `os`, and `device_type` is populated, selected by the request's `group_by`. The other two are null. Inbox-privacy prefetching also affects the detected client. As with open counts, `opens_non_prefetched` excludes opens auto-fetched by an inbox privacy feature. It includes opens caused by a person opening the message.

type EmailComplaintTypeStatsPoint added in v0.10.0

type EmailComplaintTypeStatsPoint struct {
	// Complained Distinct recipients who reported a message as spam with this complaint type at any point in the period.
	Complained *int `json:"complained,omitempty"`

	// FeedbackType The complaint classification reported by the mailbox provider's feedback loop, in the abuse-reporting-format vocabulary (for example `abuse`, `fraud`, `virus`, `other`). The set is open.
	FeedbackType *string `json:"feedback_type,omitempty"`
}

EmailComplaintTypeStatsPoint Complaint counts for a single feedback-loop complaint type over the requested period. A complaint type is recorded only on spam-complaint events, so this breakdown reports the complained count for each type and nothing else. A complaint event has no delivery or engagement information attached to it, so no other count applies.

type EmailDeliveryLatencyStats added in v0.10.0

type EmailDeliveryLatencyStats struct {
	// Delivery Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.
	Delivery *EmailLatencyQuantiles `json:"delivery,omitempty"`

	// Total Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.
	Total *EmailLatencyQuantiles `json:"total,omitempty"`
}

EmailDeliveryLatencyStats Latency percentiles (p50, p95, p99) in milliseconds for the messages in this breakdown row, for breakdowns whose dimension is known only from delivery onward (sending IP, mailbox provider).

- `delivery`: Time from handing the message off to the receiving mail server accepting it. Null when no deliveries occurred for this row in the period. - `total`: End-to-end time from accepting the send to delivery. Null when no deliveries occurred for this row in the period.

These breakdowns have no `processing` latency family. A message's row identifies which sending IP carried it or which mailbox provider received it. This becomes known only after the receiving mail server reports a delivery, bounce, deferral, or late bounce. The accept-to-processed phase ends before that attribution is known, preventing row-level processing latency. Use `GET /v1/email/stats/daily` for processing-latency percentiles across the whole workspace.

type EmailDeliveryStats added in v0.10.0

type EmailDeliveryStats struct {
	// Accepted Distinct recipients accepted for delivery after suppression filtering. Reported on time buckets and the period summary. Breakdown rows leave it out, because their rollups do not have it.
	Accepted *int `json:"accepted,omitempty"`

	// AllBounces Total recipients in this scope who did not receive the message, computed as `bounced + oob_bounces`.
	AllBounces *int `json:"all_bounces,omitempty"`

	// BounceRate Share of this scope's delivery attempts that ultimately failed (inband or out-of-band), computed as `all_bounces / (delivered + bounced)`. Because `oob_bounces` counts events rather than recipients, `all_bounces` can exceed the attempt count. The rate is clamped to 1. Null when there were no attempts.
	BounceRate *float32 `json:"bounce_rate,omitempty"`

	// Bounced Distinct recipients whose delivery failed. This is approximately the sum of the five `bounces.*` sub-counts (hard, soft, admin, block, undetermined). The two totals are worked out independently, so they can differ slightly.
	Bounced *int                       `json:"bounced,omitempty"`
	Bounces *EmailBounceStatsWithRates `json:"bounces,omitempty"`

	// Complained Distinct recipients who reported the message as spam via a feedback loop.
	Complained *int `json:"complained,omitempty"`

	// ComplaintRate Spam complaints in this scope relative to effectively delivered recipients, computed as `complained / effective_delivered`. Complaints are attributed by event time, so a scope can record more of them than it effectively delivered, pushing the rate above 1. Null when `effective_delivered` is zero.
	ComplaintRate *float32 `json:"complaint_rate,omitempty"`

	// Deferred Distinct recipients whose delivery the receiving server temporarily delayed and is still being retried.
	Deferred *int `json:"deferred,omitempty"`

	// Delivered Distinct recipients whose message the receiving mail server accepted.
	Delivered *int `json:"delivered,omitempty"`

	// DeliveryRate Share of this scope's delivery attempts that remained delivered after all bounce signals, computed as `effective_delivered / (delivered + bounced)`. Null when there were no attempts.
	DeliveryRate *float32 `json:"delivery_rate,omitempty"`

	// EffectiveDelivered Recipients who remain delivered after all bounce signals resolve, computed as `delivered - oob_bounces`. Use this as the base for engagement-rate denominators. Clamped to 0 when `oob_bounces` exceeds `delivered`.
	EffectiveDelivered *int `json:"effective_delivered,omitempty"`

	// OobBounces Out-of-band bounce events: distinct failure notifications received after the receiving server had initially confirmed delivery. The count represents deduplicated events rather than unique recipients.
	OobBounces *int `json:"oob_bounces,omitempty"`

	// OobRate Share of this scope's delivery attempts that resulted in an out-of-band bounce, computed as `oob_bounces / (delivered + bounced)`. Null when there were no attempts.
	OobRate *float32 `json:"oob_rate,omitempty"`

	// Processed Distinct recipients whose message was processed and handed off for delivery.
	Processed *int `json:"processed,omitempty"`

	// Rejected Distinct recipients rejected before any delivery attempt. Includes recipients on the workspace suppression list, transmissions that could not be completed, message-generation failures, and recipients refused by sending policy. The per-recipient `rejection_reason` field on `GET /v1/email/messages/{message_id}/recipients` surfaces the specific cause.
	Rejected *int `json:"rejected,omitempty"`
}

EmailDeliveryStats Delivery counts and rates for the scope of the containing row (a time bucket, a breakdown dimension, or the whole period). Every count is the number of distinct recipients that reached the named lifecycle stage in scope. On the period summary, each count is the sum of the per-bucket distinct counts. Event time determines attribution; send time does not. A recipient delivered on Monday counts in Monday's row. A recipient who bounced and then succeeded on a retry can appear in both `bounced` and `delivered`. Very large counts are close estimates rather than exact tallies.

These counts are successive lifecycle stages, so a recipient can appear in more than one:

- `rejected`: Happens before any send attempt, from suppression, policy, or a generation failure. - `deferred`: A temporary in-flight delay that is still being retried. - `bounced`: A delivery failure, with its own hard, soft, admin, block, and undetermined sub-types. - `complained`: Post-delivery spam feedback.

Each rate is a fraction in the range 0 to 1 and is null when its denominator is zero. `accepted` is reported only where it can be attributed (time buckets and the period summary). Breakdown rows omit it.

type EmailEngagementCounts added in v0.10.0

type EmailEngagementCounts struct {
	// Clicks Distinct click events, counting repeat clicks from the same recipient.
	Clicks *int `json:"clicks,omitempty"`

	// Opens Distinct open events, counting repeat opens from the same recipient and opens auto-fetched by inbox privacy features (such as Apple Mail Privacy Protection and the Gmail image proxy).
	Opens *int `json:"opens,omitempty"`

	// OpensNonPrefetched Distinct open events excluding those auto-fetched by inbox privacy features. Same event-counting semantics as `opens`, with prefetched opens removed.
	OpensNonPrefetched *int `json:"opens_non_prefetched,omitempty"`

	// UniqueClicks Distinct recipients who clicked at least once.
	UniqueClicks *int `json:"unique_clicks,omitempty"`

	// UniqueOpens Distinct recipients who opened at least once, including opens auto-fetched by inbox privacy features.
	UniqueOpens *int `json:"unique_opens,omitempty"`

	// UniqueOpensNonPrefetched Distinct recipients who opened at least once, excluding opens auto-fetched by inbox privacy features.
	UniqueOpensNonPrefetched *int `json:"unique_opens_non_prefetched,omitempty"`
}

EmailEngagementCounts Open and click counts for a breakdown row whose dimension is resolved from engagement events only. `opens`, `opens_non_prefetched`, and `clicks` count each event. The same recipient opening or clicking more than once counts each time. The `unique_*` fields count distinct recipients instead, so a recipient who opened five times only counts once there. Rates and unsubscribe counts are not included here. A per-dimension delivered count is unavailable as a rate's denominator, and an unsubscribe event has none of the information this breakdown is grouped by, so it cannot be placed on a row.

type EmailEngagementSortMetric added in v0.10.0

type EmailEngagementSortMetric string

EmailEngagementSortMetric Metric to rank rows by, applied descending. Shared by the engagement-only breakdowns (locations, email clients), which report open and click counts but no rates because delivery events provide no per-dimension denominator.

const (
	EmailEngagementSortMetricClicks                   EmailEngagementSortMetric = "clicks"
	EmailEngagementSortMetricOpens                    EmailEngagementSortMetric = "opens"
	EmailEngagementSortMetricOpensNonPrefetched       EmailEngagementSortMetric = "opens_non_prefetched"
	EmailEngagementSortMetricUniqueClicks             EmailEngagementSortMetric = "unique_clicks"
	EmailEngagementSortMetricUniqueOpens              EmailEngagementSortMetric = "unique_opens"
	EmailEngagementSortMetricUniqueOpensNonPrefetched EmailEngagementSortMetric = "unique_opens_non_prefetched"
)

Defines values for EmailEngagementSortMetric.

func (EmailEngagementSortMetric) Valid added in v0.10.0

func (e EmailEngagementSortMetric) Valid() bool

Valid indicates whether the value is a known member of the EmailEngagementSortMetric enum.

type EmailEngagementStats added in v0.10.0

type EmailEngagementStats struct {
	// ClickRate Distinct clickers relative to effectively delivered recipients in the same scope, computed as `unique_clicks / delivery.effective_delivered` (`delivery.delivered` on rows without an `effective_delivered` field). Clicks are attributed by event time, so engagement earned by earlier deliveries can push the rate above 1. Null when the denominator is zero.
	ClickRate *float32 `json:"click_rate,omitempty"`

	// Clicks Distinct click events, counting repeat clicks from the same recipient.
	Clicks *int `json:"clicks,omitempty"`

	// OpenRate Distinct non-prefetched openers relative to effectively delivered recipients in the same scope, computed as `unique_opens_non_prefetched / delivery.effective_delivered`; on rows without an `effective_delivered` field (the mailbox-provider breakdowns) the denominator equals `delivery.delivered`. The numerator excludes opens auto-fetched by inbox privacy features. Opens are attributed by event time, so engagement earned by earlier deliveries can push the rate above 1. Null when the denominator is zero.
	OpenRate *float32 `json:"open_rate,omitempty"`

	// Opens Distinct open events, counting repeat opens from the same recipient and opens auto-fetched by inbox privacy features (such as Apple Mail Privacy Protection and the Gmail image proxy).
	Opens *int `json:"opens,omitempty"`

	// OpensNonPrefetched Distinct open events excluding those auto-fetched by inbox privacy features. Same event-counting semantics as `opens` (repeat opens from the same recipient count separately), with prefetched opens removed.
	OpensNonPrefetched *int `json:"opens_non_prefetched,omitempty"`

	// UniqueClicks Distinct recipients who clicked at least once.
	UniqueClicks *int `json:"unique_clicks,omitempty"`

	// UniqueOpens Distinct recipients who opened at least once, including opens auto-fetched by inbox privacy features.
	UniqueOpens *int `json:"unique_opens,omitempty"`

	// UniqueOpensNonPrefetched Distinct recipients who opened at least once, excluding opens auto-fetched by inbox privacy features. This is the numerator used for open rate, so iOS-heavy audiences (Apple Mail Privacy Protection and similar) do not inflate it.
	UniqueOpensNonPrefetched *int `json:"unique_opens_non_prefetched,omitempty"`

	// UnsubscribeRate Unsubscribe events relative to effectively delivered recipients in the same scope, computed as `unsubscribes / delivery.effective_delivered` (`delivery.delivered` on rows without an `effective_delivered` field). Unsubscribes are attributed by event time, so the rate can exceed 1. Null when the denominator is zero.
	UnsubscribeRate *float32 `json:"unsubscribe_rate,omitempty"`

	// Unsubscribes Distinct unsubscribe events, recorded via the list-unsubscribe header or the footer link.
	Unsubscribes *int `json:"unsubscribes,omitempty"`
}

EmailEngagementStats Engagement counts and rates for the scope of the containing row (a time bucket, a breakdown dimension, or the whole period). `opens`, `opens_non_prefetched` and `clicks` count distinct engagement events (deduplicated occurrences). The `unique_*` fields count distinct recipients. `unsubscribes` counts distinct unsubscribe events. An event counts in the time bucket when it occurs, even if the message was sent in an earlier bucket. Counts are deduplicated with a scalable approximate counting method, so very large counts are close estimates rather than exact tallies. Each rate divides the counts in this scope and is null when its denominator is zero.

type EmailEvent

type EmailEvent struct {
	// BounceClass A more detailed numeric bounce code, useful for telling apart failures that share the same `bounce_type`. For example, a DNS failure and a spam block can both come through as `bounce_type: soft` or `bounce_type: block`; this field tells you which one actually happened. Present on `email.bounced`, `email.out_of_band_bounce`, and `email.deferred` events.
	BounceClass *int `json:"bounce_class,omitempty"`

	// BounceCode SMTP status code returned by the receiving mail server. Present on `email.bounced` and `email.deferred` events.
	BounceCode *string `json:"bounce_code,omitempty"`

	// BounceDescription The bounce reason, in plain language, as reported by the mail server. Present on `email.bounced` and `email.deferred` events.
	BounceDescription *string `json:"bounce_description,omitempty"`

	// BounceType Bounce classification. Present on `email.bounced`, `email.out_of_band_bounce`, and
	// `email.deferred` events.
	//
	// - `hard`: a permanent failure (invalid address or non-existent domain).
	// - `soft`: a transient failure (mailbox full or server temporarily unavailable).
	// - `block`: the receiving mail server blocked the sending IP for reputation reasons.
	// - `admin`: an administrative refusal (relaying denied or blocklisted domain).
	// - `undetermined`: the receiving server's response is ambiguous.
	BounceType *EmailEventBounceType `json:"bounce_type,omitempty"`

	// Country ISO 3166-1 alpha-2 country code derived from the client IP. Present on `email.opened` and `email.clicked` events when available.
	Country *string `json:"country,omitempty"`

	// Id Event ID.
	Id *string `json:"id,omitempty"`

	// IpAddress Client IP address (IPv4 or IPv6). Present on `email.opened` and `email.clicked` events when available.
	IpAddress *string `json:"ip_address,omitempty"`

	// IsPrefetched True when the open was auto-fetched by an inbox privacy feature (Apple Mail Privacy Protection, the Gmail image proxy) rather than a person actually opening the message. Use it to calculate open rate accurately. Present on `email.opened` events only.
	IsPrefetched *bool `json:"is_prefetched,omitempty"`

	// LinkName The clicked link's own name, when the link in the message carried one, so a click can be reported by what the link said rather than where it pointed. Absent when the link had no name. Appears alongside `url` on `email.clicked` events, and on `email.unsubscribed` events when the recipient unsubscribed through a link.
	LinkName *string `json:"link_name,omitempty"`

	// MailboxProvider The recipient mailbox provider, as a lowercased classifier bucket (e.g. `gmail`, `yahoo`, `microsoft`, `apple`). Present on `email.processed`, `email.delivered`, `email.complained`, `email.bounced`, `email.out_of_band_bounce`, `email.deferred`, `email.rejected`, `email.unsubscribed`, `email.list_unsubscribed`, `email.opened`, and `email.clicked` events when the receiving mail system could be classified; null when it could not.
	MailboxProvider *string `json:"mailbox_provider,omitempty"`

	// MailboxProviderRegion The provider region, as reported by the receiving mail system (for example `NA`, `EU`, `APAC`). The set is open and provider-specific. Present on `email.processed`, `email.delivered`, `email.complained`, `email.bounced`, `email.out_of_band_bounce`, `email.deferred`, `email.rejected`, `email.unsubscribed`, `email.list_unsubscribed`, `email.opened`, and `email.clicked` events when reported; null otherwise.
	MailboxProviderRegion *string `json:"mailbox_provider_region,omitempty"`

	// OccurredAt When this event occurred.
	OccurredAt  time.Time   `json:"occurred_at"`
	RecipientId RecipientID `json:"recipient_id"`

	// RejectionReason Specific cause of rejection. Present on `email.rejected` events only.
	//
	// - `recipient_suppressed`: The recipient is on the workspace suppression list.
	// - `transmission_failed`: The message could not be transmitted for delivery.
	// - `generation_failure`: The message could not be built for delivery, because of a template or content issue.
	// - `policy_rejection`: The message was refused by sending policy.
	// - `domain_unverified`: The sending domain was not verified.
	// - `quota_exceeded`: The organization's send quota was reached.
	// - `recipient_not_allowed`: This recipient was not allowed for this send. For a send from the shared onboarding domain, every recipient has to be a verified member of the workspace.
	RejectionReason *EmailEventRejectionReason `json:"rejection_reason,omitempty"`

	// SendingIp The IP address used to send this message. Useful for spotting a deliverability problem that is tied to one specific sending IP rather than affecting all of them. Present on `email.delivered`, `email.bounced`, `email.out_of_band_bounce`, and `email.deferred` events.
	SendingIp *string `json:"sending_ip,omitempty"`

	// Type Type of an event in a message's per-recipient delivery timeline.
	//
	// - `email.scheduled`: We accepted a send scheduled for a future time. Fires once for each message regardless of its recipient count.
	// - `email.accepted`: We accepted the send and are getting ready to deliver it. Fires once per requested recipient.
	// - `email.processed`: We queued the message for delivery to the recipient's mail server.
	// - `email.deferred`: The recipient's mail server temporarily refused the message. Delivery remains pending and is retried. Can fire more than once per recipient.
	// - `email.delivered`: The recipient's mail server accepted the message.
	// - `email.bounced`: Delivery permanently failed at the recipient's mail server.
	// - `email.out_of_band_bounce`: A bounce notification arrived after the message had already been accepted for delivery.
	// - `email.rejected`: We rejected the message before attempting delivery, for example because the recipient is suppressed.
	// - `email.canceled`: A scheduled send was canceled before it fired. Fires once for each message regardless of its recipient count.
	// - `email.opened`: The recipient opened the message. Can fire more than once per recipient.
	// - `email.clicked`: The recipient clicked a tracked link in the message. Can fire more than once per recipient.
	// - `email.unsubscribed`: The recipient opted out through a tracked unsubscribe link in the message.
	// - `email.list_unsubscribed`: The recipient opted out through the one-click unsubscribe control in their mail client.
	// - `email.complained`: The recipient reported the message as spam through their mailbox provider.
	//
	// We can add new event types to this list over time, so treat a value you do not recognize as a new type rather than as an error.
	Type EmailEventType `json:"type"`

	// Url The clicked URL. Present on `email.clicked` events, and on `email.unsubscribed` events when the recipient unsubscribed through a link in the message.
	Url *string `json:"url,omitempty"`

	// UserAgent Client user-agent string. Present on `email.opened` and `email.clicked` events when available.
	UserAgent *string `json:"user_agent,omitempty"`
}

EmailEvent defines model for EmailEvent.

type EmailEventBounceType

type EmailEventBounceType string

EmailEventBounceType Bounce classification. Present on `email.bounced`, `email.out_of_band_bounce`, and `email.deferred` events.

- `hard`: a permanent failure (invalid address or non-existent domain). - `soft`: a transient failure (mailbox full or server temporarily unavailable). - `block`: the receiving mail server blocked the sending IP for reputation reasons. - `admin`: an administrative refusal (relaying denied or blocklisted domain). - `undetermined`: the receiving server's response is ambiguous.

const (
	EmailEventBounceTypeAdmin        EmailEventBounceType = "admin"
	EmailEventBounceTypeBlock        EmailEventBounceType = "block"
	EmailEventBounceTypeHard         EmailEventBounceType = "hard"
	EmailEventBounceTypeLessThannil  EmailEventBounceType = "<nil>"
	EmailEventBounceTypeSoft         EmailEventBounceType = "soft"
	EmailEventBounceTypeUndetermined EmailEventBounceType = "undetermined"
)

Defines values for EmailEventBounceType.

func (EmailEventBounceType) Valid

func (e EmailEventBounceType) Valid() bool

Valid indicates whether the value is a known member of the EmailEventBounceType enum.

type EmailEventList

type EmailEventList struct {
	// Data Page of timeline events for this email send, in chronological order.
	Data []EmailEvent `json:"data"`

	// Next What to do next, given what this page reports. Present only where the read computes it: an
	// empty list means the answer you were looking for is here and there is nothing further to
	// do. Absent entirely on reads that do not report next actions.
	Next *[]NextAction `json:"next,omitempty"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

EmailEventList defines model for EmailEventList.

type EmailEventRejectionReason

type EmailEventRejectionReason string

EmailEventRejectionReason Specific cause of rejection. Present on `email.rejected` events only.

- `recipient_suppressed`: The recipient is on the workspace suppression list. - `transmission_failed`: The message could not be transmitted for delivery. - `generation_failure`: The message could not be built for delivery, because of a template or content issue. - `policy_rejection`: The message was refused by sending policy. - `domain_unverified`: The sending domain was not verified. - `quota_exceeded`: The organization's send quota was reached. - `recipient_not_allowed`: This recipient was not allowed for this send. For a send from the shared onboarding domain, every recipient has to be a verified member of the workspace.

const (
	EmailEventRejectionReasonDomainUnverified    EmailEventRejectionReason = "domain_unverified"
	EmailEventRejectionReasonGenerationFailure   EmailEventRejectionReason = "generation_failure"
	EmailEventRejectionReasonLessThannil         EmailEventRejectionReason = "<nil>"
	EmailEventRejectionReasonPolicyRejection     EmailEventRejectionReason = "policy_rejection"
	EmailEventRejectionReasonQuotaExceeded       EmailEventRejectionReason = "quota_exceeded"
	EmailEventRejectionReasonRecipientNotAllowed EmailEventRejectionReason = "recipient_not_allowed"
	EmailEventRejectionReasonRecipientSuppressed EmailEventRejectionReason = "recipient_suppressed"
	EmailEventRejectionReasonTransmissionFailed  EmailEventRejectionReason = "transmission_failed"
)

Defines values for EmailEventRejectionReason.

func (EmailEventRejectionReason) Valid

func (e EmailEventRejectionReason) Valid() bool

Valid indicates whether the value is a known member of the EmailEventRejectionReason enum.

type EmailEventType added in v0.2.0

type EmailEventType string

EmailEventType Type of an event in a message's per-recipient delivery timeline.

- `email.scheduled`: We accepted a send scheduled for a future time. Fires once for each message regardless of its recipient count. - `email.accepted`: We accepted the send and are getting ready to deliver it. Fires once per requested recipient. - `email.processed`: We queued the message for delivery to the recipient's mail server. - `email.deferred`: The recipient's mail server temporarily refused the message. Delivery remains pending and is retried. Can fire more than once per recipient. - `email.delivered`: The recipient's mail server accepted the message. - `email.bounced`: Delivery permanently failed at the recipient's mail server. - `email.out_of_band_bounce`: A bounce notification arrived after the message had already been accepted for delivery. - `email.rejected`: We rejected the message before attempting delivery, for example because the recipient is suppressed. - `email.canceled`: A scheduled send was canceled before it fired. Fires once for each message regardless of its recipient count. - `email.opened`: The recipient opened the message. Can fire more than once per recipient. - `email.clicked`: The recipient clicked a tracked link in the message. Can fire more than once per recipient. - `email.unsubscribed`: The recipient opted out through a tracked unsubscribe link in the message. - `email.list_unsubscribed`: The recipient opted out through the one-click unsubscribe control in their mail client. - `email.complained`: The recipient reported the message as spam through their mailbox provider.

We can add new event types to this list over time, so treat a value you do not recognize as a new type rather than as an error.

const (
	EmailEventTypeEmailAccepted         EmailEventType = "email.accepted"
	EmailEventTypeEmailBounced          EmailEventType = "email.bounced"
	EmailEventTypeEmailCanceled         EmailEventType = "email.canceled"
	EmailEventTypeEmailClicked          EmailEventType = "email.clicked"
	EmailEventTypeEmailComplained       EmailEventType = "email.complained"
	EmailEventTypeEmailDeferred         EmailEventType = "email.deferred"
	EmailEventTypeEmailDelivered        EmailEventType = "email.delivered"
	EmailEventTypeEmailListUnsubscribed EmailEventType = "email.list_unsubscribed"
	EmailEventTypeEmailOpened           EmailEventType = "email.opened"
	EmailEventTypeEmailOutOfBandBounce  EmailEventType = "email.out_of_band_bounce"
	EmailEventTypeEmailProcessed        EmailEventType = "email.processed"
	EmailEventTypeEmailRejected         EmailEventType = "email.rejected"
	EmailEventTypeEmailScheduled        EmailEventType = "email.scheduled"
	EmailEventTypeEmailUnsubscribed     EmailEventType = "email.unsubscribed"
)

Defines values for EmailEventType.

func (EmailEventType) Valid added in v0.20.0

func (e EmailEventType) Valid() bool

Valid indicates whether the value is a known member of the EmailEventType enum.

type EmailID

type EmailID = string

EmailID defines model for EmailID.

type EmailInboundRouteID added in v0.4.1

type EmailInboundRouteID = string

EmailInboundRouteID defines model for EmailInboundRouteID.

type EmailLabelsUpdate added in v0.4.1

type EmailLabelsUpdate struct {
	// Add Labels to apply.
	Add *[]string `json:"add,omitempty"`

	// Remove Labels to take off.
	Remove *[]string `json:"remove,omitempty"`
}

EmailLabelsUpdate Label changes to apply. Labels in `add` are applied and labels in `remove` are taken off; other labels are left untouched. Adding a label that is already present, or removing one that is not, has no effect. System labels express state changes. On a conversation, adding `spam` files it as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox. Removing `unread` marks all retained received messages as read in one call. On a message, adding or removing `unread` flips read state. Adding or removing `trash` moves it to or out of the trash. The API rejects changes that contradict this model. A request cannot add more than one placement label. It cannot add `blocked`, because blocking a sender is a receive-rule decision. Removing `inbox` requires adding a destination. A conversation cannot add `trash` or `unread`; removing `unread` is the mark-all-read shortcut, and `trash` uses the `DELETE` verb. A message cannot use placement labels; move its conversation instead. A sent message cannot use `unread`. Custom labels are 1-64 characters with no commas, control characters, or leading or trailing whitespace. System label names and a small reserved set (`all`, `archived`, `deleted`, `draft`, `drafts`, `flagged`, `important`, `junk`, `muted`, `none`, `outbox`, `pinned`, `read`, `scheduled`, `snoozed`, `starred`) cannot be used as custom labels, in any casing. A conversation or message has at most 20 labels, system labels included.

type EmailLatencyQuantiles added in v0.10.0

type EmailLatencyQuantiles struct {
	// P50Ms Median (50th percentile) latency in milliseconds. Null when no qualifying event contributed a measurement.
	P50Ms *int `json:"p50_ms,omitempty"`

	// P95Ms 95th percentile latency in milliseconds. Null when no qualifying event contributed a measurement.
	P95Ms *int `json:"p95_ms,omitempty"`

	// P99Ms 99th percentile latency in milliseconds. Null when no qualifying event contributed a measurement.
	P99Ms *int `json:"p99_ms,omitempty"`
}

EmailLatencyQuantiles Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.

type EmailLatencyStats added in v0.10.0

type EmailLatencyStats struct {
	// Delivery Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.
	Delivery *EmailLatencyQuantiles `json:"delivery,omitempty"`

	// Processing Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.
	Processing *EmailLatencyQuantiles `json:"processing,omitempty"`

	// Total Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family over the bucket. All three are null when no qualifying event contributed a measurement.
	Total *EmailLatencyQuantiles `json:"total,omitempty"`
}

EmailLatencyStats Latency percentiles (p50, p95, p99) in milliseconds for the bucket. On the summary endpoint these are computed across the whole period rather than per bucket. Three families are reported:

- `processing`: Time from accepting the send to handing the message off for delivery. Measured per processed recipient; null when no recipient in the bucket has reached the processed stage. - `delivery`: Time from handoff to the receiving mail server accepting the message, dominated by recipient-side delivery behavior. Measured per delivered recipient; null when no deliveries occurred in the bucket. - `total`: End-to-end time from accepting the send to delivery, and the number most worth watching against your own delivery targets. Measured per delivered recipient; null when no deliveries occurred in the bucket.

Each family is reported independently. A family is omitted when no qualifying event contributed a latency measurement in the bucket. This also applies when the workspace has not recorded latency for that stage yet. The `processing` family can therefore be present while `delivery` and `total` are absent. A client must handle a missing family, and a null p50/p95/p99 within a present family, by rendering a placeholder rather than assuming a number.

type EmailLocationStatsPoint added in v0.10.0

type EmailLocationStatsPoint struct {
	// City The city within the region. Populated when `group_by` is `city`; null at coarser groupings.
	City *string `json:"city,omitempty"`

	// Country The country this row aggregates, as a two-letter country code (ISO 3166-1 alpha-2) resolved from the open or click event. Always present.
	Country    *string                `json:"country,omitempty"`
	Engagement *EmailEngagementCounts `json:"engagement,omitempty"`

	// Region The region (state or province) within the country. Populated when `group_by` is `region` or `city`; null at coarser groupings.
	Region *string `json:"region,omitempty"`
}

EmailLocationStatsPoint Open and click counts for messages engaged with from a single location over the requested period. Location is resolved from open and click events only, so this breakdown reports engagement activity: opens, clicks, and the recipients behind them. It has no delivery counts and no open or click rates, because the receiving mail server reports delivery without a recipient location, preventing a per-location delivered denominator and rates. Each row always includes all three of `country`, `region`, and `city`; the levels below the requested `group_by` are null.

type EmailLookup added in v0.31.0

type EmailLookup struct {
	// DeliveryConfidence How likely mail to this address is to be delivered, from 0 (certain not to be) to 100 (certain to be). Read it alongside `result` rather than instead of it, because the same score can sit under `neutral` or `risky` for different reasons.
	DeliveryConfidence *int `json:"delivery_confidence,omitempty"`

	// DidYouMean The address this one looks like a misspelling of. Absent unless a correction was found, which in practice means `result` is `typo`. Offer it to whoever typed the original rather than sending to it unasked, because it is a guess and the address they meant may be neither one.
	DidYouMean *string `json:"did_you_mean,omitempty"`

	// Email The address that was looked up, exactly as you sent it.
	Email *string `json:"email,omitempty"`

	// Flags Notable characteristics of the address. Empty when none apply.
	Flags *[]EmailLookupFlag `json:"flags,omitempty"`

	// Reason Why the address cannot receive mail. Absent unless `result` is `undeliverable`.
	Reason *EmailLookupReason `json:"reason,omitempty"`
	Result *EmailLookupResult `json:"result,omitempty"`

	// Valid Whether the address is well-formed and its domain is set up to receive mail at all. It says nothing about the mailbox itself, so a `valid` domain with no such mailbox is `true` here and `undeliverable` in `result`.
	Valid *bool `json:"valid,omitempty"`
}

EmailLookup Assessment of whether an email address accepts mail, the confidence and reason for that assessment, and a suggested correction when the address appears misspelled.

`result` is the field to decide on; `delivery_confidence` grades it, and `flags` describes the address itself rather than its deliverability, so a perfectly valid address can still have `role` or `disposable`.

Fields without resolved values are omitted rather than sent as null. Every field present in the response was resolved.

type EmailLookupFlag added in v0.31.0

type EmailLookupFlag string

EmailLookupFlag A notable characteristic of an email address.

  • `role`: it addresses a function rather than a person (`support@`, `info@`). Replies and consent are therefore ambiguous, and complaints are more likely.
  • `disposable`: it belongs to a throwaway-address provider and typically stops existing.
  • `free_provider`: it belongs to a consumer mailbox provider such as Gmail or Outlook.com. This is ordinary for consumer mail and a signal when you expected a business address.

Open enum: more flags may be added over time, so treat an unrecognized value as a future flag rather than an error.

const (
	EmailLookupFlagDisposable   EmailLookupFlag = "disposable"
	EmailLookupFlagFreeProvider EmailLookupFlag = "free_provider"
	EmailLookupFlagRole         EmailLookupFlag = "role"
)

Defines values for EmailLookupFlag.

func (EmailLookupFlag) Valid added in v0.31.0

func (e EmailLookupFlag) Valid() bool

Valid indicates whether the value is a known member of the EmailLookupFlag enum.

type EmailLookupReason added in v0.31.0

type EmailLookupReason string

EmailLookupReason Why an address cannot receive mail.

  • `invalid_syntax`: the address is malformed.
  • `invalid_domain`: the domain does not accept mail.
  • `invalid_recipient`: the domain accepts mail but this mailbox does not exist.

Open enum: further reasons may be added over time, so treat an unrecognized value as a future one rather than an error. `result` is what to branch on; this field explains it.

const (
	EmailLookupReasonInvalidDomain    EmailLookupReason = "invalid_domain"
	EmailLookupReasonInvalidRecipient EmailLookupReason = "invalid_recipient"
	EmailLookupReasonInvalidSyntax    EmailLookupReason = "invalid_syntax"
)

Defines values for EmailLookupReason.

func (EmailLookupReason) Valid added in v0.31.0

func (e EmailLookupReason) Valid() bool

Valid indicates whether the value is a known member of the EmailLookupReason enum.

type EmailLookupRequest added in v0.31.0

type EmailLookupRequest struct {
	// Email The email address to look up. Send it exactly as you hold it. The part before the `@` is case-sensitive, so the API does not lowercase it. A display-name form such as `Aisha <aisha@example.com>` is rejected rather than unwrapped.
	Email string `json:"email"`
}

EmailLookupRequest defines model for EmailLookupRequest.

type EmailLookupResult added in v0.31.0

type EmailLookupResult string

EmailLookupResult The verdict on the address, and the one field to decide on.

  • `valid`: the address exists and accepts mail.
  • `neutral`: it could not be confirmed either way, usually because the receiving domain answers every recipient the same.
  • `risky`: it probably accepts mail but is likelier than most to bounce or complain. Examples include role, disposable, and low-reputation addresses.
  • `undeliverable`: it does not accept mail, and `reason` says why.
  • `typo`: the address looks misspelled, and `did_you_mean` contains the correction.

Open enum: further verdicts may be added over time, so treat an unrecognized value as a future one rather than an error. Branch on the values you know and fall back on `delivery_confidence`, which is always present and always comparable.

const (
	EmailLookupResultNeutral       EmailLookupResult = "neutral"
	EmailLookupResultRisky         EmailLookupResult = "risky"
	EmailLookupResultTypo          EmailLookupResult = "typo"
	EmailLookupResultUndeliverable EmailLookupResult = "undeliverable"
	EmailLookupResultValid         EmailLookupResult = "valid"
)

Defines values for EmailLookupResult.

func (EmailLookupResult) Valid added in v0.31.0

func (e EmailLookupResult) Valid() bool

Valid indicates whether the value is a known member of the EmailLookupResult enum.

type EmailMailboxComposeRequest added in v0.4.1

type EmailMailboxComposeRequest struct {
	// Attachments File attachments. The send is rejected when the estimated generated message size exceeds 20 MB (bodies plus all attachments after base64 encoding). Keep total raw attachment content at or below 15 MB for reliable headroom. Attachment metadata stays on the message's `attachment_manifest`, and the bytes are downloadable for 30 days.
	Attachments *[]EmailAttachment `json:"attachments,omitempty"`

	// Bcc BCC recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	Bcc *[]EmailAddressInput `json:"bcc,omitempty"`

	// Category Content classification, which controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions, for receipts, password resets, and similar operational mail.
	Category *EmailMessageCategory `json:"category,omitempty"`

	// Cc CC recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	Cc *[]EmailAddressInput `json:"cc,omitempty"`

	// Html HTML body. At least one of html or text must be provided.
	Html *string `json:"html,omitempty"`

	// Metadata Arbitrary JSON object stored on the send and echoed in webhook payloads. Cap: 2 KB serialized.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// ReplyTo Reply-To addresses. When omitted, the mailbox's `default_reply_to` applies (replies then come back to the mailbox itself).
	ReplyTo *[]EmailAddressInput `json:"reply_to,omitempty"`

	// Subject Message subject line.
	Subject string `json:"subject"`

	// Tags Structured `{name, value}` labels for filtering and analytics on the sent-message log. Cap: 20 tags per send.
	Tags *[]Tag `json:"tags,omitempty"`

	// Text Plain-text body. At least one of html or text must be provided.
	Text *string `json:"text,omitempty"`

	// To Primary recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	To []EmailAddressInput `json:"to"`
}

EmailMailboxComposeRequest A new message sent from a mailbox, starting a new conversation. Mirrors the plain send request without `from`, because the mailbox is who the message comes from, and without `scheduled_at`, because a mailbox sends immediately. We set the RFC 5322 Message-ID so replies thread back into this conversation. At least one of `html` or `text` must be provided.

type EmailMailboxLabel added in v0.12.0

type EmailMailboxLabel struct {
	// Name The label name, as it appears on conversations and messages.
	Name *string `json:"name,omitempty"`

	// Type `system` labels are the built-in placements a message can be in:
	//
	// - Inbox.
	// - Archive.
	// - Spam.
	// - Blocked.
	// - Sent.
	// - Trash.
	// - Unread.
	//
	// `custom` labels are the workspace's own tags.
	Type *EmailMailboxLabelType `json:"type,omitempty"`
}

EmailMailboxLabel One label available in a mailbox.

type EmailMailboxLabelList added in v0.12.0

type EmailMailboxLabelList struct {
	Data []EmailMailboxLabel `json:"data"`
}

EmailMailboxLabelList The labels available in a mailbox.

type EmailMailboxLabelType added in v0.12.0

type EmailMailboxLabelType string

EmailMailboxLabelType `system` labels are the built-in placements a message can be in:

- Inbox. - Archive. - Spam. - Blocked. - Sent. - Trash. - Unread.

`custom` labels are the workspace's own tags.

const (
	EmailMailboxLabelTypeCustom EmailMailboxLabelType = "custom"
	EmailMailboxLabelTypeSystem EmailMailboxLabelType = "system"
)

Defines values for EmailMailboxLabelType.

func (EmailMailboxLabelType) Valid added in v0.12.0

func (e EmailMailboxLabelType) Valid() bool

Valid indicates whether the value is a known member of the EmailMailboxLabelType enum.

type EmailMailboxProviderDeliveryStats added in v0.10.0

type EmailMailboxProviderDeliveryStats struct {
	// BounceRate Share of attempted recipients on this mailbox provider that bounced, computed as `bounced / (delivered + bounced)`. Null when `delivered + bounced` is zero (no attempts).
	BounceRate *float32 `json:"bounce_rate,omitempty"`

	// Bounced Distinct recipients whose delivery failed. Approximately the sum of the five `bounces.*` sub-counts (hard, soft, admin, block, undetermined); the totals are computed independently so they may differ slightly at the approximation error.
	Bounced *int                       `json:"bounced,omitempty"`
	Bounces *EmailBounceStatsWithRates `json:"bounces,omitempty"`

	// Complained Distinct recipients who reported the message as spam.
	Complained *int `json:"complained,omitempty"`

	// ComplaintRate Share of delivered recipients on this mailbox provider who reported the message as spam, computed as `complained / delivered`. Null when `delivered` is zero.
	ComplaintRate *float32 `json:"complaint_rate,omitempty"`

	// Deferred Distinct recipients in transient delivery deferral that is still being retried.
	Deferred *int `json:"deferred,omitempty"`

	// Delivered Distinct recipients whose message the receiving mail server accepted.
	Delivered *int `json:"delivered,omitempty"`

	// DeliveryRate Share of attempted recipients on this mailbox provider that were delivered, computed as `delivered / (delivered + bounced)`. Null when `delivered + bounced` is zero (no attempts).
	DeliveryRate *float32 `json:"delivery_rate,omitempty"`
}

EmailMailboxProviderDeliveryStats Delivery counts and rates for messages attributed to a single recipient mailbox provider. Per-provider results do not include `accepted` or `processed` counts, because we only learn the recipient's mailbox provider once the receiving mail server reports delivery, a bounce, a deferral, or a late bounce. Earlier lifecycle states (accepted, processed) cannot be attributed to a specific provider.

type EmailMailboxProviderRegionStatsPoint added in v0.10.0

type EmailMailboxProviderRegionStatsPoint struct {
	Delivery   *EmailMailboxProviderDeliveryStats `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats              `json:"engagement,omitempty"`
	Latency    *EmailDeliveryLatencyStats         `json:"latency,omitempty"`

	// MailboxProvider The recipient mailbox provider this row aggregates, as a lowercase classifier such as `gmail`, `yahoo`, `microsoft`, or `apple`.
	MailboxProvider *string `json:"mailbox_provider,omitempty"`

	// MailboxProviderRegion The provider region this row aggregates, as reported by the receiving mail system (for example `NA`, `EU`, `APAC`). The set is open and provider-specific.
	MailboxProviderRegion *string `json:"mailbox_provider_region,omitempty"`

	// Trend Per-bucket rate series for this provider region over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailMailboxProviderRegionStatsPoint Delivery, engagement, and deliverability stats for messages grouped by a single mailbox provider and provider region pair over the requested period, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional pod the receiving mail system reports for the recipient's provider; pairing it with the provider disambiguates a region label that several providers share. Like the mailbox-provider breakdown, rows cover the delivery stage onward: the `accepted` and `processed` counts and the `processing` latency family are omitted (a provider region cannot be attributed before delivery).

type EmailMailboxProviderSortMetric added in v0.10.0

type EmailMailboxProviderSortMetric string

EmailMailboxProviderSortMetric Metric to rank rows by, applied descending. Shared by every breakdown whose attribution begins at delivery, so `processed`, `rejected`, and `oob_bounces` are not part of those rows and are not sortable. Any count or rate on the row can be used; rows whose rate is undefined (zero denominator) sort last. Bounce sub-types use their nested location in each row, for example `bounces.hard` and `bounces.hard_rate`.

const (
	EmailMailboxProviderSortMetricBounceRate               EmailMailboxProviderSortMetric = "bounce_rate"
	EmailMailboxProviderSortMetricBounced                  EmailMailboxProviderSortMetric = "bounced"
	EmailMailboxProviderSortMetricBouncesAdmin             EmailMailboxProviderSortMetric = "bounces.admin"
	EmailMailboxProviderSortMetricBouncesAdminRate         EmailMailboxProviderSortMetric = "bounces.admin_rate"
	EmailMailboxProviderSortMetricBouncesBlock             EmailMailboxProviderSortMetric = "bounces.block"
	EmailMailboxProviderSortMetricBouncesBlockRate         EmailMailboxProviderSortMetric = "bounces.block_rate"
	EmailMailboxProviderSortMetricBouncesHard              EmailMailboxProviderSortMetric = "bounces.hard"
	EmailMailboxProviderSortMetricBouncesHardRate          EmailMailboxProviderSortMetric = "bounces.hard_rate"
	EmailMailboxProviderSortMetricBouncesSoft              EmailMailboxProviderSortMetric = "bounces.soft"
	EmailMailboxProviderSortMetricBouncesSoftRate          EmailMailboxProviderSortMetric = "bounces.soft_rate"
	EmailMailboxProviderSortMetricBouncesUndetermined      EmailMailboxProviderSortMetric = "bounces.undetermined"
	EmailMailboxProviderSortMetricBouncesUndeterminedRate  EmailMailboxProviderSortMetric = "bounces.undetermined_rate"
	EmailMailboxProviderSortMetricClickRate                EmailMailboxProviderSortMetric = "click_rate"
	EmailMailboxProviderSortMetricClicks                   EmailMailboxProviderSortMetric = "clicks"
	EmailMailboxProviderSortMetricComplained               EmailMailboxProviderSortMetric = "complained"
	EmailMailboxProviderSortMetricComplaintRate            EmailMailboxProviderSortMetric = "complaint_rate"
	EmailMailboxProviderSortMetricDeferred                 EmailMailboxProviderSortMetric = "deferred"
	EmailMailboxProviderSortMetricDelivered                EmailMailboxProviderSortMetric = "delivered"
	EmailMailboxProviderSortMetricDeliveryRate             EmailMailboxProviderSortMetric = "delivery_rate"
	EmailMailboxProviderSortMetricOpenRate                 EmailMailboxProviderSortMetric = "open_rate"
	EmailMailboxProviderSortMetricOpens                    EmailMailboxProviderSortMetric = "opens"
	EmailMailboxProviderSortMetricOpensNonPrefetched       EmailMailboxProviderSortMetric = "opens_non_prefetched"
	EmailMailboxProviderSortMetricUniqueClicks             EmailMailboxProviderSortMetric = "unique_clicks"
	EmailMailboxProviderSortMetricUniqueOpens              EmailMailboxProviderSortMetric = "unique_opens"
	EmailMailboxProviderSortMetricUniqueOpensNonPrefetched EmailMailboxProviderSortMetric = "unique_opens_non_prefetched"
	EmailMailboxProviderSortMetricUnsubscribeRate          EmailMailboxProviderSortMetric = "unsubscribe_rate"
	EmailMailboxProviderSortMetricUnsubscribes             EmailMailboxProviderSortMetric = "unsubscribes"
)

Defines values for EmailMailboxProviderSortMetric.

func (EmailMailboxProviderSortMetric) Valid added in v0.10.0

Valid indicates whether the value is a known member of the EmailMailboxProviderSortMetric enum.

type EmailMailboxProviderStatsPoint added in v0.10.0

type EmailMailboxProviderStatsPoint struct {
	Delivery   *EmailMailboxProviderDeliveryStats `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats              `json:"engagement,omitempty"`
	Latency    *EmailDeliveryLatencyStats         `json:"latency,omitempty"`

	// MailboxProvider The recipient mailbox provider this row aggregates, as a lowercase classifier such as `gmail`, `yahoo`, `microsoft`, or `apple`. New classifiers may be added over time.
	MailboxProvider *string `json:"mailbox_provider,omitempty"`

	// Trend Per-bucket rate series for this mailbox provider over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailMailboxProviderStatsPoint Delivery, engagement, and deliverability stats for messages grouped by a single recipient mailbox provider (`gmail`, `microsoft`, `yahoo`, `apple`, ...) over the requested period. We learn a recipient's mailbox provider from the receiving mail server. Per-provider rows therefore cover the delivery stage onward. They omit the `accepted` and `processed` counts and the `processing` latency family. These fields are absent rather than null. Engagement (opens and clicks, and their rates) is included because those events happen after delivery, once the mailbox provider is already known.

type EmailMessage

type EmailMessage struct {
	// AcceptedCount How many recipients are in the `accepted` state, meaning we have the message and are getting ready to deliver it.
	AcceptedCount *int `json:"accepted_count,omitempty"`

	// Attachments Attachment metadata for the send. Empty when no attachments were included. Raw content is not echoed. When content storage is enabled, download an attachment by its `id` via the message's attachment endpoint.
	Attachments *[]EmailAttachmentRef `json:"attachments,omitempty"`

	// Bcc BCC recipients.
	Bcc *[]EmailAddress `json:"bcc,omitempty"`

	// BouncedCount Number of recipients that resulted in a permanent delivery failure.
	BouncedCount *int `json:"bounced_count,omitempty"`

	// Category Content classification, which controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions, for receipts, password resets, and similar operational mail.
	Category EmailMessageCategory `json:"category"`

	// Cc CC recipients.
	Cc *[]EmailAddress `json:"cc,omitempty"`

	// ClickCount Total click events across all recipients.
	ClickCount *int `json:"click_count,omitempty"`

	// ComplainedCount Number of recipients that reported spam.
	ComplainedCount *int `json:"complained_count,omitempty"`

	// CreatedAt When the send request was accepted.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// DeferredCount Number of recipients in transient delivery deferral. Their mail server asked for a retry, and delivery attempts continue.
	DeferredCount *int `json:"deferred_count,omitempty"`

	// DeliveredAt When all recipients reached a terminal delivered state, or null if not yet fully delivered.
	DeliveredAt *time.Time `json:"delivered_at,omitempty"`

	// DeliveredCount How many recipients' messages were accepted by their mail server.
	DeliveredCount *int `json:"delivered_count,omitempty"`

	// DeliveryLatencyMs Time between the message being processed and the receiving mail server accepting it, in milliseconds, for the fastest delivered recipient. Null until the first recipient is delivered.
	DeliveryLatencyMs *int `json:"delivery_latency_ms,omitempty"`

	// From An email address with an optional display name.
	From EmailAddress `json:"from"`
	Id   EmailID      `json:"id"`

	// InReplyToMessageId The message this one is a reply to, if any.
	InReplyToMessageId *EmailID `json:"in_reply_to_message_id,omitempty"`

	// Metadata Any JSON you kept on the message. We store it and hand it back in webhook payloads, and that is all it does. If you want to search or filter by it, use `tags` instead.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// OpenCount Total open events across all recipients.
	OpenCount *int `json:"open_count,omitempty"`

	// Parameters The substitution values this send supplied, whether inline or from a template, or null if none were supplied. They are the values applied to `subject` and to the bodies the content endpoint returns, kept so you can see what produced the delivered copy and not only the result.
	Parameters *map[string]interface{} `json:"parameters,omitempty"`

	// ProcessedCount How many recipients the message has been prepared for and queued for delivery.
	ProcessedCount *int `json:"processed_count,omitempty"`

	// ProcessingLatencyMs Time between the send being accepted and the message being prepared for delivery, in milliseconds, for the fastest recipient. Null until the first recipient reaches `processed`.
	ProcessingLatencyMs *int `json:"processing_latency_ms,omitempty"`

	// RejectedCount Number of recipients rejected before delivery. Read the per-recipient `rejection_reason` field on `GET /v1/email/messages/{message_id}/recipients` for the specific cause.
	RejectedCount *int `json:"rejected_count,omitempty"`

	// ReplyTo Reply-To addresses, if set on the send. Empty/null when no Reply-To was provided.
	ReplyTo *[]EmailAddress `json:"reply_to,omitempty"`

	// RequestedLanguage The template language this send asked for, in canonical form (`pt-BR` for a request of `pt-br`). Null when the send named no language (it took the template's default) or used no template at all. Compare it with `resolved_language`: when they differ, the language you asked for was not available and the template's `on_missing_language` policy chose the one shown there instead.
	RequestedLanguage *LanguageTag `json:"requested_language,omitempty"`

	// ResolvedLanguage The template language this send was actually delivered in, in canonical form. Null when the send used no template. A non-null value with a null `requested_language` means the send named no language and took the template's default.
	ResolvedLanguage *LanguageTag `json:"resolved_language,omitempty"`

	// ScheduledAt When this message is scheduled to send, for a send created with a future send time. Null for an immediate send. Stays set after the scheduled send fires.
	ScheduledAt *time.Time          `json:"scheduled_at,omitempty"`
	Status      *EmailMessageStatus `json:"status,omitempty"`

	// Subject The subject line as delivered. For a send that used a template, the stored subject is the template's, so this reports it with the send's `parameters` substituted in, which is what the recipient saw.
	Subject string `json:"subject"`

	// Tags Labels on this message, each one a `name` and a `value`, that you can filter and search messages by. Use tags for anything you want to find messages by later, and `metadata` for data you only want handed back to you.
	Tags *[]Tag `json:"tags,omitempty"`

	// TemplateId The template this send rendered from, or null for a send that supplied its content inline.
	TemplateId *EmailTemplateID `json:"template_id,omitempty"`

	// TemplateVersionId The exact template version this send rendered from, or null for an inline send. A template's live version changes every time you submit it, so this is what identifies the wording that was actually delivered, together with `resolved_language`.
	TemplateVersionId *EmailTemplateVersionID `json:"template_version_id,omitempty"`

	// ThreadId Thread this message belongs to, or null when the message is not part of one.
	ThreadId *string `json:"thread_id,omitempty"`

	// To Primary recipients. Length is the recipient count. Use the broadcasts endpoint for audience-targeted sends. Each entry's `name` is present when a display name was provided on the send.
	To []EmailAddress `json:"to"`

	// TotalLatencyMs End-to-end accept → delivered time for the fastest delivered recipient, in milliseconds. Null until the first recipient is delivered.
	TotalLatencyMs *int `json:"total_latency_ms,omitempty"`

	// TrackClicks Whether click tracking is enabled for this send.
	TrackClicks bool `json:"track_clicks"`

	// TrackOpens Whether open tracking is enabled for this send.
	TrackOpens bool `json:"track_opens"`
}

EmailMessage defines model for EmailMessage.

type EmailMessageBatchItem

type EmailMessageBatchItem struct {
	// Category Resolved category for this batch item.
	Category EmailMessageBatchItemCategory `json:"category"`
	Id       EmailID                       `json:"id"`

	// RequestedLanguage The template language this item asked for, in canonical form. Null when the item named no language or used no template. Every item in a batch resolves its own template reference, so this and `resolved_language` can differ from item to item.
	RequestedLanguage *LanguageTag `json:"requested_language,omitempty"`

	// ResolvedLanguage The template language this item was actually delivered in, in canonical form. Null when the item used no template. A value here differing from `requested_language` means the template did not have the language asked for and its `on_missing_language` policy chose this one.
	ResolvedLanguage *LanguageTag `json:"resolved_language,omitempty"`

	// Status Initial status of this message in the batch.
	Status *EmailMessageBatchItemStatus `json:"status,omitempty"`

	// TemplateId The template this item rendered from, or null for an item that supplied its content inline.
	TemplateId *EmailTemplateID `json:"template_id,omitempty"`

	// TemplateVersionId The exact template version this item rendered from, or null for an inline item. Record it if you need to reproduce what was sent: a template's live version changes every time you submit it.
	TemplateVersionId *EmailTemplateVersionID `json:"template_version_id,omitempty"`
}

EmailMessageBatchItem defines model for EmailMessageBatchItem.

type EmailMessageBatchItemCategory

type EmailMessageBatchItemCategory string

EmailMessageBatchItemCategory Resolved category for this batch item.

const (
	EmailMessageBatchItemCategoryMarketing     EmailMessageBatchItemCategory = "marketing"
	EmailMessageBatchItemCategoryTransactional EmailMessageBatchItemCategory = "transactional"
)

Defines values for EmailMessageBatchItemCategory.

func (EmailMessageBatchItemCategory) Valid

Valid indicates whether the value is a known member of the EmailMessageBatchItemCategory enum.

type EmailMessageBatchItemStatus

type EmailMessageBatchItemStatus string

EmailMessageBatchItemStatus Initial status of this message in the batch.

const (
	EmailMessageBatchItemStatusAccepted EmailMessageBatchItemStatus = "accepted"
)

Defines values for EmailMessageBatchItemStatus.

func (EmailMessageBatchItemStatus) Valid

Valid indicates whether the value is a known member of the EmailMessageBatchItemStatus enum.

type EmailMessageBatchRequest

type EmailMessageBatchRequest = []EmailMessageSendRequest

EmailMessageBatchRequest Batch of email message send requests. All items are validated before any are queued. Attachments are allowed on individual messages. Each message must stay within the 20 MB estimated generated message-size cap. The serialized JSON request body for the batch has a hard 20 MB cap.

type EmailMessageBatchResponse

type EmailMessageBatchResponse struct {
	// Data One entry per message in the batch, in submission order.
	Data []EmailMessageBatchItem `json:"data"`
}

EmailMessageBatchResponse defines model for EmailMessageBatchResponse.

type EmailMessageCategory

type EmailMessageCategory string

EmailMessageCategory Content classification, which controls suppression policy:

- `marketing`: Blocks on all suppression reasons. - `transactional`: Allows delivery through complaint and unsubscribe suppressions, for receipts, password resets, and similar operational mail.

const (
	EmailMessageCategoryMarketing     EmailMessageCategory = "marketing"
	EmailMessageCategoryTransactional EmailMessageCategory = "transactional"
)

Defines values for EmailMessageCategory.

func (EmailMessageCategory) Valid

func (e EmailMessageCategory) Valid() bool

Valid indicates whether the value is a known member of the EmailMessageCategory enum.

type EmailMessageContent

type EmailMessageContent struct {
	// Html The HTML body of the message as delivered, if it was stored.
	Html *string `json:"html,omitempty"`

	// Text The plain-text body of the message as delivered, if it was stored.
	Text *string `json:"text,omitempty"`
}

EmailMessageContent The body content of a sent email message, as delivered. A send that used a template stores the template's body, so these report it with the send's `parameters` substituted in.

type EmailMessageList

type EmailMessageList struct {
	// Data Page of message objects.
	Data []EmailMessage `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

EmailMessageList defines model for EmailMessageList.

type EmailMessageSendRequest

type EmailMessageSendRequest struct {
	// Attachments Files to attach, up to 20 per message. A message can be at most 20 MB once it has been generated, and we refuse a send that would go over. That figure covers the HTML body, the text body and every attachment and inline image, all measured after base64 encoding, which adds roughly a third. So 15 MB of raw files already accounts for most of the budget, and the body competes for the same space. A batch send is held to the same 20 MB per message, and the whole request body is capped at 20 MB as well.
	Attachments *[]EmailAttachment `json:"attachments,omitempty"`

	// Bcc BCC recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	Bcc *[]EmailAddressInput `json:"bcc,omitempty"`

	// Category Content classification, which controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions, for receipts, password resets, and similar operational mail.
	Category *EmailMessageCategory `json:"category,omitempty"`

	// Cc CC recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	Cc *[]EmailAddressInput `json:"cc,omitempty"`

	// From A sender or recipient address. Accepts a plain email string (`jane@acme.com`), an RFC 5322 mailbox string with an embedded display name (`Jane Doe <jane@acme.com>`), or an object carrying the address and an optional display name. All forms can be mixed freely within one request. Responses always return the object form.
	From EmailAddressInput `json:"from"`

	// Headers Custom email headers as key-value pairs (for example `References`, `In-Reply-To`, or your own `X-*` headers). Reserved headers are rejected with a `422`. Set the message's addressing and subject through the dedicated fields: `from`, `to`, `cc`, `bcc`, `reply_to`, and `subject`. The API automatically generates `Content-Type`, `Content-Transfer-Encoding`, `DKIM-Signature`, `Received`, and `Return-Path`. You cannot override these generated headers. `List-Unsubscribe` and `List-Unsubscribe-Post` are honored as-is on `transactional` sends. Marketing sends receive a compliant unsubscribe header, so supplying either one is rejected with a `422`. Header values may not contain carriage-return or line-feed characters. Up to 25 headers per send, each value up to 998 characters.
	Headers *map[string]string `json:"headers,omitempty"`

	// Html HTML body. At least one of html or text must be provided.
	Html *string `json:"html,omitempty"`

	// IpPoolId ID of the IP pool to send from (`ipp_` prefix), or `ipp_shared` to route through the shared pool explicitly. Omit to use your organization's default pool. An unknown pool, or a pool with no dedicated IPs available to send from, is rejected with a `422`.
	IpPoolId *string `json:"ip_pool_id,omitempty"`

	// Metadata Arbitrary JSON object returned on API reads and included in webhook payloads. You can query its paths in analytics, such as `metadata.order_id`, but it is not a dashboard filter. The serialized object is limited to 2 KB. Use metadata for per-send context such as order IDs, customer references, and structured event data. For low-cardinality filterable labels, use `tags` instead.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Parameters Parameter values used to personalize inline content. A parameter is a single word, and a token in the subject or body (for example `{{ animal }}`) is replaced with the value of that name at send time. Shared across all recipients of this send. A token with no matching key renders empty. Cap: 16 KB serialized. When sending a stored `template`, put the values in `template.parameters` instead.
	Parameters *map[string]interface{} `json:"parameters,omitempty"`

	// ReplyTo Reply-To addresses, each a plain email string, an RFC 5322 mailbox string, or an object with an optional display name. RFC 5322 allows multiple. Every recipient reply hits all listed addresses, so 1-2 is typical. The 25 cap exists to prevent header sizes that some receiving mail servers reject.
	ReplyTo *[]EmailAddressInput `json:"reply_to,omitempty"`

	// ScheduledAt Schedule the message to send at a future time instead of immediately. Must be at least 30 seconds and at most 30 days ahead. Outside that range the request is rejected with `422`. The message returns with status `accepted` and shows as `scheduled` on reads until it sends. Cancel it before then with the message cancel endpoint. Scheduled sends count against your plan's monthly scheduled-email allowance. Exceeding it is rejected with a `422`. A scheduled message has inline content: `scheduled_at` and `template` are mutually exclusive, and combining them is rejected with a `422`. This field is accepted only on a single send. Batch items reject it.
	ScheduledAt *time.Time `json:"scheduled_at,omitempty"`

	// Subject Message subject line. Required for inline sends. Omit it when sending a `template` (the template supplies the subject).
	Subject *string `json:"subject,omitempty"`

	// Tags Structured `{name, value}` labels for **filtering and analytics**. Tags become first-class query dimensions:
	//
	// - Filter the list endpoint by tag name.
	// - Slice analytics rollups by tag.
	// - Surface in webhook payloads.
	//
	// Cap: 20 tags per send. Use tags for low-cardinality dimensions (`category`, `experiment_variant`, `template_id`). For arbitrary structured context that you do not need as a filter dimension, use `metadata` instead.
	Tags *[]Tag `json:"tags,omitempty"`

	// Template Send a stored template instead of inline content. When set, omit `subject`, `html` and `text`, because the template supplies them. Personalize with `template.parameters`. A template send goes out immediately: `template` and `scheduled_at` are mutually exclusive, and combining them is rejected with a `422`.
	Template *EmailTemplateSend `json:"template,omitempty"`

	// Text Plain-text body. At least one of html or text must be provided.
	Text *string `json:"text,omitempty"`

	// To Primary recipients. Each entry is a plain email string, an RFC 5322 mailbox string (`Jane <jane@acme.com>`), or an object with an optional display name.
	To []EmailAddressInput `json:"to"`

	// TrackClicks Whether to track click events for this message.
	TrackClicks *bool `json:"track_clicks,omitempty"`

	// TrackOpens Whether to track open events for this message.
	TrackOpens *bool `json:"track_opens,omitempty"`
}

EmailMessageSendRequest defines model for EmailMessageSendRequest.

type EmailMessageStatus

type EmailMessageStatus string

EmailMessageStatus Aggregate delivery status of an email, derived from its recipients' states.

In flight:

- `scheduled`: The message is queued to send at a future time and has not been dispatched yet. - `accepted`: The initial status of an immediate send. The message is queued for its recipients. - `processed`: Delivery is underway, so at least one recipient's message is on its way out and none has failed. - `deferred`: At least one recipient's mailbox provider asked for a retry, and delivery attempts continue.

Final:

- `delivered`: Every recipient's mail server accepted the message. - `bounced`: Every recipient permanently failed (bounced or was rejected). - `rejected`: Every recipient was rejected before a delivery attempt (for example, all recipients were suppressed). - `partial_failure`: Some recipients permanently failed while others were delivered or are still in flight. - `canceled`: A scheduled message was canceled before it was sent.

`complained` takes precedence over every other status: at least one recipient reported the message as spam, regardless of what happened to the rest.

const (
	EmailMessageStatusAccepted       EmailMessageStatus = "accepted"
	EmailMessageStatusBounced        EmailMessageStatus = "bounced"
	EmailMessageStatusCanceled       EmailMessageStatus = "canceled"
	EmailMessageStatusComplained     EmailMessageStatus = "complained"
	EmailMessageStatusDeferred       EmailMessageStatus = "deferred"
	EmailMessageStatusDelivered      EmailMessageStatus = "delivered"
	EmailMessageStatusPartialFailure EmailMessageStatus = "partial_failure"
	EmailMessageStatusProcessed      EmailMessageStatus = "processed"
	EmailMessageStatusRejected       EmailMessageStatus = "rejected"
	EmailMessageStatusScheduled      EmailMessageStatus = "scheduled"
)

Defines values for EmailMessageStatus.

func (EmailMessageStatus) Valid

func (e EmailMessageStatus) Valid() bool

Valid indicates whether the value is a known member of the EmailMessageStatus enum.

type EmailRecipient

type EmailRecipient struct {
	// BounceCode SMTP reply code returned by the receiving mail server for `bounced` and `deferred` rows, or null when none was provided.
	BounceCode *string `json:"bounce_code,omitempty"`

	// BounceDescription Human-readable reason the receiving mail server gave for the bounce or deferral, or null when none was provided.
	BounceDescription *string `json:"bounce_description,omitempty"`

	// BounceType Bounce classification for `bounced` and `deferred` rows, or null when the recipient
	// has not bounced or the receiving server's response has not been classified.
	//
	// - `hard`: a permanent failure (invalid address or non-existent domain).
	// - `soft`: a transient failure (mailbox full or server temporarily unavailable).
	// - `block`: the receiving mail server blocked the sending IP for reputation reasons.
	// - `admin`: an administrative refusal (relaying denied or blocklisted domain).
	// - `undetermined`: the receiving server's response is ambiguous.
	BounceType *EmailRecipientBounceType `json:"bounce_type,omitempty"`

	// ClickCount Number of click events for this recipient.
	ClickCount *int `json:"click_count,omitempty"`

	// DeliveredAt When the recipient's mail server accepted the message, or null if not yet delivered.
	DeliveredAt *time.Time `json:"delivered_at,omitempty"`

	// DeliveryLatencyMs Time between the message being prepared and the receiving mail server accepting it, in milliseconds. Null until delivered.
	DeliveryLatencyMs *int        `json:"delivery_latency_ms,omitempty"`
	Id                RecipientID `json:"id"`

	// Name Display name provided for this recipient on the send, or null if none was given.
	Name *string `json:"name,omitempty"`

	// OpenCount Number of open events for this recipient.
	OpenCount *int `json:"open_count,omitempty"`

	// ParentId ID of the message or broadcast this recipient belongs to. For a message send, this is the message's `em_`-prefixed ID. For a broadcast, this field is also `em_`-prefixed, but currently does not resolve to a retrievable message.
	ParentId string `json:"parent_id"`

	// ProcessedAt When the message was prepared and queued for delivery to the recipient's mail server, or null if that has not happened yet.
	ProcessedAt *time.Time `json:"processed_at,omitempty"`

	// ProcessingLatencyMs Time between the send being accepted and the message being prepared for delivery, in milliseconds. Null until processed.
	ProcessingLatencyMs *int `json:"processing_latency_ms,omitempty"`

	// Recipient Recipient email address.
	Recipient openapi_types.Email `json:"recipient"`

	// RejectionReason Present on `status: rejected` rows. Specifies why the recipient was rejected:
	//
	// - `recipient_suppressed`: The recipient is on the workspace suppression list, so
	//   delivery was never attempted.
	// - `transmission_failed`: The message could not be transmitted for delivery.
	// - `generation_failure`: The message could not be built for delivery (template or
	//   content issue).
	// - `policy_rejection`: The message was refused by sending policy.
	// - `domain_unverified`: The sending domain was not verified.
	// - `quota_exceeded`: The organization's send quota was reached.
	// - `recipient_not_allowed`: A recipient was not permitted for this send (for shared
	//   onboarding-domain sends, recipients must be verified workspace members).
	RejectionReason *EmailRecipientRejectionReason `json:"rejection_reason,omitempty"`

	// Role Envelope position of a recipient on an outbound email event.
	Role RecipientRole `json:"role"`

	// Status Delivery status for this recipient:
	//
	// - `accepted`: The send has been taken and is being prepared for delivery.
	// - `processed`: This recipient's message is on its way out.
	// - `deferred`: The recipient's mailbox provider asked for a retry, and delivery attempts continue.
	// - `delivered`: The recipient's mail server accepted the message.
	// - `bounced`: Delivery permanently failed (see `bounce_type` for hard vs soft).
	// - `complained`: The recipient reported the message as spam.
	// - `rejected`: Delivery was never attempted (see `rejection_reason` for why).
	Status *EmailRecipientStatus `json:"status,omitempty"`

	// TotalLatencyMs End-to-end accept → delivered time for this recipient, in milliseconds. Null until delivered.
	TotalLatencyMs *int `json:"total_latency_ms,omitempty"`
}

EmailRecipient defines model for EmailRecipient.

type EmailRecipientBounceType added in v0.2.1

type EmailRecipientBounceType string

EmailRecipientBounceType Bounce classification for `bounced` and `deferred` rows, or null when the recipient has not bounced or the receiving server's response has not been classified.

- `hard`: a permanent failure (invalid address or non-existent domain). - `soft`: a transient failure (mailbox full or server temporarily unavailable). - `block`: the receiving mail server blocked the sending IP for reputation reasons. - `admin`: an administrative refusal (relaying denied or blocklisted domain). - `undetermined`: the receiving server's response is ambiguous.

const (
	EmailRecipientBounceTypeAdmin        EmailRecipientBounceType = "admin"
	EmailRecipientBounceTypeBlock        EmailRecipientBounceType = "block"
	EmailRecipientBounceTypeHard         EmailRecipientBounceType = "hard"
	EmailRecipientBounceTypeLessThannil  EmailRecipientBounceType = "<nil>"
	EmailRecipientBounceTypeSoft         EmailRecipientBounceType = "soft"
	EmailRecipientBounceTypeUndetermined EmailRecipientBounceType = "undetermined"
)

Defines values for EmailRecipientBounceType.

func (EmailRecipientBounceType) Valid added in v0.2.1

func (e EmailRecipientBounceType) Valid() bool

Valid indicates whether the value is a known member of the EmailRecipientBounceType enum.

type EmailRecipientDomainStatsPoint added in v0.10.0

type EmailRecipientDomainStatsPoint struct {
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// RecipientDomain The recipient mailbox domain this row aggregates (the part of the recipient address after the `@`), normalized to lowercase.
	RecipientDomain *string `json:"recipient_domain,omitempty"`

	// Trend Per-bucket rate series for this recipient domain over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailRecipientDomainStatsPoint Aggregate delivery, engagement, and latency stats for messages sent to a single recipient mailbox domain over the requested period.

type EmailRecipientList

type EmailRecipientList struct {
	// Data Page of recipient objects for this email send.
	Data []EmailRecipient `json:"data"`

	// Next What to do next, given what this page reports. Present only where the read computes it: an
	// empty list means the answer you were looking for is here and there is nothing further to
	// do. Absent entirely on reads that do not report next actions.
	Next *[]NextAction `json:"next,omitempty"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

EmailRecipientList defines model for EmailRecipientList.

type EmailRecipientRejectionReason

type EmailRecipientRejectionReason string

EmailRecipientRejectionReason Present on `status: rejected` rows. Specifies why the recipient was rejected:

  • `recipient_suppressed`: The recipient is on the workspace suppression list, so delivery was never attempted.
  • `transmission_failed`: The message could not be transmitted for delivery.
  • `generation_failure`: The message could not be built for delivery (template or content issue).
  • `policy_rejection`: The message was refused by sending policy.
  • `domain_unverified`: The sending domain was not verified.
  • `quota_exceeded`: The organization's send quota was reached.
  • `recipient_not_allowed`: A recipient was not permitted for this send (for shared onboarding-domain sends, recipients must be verified workspace members).
const (
	EmailRecipientRejectionReasonDomainUnverified    EmailRecipientRejectionReason = "domain_unverified"
	EmailRecipientRejectionReasonGenerationFailure   EmailRecipientRejectionReason = "generation_failure"
	EmailRecipientRejectionReasonLessThannil         EmailRecipientRejectionReason = "<nil>"
	EmailRecipientRejectionReasonPolicyRejection     EmailRecipientRejectionReason = "policy_rejection"
	EmailRecipientRejectionReasonQuotaExceeded       EmailRecipientRejectionReason = "quota_exceeded"
	EmailRecipientRejectionReasonRecipientNotAllowed EmailRecipientRejectionReason = "recipient_not_allowed"
	EmailRecipientRejectionReasonRecipientSuppressed EmailRecipientRejectionReason = "recipient_suppressed"
	EmailRecipientRejectionReasonTransmissionFailed  EmailRecipientRejectionReason = "transmission_failed"
)

Defines values for EmailRecipientRejectionReason.

func (EmailRecipientRejectionReason) Valid

Valid indicates whether the value is a known member of the EmailRecipientRejectionReason enum.

type EmailRecipientStatus

type EmailRecipientStatus string

EmailRecipientStatus Delivery status for this recipient:

- `accepted`: The send has been taken and is being prepared for delivery. - `processed`: This recipient's message is on its way out. - `deferred`: The recipient's mailbox provider asked for a retry, and delivery attempts continue. - `delivered`: The recipient's mail server accepted the message. - `bounced`: Delivery permanently failed (see `bounce_type` for hard vs soft). - `complained`: The recipient reported the message as spam. - `rejected`: Delivery was never attempted (see `rejection_reason` for why).

const (
	EmailRecipientStatusAccepted   EmailRecipientStatus = "accepted"
	EmailRecipientStatusBounced    EmailRecipientStatus = "bounced"
	EmailRecipientStatusComplained EmailRecipientStatus = "complained"
	EmailRecipientStatusDeferred   EmailRecipientStatus = "deferred"
	EmailRecipientStatusDelivered  EmailRecipientStatus = "delivered"
	EmailRecipientStatusProcessed  EmailRecipientStatus = "processed"
	EmailRecipientStatusRejected   EmailRecipientStatus = "rejected"
)

Defines values for EmailRecipientStatus.

func (EmailRecipientStatus) Valid

func (e EmailRecipientStatus) Valid() bool

Valid indicates whether the value is a known member of the EmailRecipientStatus enum.

type EmailRejectionReason

type EmailRejectionReason string

EmailRejectionReason Why an email was rejected before delivery.

  • `recipient_suppressed`: The recipient is on the workspace suppression list, so delivery was never attempted.
  • `transmission_failed`: The message could not be transmitted for delivery.
  • `generation_failure`: The message could not be built for delivery (template or content issue).
  • `policy_rejection`: The message was refused by sending policy.
  • `domain_unverified`: The sending domain was not verified.
  • `quota_exceeded`: The organization's send quota was reached.
  • `recipient_not_allowed`: A recipient was not permitted for this send (for shared onboarding-domain sends, recipients must be verified workspace members).
const (
	EmailRejectionReasonDomainUnverified    EmailRejectionReason = "domain_unverified"
	EmailRejectionReasonGenerationFailure   EmailRejectionReason = "generation_failure"
	EmailRejectionReasonPolicyRejection     EmailRejectionReason = "policy_rejection"
	EmailRejectionReasonQuotaExceeded       EmailRejectionReason = "quota_exceeded"
	EmailRejectionReasonRecipientNotAllowed EmailRejectionReason = "recipient_not_allowed"
	EmailRejectionReasonRecipientSuppressed EmailRejectionReason = "recipient_suppressed"
	EmailRejectionReasonTransmissionFailed  EmailRejectionReason = "transmission_failed"
)

Defines values for EmailRejectionReason.

func (EmailRejectionReason) Valid

func (e EmailRejectionReason) Valid() bool

Valid indicates whether the value is a known member of the EmailRejectionReason enum.

type EmailSendingDomainStatsPoint added in v0.10.0

type EmailSendingDomainStatsPoint struct {
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// SendingDomain The sending domain (the portion of the `From` address after the `@`), normalized to lowercase.
	SendingDomain *string `json:"sending_domain,omitempty"`

	// Trend Per-bucket rate series for this sending domain over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailSendingDomainStatsPoint Aggregate delivery, engagement, and latency stats for messages sent from a single sending domain over the requested period.

type EmailSendingIpDeliveryStats added in v0.10.0

type EmailSendingIpDeliveryStats struct {
	// AllBounces Total recipients on this IP who did not receive the message, computed as `bounced + oob_bounces`.
	AllBounces *int `json:"all_bounces,omitempty"`

	// BounceRate Share of this IP's delivery attempts that ultimately failed (inband or out-of-band), computed as `all_bounces / (delivered + bounced)`. Null when `delivered + bounced` is zero (no attempts).
	BounceRate *float32 `json:"bounce_rate,omitempty"`

	// Bounced Distinct recipients whose delivery failed. This is approximately the sum of the five `bounces.*` sub-counts (hard, soft, admin, block, undetermined). The two are computed independently, so they can differ slightly.
	Bounced *int                       `json:"bounced,omitempty"`
	Bounces *EmailBounceStatsWithRates `json:"bounces,omitempty"`

	// Complained Distinct recipients who reported the message as spam. Complaints are not attributed to a sending IP, so this reads 0 on this breakdown. Read complaint counts from the summary or time-series statistics instead.
	Complained *int `json:"complained,omitempty"`

	// ComplaintRate Share of effectively delivered recipients on this IP who reported the message as spam, computed as `complained / effective_delivered`. Null when `effective_delivered` is zero.
	ComplaintRate *float32 `json:"complaint_rate,omitempty"`

	// Deferred Distinct recipients in transient delivery deferral that is still being retried.
	Deferred *int `json:"deferred,omitempty"`

	// Delivered Distinct recipients whose message the receiving mail server accepted.
	Delivered *int `json:"delivered,omitempty"`

	// DeliveryRate Share of this IP's delivery attempts that remained delivered after all bounce signals, computed as `effective_delivered / (delivered + bounced)`. Null when `delivered + bounced` is zero.
	DeliveryRate *float32 `json:"delivery_rate,omitempty"`

	// EffectiveDelivered Recipients on this IP who remain delivered after all bounce signals resolve, computed as `delivered - oob_bounces`. Clamped to 0 when `oob_bounces` exceeds `delivered`.
	EffectiveDelivered *int `json:"effective_delivered,omitempty"`

	// OobBounces Out-of-band bounce events: failure notifications received after the receiving server had initially confirmed delivery. Not attributed to a sending IP on this breakdown, so this reads 0. Workspace-wide out-of-band counts are on the summary and time-series statistics.
	OobBounces *int `json:"oob_bounces,omitempty"`

	// OobRate Share of this IP's delivery attempts that resulted in an out-of-band bounce, computed as `oob_bounces / (delivered + bounced)`. Null when `delivered + bounced` is zero (no attempts).
	OobRate *float32 `json:"oob_rate,omitempty"`
}

EmailSendingIpDeliveryStats Delivery counts and rates for messages attributed to a single sending IP. Per-IP results omit `accepted` and `processed` counts. The sending IP becomes known only after a message is delivered, bounced, deferred, or bounced late. Those earlier lifecycle states cannot be attributed to a specific IP. Spam complaints and out-of-band bounce notifications also lack per-IP attribution on this breakdown. The `complained` and `oob_bounces` fields therefore read 0. Their rates read 0 when the denominator is non-zero and null when it is zero. The `effective_delivered` field equals `delivered`, and `all_bounces` equals `bounced`.

type EmailSendingIpStatsPoint added in v0.10.0

type EmailSendingIpStatsPoint struct {
	Delivery *EmailSendingIpDeliveryStats `json:"delivery,omitempty"`

	// IpPoolId The dedicated IP pool this address sent through, or null when the messages went through the shared pool. Recorded when each message was sent, so it reflects the pool used at send time even if the IP has since moved between pools or been released.
	IpPoolId *IPPoolID                  `json:"ip_pool_id,omitempty"`
	Latency  *EmailDeliveryLatencyStats `json:"latency,omitempty"`

	// SendingIp The IP address used to send messages aggregated in this row.
	SendingIp *string `json:"sending_ip,omitempty"`

	// Trend Per-bucket delivery-rate series for this IP over the window. Present only when `include_trend=true`. Engagement is not attributed to a sending IP, so each point's open and click rates read 0 in buckets with deliveries and null in buckets without.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailSendingIpStatsPoint Delivery and latency stats for messages sent from a single IP address over the requested period. Per-IP attribution begins only after a message is processed: we learn which IP a message used only from its delivery, bounce, deferral, and late-bounce events. Acceptance and processing events do not contribute to per-IP attribution. As a result, per-IP rows omit the `accepted` and `processed` counts and the `processing` latency family. Those fields never appear on a per-IP row. They are not returned as null.

type EmailSmtpConfig added in v0.4.0

type EmailSmtpConfig struct {
	ApiKeyId APIKeyID `json:"api_key_id"`

	// Category Content classification applied to messages submitted over SMTP with
	// this key. Controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions.
	Category  EmailSmtpConfigCategory `json:"category"`
	CreatedAt *time.Time              `json:"created_at,omitempty"`

	// IpPoolId ID of the IP pool that SMTP sends with this key use, or `ipp_shared` for the shared pool. `null` when this key uses your organization's default pool.
	IpPoolId *string `json:"ip_pool_id,omitempty"`

	// Tags Structured `{name, value}` labels applied to every message submitted over SMTP with this key, the same tags used by the email sending API. Use tags to filter and break down your email statistics.
	Tags []Tag `json:"tags"`

	// TrackClicks Whether click events are tracked for messages submitted over SMTP with this key.
	TrackClicks bool `json:"track_clicks"`

	// TrackOpens Whether open events are tracked for messages submitted over SMTP with this key.
	TrackOpens bool       `json:"track_opens"`
	UpdatedAt  *time.Time `json:"updated_at,omitempty"`
}

EmailSmtpConfig defines model for EmailSmtpConfig.

type EmailSmtpConfigCategory added in v0.4.0

type EmailSmtpConfigCategory string

EmailSmtpConfigCategory Content classification applied to messages submitted over SMTP with this key. Controls suppression policy:

- `marketing`: Blocks on all suppression reasons. - `transactional`: Allows delivery through complaint and unsubscribe suppressions.

const (
	EmailSmtpConfigCategoryMarketing     EmailSmtpConfigCategory = "marketing"
	EmailSmtpConfigCategoryTransactional EmailSmtpConfigCategory = "transactional"
)

Defines values for EmailSmtpConfigCategory.

func (EmailSmtpConfigCategory) Valid added in v0.4.0

func (e EmailSmtpConfigCategory) Valid() bool

Valid indicates whether the value is a known member of the EmailSmtpConfigCategory enum.

type EmailSmtpConfigList added in v0.4.0

type EmailSmtpConfigList struct {
	// Data Page of stored SMTP configs, newest first by default.
	Data []EmailSmtpConfig `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

EmailSmtpConfigList defines model for EmailSmtpConfigList.

type EmailSmtpConfigUpdate added in v0.4.0

type EmailSmtpConfigUpdate struct {
	// Category Content classification, independent of which endpoint messages are
	// submitted through. Controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions.
	//
	// Omit to leave unchanged.
	Category *EmailSmtpConfigUpdateCategory `json:"category,omitempty"`

	// IpPoolId ID of the IP pool to send from (`ipp_` prefix), or `ipp_shared` to route through the shared pool explicitly. Send `null` to reset to your organization's default pool, or omit to leave unchanged. An unknown pool, or a pool with no dedicated IPs available to send from, is rejected with a `422`.
	IpPoolId nullable.Nullable[string] `json:"ip_pool_id,omitempty"`

	// Tags Structured `{name, value}` labels applied to every message submitted over SMTP with this key. Send an empty array to clear all tags, or omit to leave unchanged.
	Tags *[]Tag `json:"tags,omitempty"`

	// TrackClicks Whether to track click events for messages submitted over SMTP with this key. Omit to leave unchanged.
	TrackClicks *bool `json:"track_clicks,omitempty"`

	// TrackOpens Whether to track open events for messages submitted over SMTP with this key. Omit to leave unchanged.
	TrackOpens *bool `json:"track_opens,omitempty"`
}

EmailSmtpConfigUpdate Desired changes to the SMTP config for the key. A field you omit is left unchanged. If no config exists yet for this key, omitted fields take their documented defaults instead.

type EmailSmtpConfigUpdateCategory added in v0.4.0

type EmailSmtpConfigUpdateCategory string

EmailSmtpConfigUpdateCategory Content classification, independent of which endpoint messages are submitted through. Controls suppression policy:

- `marketing`: Blocks on all suppression reasons. - `transactional`: Allows delivery through complaint and unsubscribe suppressions.

Omit to leave unchanged.

const (
	EmailSmtpConfigUpdateCategoryMarketing     EmailSmtpConfigUpdateCategory = "marketing"
	EmailSmtpConfigUpdateCategoryTransactional EmailSmtpConfigUpdateCategory = "transactional"
)

Defines values for EmailSmtpConfigUpdateCategory.

func (EmailSmtpConfigUpdateCategory) Valid added in v0.4.0

Valid indicates whether the value is a known member of the EmailSmtpConfigUpdateCategory enum.

type EmailStatsByBounceCodeResponse added in v0.10.0

type EmailStatsByBounceCodeResponse struct {
	// Data Bounce-code breakdown rows, ranked by the `sort` metric (default `bounced`) descending. Empty when no bounces occurred in the period.
	Data *[]EmailBounceCodeStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct SMTP error codes with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByBounceCodeResponse Per-SMTP-code bounce breakdown for the requested period, ranked by the `sort` metric (default `bounced`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByBroadcastResponse added in v0.10.0

type EmailStatsByBroadcastResponse struct {
	// Data Broadcast breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no broadcast messages were active in the period.
	Data *[]EmailBroadcastStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct broadcasts with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByBroadcastResponse Per-broadcast breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByCategoryResponse added in v0.10.0

type EmailStatsByCategoryResponse struct {
	// Data Category breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no sends occurred in the period.
	Data *[]EmailCategoryStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct categories with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByCategoryResponse Per-category breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByClientResponse added in v0.10.0

type EmailStatsByClientResponse struct {
	// Data Client breakdown rows, ranked by the `sort` metric (default `unique_opens`) descending. Empty when no opens or clicks with a detected client occurred in the period.
	Data *[]EmailClientStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct values of the requested `group_by` facet with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByClientResponse Per-client engagement breakdown for the requested period, grouped by the requested `group_by` facet, ranked by the `sort` metric (default `unique_opens`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByComplaintTypeResponse added in v0.10.0

type EmailStatsByComplaintTypeResponse struct {
	// Data Complaint-type breakdown rows, ranked by `complained` descending. Empty when no complaints occurred in the period.
	Data *[]EmailComplaintTypeStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct feedback types with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByComplaintTypeResponse Per-complaint-type breakdown for the requested period, ranked by `complained` descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByLocationResponse added in v0.10.0

type EmailStatsByLocationResponse struct {
	// Data Location breakdown rows, ranked by the `sort` metric (default `unique_opens`) descending. Empty when no opens or clicks with a resolved location occurred in the period.
	Data *[]EmailLocationStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct locations at the requested `group_by` level with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByLocationResponse Per-location engagement breakdown for the requested period, grouped at the requested `group_by` granularity, ranked by the `sort` metric (default `unique_opens`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByMailboxProviderRegionResponse added in v0.10.0

type EmailStatsByMailboxProviderRegionResponse struct {
	// Data Provider-region breakdown rows, ranked by the `sort` metric (default `delivered`) descending. Empty when no deliveries occurred in the period.
	Data *[]EmailMailboxProviderRegionStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct mailbox provider and region pairs with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByMailboxProviderRegionResponse Per-(mailbox provider, provider region) breakdown for the requested period, ranked by the `sort` metric (default `delivered`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByMailboxProviderResponse added in v0.10.0

type EmailStatsByMailboxProviderResponse struct {
	// Data Mailbox-provider breakdown rows, ranked by the `sort` metric (default `delivered`) descending. Empty when no eligible activity occurred in the period.
	Data *[]EmailMailboxProviderStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct mailbox providers with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByMailboxProviderResponse Per-mailbox-provider breakdown for the requested period, ranked by the `sort` metric (default `delivered`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByRecipientDomainResponse added in v0.10.0

type EmailStatsByRecipientDomainResponse struct {
	// Data Recipient-domain breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no eligible activity occurred in the period.
	Data *[]EmailRecipientDomainStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct recipient domains with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByRecipientDomainResponse Per-recipient-domain breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsBySendingDomainResponse added in v0.10.0

type EmailStatsBySendingDomainResponse struct {
	// Data Sending-domain breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no eligible activity occurred in the period.
	Data *[]EmailSendingDomainStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct sending domains with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsBySendingDomainResponse Per-sending-domain breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsBySendingIpResponse added in v0.10.0

type EmailStatsBySendingIpResponse struct {
	// Data Sending-IP breakdown rows, ranked by the `sort` metric (default `delivered`) descending. Empty when no per-IP-attributable activity (delivery, bounce, deferral, or late bounce) occurred in the period.
	Data *[]EmailSendingIpStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct sending IP addresses with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsBySendingIpResponse Per-sending-IP breakdown for the requested period, ranked by the `sort` metric (default `delivered`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsByTemplateResponse added in v0.10.0

type EmailStatsByTemplateResponse struct {
	// Data Template breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no messages were sent with a template in the period.
	Data *[]EmailTemplateStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct templates with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsByTemplateResponse Per-template breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsComparison added in v0.10.0

type EmailStatsComparison struct {
	Delivery   *EmailDeliveryStats        `json:"delivery,omitempty"`
	Delta      *EmailStatsComparisonDelta `json:"delta,omitempty"`
	Engagement *EmailEngagementStats      `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats         `json:"latency,omitempty"`

	// Period The window this response was actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants). The grain of `from` and `to` mirrors the grain of the request's bounds. Days and hour boundaries follow the requested `timezone` (UTC when omitted).
	Period EmailStatsSummaryPeriod `json:"period"`

	// SendsAccepted Distinct email messages accepted in the preceding period, counted at the message level.
	SendsAccepted *int `json:"sends_accepted,omitempty"`
}

EmailStatsComparison The same statistics for the equal-length, inclusive period ending the day immediately before the requested start, together with the change between the two periods. Present only when `compare=previous_period` is requested. The change is already computed, so a percentage difference needs no second request.

type EmailStatsComparisonDelta added in v0.10.0

type EmailStatsComparisonDelta struct {
	// BounceRatePp Signed difference between this period's and the previous period's bounce rate, both fractions in [0,1] (multiply by 100 for percentage points). Null when either period's bounce rate is undefined.
	BounceRatePp *float32 `json:"bounce_rate_pp,omitempty"`

	// BouncedPctChange Relative change in total bounces including out-of-band (`delivery.all_bounces`, the bounce-rate numerator) versus the previous period, as a signed fraction. Null when the previous period had none.
	BouncedPctChange *float32 `json:"bounced_pct_change,omitempty"`

	// ClickRatePp Signed difference between this period's and the previous period's click rate, both fractions (multiply by 100 for percentage points). Null when either period's click rate is undefined.
	ClickRatePp *float32 `json:"click_rate_pp,omitempty"`

	// ComplainedPctChange Relative change in spam complaints (`delivery.complained`) versus the previous period, as a signed fraction. Null when the previous period had none.
	ComplainedPctChange *float32 `json:"complained_pct_change,omitempty"`

	// ComplaintRatePp Signed difference between this period's and the previous period's complaint rate, both fractions (multiply by 100 for percentage points). Null when either period's complaint rate is undefined.
	ComplaintRatePp *float32 `json:"complaint_rate_pp,omitempty"`

	// DeliveredPctChange Relative change in effectively delivered recipients (`delivery.effective_delivered`, the delivery-rate numerator) versus the previous period, as a signed fraction. Null when the previous period effectively delivered none.
	DeliveredPctChange *float32 `json:"delivered_pct_change,omitempty"`

	// DeliveryRatePp Signed difference between this period's and the previous period's delivery rate, both fractions in [0,1] (multiply by 100 for percentage points). Null when either period's delivery rate is undefined.
	DeliveryRatePp *float32 `json:"delivery_rate_pp,omitempty"`

	// OpenRatePp Signed difference between this period's and the previous period's open rate, both fractions (multiply by 100 for percentage points). Null when either period's open rate is undefined.
	OpenRatePp *float32 `json:"open_rate_pp,omitempty"`

	// OpenedPctChange Relative change in unique non-prefetched opens (`engagement.unique_opens_non_prefetched`, the same count the open rate uses) versus the previous period, as a signed fraction. Null when the previous period had none.
	OpenedPctChange *float32 `json:"opened_pct_change,omitempty"`

	// SendsAcceptedPctChange Relative change in accepted messages (the `sends_accepted` count) versus the previous period, as a signed fraction. Null when the previous period accepted none.
	SendsAcceptedPctChange *float32 `json:"sends_accepted_pct_change,omitempty"`

	// UnsubscribeRatePp Signed difference between this period's and the previous period's unsubscribe rate, both fractions (multiply by 100 for percentage points). Null when either period's unsubscribe rate is undefined.
	UnsubscribeRatePp *float32 `json:"unsubscribe_rate_pp,omitempty"`
}

EmailStatsComparisonDelta The change in each headline metric from the preceding period to the requested one. A `*_pct_change` field is a signed relative change in a count, computed as `(current - previous) / previous`, so `0.5` means 50% higher and `-0.2` means 20% lower. It is null when the previous period's count was zero because a relative change cannot be computed. A `*_rate_pp` field is the signed difference between the two periods' rate values. Each value is expressed as a fraction. A value of `0.012` means the rate rose by 1.2 percentage points. A value of `-0.003` means it fell by 0.3 points. The field is null when either period's rate is undefined, because its denominator was zero. `delivery_rate_pp` and `bounce_rate_pp` range from `-1` to `1`, because the rates behind them cannot exceed 1. The engagement deltas have no fixed bound, because events are counted when they arrive rather than when the message was sent, which can push their rate above 1.

type EmailStatsPeriod added in v0.10.0

type EmailStatsPeriod struct {
	// DataAsOf The instant the statistics in this response are current to: events recorded up to roughly this time are reflected, while more recent events may not be yet. Statistics are served from a rolling aggregation that refreshes every few seconds, so a response reflects data from up to a few seconds ago. Use this field to label data freshness (for example "as of 14:03") rather than assuming the numbers are to-the-second. Null when the freshness boundary is not being reported.
	DataAsOf *time.Time `json:"data_as_of,omitempty"`

	// From Inclusive start date the response covers (YYYY-MM-DD).
	From *openapi_types.Date `json:"from,omitempty"`

	// To Inclusive end date the response covers (YYYY-MM-DD).
	To *openapi_types.Date `json:"to,omitempty"`
}

EmailStatsPeriod The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.

type EmailStatsPoint added in v0.10.0

type EmailStatsPoint struct {
	// Bucket The day (YYYY-MM-DD, in the requested `timezone`) or hour this point covers, matching the period's grain. An hour bucket is an RFC 3339 UTC instant marking the start of the hour. It falls on a local hour boundary when `timezone` is set, which is on the UTC hour only for whole-hour offsets.
	Bucket     *string               `json:"bucket,omitempty"`
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// SendsAccepted Distinct email messages accepted in this bucket, counted at the message level (one per accepted send regardless of how many recipients it addresses). Every other metric in `delivery` and `engagement` is recipient-level or event-level.
	SendsAccepted *int `json:"sends_accepted,omitempty"`
}

EmailStatsPoint Aggregate stats for one time bucket (a calendar day or hour, per the requested grain, in the requested `timezone` or UTC by default), bucketed by event time. Buckets with no activity are included with zero counts and null latency percentiles, so the series charts continuously without client-side gap handling.

type EmailStatsResponse added in v0.10.0

type EmailStatsResponse struct {
	// Data One row per bucket (day or hour, per the grain) in the period, in chronological order. Buckets with no activity are included with zero counts.
	Data *[]EmailStatsPoint `json:"data,omitempty"`

	// Period The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.
	Period EmailStatsSeriesPeriod `json:"period"`
}

EmailStatsResponse Time-series stats payload. `period` echoes the range and bucket grain actually computed against. `data` is one row per bucket in chronological order.

type EmailStatsSeriesPeriod added in v0.10.0

type EmailStatsSeriesPeriod struct {
	// DataAsOf The instant the statistics in this response are current to: events recorded up to roughly this time are reflected, while more recent events may not be yet. Statistics are served from a rolling aggregation that refreshes every few seconds, so a response reflects data from up to a few seconds ago. Use this field to label data freshness rather than assuming the numbers are to-the-second. Null when the freshness boundary is not being reported.
	DataAsOf *time.Time `json:"data_as_of,omitempty"`

	// From Inclusive start of the window. A calendar day (YYYY-MM-DD, in the requested `timezone`) on the day grain. On the hour grain, an RFC 3339 UTC instant marking the start of the first hour bucket, which falls on a local hour boundary when `timezone` is set.
	From *string `json:"from,omitempty"`

	// Grain The bucket grain of the series, either `day` or `hour`.
	Grain *StatsGrain `json:"grain,omitempty"`

	// To Inclusive end of the window. A calendar day (YYYY-MM-DD, in the requested `timezone`) on the day grain. On the hour grain, an RFC 3339 UTC instant marking the start of the last hour bucket, which falls on a local hour boundary when `timezone` is set.
	To *string `json:"to,omitempty"`
}

EmailStatsSeriesPeriod The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.

type EmailStatsSeriesPoint added in v0.10.0

type EmailStatsSeriesPoint struct {
	// BounceRate Bounce rate for this bucket, as a fraction. Null when nothing was delivered or bounced.
	BounceRate *float32 `json:"bounce_rate,omitempty"`

	// Bounced Bounced recipients in this bucket.
	Bounced *int `json:"bounced,omitempty"`

	// Bucket The day (YYYY-MM-DD) or hour (ISO 8601, on the hour) this point covers, matching the requested `trend_grain`.
	Bucket *string `json:"bucket,omitempty"`

	// ClickRate Click rate for this bucket, as a fraction. Event-time attribution can push it above 1 when clicks outrun the bucket's deliveries. Null when nothing was delivered in the bucket. On a sending-IP row engagement is not attributed to the IP, so this reads 0 in buckets that had deliveries and null in buckets that had none.
	ClickRate *float32 `json:"click_rate,omitempty"`

	// ComplaintRate Complaint rate for this bucket, as a fraction. Event-time attribution can push it above 1 when complaints outrun the bucket's deliveries. Null when nothing was delivered in the bucket. On a sending-IP row complaints are not attributed to the IP, so this reads 0 in buckets that had deliveries and null in buckets that had none.
	ComplaintRate *float32 `json:"complaint_rate,omitempty"`

	// Delivered Delivered recipients in this bucket.
	Delivered *int `json:"delivered,omitempty"`

	// DeliveryRate Delivery rate for this bucket, as a fraction. Null when nothing was delivered or bounced.
	DeliveryRate *float32 `json:"delivery_rate,omitempty"`

	// OpenRate Open rate for this bucket, as a fraction. Event-time attribution can push it above 1 when opens outrun the bucket's deliveries. Null when nothing was delivered in the bucket. On a sending-IP row engagement is not attributed to the IP, so this reads 0 in buckets that had deliveries and null in buckets that had none.
	OpenRate *float32 `json:"open_rate,omitempty"`
}

EmailStatsSeriesPoint One point in a breakdown row's trend series: the headline delivery and engagement rates for that row's dimension value over a single day or hour. Returned only when `include_trend=true`. The bucket grain (day or hour) follows the `trend_grain` parameter. Counts and rates are approximate at scale.

type EmailStatsSortMetric added in v0.10.0

type EmailStatsSortMetric string

EmailStatsSortMetric Metric to rank breakdown rows by, applied descending. Shared by the breakdowns whose rows have the full delivery, engagement, and latency block: tags, sending domains, categories, recipient domains, templates, and broadcasts. Any count or rate can be used. A row whose rate is undefined, because its denominator was zero, sorts last. A bounce sub-type is nested under `bounces` in each row, so its sort name reflects that, for example `bounces.hard` and `bounces.hard_rate`. `oob_bounces` is distinct from `bounced`: it counts out-of-band bounces, failure notifications that arrive after delivery was already confirmed.

const (
	EmailStatsSortMetricBounceRate               EmailStatsSortMetric = "bounce_rate"
	EmailStatsSortMetricBounced                  EmailStatsSortMetric = "bounced"
	EmailStatsSortMetricBouncesAdmin             EmailStatsSortMetric = "bounces.admin"
	EmailStatsSortMetricBouncesAdminRate         EmailStatsSortMetric = "bounces.admin_rate"
	EmailStatsSortMetricBouncesBlock             EmailStatsSortMetric = "bounces.block"
	EmailStatsSortMetricBouncesBlockRate         EmailStatsSortMetric = "bounces.block_rate"
	EmailStatsSortMetricBouncesHard              EmailStatsSortMetric = "bounces.hard"
	EmailStatsSortMetricBouncesHardRate          EmailStatsSortMetric = "bounces.hard_rate"
	EmailStatsSortMetricBouncesSoft              EmailStatsSortMetric = "bounces.soft"
	EmailStatsSortMetricBouncesSoftRate          EmailStatsSortMetric = "bounces.soft_rate"
	EmailStatsSortMetricBouncesUndetermined      EmailStatsSortMetric = "bounces.undetermined"
	EmailStatsSortMetricBouncesUndeterminedRate  EmailStatsSortMetric = "bounces.undetermined_rate"
	EmailStatsSortMetricClickRate                EmailStatsSortMetric = "click_rate"
	EmailStatsSortMetricClicks                   EmailStatsSortMetric = "clicks"
	EmailStatsSortMetricComplained               EmailStatsSortMetric = "complained"
	EmailStatsSortMetricComplaintRate            EmailStatsSortMetric = "complaint_rate"
	EmailStatsSortMetricDeferred                 EmailStatsSortMetric = "deferred"
	EmailStatsSortMetricDelivered                EmailStatsSortMetric = "delivered"
	EmailStatsSortMetricDeliveryRate             EmailStatsSortMetric = "delivery_rate"
	EmailStatsSortMetricOobBounces               EmailStatsSortMetric = "oob_bounces"
	EmailStatsSortMetricOpenRate                 EmailStatsSortMetric = "open_rate"
	EmailStatsSortMetricOpens                    EmailStatsSortMetric = "opens"
	EmailStatsSortMetricOpensNonPrefetched       EmailStatsSortMetric = "opens_non_prefetched"
	EmailStatsSortMetricProcessed                EmailStatsSortMetric = "processed"
	EmailStatsSortMetricRejected                 EmailStatsSortMetric = "rejected"
	EmailStatsSortMetricUniqueClicks             EmailStatsSortMetric = "unique_clicks"
	EmailStatsSortMetricUniqueOpens              EmailStatsSortMetric = "unique_opens"
	EmailStatsSortMetricUniqueOpensNonPrefetched EmailStatsSortMetric = "unique_opens_non_prefetched"
	EmailStatsSortMetricUnsubscribeRate          EmailStatsSortMetric = "unsubscribe_rate"
	EmailStatsSortMetricUnsubscribes             EmailStatsSortMetric = "unsubscribes"
)

Defines values for EmailStatsSortMetric.

func (EmailStatsSortMetric) Valid added in v0.10.0

func (e EmailStatsSortMetric) Valid() bool

Valid indicates whether the value is a known member of the EmailStatsSortMetric enum.

type EmailStatsSummary added in v0.10.0

type EmailStatsSummary struct {
	Comparison *EmailStatsComparison `json:"comparison,omitempty"`
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// Period The window this response was actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants). The grain of `from` and `to` mirrors the grain of the request's bounds. Days and hour boundaries follow the requested `timezone` (UTC when omitted).
	Period EmailStatsSummaryPeriod `json:"period"`

	// SendsAccepted Distinct email messages accepted, counted at the message level (one per accepted send regardless of recipient count) and summed per bucket across the period. This field counts messages. `delivery.accepted` counts recipients, so the two values are not comparable (a single message to 500 recipients is 1 here and up to 500 there).
	SendsAccepted *int `json:"sends_accepted,omitempty"`
}

EmailStatsSummary A single row that aggregates delivery and engagement counts, plus derived rates, across the whole requested period. Use this endpoint for KPI tiles, campaign reporting, and anywhere you need a rate with a meaningful denominator. The daily and hourly endpoints report the same rates, but per bucket, each one dividing that bucket's own counts.

Every count is a sum of per-bucket counts across the window (per day for day windows, per hour for hour windows). A recipient, or a message, that is active in two buckets contributes to each of them, so it is counted twice in the period total. This matches how most mailbox providers report their own numbers. The effect to plan for is that the total is a sum of per-bucket activity rather than a count of distinct recipients or messages across the whole period. Latency percentiles work differently: they are computed once across the whole period rather than summed from the buckets. A rate is null when its denominator is zero.

type EmailStatsSummaryPeriod added in v0.10.0

type EmailStatsSummaryPeriod struct {
	// DataAsOf The instant the statistics in this response are current to: events recorded up to roughly this time are reflected, while more recent events may not be yet. Statistics are served from a rolling aggregation that refreshes every few seconds, so a response reflects data from up to a few seconds ago. Use this field to label data freshness (for example "as of 14:03") rather than assuming the numbers are to-the-second. Null when the freshness boundary is not being reported.
	DataAsOf *time.Time `json:"data_as_of,omitempty"`

	// From Inclusive start of the window the response covers. A calendar day (YYYY-MM-DD, in the requested `timezone`) for day windows. For hour windows, an RFC 3339 UTC instant marking the start of the first hour, which falls on a local hour boundary when `timezone` is set.
	From *string `json:"from,omitempty"`

	// To Inclusive end of the window the response covers. A calendar day (YYYY-MM-DD, in the requested `timezone`) for day windows. For hour windows, an RFC 3339 UTC instant marking the start of the last hour, which falls on a local hour boundary when `timezone` is set.
	To *string `json:"to,omitempty"`
}

EmailStatsSummaryPeriod The window this response was actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants). The grain of `from` and `to` mirrors the grain of the request's bounds. Days and hour boundaries follow the requested `timezone` (UTC when omitted).

type EmailStatsTagsResponse added in v0.10.0

type EmailStatsTagsResponse struct {
	// Data Tag breakdown rows, ranked by the `sort` metric (default `processed`) descending. Empty when no tagged sends occurred in the period.
	Data *[]EmailTagStatsPoint `json:"data,omitempty"`

	// Period The date range this response was actually computed against. Echoed back so clients can render the period without tracking it themselves and so cached responses can be keyed by what was queried.
	Period EmailStatsPeriod `json:"period"`

	// Total Total number of distinct tags (name and value pairs) with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped. Raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

EmailStatsTagsResponse Per-tag breakdown for the requested period, ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, max 200).

type EmailStatsTemplateFilter added in v0.10.0

type EmailStatsTemplateFilter = string

EmailStatsTemplateFilter defines model for EmailStatsTemplateFilter.

type EmailTagStatsPoint added in v0.10.0

type EmailTagStatsPoint struct {
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// Tag The tag this row aggregates, formatted as `name:value` from the tag set at send time (for example `campaign:welcome-series`). Each distinct name-and-value pair is its own row.
	Tag *string `json:"tag,omitempty"`

	// Trend Per-bucket rate series for this tag over the window. Present only when `include_trend=true`.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailTagStatsPoint Aggregate delivery and engagement stats for a single tag name-and-value pair over the requested period.

type EmailTemplateID added in v0.3.0

type EmailTemplateID = string

EmailTemplateID defines model for EmailTemplateID.

type EmailTemplateSend added in v0.3.0

type EmailTemplateSend struct {
	Id *EmailTemplateID `json:"id,omitempty"`

	// Language A language tag in BCP-47 form, for example `en` or `pt-BR`.
	Language *LanguageTag `json:"language,omitempty"`

	// Parameters Values for the template's variables, keyed by the variable name. A variable name is a single word.
	//
	// Every variable in the template's `variables` list needs a value. A send
	// that omits one is rejected. Languages can use different variables, and a
	// value unused by the selected language is ignored.
	//
	// The API supplies values under the reserved `bird` key, so a send that sets
	// it is rejected. `parameters` is capped at 16 KB once serialized.
	Parameters *map[string]interface{} `json:"parameters,omitempty"`

	// Slug The template to send, by its slug handle. A workspace template (for example `welcome-email`) or a built-in `system` template (for example `bird_welcome`).
	Slug *TemplateSlug `json:"slug,omitempty"`
	// contains filtered or unexported fields
}

EmailTemplateSend A reference to the template to send. Identify the template by its `id` or its `slug`, supplying exactly one of the two, and give the values for its variables in `parameters`.

func (EmailTemplateSend) AsEmailTemplateSend0 added in v0.3.0

func (t EmailTemplateSend) AsEmailTemplateSend0() (EmailTemplateSend0, error)

AsEmailTemplateSend0 returns the union data inside the EmailTemplateSend as a EmailTemplateSend0

func (EmailTemplateSend) AsEmailTemplateSend1 added in v0.3.0

func (t EmailTemplateSend) AsEmailTemplateSend1() (EmailTemplateSend1, error)

AsEmailTemplateSend1 returns the union data inside the EmailTemplateSend as a EmailTemplateSend1

func (*EmailTemplateSend) FromEmailTemplateSend0 added in v0.3.0

func (t *EmailTemplateSend) FromEmailTemplateSend0(v EmailTemplateSend0) error

FromEmailTemplateSend0 overwrites any union data inside the EmailTemplateSend as the provided EmailTemplateSend0

func (*EmailTemplateSend) FromEmailTemplateSend1 added in v0.3.0

func (t *EmailTemplateSend) FromEmailTemplateSend1(v EmailTemplateSend1) error

FromEmailTemplateSend1 overwrites any union data inside the EmailTemplateSend as the provided EmailTemplateSend1

func (EmailTemplateSend) MarshalJSON added in v0.3.0

func (t EmailTemplateSend) MarshalJSON() ([]byte, error)

func (*EmailTemplateSend) MergeEmailTemplateSend0 added in v0.3.0

func (t *EmailTemplateSend) MergeEmailTemplateSend0(v EmailTemplateSend0) error

MergeEmailTemplateSend0 performs a merge with any union data inside the EmailTemplateSend, using the provided EmailTemplateSend0

func (*EmailTemplateSend) MergeEmailTemplateSend1 added in v0.3.0

func (t *EmailTemplateSend) MergeEmailTemplateSend1(v EmailTemplateSend1) error

MergeEmailTemplateSend1 performs a merge with any union data inside the EmailTemplateSend, using the provided EmailTemplateSend1

func (*EmailTemplateSend) UnmarshalJSON added in v0.3.0

func (t *EmailTemplateSend) UnmarshalJSON(b []byte) error

type EmailTemplateSend0 added in v0.3.0

type EmailTemplateSend0 = interface{}

EmailTemplateSend0 defines model for .

type EmailTemplateSend1 added in v0.3.0

type EmailTemplateSend1 = interface{}

EmailTemplateSend1 defines model for .

type EmailTemplateStatsPoint added in v0.10.0

type EmailTemplateStatsPoint struct {
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// TemplateId The template this row is about, using the same `id` the email template endpoints return. Only messages sent with a template appear in this breakdown at all. If the template was deleted after it was used to send, this row still appears, keyed by that same `id`.
	TemplateId *EmailTemplateID `json:"template_id,omitempty"`

	// Trend A short series of this template's delivery and engagement rates, one point per time bucket over the window. Only present when you set `include_trend=true` on the request.
	Trend *[]EmailStatsSeriesPoint `json:"trend,omitempty"`
}

EmailTemplateStatsPoint Delivery, engagement, and latency numbers for every message sent with one template over the requested period.

type EmailTemplateVersionID added in v0.3.0

type EmailTemplateVersionID = string

EmailTemplateVersionID defines model for EmailTemplateVersionID.

type EmailThread added in v0.4.1

type EmailThread struct {
	// Channel Channel this conversation lives on. Always `email`.
	Channel *string `json:"channel,omitempty"`

	// ContactId Contact linked to this conversation, or null when none is linked.
	ContactId *ContactID `json:"contact_id"`

	// CreatedAt When the thread was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Highlights Matched search fragments for a thread, one array per field the query matched, with the matched terms wrapped in `**`. A field is present only when the query matched it, so the keys that are present tell you which fields produced the hit. Returned only on thread search results.
	Highlights *EmailThreadHighlights `json:"highlights,omitempty"`
	Id         ThreadID               `json:"id"`

	// Labels Labels on this conversation. Exactly one system placement label is always present, set by the message that started the conversation:
	//
	// - `inbox`: The conversation is in the inbox.
	// - `archive`: The conversation was filed away and is done for now.
	// - `spam`: The conversation's opening message failed sender authentication.
	// - `blocked`: The conversation's opening message was rejected by the mailbox's receive policy or rules.
	//
	// Move a conversation by updating its labels. Add `spam` to file it as spam, add `archive` to clean it out of the inbox, and add `inbox`, or remove `spam`, `blocked`, or `archive`, to bring it back. An archived conversation returns to the inbox by itself when a new message arrives. Custom labels share the same list, and a conversation has at most 20 labels in total.
	Labels []string `json:"labels"`

	// LastDirection Direction of the most recent message: `inbound` for a received message, `outbound` for a sent one.
	LastDirection *EmailThreadLastDirection `json:"last_direction,omitempty"`

	// LastMessageAt When the most recent retained message in this conversation was received or sent.
	LastMessageAt *time.Time `json:"last_message_at,omitempty"`
	MailboxId     MailboxID  `json:"mailbox_id"`

	// MessageCount Number of retained messages in this conversation, both directions.
	MessageCount *int `json:"message_count,omitempty"`

	// Participants Addresses that appear on the retained messages in this conversation, including the mailbox's own address.
	Participants *[]openapi_types.Email `json:"participants,omitempty"`

	// Subject Subject of the conversation, taken from its first message. Null when that message had no subject.
	Subject *string `json:"subject,omitempty"`

	// UnreadCount Number of retained received messages that are still unread. Spam and blocked mail is not counted.
	UnreadCount *int `json:"unread_count,omitempty"`

	// UpdatedAt When the thread last changed.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

EmailThread A conversation in a mailbox. It groups every message in both directions, the mail the mailbox received and the replies it sent, and it holds the conversation's read state, labels, and participant list. A message is retained until it is trashed or ages past the mailbox's retention tier. Only retained messages count toward the totals below.

type EmailThreadHighlights added in v0.12.0

type EmailThreadHighlights struct {
	// Subject Matched fragments from the conversation's subject.
	Subject *[]string `json:"subject,omitempty"`

	// Text Matched fragments from a message's body text.
	Text *[]string `json:"text,omitempty"`
}

EmailThreadHighlights Matched search fragments for a thread, one array per field the query matched, with the matched terms wrapped in `**`. A field is present only when the query matched it, so the keys that are present tell you which fields produced the hit. Returned only on thread search results.

type EmailThreadLastDirection added in v0.4.1

type EmailThreadLastDirection string

EmailThreadLastDirection Direction of the most recent message: `inbound` for a received message, `outbound` for a sent one.

const (
	EmailThreadLastDirectionInbound  EmailThreadLastDirection = "inbound"
	EmailThreadLastDirectionOutbound EmailThreadLastDirection = "outbound"
)

Defines values for EmailThreadLastDirection.

func (EmailThreadLastDirection) Valid added in v0.4.1

func (e EmailThreadLastDirection) Valid() bool

Valid indicates whether the value is a known member of the EmailThreadLastDirection enum.

type EmailThreadList added in v0.4.1

type EmailThreadList struct {
	Data []EmailThread `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

EmailThreadList defines model for EmailThreadList.

type EmailThreadMessage added in v0.4.1

type EmailThreadMessage struct {
	// AttachmentCount Number of attachments on the message.
	AttachmentCount *int `json:"attachment_count,omitempty"`

	// AttachmentManifest Attachment metadata (filename, content type, size). Stays readable for the mailbox's retention tier even after the attachment bytes themselves have expired.
	AttachmentManifest *[]EmailThreadMessageAttachment `json:"attachment_manifest,omitempty"`

	// Authentication Whether the sender of a received message was authenticated.
	//
	// - `pass`: the sender's identity was verified.
	// - `fail`: it was checked and did not verify.
	// - `unknown`: no verdict could be determined, so do not treat the
	//   sender as verified.
	//
	// Null for sent messages. This field is readable for the mailbox's full
	// retention tier, so the verdict is still available after the 30-day
	// received-message log has expired.
	Authentication *EmailThreadMessageAuthentication `json:"authentication,omitempty"`

	// Cc Recipient addresses on the Cc line. Empty when the message had none.
	Cc *[]openapi_types.Email `json:"cc,omitempty"`

	// Channel Channel this message lives on. Always `email`.
	Channel *string `json:"channel,omitempty"`

	// ContactId Contact linked to this message, or null when none is linked.
	ContactId *ContactID `json:"contact_id"`

	// DeliveredTo Address the message was actually delivered to, when it differs from the mailbox address (for example mail routed in from another address). Null for sent messages and for mail addressed directly to the mailbox.
	DeliveredTo *openapi_types.Email `json:"delivered_to,omitempty"`

	// Direction Which way the message went. `inbound` means you received it, `outbound` means you sent it.
	Direction *EmailThreadMessageDirection `json:"direction,omitempty"`

	// DkimPass Whether DKIM passed for the sender of a received message. Null for sent messages and when no verdict is available. This field is kept for the mailbox's retention tier.
	DkimPass *bool `json:"dkim_pass,omitempty"`

	// DmarcPass Whether DMARC passed for the sender of a received message. Null for sent messages and when no verdict is available. This field is kept for the mailbox's retention tier.
	DmarcPass *bool `json:"dmarc_pass,omitempty"`

	// ExtractedText Plain-text content of the message with quoted history stripped. Readable for the mailbox's full retention tier, in both directions. Always present when fetching a single message. On list endpoints it is included only when the request sets `include=extracted_text`. Null when no text could be extracted.
	ExtractedText *string `json:"extracted_text,omitempty"`

	// From Sender address.
	From *openapi_types.Email `json:"from,omitempty"`

	// Id Message ID. Received messages have a `rem_` ID, sent messages an `em_` ID: the same IDs used by the received-message and sent-message logs.
	Id *string `json:"id,omitempty"`

	// Labels Labels on this message. A received message always has exactly one placement label:
	//
	// - `inbox`: Accepted mail.
	// - `archive`: The message's conversation was filed away.
	// - `spam`: The message failed sender authentication.
	// - `blocked`: The message was rejected by the mailbox's receive policy or rules.
	//
	// A received message also has `unread` until it is read. `trash` marks a message in the trash, in either direction. Custom labels share the same list, and a message has at most 20 labels in total.
	Labels []string `json:"labels"`

	// OccurredAt When the message was received or accepted for sending.
	OccurredAt *time.Time `json:"occurred_at,omitempty"`

	// Preview Short plain-text preview of the message body.
	Preview *string `json:"preview,omitempty"`

	// PurgeAt Scheduled permanent-deletion time. This is the end of the mailbox's retention tier, moved to no more than 30 days in the future while the message is in the trash. Restore a trashed message before then with `PATCH {"labels": {"remove": ["trash"]}}`.
	PurgeAt *time.Time `json:"purge_at,omitempty"`

	// Recipients Terminal per-recipient delivery outcomes of a sent message, filled in as each one becomes known and kept for the mailbox's full retention tier. Null for received messages and before any recipient reaches a terminal state. Per-recipient event detail lives on the sent-message log (`source`) for 30 days.
	Recipients *[]EmailThreadMessageRecipient `json:"recipients,omitempty"`

	// ReferenceIds RFC 5322 References header entries used to thread the conversation.
	ReferenceIds *[]string `json:"reference_ids,omitempty"`

	// Source Link to the message's entry in the received-message or sent-message log, which has delivery analytics such as per-recipient events. Log entries expire 30 days after the message occurred.
	Source EmailThreadMessageSource `json:"source"`

	// SpfPass Whether SPF passed for the sender of a received message. Null for sent messages and when no verdict is available. This field is kept for the mailbox's retention tier.
	SpfPass *bool `json:"spf_pass,omitempty"`

	// Status Aggregate delivery status of a sent message:
	//
	// - `accepted`: Accepted for sending.
	// - `sent`: Handed off to the provider.
	// - `delivered`: All attempted recipients delivered.
	// - `failed`: Terminal failure.
	//
	// Null for received messages.
	Status *string `json:"status,omitempty"`

	// Subject Message subject. Null when the message had no subject.
	Subject  *string  `json:"subject,omitempty"`
	ThreadId ThreadID `json:"thread_id"`

	// To Recipient addresses on the To line.
	To *[]openapi_types.Email `json:"to,omitempty"`
}

EmailThreadMessage A message in a mailbox conversation, either direction. Message metadata and extracted text stay readable for the mailbox's retention tier. The original rendered source (HTML body, raw MIME, attachment bytes) is available through the body, raw, and attachment endpoints for 30 days after the message occurred.

type EmailThreadMessageAttachment added in v0.4.1

type EmailThreadMessageAttachment struct {
	// ContentType MIME content type, or null when it could not be determined.
	ContentType *string `json:"content_type,omitempty"`

	// Filename Original filename, or null when the attachment had none.
	Filename *string `json:"filename,omitempty"`

	// Id Attachment ID, used to download the attachment bytes.
	Id *string `json:"id,omitempty"`

	// Size Attachment size in bytes.
	Size *int `json:"size,omitempty"`
}

EmailThreadMessageAttachment Attachment metadata on a conversation message. The metadata stays readable for the mailbox's retention tier. The attachment bytes are downloadable for 30 days after the message occurred.

type EmailThreadMessageAttachmentList added in v0.4.1

type EmailThreadMessageAttachmentList struct {
	Data []EmailThreadMessageAttachment `json:"data"`
}

EmailThreadMessageAttachmentList The attachments on a conversation message.

type EmailThreadMessageAuthentication added in v0.12.0

type EmailThreadMessageAuthentication string

EmailThreadMessageAuthentication Whether the sender of a received message was authenticated.

  • `pass`: the sender's identity was verified.
  • `fail`: it was checked and did not verify.
  • `unknown`: no verdict could be determined, so do not treat the sender as verified.

Null for sent messages. This field is readable for the mailbox's full retention tier, so the verdict is still available after the 30-day received-message log has expired.

const (
	EmailThreadMessageAuthenticationFail        EmailThreadMessageAuthentication = "fail"
	EmailThreadMessageAuthenticationLessThannil EmailThreadMessageAuthentication = "<nil>"
	EmailThreadMessageAuthenticationPass        EmailThreadMessageAuthentication = "pass"
	EmailThreadMessageAuthenticationUnknown     EmailThreadMessageAuthentication = "unknown"
)

Defines values for EmailThreadMessageAuthentication.

func (EmailThreadMessageAuthentication) Valid added in v0.12.0

Valid indicates whether the value is a known member of the EmailThreadMessageAuthentication enum.

type EmailThreadMessageBody added in v0.4.1

type EmailThreadMessageBody struct {
	// Html The HTML body of the message, or null when the message had no HTML part.
	Html *string `json:"html"`

	// Text The plain-text body of the message, or null when the message had no text part.
	Text *string `json:"text"`
}

EmailThreadMessageBody The original rendered body of a conversation message. Available for 30 days after the message occurred. After that, the endpoint returns `410 Gone`, but the message's extracted text stays readable on the message itself.

type EmailThreadMessageDirection added in v0.4.1

type EmailThreadMessageDirection string

EmailThreadMessageDirection Which way the message went. `inbound` means you received it, `outbound` means you sent it.

const (
	EmailThreadMessageDirectionInbound  EmailThreadMessageDirection = "inbound"
	EmailThreadMessageDirectionOutbound EmailThreadMessageDirection = "outbound"
)

Defines values for EmailThreadMessageDirection.

func (EmailThreadMessageDirection) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EmailThreadMessageDirection enum.

type EmailThreadMessageList added in v0.4.1

type EmailThreadMessageList struct {
	Data []EmailThreadMessage `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

EmailThreadMessageList defines model for EmailThreadMessageList.

type EmailThreadMessageRecipient added in v0.4.1

type EmailThreadMessageRecipient struct {
	// Address Recipient address.
	Address *openapi_types.Email `json:"address,omitempty"`

	// Status Terminal outcome: `delivered`, or `failed` (bounce or provider rejection).
	Status *EmailThreadMessageRecipientStatus `json:"status,omitempty"`
}

EmailThreadMessageRecipient One recipient's terminal delivery outcome on a sent conversation message, recorded once the outcome becomes known.

type EmailThreadMessageRecipientStatus added in v0.4.1

type EmailThreadMessageRecipientStatus string

EmailThreadMessageRecipientStatus Terminal outcome: `delivered`, or `failed` (bounce or provider rejection).

const (
	EmailThreadMessageRecipientStatusDelivered EmailThreadMessageRecipientStatus = "delivered"
	EmailThreadMessageRecipientStatusFailed    EmailThreadMessageRecipientStatus = "failed"
)

Defines values for EmailThreadMessageRecipientStatus.

func (EmailThreadMessageRecipientStatus) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EmailThreadMessageRecipientStatus enum.

type EmailThreadMessageReplyRequest added in v0.4.1

type EmailThreadMessageReplyRequest struct {
	// Attachments File attachments to include with the reply. The send is rejected when the estimated generated message size exceeds 20 MB (bodies plus all attachments after base64 encoding). Keep total raw attachment content at or below 15 MB for reliable headroom. Attachment metadata stays on the message's `attachment_manifest`, and the bytes are downloadable for 30 days.
	Attachments *[]EmailAttachment `json:"attachments,omitempty"`

	// Category Content classification, which controls suppression policy:
	//
	// - `marketing`: Blocks on all suppression reasons.
	// - `transactional`: Allows delivery through complaint and unsubscribe suppressions, for receipts, password resets, and similar operational mail.
	Category *EmailMessageCategory `json:"category,omitempty"`

	// Html HTML body of the reply. At least one of html or text must be provided.
	Html *string `json:"html,omitempty"`

	// Metadata Arbitrary JSON object stored on the send and echoed in webhook payloads. Cap: 2 KB serialized.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// ReplyAll Also send the reply to the original To and Cc recipients, minus the mailbox's own address.
	ReplyAll *bool `json:"reply_all,omitempty"`

	// Tags Structured `{name, value}` labels for filtering and analytics on the sent-message log. Cap: 20 tags per send.
	Tags *[]Tag `json:"tags,omitempty"`

	// Text Plain-text body of the reply. At least one of html or text must be provided.
	Text *string `json:"text,omitempty"`
}

EmailThreadMessageReplyRequest A reply to a conversation message. Recipients are derived from the message being replied to: its Reply-To address when present, otherwise its From address. Set `reply_all` to also include the original To and Cc recipients (minus the mailbox's own address). The subject and threading headers are set automatically. At least one of `html` or `text` must be provided.

type EmailThreadMessageSource added in v0.4.1

type EmailThreadMessageSource struct {
	// AvailableUntil When the log entry (and the message's original rendered source) expires.
	AvailableUntil *time.Time `json:"available_until,omitempty"`

	// Resource API path of the log entry for this message.
	Resource *string `json:"resource,omitempty"`
}

EmailThreadMessageSource Link to the message's entry in the received-message or sent-message log, which has delivery analytics such as per-recipient events. Log entries expire 30 days after the message occurred.

type EmailThreadMessageUpdateRequest added in v0.4.1

type EmailThreadMessageUpdateRequest struct {
	// ContactId Contact to link this message to, or null to unlink the current contact.
	ContactId nullable.Nullable[ContactID] `json:"contact_id,omitempty"`

	// Labels Label changes to apply. Labels in `add` are applied and labels in `remove` are taken off; other labels are left untouched. Adding a label that is already present, or removing one that is not, has no effect. System labels express state changes. On a conversation, adding `spam` files it as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox. Removing `unread` marks all retained received messages as read in one call. On a message, adding or removing `unread` flips read state. Adding or removing `trash` moves it to or out of the trash. The API rejects changes that contradict this model. A request cannot add more than one placement label. It cannot add `blocked`, because blocking a sender is a receive-rule decision. Removing `inbox` requires adding a destination. A conversation cannot add `trash` or `unread`; removing `unread` is the mark-all-read shortcut, and `trash` uses the `DELETE` verb. A message cannot use placement labels; move its conversation instead. A sent message cannot use `unread`. Custom labels are 1-64 characters with no commas, control characters, or leading or trailing whitespace. System label names and a small reserved set (`all`, `archived`, `deleted`, `draft`, `drafts`, `flagged`, `important`, `junk`, `muted`, `none`, `outbox`, `pinned`, `read`, `scheduled`, `snoozed`, `starred`) cannot be used as custom labels, in any casing. A conversation or message has at most 20 labels, system labels included.
	Labels *EmailLabelsUpdate `json:"labels,omitempty"`
}

EmailThreadMessageUpdateRequest Changes to apply to a conversation message. Omitted fields are left unchanged.

type EmailThreadUpdateRequest added in v0.4.1

type EmailThreadUpdateRequest struct {
	// ContactId Contact to link this conversation to, or null to unlink the current contact.
	ContactId nullable.Nullable[ContactID] `json:"contact_id,omitempty"`

	// Labels Label changes to apply. Labels in `add` are applied and labels in `remove` are taken off; other labels are left untouched. Adding a label that is already present, or removing one that is not, has no effect. System labels express state changes. On a conversation, adding `spam` files it as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox. Removing `unread` marks all retained received messages as read in one call. On a message, adding or removing `unread` flips read state. Adding or removing `trash` moves it to or out of the trash. The API rejects changes that contradict this model. A request cannot add more than one placement label. It cannot add `blocked`, because blocking a sender is a receive-rule decision. Removing `inbox` requires adding a destination. A conversation cannot add `trash` or `unread`; removing `unread` is the mark-all-read shortcut, and `trash` uses the `DELETE` verb. A message cannot use placement labels; move its conversation instead. A sent message cannot use `unread`. Custom labels are 1-64 characters with no commas, control characters, or leading or trailing whitespace. System label names and a small reserved set (`all`, `archived`, `deleted`, `draft`, `drafts`, `flagged`, `important`, `junk`, `muted`, `none`, `outbox`, `pinned`, `read`, `scheduled`, `snoozed`, `starred`) cannot be used as custom labels, in any casing. A conversation or message has at most 20 labels, system labels included.
	Labels *EmailLabelsUpdate `json:"labels,omitempty"`
}

EmailThreadUpdateRequest Changes to apply to a thread. Omitted fields are left unchanged.

type EndingBefore

type EndingBefore = string

EndingBefore defines model for EndingBefore.

type Error

type Error struct {
	Error ErrorBody `json:"error"`
}

Error defines model for Error.

type ErrorBody

type ErrorBody struct {
	// Code Opaque, stable, unique error identifier. Never reused.
	Code string `json:"code"`

	// Details Per-field validation errors. Present only on validation_error responses.
	Details *[]ErrorDetail `json:"details,omitempty"`

	// DocUrl Stable link to the docs page for this error code.
	DocUrl string `json:"doc_url"`

	// Message Human-readable description. Not stable; clients must not parse it.
	Message string `json:"message"`

	// Name Human-readable slug for log readability. Paired with code, never replaces it.
	Name string `json:"name"`

	// Next The steps that resolve this error. Perform them in order, re-reading after each; a `wait` or `terminal` step is always last. Present for errors with a well-defined recovery, such as unmet preconditions and conflicts.
	Next *[]NextAction `json:"next,omitempty"`

	// Param Identifies the offending field. Omitted when not applicable.
	Param *string `json:"param,omitempty"`

	// Remediation A human-readable next step to resolve this error. Present when a recovery is known.
	Remediation *string `json:"remediation,omitempty"`

	// RequestId Request correlation ID for support and troubleshooting. Also returned in the `X-Request-Id` response header.
	RequestId string `json:"request_id"`

	// Type Broad category for coarse client branching.
	Type ErrorBodyType `json:"type"`

	// VendorCode Verbatim error code from an external system, such as an SMTP response code or a payment decline code. Present only when the code may help you resolve the error.
	VendorCode *string `json:"vendor_code,omitempty"`
}

ErrorBody defines model for ErrorBody.

type ErrorBodyType

type ErrorBodyType string

ErrorBodyType Broad category for coarse client branching.

const (
	ErrorBodyTypeAuthError               ErrorBodyType = "auth_error"
	ErrorBodyTypeBadRequestError         ErrorBodyType = "bad_request_error"
	ErrorBodyTypeBillingError            ErrorBodyType = "billing_error"
	ErrorBodyTypeConflictError           ErrorBodyType = "conflict_error"
	ErrorBodyTypeGoneError               ErrorBodyType = "gone_error"
	ErrorBodyTypeInternalError           ErrorBodyType = "internal_error"
	ErrorBodyTypeMisdirectedError        ErrorBodyType = "misdirected_error"
	ErrorBodyTypeNotFoundError           ErrorBodyType = "not_found_error"
	ErrorBodyTypeNotImplementedError     ErrorBodyType = "not_implemented_error"
	ErrorBodyTypePayloadTooLargeError    ErrorBodyType = "payload_too_large_error"
	ErrorBodyTypePermissionError         ErrorBodyType = "permission_error"
	ErrorBodyTypePreconditionError       ErrorBodyType = "precondition_error"
	ErrorBodyTypeRateLimitError          ErrorBodyType = "rate_limit_error"
	ErrorBodyTypeServiceUnavailableError ErrorBodyType = "service_unavailable_error"
	ErrorBodyTypeTooEarlyError           ErrorBodyType = "too_early_error"
	ErrorBodyTypeValidationError         ErrorBodyType = "validation_error"
)

Defines values for ErrorBodyType.

func (ErrorBodyType) Valid

func (e ErrorBodyType) Valid() bool

Valid indicates whether the value is a known member of the ErrorBodyType enum.

type ErrorDetail

type ErrorDetail struct {
	// Message What is wrong with this field.
	Message string `json:"message"`

	// Param Dotted field path, such as `to[0].email`, `subject`, or `.`. When the request was rejected for a query parameter the endpoint does not declare, this carries that parameter's name instead of a field path.
	Param string `json:"param"`
}

ErrorDetail defines model for ErrorDetail.

type EventDomainFailed

type EventDomainFailed struct {
	// Data Payload of the domain.failed event.
	Data EventDomainFailedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventDomainFailedType `json:"type"`
}

EventDomainFailed A sending domain failed DNS verification.

type EventDomainFailedData added in v0.7.0

type EventDomainFailedData struct {
	// Domain The sending domain hostname.
	Domain   string   `json:"domain"`
	DomainId DomainID `json:"domain_id"`

	// FailureReason Why verification failed, when a specific reason is available (for example, the DKIM record was not found at the expected selector).
	FailureReason *string     `json:"failure_reason,omitempty"`
	WorkspaceId   WorkspaceID `json:"workspace_id"`
}

EventDomainFailedData Payload of the domain.failed event.

type EventDomainFailedType

type EventDomainFailedType string

EventDomainFailedType Event type.

const (
	DomainFailed EventDomainFailedType = "domain.failed"
)

Defines values for EventDomainFailedType.

func (EventDomainFailedType) Valid

func (e EventDomainFailedType) Valid() bool

Valid indicates whether the value is a known member of the EventDomainFailedType enum.

type EventDomainVerified

type EventDomainVerified struct {
	// Data Payload of the domain.verified event.
	Data EventDomainVerifiedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventDomainVerifiedType `json:"type"`
}

EventDomainVerified A sending domain completed DNS verification successfully.

type EventDomainVerifiedData added in v0.7.0

type EventDomainVerifiedData struct {
	// Domain The sending domain hostname.
	Domain      string      `json:"domain"`
	DomainId    DomainID    `json:"domain_id"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventDomainVerifiedData Payload of the domain.verified event.

type EventDomainVerifiedType

type EventDomainVerifiedType string

EventDomainVerifiedType Event type.

const (
	DomainVerified EventDomainVerifiedType = "domain.verified"
)

Defines values for EventDomainVerifiedType.

func (EventDomainVerifiedType) Valid

func (e EventDomainVerifiedType) Valid() bool

Valid indicates whether the value is a known member of the EventDomainVerifiedType enum.

type EventEmailAccepted

type EventEmailAccepted struct {
	// Data Payload of the email.accepted event.
	Data EventEmailAcceptedData `json:"data"`

	// Timestamp Time the API accepted the send.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailAcceptedType `json:"type"`
}

EventEmailAccepted The API accepted the email send and is preparing it for delivery. Fires once per requested recipient.

type EventEmailAcceptedData

type EventEmailAcceptedData = EventEmailBase

EventEmailAcceptedData Identity fields shared by every email lifecycle event payload.

type EventEmailAcceptedType

type EventEmailAcceptedType string

EventEmailAcceptedType Event type.

const (
	EmailAccepted EventEmailAcceptedType = "email.accepted"
)

Defines values for EventEmailAcceptedType.

func (EventEmailAcceptedType) Valid

func (e EventEmailAcceptedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailAcceptedType enum.

type EventEmailBase

type EventEmailBase struct {
	EmailId EmailID `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailBase Identity fields shared by every email lifecycle event payload.

type EventEmailBounced

type EventEmailBounced struct {
	// Data Payload of the email.bounced event.
	Data EventEmailBouncedData `json:"data"`

	// Timestamp Time the bounce was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailBouncedType `json:"type"`
}

EventEmailBounced An outbound email permanently failed at the recipient's mail server. Fires once per recipient.

type EventEmailBouncedData

type EventEmailBouncedData struct {
	// BounceClass Numeric bounce classification for fine-grained deliverability triage, or null when the receiving server's response could not be classified. Lets you distinguish, for example, a DNS failure from a spam block when both would be `bounce_type: soft` or `bounce_type: block`.
	BounceClass *int `json:"bounce_class"`

	// BounceCode SMTP reply code returned by the receiving mail server, or null when none was provided.
	BounceCode *string `json:"bounce_code"`

	// BounceDescription Human-readable reason the receiving mail server gave for the bounce, or null when none was provided.
	BounceDescription *string `json:"bounce_description"`

	// BounceType Bounce classification.
	//
	// - `hard`: A permanent failure, such as an invalid address or a domain that does not exist.
	// - `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.
	// - `block`: The receiving mail server refused the sending IP on reputation grounds.
	// - `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.
	// - `undetermined`: The receiving server's response was ambiguous.
	BounceType EmailBounceType `json:"bounce_type"`
	EmailId    EmailID         `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// SendingIp The IP address used to send this message, or null when it is not known.
	SendingIp *string `json:"sending_ip"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailBouncedData defines model for EventEmailBouncedData.

type EventEmailBouncedType

type EventEmailBouncedType string

EventEmailBouncedType Event type.

const (
	EmailBounced EventEmailBouncedType = "email.bounced"
)

Defines values for EventEmailBouncedType.

func (EventEmailBouncedType) Valid

func (e EventEmailBouncedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailBouncedType enum.

type EventEmailCanceled added in v0.2.2

type EventEmailCanceled struct {
	// Data Payload of the email.canceled event.
	Data EventEmailCanceledData `json:"data"`

	// Timestamp Time the scheduled send was canceled.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailCanceledType `json:"type"`
}

EventEmailCanceled A scheduled send was canceled before it fired. Fires once for each message regardless of its recipient count.

type EventEmailCanceledData added in v0.2.2

type EventEmailCanceledData = EventEmailMessageBase

EventEmailCanceledData Identity fields shared by the message-level email lifecycle events (scheduled, canceled), which are not tied to a single recipient.

type EventEmailCanceledType added in v0.2.2

type EventEmailCanceledType string

EventEmailCanceledType Event type.

const (
	EmailCanceled EventEmailCanceledType = "email.canceled"
)

Defines values for EventEmailCanceledType.

func (EventEmailCanceledType) Valid added in v0.2.2

func (e EventEmailCanceledType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailCanceledType enum.

type EventEmailClicked

type EventEmailClicked struct {
	// Data Payload of the email.clicked event.
	Data EventEmailClickedData `json:"data"`

	// Timestamp Time the click was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailClickedType `json:"type"`
}

EventEmailClicked The recipient clicked a tracked link in the email. May fire more than once per recipient.

type EventEmailClickedData

type EventEmailClickedData struct {
	EmailId EmailID `json:"email_id"`

	// IpAddress IP address of the client that clicked the link, or null when it is not known.
	IpAddress *string `json:"ip_address"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags *[]Tag `json:"tags"`

	// Url The URL the recipient clicked.
	Url string `json:"url"`

	// UserAgent User-agent string of the client that clicked the link, or null when it is not known.
	UserAgent   *string     `json:"user_agent"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailClickedData defines model for EventEmailClickedData.

type EventEmailClickedType

type EventEmailClickedType string

EventEmailClickedType Event type.

const (
	EmailClicked EventEmailClickedType = "email.clicked"
)

Defines values for EventEmailClickedType.

func (EventEmailClickedType) Valid

func (e EventEmailClickedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailClickedType enum.

type EventEmailComplained

type EventEmailComplained struct {
	// Data Payload of the email.complained event.
	Data EventEmailComplainedData `json:"data"`

	// Timestamp Time the complaint was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailComplainedType `json:"type"`
}

EventEmailComplained The recipient marked the email as spam through their mailbox provider's feedback loop. Fires once per recipient.

type EventEmailComplainedData

type EventEmailComplainedData struct {
	EmailId EmailID `json:"email_id"`

	// FeedbackType The kind of feedback the mailbox provider reported (such as `abuse` or `fraud`), or null when the provider did not specify one.
	FeedbackType *string `json:"feedback_type"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailComplainedData defines model for EventEmailComplainedData.

type EventEmailComplainedType

type EventEmailComplainedType string

EventEmailComplainedType Event type.

const (
	EmailComplained EventEmailComplainedType = "email.complained"
)

Defines values for EventEmailComplainedType.

func (EventEmailComplainedType) Valid

func (e EventEmailComplainedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailComplainedType enum.

type EventEmailDeferred

type EventEmailDeferred struct {
	// Data Payload of the email.deferred event.
	Data EventEmailDeferredData `json:"data"`

	// Timestamp Time the deferral was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailDeferredType `json:"type"`
}

EventEmailDeferred The recipient's mail server temporarily refused the email. Delivery remains pending and is retried. May fire more than once per recipient.

type EventEmailDeferredData

type EventEmailDeferredData struct {
	// BounceClass Numeric bounce classification for fine-grained deliverability triage, or null when the receiving server's response could not be classified. Distinguishes, for example, a greylisting deferral from a full mailbox.
	BounceClass *int `json:"bounce_class"`

	// BounceType Bounce classification.
	//
	// - `hard`: A permanent failure, such as an invalid address or a domain that does not exist.
	// - `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.
	// - `block`: The receiving mail server refused the sending IP on reputation grounds.
	// - `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.
	// - `undetermined`: The receiving server's response was ambiguous.
	BounceType EmailBounceType `json:"bounce_type"`

	// DeferReason Human-readable reason the receiving mail server gave for the deferral, or null when none was provided.
	DeferReason *string `json:"defer_reason"`
	EmailId     EmailID `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// SendingIp The IP address used to send this message, or null when it is not known.
	SendingIp *string `json:"sending_ip"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailDeferredData defines model for EventEmailDeferredData.

type EventEmailDeferredType

type EventEmailDeferredType string

EventEmailDeferredType Event type.

const (
	EmailDeferred EventEmailDeferredType = "email.deferred"
)

Defines values for EventEmailDeferredType.

func (EventEmailDeferredType) Valid

func (e EventEmailDeferredType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailDeferredType enum.

type EventEmailDelivered

type EventEmailDelivered struct {
	// Data Payload of the email.delivered event.
	Data EventEmailDeliveredData `json:"data"`

	// Timestamp Time the recipient's mail server accepted the message.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailDeliveredType `json:"type"`
}

EventEmailDelivered An outbound email reached the recipient's mail server and was accepted.

type EventEmailDeliveredData

type EventEmailDeliveredData = EventEmailBase

EventEmailDeliveredData Identity fields shared by every email lifecycle event payload.

type EventEmailDeliveredType

type EventEmailDeliveredType string

EventEmailDeliveredType Event type.

const (
	EmailDelivered EventEmailDeliveredType = "email.delivered"
)

Defines values for EventEmailDeliveredType.

func (EventEmailDeliveredType) Valid

func (e EventEmailDeliveredType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailDeliveredType enum.

type EventEmailListUnsubscribed

type EventEmailListUnsubscribed struct {
	// Data Payload of the email.list_unsubscribed event.
	Data EventEmailListUnsubscribedData `json:"data"`

	// Timestamp Time the unsubscribe was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailListUnsubscribedType `json:"type"`
}

EventEmailListUnsubscribed Recipient unsubscribed via the RFC 8058 one-click List-Unsubscribe mechanism. Fires once per recipient.

type EventEmailListUnsubscribedData

type EventEmailListUnsubscribedData = EventEmailBase

EventEmailListUnsubscribedData Identity fields shared by every email lifecycle event payload.

type EventEmailListUnsubscribedType

type EventEmailListUnsubscribedType string

EventEmailListUnsubscribedType Event type.

const (
	EmailListUnsubscribed EventEmailListUnsubscribedType = "email.list_unsubscribed"
)

Defines values for EventEmailListUnsubscribedType.

func (EventEmailListUnsubscribedType) Valid

Valid indicates whether the value is a known member of the EventEmailListUnsubscribedType enum.

type EventEmailMailboxMessageDelivered added in v0.4.1

type EventEmailMailboxMessageDelivered struct {
	// Data Payload of the email_mailbox.message_delivered event.
	Data EventEmailMailboxMessageDeliveredData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxMessageDeliveredType `json:"type"`
}

EventEmailMailboxMessageDelivered Every recipient of a mailbox message reached a delivered state. This event fires once per message. The same send also emits one `email.delivered` event for each recipient. Choose one event family for each automation and deduplicate mailbox events by `message_id`.

type EventEmailMailboxMessageDeliveredData added in v0.4.1

type EventEmailMailboxMessageDeliveredData struct {
	MailboxId MailboxID `json:"mailbox_id"`
	MessageId EmailID   `json:"message_id"`
	ThreadId  ThreadID  `json:"thread_id"`
}

EventEmailMailboxMessageDeliveredData Payload of the email_mailbox.message_delivered event.

type EventEmailMailboxMessageDeliveredType added in v0.4.1

type EventEmailMailboxMessageDeliveredType string

EventEmailMailboxMessageDeliveredType Event type.

const (
	EmailMailboxMessageDelivered EventEmailMailboxMessageDeliveredType = "email_mailbox.message_delivered"
)

Defines values for EventEmailMailboxMessageDeliveredType.

func (EventEmailMailboxMessageDeliveredType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxMessageDeliveredType enum.

type EventEmailMailboxMessageFailed added in v0.4.1

type EventEmailMailboxMessageFailed struct {
	// Data Payload of the email_mailbox.message_failed event.
	Data EventEmailMailboxMessageFailedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxMessageFailedType `json:"type"`
}

EventEmailMailboxMessageFailed A mailbox message reached a terminal delivery failure. This event fires once per message. The same send also emits per-recipient `email.*` events. Choose one event family for each automation and deduplicate mailbox events by `message_id`.

type EventEmailMailboxMessageFailedData added in v0.4.1

type EventEmailMailboxMessageFailedData struct {
	MailboxId MailboxID `json:"mailbox_id"`
	MessageId EmailID   `json:"message_id"`

	// Reason Why the message reached a terminal delivery failure.
	Reason   string   `json:"reason"`
	ThreadId ThreadID `json:"thread_id"`
}

EventEmailMailboxMessageFailedData Payload of the email_mailbox.message_failed event.

type EventEmailMailboxMessageFailedType added in v0.4.1

type EventEmailMailboxMessageFailedType string

EventEmailMailboxMessageFailedType Event type.

const (
	EmailMailboxMessageFailed EventEmailMailboxMessageFailedType = "email_mailbox.message_failed"
)

Defines values for EventEmailMailboxMessageFailedType.

func (EventEmailMailboxMessageFailedType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxMessageFailedType enum.

type EventEmailMailboxMessageReceived added in v0.4.1

type EventEmailMailboxMessageReceived struct {
	// Data Identifiers, threading details, authentication results, and extracted text for a received mailbox message. The thread-message endpoints provide the original source during its 30-day retention window.
	Data EventEmailMailboxMessageReceivedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxMessageReceivedType `json:"type"`
}

EventEmailMailboxMessageReceived An email arrived in a mailbox. The same message also emits an `email.received` event. The two events can arrive in either order. Choose one event family for each automation and deduplicate mailbox events by `message_id`.

type EventEmailMailboxMessageReceivedData added in v0.4.1

type EventEmailMailboxMessageReceivedData struct {
	// AttachmentCount Number of attachments on the message. Attachment content remains available during the 30-day original-source retention window.
	AttachmentCount int `json:"attachment_count"`

	// Authentication Whether the sender of the received message was authenticated.
	//
	// - `pass`: the sender's identity was verified.
	// - `fail`: it was checked and did not verify.
	// - `unknown`: no verdict is available, so do not treat the sender
	//   as verified.
	Authentication *EventEmailMailboxMessageReceivedDataAuthentication `json:"authentication,omitempty"`

	// DkimPass Whether DKIM passed for the sender, or null when no verdict was computable.
	DkimPass *bool `json:"dkim_pass,omitempty"`

	// DmarcPass Whether DMARC passed for the sender, or null when no verdict was computable.
	DmarcPass *bool `json:"dmarc_pass,omitempty"`

	// ExtractedText Plain-text body with quoted history removed, capped at 64 KB. See `truncated_text` to check whether the value was truncated. Null when extraction produces no text.
	ExtractedText *string `json:"extracted_text,omitempty"`

	// From Envelope-from address.
	From      openapi_types.Email   `json:"from"`
	MailboxId MailboxID             `json:"mailbox_id"`
	MessageId InboundEmailMessageID `json:"message_id"`

	// RouteId ID (ein_…) of the explicit inbound route that matched, or null when the message was delivered by the virtual exact-address route.
	RouteId *string `json:"route_id,omitempty"`

	// SpfPass Whether SPF passed for the sender, or null when no verdict was computable.
	SpfPass *bool `json:"spf_pass,omitempty"`

	// Subject Subject line as received, or null when the message had no subject.
	Subject  *string  `json:"subject"`
	ThreadId ThreadID `json:"thread_id"`

	// To Recipient addresses the message was sent to.
	To []openapi_types.Email `json:"to"`

	// TruncatedText True when `extracted_text` was truncated to the 64 KB cap. Fetch the full text through the thread-member endpoint.
	TruncatedText *bool `json:"truncated_text,omitempty"`
}

EventEmailMailboxMessageReceivedData Identifiers, threading details, authentication results, and extracted text for a received mailbox message. The thread-message endpoints provide the original source during its 30-day retention window.

type EventEmailMailboxMessageReceivedDataAuthentication added in v0.8.2

type EventEmailMailboxMessageReceivedDataAuthentication string

EventEmailMailboxMessageReceivedDataAuthentication Whether the sender of the received message was authenticated.

  • `pass`: the sender's identity was verified.
  • `fail`: it was checked and did not verify.
  • `unknown`: no verdict is available, so do not treat the sender as verified.
const (
	EventEmailMailboxMessageReceivedDataAuthenticationFail        EventEmailMailboxMessageReceivedDataAuthentication = "fail"
	EventEmailMailboxMessageReceivedDataAuthenticationLessThannil EventEmailMailboxMessageReceivedDataAuthentication = "<nil>"
	EventEmailMailboxMessageReceivedDataAuthenticationPass        EventEmailMailboxMessageReceivedDataAuthentication = "pass"
	EventEmailMailboxMessageReceivedDataAuthenticationUnknown     EventEmailMailboxMessageReceivedDataAuthentication = "unknown"
)

Defines values for EventEmailMailboxMessageReceivedDataAuthentication.

func (EventEmailMailboxMessageReceivedDataAuthentication) Valid added in v0.8.2

Valid indicates whether the value is a known member of the EventEmailMailboxMessageReceivedDataAuthentication enum.

type EventEmailMailboxMessageReceivedType added in v0.4.1

type EventEmailMailboxMessageReceivedType string

EventEmailMailboxMessageReceivedType Event type.

const (
	EmailMailboxMessageReceived EventEmailMailboxMessageReceivedType = "email_mailbox.message_received"
)

Defines values for EventEmailMailboxMessageReceivedType.

func (EventEmailMailboxMessageReceivedType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxMessageReceivedType enum.

type EventEmailMailboxMessageSent added in v0.4.1

type EventEmailMailboxMessageSent struct {
	// Data Payload of the email_mailbox.message_sent event.
	Data EventEmailMailboxMessageSentData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxMessageSentType `json:"type"`
}

EventEmailMailboxMessageSent A mailbox message was handed off for delivery. This event fires once per message. The same send also emits per-recipient `email.*` events. Choose one event family for each automation and deduplicate mailbox events by `message_id`.

type EventEmailMailboxMessageSentData added in v0.4.1

type EventEmailMailboxMessageSentData struct {
	MailboxId MailboxID `json:"mailbox_id"`
	MessageId EmailID   `json:"message_id"`
	ThreadId  ThreadID  `json:"thread_id"`
}

EventEmailMailboxMessageSentData Payload of the email_mailbox.message_sent event.

type EventEmailMailboxMessageSentType added in v0.4.1

type EventEmailMailboxMessageSentType string

EventEmailMailboxMessageSentType Event type.

const (
	EmailMailboxMessageSent EventEmailMailboxMessageSentType = "email_mailbox.message_sent"
)

Defines values for EventEmailMailboxMessageSentType.

func (EventEmailMailboxMessageSentType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxMessageSentType enum.

type EventEmailMailboxSuspended added in v0.4.1

type EventEmailMailboxSuspended struct {
	// Data Payload of the email_mailbox.suspended event.
	Data EventEmailMailboxSuspendedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxSuspendedType `json:"type"`
}

EventEmailMailboxSuspended This mailbox-suspension event is reserved and is not currently emitted.

type EventEmailMailboxSuspendedData added in v0.4.1

type EventEmailMailboxSuspendedData struct {
	MailboxId MailboxID `json:"mailbox_id"`

	// Reason Why the mailbox was suspended.
	Reason string `json:"reason"`
}

EventEmailMailboxSuspendedData Payload of the email_mailbox.suspended event.

type EventEmailMailboxSuspendedType added in v0.4.1

type EventEmailMailboxSuspendedType string

EventEmailMailboxSuspendedType Event type.

const (
	EmailMailboxSuspended EventEmailMailboxSuspendedType = "email_mailbox.suspended"
)

Defines values for EventEmailMailboxSuspendedType.

func (EventEmailMailboxSuspendedType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxSuspendedType enum.

type EventEmailMailboxThreadCreated added in v0.4.1

type EventEmailMailboxThreadCreated struct {
	// Data Payload of the email_mailbox.thread_created event.
	Data EventEmailMailboxThreadCreatedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailMailboxThreadCreatedType `json:"type"`
}

EventEmailMailboxThreadCreated A new thread was created in a mailbox, from either direction.

type EventEmailMailboxThreadCreatedData added in v0.4.1

type EventEmailMailboxThreadCreatedData struct {
	// InitiatedBy Which direction created the thread.
	InitiatedBy EventEmailMailboxThreadCreatedDataInitiatedBy `json:"initiated_by"`
	MailboxId   MailboxID                                     `json:"mailbox_id"`

	// Subject Subject of the first message in the thread, or null when it had none.
	Subject  *string  `json:"subject"`
	ThreadId ThreadID `json:"thread_id"`
}

EventEmailMailboxThreadCreatedData Payload of the email_mailbox.thread_created event.

type EventEmailMailboxThreadCreatedDataInitiatedBy added in v0.4.1

type EventEmailMailboxThreadCreatedDataInitiatedBy string

EventEmailMailboxThreadCreatedDataInitiatedBy Which direction created the thread.

const (
	EventEmailMailboxThreadCreatedDataInitiatedByInbound  EventEmailMailboxThreadCreatedDataInitiatedBy = "inbound"
	EventEmailMailboxThreadCreatedDataInitiatedByOutbound EventEmailMailboxThreadCreatedDataInitiatedBy = "outbound"
)

Defines values for EventEmailMailboxThreadCreatedDataInitiatedBy.

func (EventEmailMailboxThreadCreatedDataInitiatedBy) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxThreadCreatedDataInitiatedBy enum.

type EventEmailMailboxThreadCreatedType added in v0.4.1

type EventEmailMailboxThreadCreatedType string

EventEmailMailboxThreadCreatedType Event type.

const (
	EmailMailboxThreadCreated EventEmailMailboxThreadCreatedType = "email_mailbox.thread_created"
)

Defines values for EventEmailMailboxThreadCreatedType.

func (EventEmailMailboxThreadCreatedType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the EventEmailMailboxThreadCreatedType enum.

type EventEmailMessageBase added in v0.2.2

type EventEmailMessageBase struct {
	EmailId EmailID `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on the event so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Tags Tags provided on the send request, echoed on the event so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailMessageBase Identity fields shared by the message-level email lifecycle events (scheduled, canceled), which are not tied to a single recipient.

type EventEmailOpened

type EventEmailOpened struct {
	// Data Payload of the email.opened event.
	Data EventEmailOpenedData `json:"data"`

	// Timestamp Time the open was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailOpenedType `json:"type"`
}

EventEmailOpened The recipient opened the email (the tracking pixel was loaded). May fire more than once per recipient.

type EventEmailOpenedData

type EventEmailOpenedData struct {
	EmailId EmailID `json:"email_id"`

	// IpAddress IP address of the client that opened the email, or null when it is not known.
	IpAddress *string `json:"ip_address"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags *[]Tag `json:"tags"`

	// UserAgent User-agent string of the client that opened the email, or null when it is not known.
	UserAgent   *string     `json:"user_agent"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailOpenedData defines model for EventEmailOpenedData.

type EventEmailOpenedType

type EventEmailOpenedType string

EventEmailOpenedType Event type.

const (
	EmailOpened EventEmailOpenedType = "email.opened"
)

Defines values for EventEmailOpenedType.

func (EventEmailOpenedType) Valid

func (e EventEmailOpenedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailOpenedType enum.

type EventEmailOutOfBandBounce

type EventEmailOutOfBandBounce struct {
	// Data Payload of the email.out_of_band_bounce event.
	Data EventEmailOutOfBandBounceData `json:"data"`

	// Timestamp Time the bounce notification was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailOutOfBandBounceType `json:"type"`
}

EventEmailOutOfBandBounce A bounce notification arrived after the message had already been accepted for delivery. Fires once per recipient.

type EventEmailOutOfBandBounceData

type EventEmailOutOfBandBounceData struct {
	// BounceClass Numeric bounce classification for fine-grained deliverability triage, or null when the receiving server's response could not be classified.
	BounceClass *int `json:"bounce_class"`

	// BounceCode SMTP reply code returned by the receiving mail server, or null when none was provided.
	BounceCode *string `json:"bounce_code"`

	// BounceDescription Human-readable reason the receiving mail server gave for the bounce, or null when none was provided.
	BounceDescription *string `json:"bounce_description"`

	// BounceType Bounce classification.
	//
	// - `hard`: A permanent failure, such as an invalid address or a domain that does not exist.
	// - `soft`: A transient failure, such as a full mailbox or a server that is temporarily unavailable.
	// - `block`: The receiving mail server refused the sending IP on reputation grounds.
	// - `admin`: An administrative refusal, such as relaying denied or a blocklisted domain.
	// - `undetermined`: The receiving server's response was ambiguous.
	BounceType EmailBounceType `json:"bounce_type"`
	EmailId    EmailID         `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// SendingIp The IP address used to send this message, or null when it is not known.
	SendingIp *string `json:"sending_ip"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailOutOfBandBounceData defines model for EventEmailOutOfBandBounceData.

type EventEmailOutOfBandBounceType

type EventEmailOutOfBandBounceType string

EventEmailOutOfBandBounceType Event type.

const (
	EmailOutOfBandBounce EventEmailOutOfBandBounceType = "email.out_of_band_bounce"
)

Defines values for EventEmailOutOfBandBounceType.

func (EventEmailOutOfBandBounceType) Valid

Valid indicates whether the value is a known member of the EventEmailOutOfBandBounceType enum.

type EventEmailProcessed

type EventEmailProcessed struct {
	// Data Payload of the email.processed event.
	Data EventEmailProcessedData `json:"data"`

	// Timestamp Time the message was prepared for delivery.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailProcessedType `json:"type"`
}

EventEmailProcessed The API prepared the message for delivery to the recipient's mail server. Fires once per recipient.

type EventEmailProcessedData

type EventEmailProcessedData = EventEmailBase

EventEmailProcessedData Identity fields shared by every email lifecycle event payload.

type EventEmailProcessedType

type EventEmailProcessedType string

EventEmailProcessedType Event type.

const (
	EmailProcessed EventEmailProcessedType = "email.processed"
)

Defines values for EventEmailProcessedType.

func (EventEmailProcessedType) Valid

func (e EventEmailProcessedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailProcessedType enum.

type EventEmailReceived

type EventEmailReceived struct {
	// Data Payload of the email.received event.
	Data EventEmailReceivedData `json:"data"`

	// Timestamp When the API received the message.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailReceivedType `json:"type"`
}

EventEmailReceived The API received and parsed an inbound email. The payload carries the message's identifiers, sender and recipients, subject, threading reference, and authentication results, which is enough to route and triage without a fetch. Fetch content separately. Get the parsed body with `GET /v1/email/inbound-messages/{id}/body`. Get the original MIME with `GET /v1/email/inbound-messages/{id}/raw`. Get attachment bytes with `GET /v1/email/inbound-messages/{id}/attachments/{attachment_id}`.

type EventEmailReceivedData

type EventEmailReceivedData struct {
	// Authentication Whether the sender of the received message was authenticated.
	//
	// - `pass`: the sender's identity was verified.
	// - `fail`: it was checked and did not verify.
	// - `unknown`: no verdict is available, so do not treat the sender
	//   as verified.
	Authentication *EventEmailReceivedDataAuthentication `json:"authentication,omitempty"`

	// DkimPass Whether DKIM passed for the sender, or null when the result did not carry a DKIM verdict.
	DkimPass *bool `json:"dkim_pass,omitempty"`

	// DmarcPass Whether DMARC passed for the sender, or null when the result did not carry a DMARC verdict.
	DmarcPass *bool `json:"dmarc_pass,omitempty"`

	// From Envelope-from address.
	From openapi_types.Email `json:"from"`

	// InReplyTo `In-Reply-To` header containing the `Message-ID` this message replies to, or null when it is not a reply.
	InReplyTo        *string               `json:"in_reply_to,omitempty"`
	InboundMessageId InboundEmailMessageID `json:"inbound_message_id"`

	// MessageId RFC 5322 Message-ID header from the sender, or null when the sender did not include one.
	MessageId *string `json:"message_id"`

	// SpamScore Spam score carried on the received message, or null when it carries no score.
	SpamScore *float32 `json:"spam_score,omitempty"`

	// SpfPass Whether SPF passed for the sender, or null when the result did not carry an SPF verdict.
	SpfPass *bool `json:"spf_pass,omitempty"`

	// Subject Subject line as received, or null when the message had no subject.
	Subject *string `json:"subject"`

	// To Recipient addresses the message was sent to.
	To          []openapi_types.Email `json:"to"`
	WorkspaceId WorkspaceID           `json:"workspace_id"`
}

EventEmailReceivedData Payload of the email.received event.

type EventEmailReceivedDataAuthentication added in v0.8.2

type EventEmailReceivedDataAuthentication string

EventEmailReceivedDataAuthentication Whether the sender of the received message was authenticated.

  • `pass`: the sender's identity was verified.
  • `fail`: it was checked and did not verify.
  • `unknown`: no verdict is available, so do not treat the sender as verified.
const (
	EventEmailReceivedDataAuthenticationFail        EventEmailReceivedDataAuthentication = "fail"
	EventEmailReceivedDataAuthenticationLessThannil EventEmailReceivedDataAuthentication = "<nil>"
	EventEmailReceivedDataAuthenticationPass        EventEmailReceivedDataAuthentication = "pass"
	EventEmailReceivedDataAuthenticationUnknown     EventEmailReceivedDataAuthentication = "unknown"
)

Defines values for EventEmailReceivedDataAuthentication.

func (EventEmailReceivedDataAuthentication) Valid added in v0.8.2

Valid indicates whether the value is a known member of the EventEmailReceivedDataAuthentication enum.

type EventEmailReceivedType

type EventEmailReceivedType string

EventEmailReceivedType Event type.

const (
	EmailReceived EventEmailReceivedType = "email.received"
)

Defines values for EventEmailReceivedType.

func (EventEmailReceivedType) Valid

func (e EventEmailReceivedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailReceivedType enum.

type EventEmailRejected

type EventEmailRejected struct {
	// Data Payload of the email.rejected event.
	Data EventEmailRejectedData `json:"data"`

	// Timestamp Time the rejection was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailRejectedType `json:"type"`
}

EventEmailRejected The API rejected the email before delivery because of suppression, transmission failure, content, or policy. Fires once per recipient.

type EventEmailRejectedData

type EventEmailRejectedData struct {
	EmailId EmailID `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on every event for the send so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Recipient Recipient address as it appeared on the envelope.
	Recipient   openapi_types.Email `json:"recipient"`
	RecipientId RecipientID         `json:"recipient_id"`

	// RecipientRole Envelope position of a recipient on an outbound email event.
	RecipientRole RecipientRole `json:"recipient_role"`

	// RejectionReason Why an email was rejected before delivery.
	//
	// - `recipient_suppressed`: The recipient is on the workspace suppression list, so
	//   delivery was never attempted.
	// - `transmission_failed`: The message could not be transmitted for delivery.
	// - `generation_failure`: The message could not be built for delivery (template or
	//   content issue).
	// - `policy_rejection`: The message was refused by sending policy.
	// - `domain_unverified`: The sending domain was not verified.
	// - `quota_exceeded`: The organization's send quota was reached.
	// - `recipient_not_allowed`: A recipient was not permitted for this send (for shared
	//   onboarding-domain sends, recipients must be verified workspace members).
	RejectionReason EmailRejectionReason `json:"rejection_reason"`

	// Tags Tags provided on the send request, echoed on every event for the send so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailRejectedData defines model for EventEmailRejectedData.

type EventEmailRejectedType

type EventEmailRejectedType string

EventEmailRejectedType Event type.

const (
	EmailRejected EventEmailRejectedType = "email.rejected"
)

Defines values for EventEmailRejectedType.

func (EventEmailRejectedType) Valid

func (e EventEmailRejectedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailRejectedType enum.

type EventEmailScheduled added in v0.2.2

type EventEmailScheduled struct {
	// Data Payload of the email.scheduled event.
	Data EventEmailScheduledData `json:"data"`

	// Timestamp Time the send was scheduled.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailScheduledType `json:"type"`
}

EventEmailScheduled The API accepted an email scheduled for a future time. Fires once per message when the schedule is created.

type EventEmailScheduledData added in v0.2.2

type EventEmailScheduledData struct {
	EmailId EmailID `json:"email_id"`

	// Metadata The metadata object provided on the send request, echoed on the event so you can correlate events with your own records. Null when the send carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// ScheduledAt When the message is scheduled to send.
	ScheduledAt time.Time `json:"scheduled_at"`

	// Tags Tags provided on the send request, echoed on the event so you can route and correlate without an extra lookup. Null when the send carried no tags.
	Tags        *[]Tag      `json:"tags"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventEmailScheduledData defines model for EventEmailScheduledData.

type EventEmailScheduledType added in v0.2.2

type EventEmailScheduledType string

EventEmailScheduledType Event type.

const (
	EmailScheduled EventEmailScheduledType = "email.scheduled"
)

Defines values for EventEmailScheduledType.

func (EventEmailScheduledType) Valid added in v0.2.2

func (e EventEmailScheduledType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailScheduledType enum.

type EventEmailSuppressionCreated

type EventEmailSuppressionCreated struct {
	// Data Payload of the email_suppression.created event.
	Data EventEmailSuppressionCreatedData `json:"data"`

	// Timestamp When the event occurred.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailSuppressionCreatedType `json:"type"`
}

EventEmailSuppressionCreated An email address was added to the workspace's suppression list (manually, via complaint, or via hard bounce).

type EventEmailSuppressionCreatedData added in v0.7.0

type EventEmailSuppressionCreatedData struct {
	// Email The recipient address that was added to the suppression list.
	Email openapi_types.Email `json:"email"`

	// Reason Why the address was suppressed. New values may be added over time; treat unknown values as informational.
	Reason        string        `json:"reason"`
	SuppressionId SuppressionID `json:"suppression_id"`
	WorkspaceId   WorkspaceID   `json:"workspace_id"`
}

EventEmailSuppressionCreatedData Payload of the email_suppression.created event.

type EventEmailSuppressionCreatedType

type EventEmailSuppressionCreatedType string

EventEmailSuppressionCreatedType Event type.

const (
	EmailSuppressionCreated EventEmailSuppressionCreatedType = "email_suppression.created"
)

Defines values for EventEmailSuppressionCreatedType.

func (EventEmailSuppressionCreatedType) Valid

Valid indicates whether the value is a known member of the EventEmailSuppressionCreatedType enum.

type EventEmailUnsubscribed

type EventEmailUnsubscribed struct {
	// Data Payload of the email.unsubscribed event.
	Data EventEmailUnsubscribedData `json:"data"`

	// Timestamp Time the unsubscribe was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventEmailUnsubscribedType `json:"type"`
}

EventEmailUnsubscribed Recipient unsubscribed by clicking a tracked unsubscribe link in the email. Fires once per recipient.

type EventEmailUnsubscribedData

type EventEmailUnsubscribedData = EventEmailBase

EventEmailUnsubscribedData Identity fields shared by every email lifecycle event payload.

type EventEmailUnsubscribedType

type EventEmailUnsubscribedType string

EventEmailUnsubscribedType Event type.

const (
	EmailUnsubscribed EventEmailUnsubscribedType = "email.unsubscribed"
)

Defines values for EventEmailUnsubscribedType.

func (EventEmailUnsubscribedType) Valid

func (e EventEmailUnsubscribedType) Valid() bool

Valid indicates whether the value is a known member of the EventEmailUnsubscribedType enum.

type EventPreferenceBase added in v0.41.0

type EventPreferenceBase struct {
	Channel PreferenceChannel `json:"channel"`

	// ContactId The contact whose handle matched when the statement was recorded. Null when no contact matched at that moment.
	ContactId *ContactID         `json:"contact_id"`
	Coverage  PreferenceCoverage `json:"coverage"`

	// Handle Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
	Handle       string       `json:"handle"`
	PreferenceId PreferenceID `json:"preference_id"`

	// SenderScope The sender the statement is limited to, or null when it covers the whole channel. Present-with-null on every payload of this type: it is part of the key alongside `topic_id`, and pinning its presence keeps a subscriber from ever learning `(handle, channel)` as the unique key.
	SenderScope *string `json:"sender_scope"`

	// TopicId The topic the statement is limited to, or null when it covers every topic. Reserved: always null in v1. Present-with-null for the same reason as `sender_scope`.
	TopicId      *string                `json:"topic_id"`
	TransitionId PreferenceTransitionID `json:"transition_id"`
}

EventPreferenceBase Identity fields shared by every preference lifecycle event: the key plus the ledger entry the write appended. `effective_at` is not repeated here: it is the envelope `timestamp`.

type EventPreferenceDeleted added in v0.41.0

type EventPreferenceDeleted struct {
	// Data Payload of the preference.deleted event.
	Data EventPreferenceDeletedData `json:"data"`

	// Timestamp When the delete took effect (`effective_at`), not when it was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Always `preference.deleted` for this event.
	Type PreferenceDeletedEventType `json:"type"`
}

EventPreferenceDeleted A stated preference was deleted, superseding it in the ledger without erasing its history.

type EventPreferenceDeletedData added in v0.41.0

type EventPreferenceDeletedData = EventPreferenceBase

EventPreferenceDeletedData Identity fields shared by every preference lifecycle event: the key plus the ledger entry the write appended. `effective_at` is not repeated here: it is the envelope `timestamp`.

type EventPreferenceGranted added in v0.41.0

type EventPreferenceGranted struct {
	// Data Payload of the preference.granted event.
	Data EventPreferenceGrantedData `json:"data"`

	// Timestamp When the statement took effect (`effective_at`), not when it was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Always `preference.granted` for this event.
	Type PreferenceGrantedEventType `json:"type"`
}

EventPreferenceGranted A stated preference was granted (a person consented, or a customer wrote a grant) and became the key's live statement.

type EventPreferenceGrantedData added in v0.41.0

type EventPreferenceGrantedData = EventPreferenceBase

EventPreferenceGrantedData Identity fields shared by every preference lifecycle event: the key plus the ledger entry the write appended. `effective_at` is not repeated here: it is the envelope `timestamp`.

type EventPreferenceRevoked added in v0.41.0

type EventPreferenceRevoked struct {
	// Data Payload of the preference.revoked event.
	Data EventPreferenceRevokedData `json:"data"`

	// Timestamp When the statement took effect (`effective_at`), not when it was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Always `preference.revoked` for this event.
	Type PreferenceRevokedEventType `json:"type"`
}

EventPreferenceRevoked A stated preference was revoked (a person opted out, or a customer wrote a revoke) and became the key's live statement.

type EventPreferenceRevokedData added in v0.41.0

type EventPreferenceRevokedData = EventPreferenceBase

EventPreferenceRevokedData Identity fields shared by every preference lifecycle event: the key plus the ledger entry the write appended. `effective_at` is not repeated here: it is the envelope `timestamp`.

type EventSMSAccepted added in v0.2.0

type EventSMSAccepted struct {
	// Data Payload of the sms.accepted event.
	Data EventSMSAcceptedData `json:"data"`

	// Timestamp Time the API accepted the request.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSAcceptedType `json:"type"`
}

EventSMSAccepted The API accepted the SMS send request and queued it for processing.

type EventSMSAcceptedData added in v0.2.0

type EventSMSAcceptedData struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Segments Segment breakdown for the message body. Segment count drives billing.
	Segments SMSSegments  `json:"segments"`
	SmsId    SMSMessageID `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSAcceptedData defines model for EventSMSAcceptedData.

type EventSMSAcceptedType added in v0.2.0

type EventSMSAcceptedType string

EventSMSAcceptedType Event type.

const (
	SmsAccepted EventSMSAcceptedType = "sms.accepted"
)

Defines values for EventSMSAcceptedType.

func (EventSMSAcceptedType) Valid added in v0.2.0

func (e EventSMSAcceptedType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSAcceptedType enum.

type EventSMSBase added in v0.2.0

type EventSMSBase struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSBase Identity fields shared by every SMS lifecycle event payload.

type EventSMSDelivered added in v0.2.0

type EventSMSDelivered struct {
	// Data Payload of the sms.delivered event.
	Data EventSMSDeliveredData `json:"data"`

	// Timestamp Time the carrier confirmed delivery.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSDeliveredType `json:"type"`
}

EventSMSDelivered The carrier confirmed delivery of the message to the recipient handset.

type EventSMSDeliveredData added in v0.2.0

type EventSMSDeliveredData struct {
	// Carrier Carrier that delivered the message. Absent when the carrier does not report one.
	Carrier *string `json:"carrier,omitempty"`

	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// MccMnc Mobile country code and mobile network code of the carrier. Absent when the carrier does not report one.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSDeliveredData defines model for EventSMSDeliveredData.

type EventSMSDeliveredType added in v0.2.0

type EventSMSDeliveredType string

EventSMSDeliveredType Event type.

const (
	SmsDelivered EventSMSDeliveredType = "sms.delivered"
)

Defines values for EventSMSDeliveredType.

func (EventSMSDeliveredType) Valid added in v0.2.0

func (e EventSMSDeliveredType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSDeliveredType enum.

type EventSMSExpired added in v0.2.0

type EventSMSExpired struct {
	// Data Payload of the sms.expired event.
	Data EventSMSExpiredData `json:"data"`

	// Timestamp Time the message expired.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSExpiredType `json:"type"`
}

EventSMSExpired The message's validity period elapsed before it could be delivered.

type EventSMSExpiredData added in v0.2.0

type EventSMSExpiredData struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *SMSError `json:"error,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSExpiredData defines model for EventSMSExpiredData.

type EventSMSExpiredType added in v0.2.0

type EventSMSExpiredType string

EventSMSExpiredType Event type.

const (
	SmsExpired EventSMSExpiredType = "sms.expired"
)

Defines values for EventSMSExpiredType.

func (EventSMSExpiredType) Valid added in v0.2.0

func (e EventSMSExpiredType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSExpiredType enum.

type EventSMSFailed added in v0.2.0

type EventSMSFailed struct {
	// Data Payload of the sms.failed event.
	Data EventSMSFailedData `json:"data"`

	// Timestamp Time the failure was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSFailedType `json:"type"`
}

EventSMSFailed Message delivery failed permanently.

type EventSMSFailedData added in v0.2.0

type EventSMSFailedData struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *SMSError `json:"error,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSFailedData defines model for EventSMSFailedData.

type EventSMSFailedType added in v0.2.0

type EventSMSFailedType string

EventSMSFailedType Event type.

const (
	SmsFailed EventSMSFailedType = "sms.failed"
)

Defines values for EventSMSFailedType.

func (EventSMSFailedType) Valid added in v0.2.0

func (e EventSMSFailedType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSFailedType enum.

type EventSMSReceived added in v0.28.1

type EventSMSReceived struct {
	// Data Payload of the sms.received event.
	Data EventSMSReceivedData `json:"data"`

	// Timestamp Time the sender sent the message.
	Timestamp time.Time `json:"timestamp"`

	// Type Always `sms.received` for this event.
	Type SMSReceivedEventType `json:"type"`
}

EventSMSReceived A message was received on one of your numbers.

type EventSMSReceivedData added in v0.28.1

type EventSMSReceivedData struct {
	// Carrier Carrier the message came in over. Absent where the carrier does not report one.
	Carrier *string `json:"carrier,omitempty"`

	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// MccMnc Mobile country code and mobile network code of the carrier. Absent when not known.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Segments Segment breakdown for the message body. Segment count drives billing.
	Segments SMSSegments  `json:"segments"`
	SmsId    SMSMessageID `json:"sms_id"`

	// Subject Subject line. Absent when the message carried none.
	Subject *string `json:"subject,omitempty"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// Text The message body, so you can act on it without a follow-up read. Absent when the message carried only attachments and no text of its own.
	Text *string `json:"text,omitempty"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSReceivedData defines model for EventSMSReceivedData.

type EventSMSRejected added in v0.2.0

type EventSMSRejected struct {
	// Data Payload of the sms.rejected event.
	Data EventSMSRejectedData `json:"data"`

	// Timestamp Time the rejection was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSRejectedType `json:"type"`
}

EventSMSRejected The API rejected the message before sending it to the carrier because of an invalid destination, suppression, or content or policy restriction.

type EventSMSRejectedData added in v0.2.0

type EventSMSRejectedData struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *SMSError `json:"error,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSRejectedData defines model for EventSMSRejectedData.

type EventSMSRejectedType added in v0.2.0

type EventSMSRejectedType string

EventSMSRejectedType Event type.

const (
	SmsRejected EventSMSRejectedType = "sms.rejected"
)

Defines values for EventSMSRejectedType.

func (EventSMSRejectedType) Valid added in v0.2.0

func (e EventSMSRejectedType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSRejectedType enum.

type EventSMSSent added in v0.2.0

type EventSMSSent struct {
	// Data Payload of the sms.sent event.
	Data EventSMSSentData `json:"data"`

	// Timestamp Time the message was handed to the carrier.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSSentType `json:"type"`
}

EventSMSSent The API handed the message to the carrier for delivery.

type EventSMSSentData added in v0.2.0

type EventSMSSentData struct {
	// Carrier Carrier that handled the message. Absent when the carrier does not report one.
	Carrier *string `json:"carrier,omitempty"`

	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// MccMnc Mobile country code and mobile network code of the carrier. Absent when the carrier does not report one.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSSentData defines model for EventSMSSentData.

type EventSMSSentType added in v0.2.0

type EventSMSSentType string

EventSMSSentType Event type.

const (
	SmsSent EventSMSSentType = "sms.sent"
)

Defines values for EventSMSSentType.

func (EventSMSSentType) Valid added in v0.2.0

func (e EventSMSSentType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSSentType enum.

type EventSMSSuppressionCreated added in v0.38.0

type EventSMSSuppressionCreated struct {
	// Data Payload of the sms_suppression.created event.
	Data EventSMSSuppressionCreatedData `json:"data"`

	// Timestamp When the episode's opening statement took effect (`effective_at`).
	Timestamp time.Time `json:"timestamp"`

	// Type Always `sms_suppression.created` for this event.
	Type SMSSuppressionCreatedEventType `json:"type"`
}

EventSMSSuppressionCreated A destination was added to the workspace's SMS suppression ledger: a subscriber's STOP, a carrier opt-out, or a manual add.

type EventSMSSuppressionCreatedData added in v0.38.0

type EventSMSSuppressionCreatedData struct {
	// Destination The subscriber, in E.164 format.
	Destination string `json:"destination"`

	// Originator The sender this stops. An SMS suppression is the exact (sender, recipient) pair, so your other senders still reach this subscriber.
	Originator    string               `json:"originator"`
	Reason        SMSSuppressionReason `json:"reason"`
	SuppressionId SMSSuppressionID     `json:"suppression_id"`
	WorkspaceId   WorkspaceID          `json:"workspace_id"`
}

EventSMSSuppressionCreatedData Payload of the sms_suppression.created event.

type EventSMSUndelivered added in v0.2.0

type EventSMSUndelivered struct {
	// Data Payload of the sms.undelivered event.
	Data EventSMSUndeliveredData `json:"data"`

	// Timestamp Time the non-delivery was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventSMSUndeliveredType `json:"type"`
}

EventSMSUndelivered The carrier reported a non-permanent failure to deliver the message.

type EventSMSUndeliveredData added in v0.2.0

type EventSMSUndeliveredData struct {
	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *SMSError `json:"error,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound one it is the phone number that sent it to you.
	From string `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message so you can correlate events with your own records. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`
	SmsId    SMSMessageID            `json:"sms_id"`

	// Tags Tags provided on the send request, echoed on every event for the message so you can route and correlate without an extra lookup. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventSMSUndeliveredData defines model for EventSMSUndeliveredData.

type EventSMSUndeliveredType added in v0.2.0

type EventSMSUndeliveredType string

EventSMSUndeliveredType Event type.

const (
	SmsUndelivered EventSMSUndeliveredType = "sms.undelivered"
)

Defines values for EventSMSUndeliveredType.

func (EventSMSUndeliveredType) Valid added in v0.2.0

func (e EventSMSUndeliveredType) Valid() bool

Valid indicates whether the value is a known member of the EventSMSUndeliveredType enum.

type EventVerifyAttemptDelivered added in v0.14.0

type EventVerifyAttemptDelivered struct {
	// Data Payload of the verify.attempt.delivered event.
	Data EventVerifyAttemptDeliveredData `json:"data"`

	// Timestamp Time delivery was confirmed.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVerifyAttemptDeliveredType `json:"type"`
}

EventVerifyAttemptDelivered The channel confirmed delivery of a one-time passcode to the recipient.

type EventVerifyAttemptDeliveredData added in v0.14.0

type EventVerifyAttemptDeliveredData struct {
	// Address The single address this attempt was dispatched to, an E.164 phone number or an email address.
	Address string `json:"address"`

	// Carrier Carrier that delivered the message, when the carrier network reports it. Always null for email, WhatsApp, and Telegram.
	Carrier *string `json:"carrier"`

	// Channel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	Channel VerificationChannel `json:"channel"`

	// DeliveredAt Time delivery was confirmed.
	DeliveredAt time.Time `json:"delivered_at"`

	// MccMnc Mobile country code and mobile network code of the delivering carrier, when reported. Always null for email, WhatsApp, and Telegram.
	MccMnc *string `json:"mcc_mnc"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyAttemptDeliveredData defines model for EventVerifyAttemptDeliveredData.

type EventVerifyAttemptDeliveredType added in v0.14.0

type EventVerifyAttemptDeliveredType string

EventVerifyAttemptDeliveredType Event type.

const (
	VerifyAttemptDelivered EventVerifyAttemptDeliveredType = "verify.attempt.delivered"
)

Defines values for EventVerifyAttemptDeliveredType.

func (EventVerifyAttemptDeliveredType) Valid added in v0.14.0

Valid indicates whether the value is a known member of the EventVerifyAttemptDeliveredType enum.

type EventVerifyAttemptSent added in v0.14.0

type EventVerifyAttemptSent struct {
	// Data Payload of the verify.attempt.sent event.
	Data EventVerifyAttemptSentData `json:"data"`

	// Timestamp Time the passcode was dispatched.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVerifyAttemptSentType `json:"type"`
}

EventVerifyAttemptSent A one-time passcode was dispatched to the recipient on a channel.

type EventVerifyAttemptSentData added in v0.14.0

type EventVerifyAttemptSentData struct {
	// Address The single address this attempt was dispatched to, an E.164 phone number or an email address.
	Address string `json:"address"`

	// Channel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	Channel VerificationChannel `json:"channel"`

	// From The sender the passcode was sent from: a phone number, alphanumeric sender ID, short code, or email address. Null when the channel exposes no sender.
	From *string `json:"from"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// SentAt Time the passcode was dispatched.
	SentAt time.Time `json:"sent_at"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyAttemptSentData defines model for EventVerifyAttemptSentData.

type EventVerifyAttemptSentType added in v0.14.0

type EventVerifyAttemptSentType string

EventVerifyAttemptSentType Event type.

const (
	VerifyAttemptSent EventVerifyAttemptSentType = "verify.attempt.sent"
)

Defines values for EventVerifyAttemptSentType.

func (EventVerifyAttemptSentType) Valid added in v0.14.0

func (e EventVerifyAttemptSentType) Valid() bool

Valid indicates whether the value is a known member of the EventVerifyAttemptSentType enum.

type EventVerifyAttemptUndelivered added in v0.14.0

type EventVerifyAttemptUndelivered struct {
	// Data Payload of the verify.attempt.undelivered event.
	Data EventVerifyAttemptUndeliveredData `json:"data"`

	// Timestamp Time the failure was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVerifyAttemptUndeliveredType `json:"type"`
}

EventVerifyAttemptUndelivered A one-time passcode failed to deliver to the recipient.

type EventVerifyAttemptUndeliveredData added in v0.14.0

type EventVerifyAttemptUndeliveredData struct {
	// Address The single address this attempt was dispatched to, an E.164 phone number or an email address.
	Address string `json:"address"`

	// Channel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	Channel VerificationChannel `json:"channel"`

	// Error Diagnostic text describing the failure, for display only. Null when none was reported.
	Error *string `json:"error"`

	// FailedAt Time the failure was recorded.
	FailedAt time.Time `json:"failed_at"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Reason Why a passcode send did not deliver:
	//
	// - `carrier_rejected`: The SMS carrier rejected the send.
	// - `hard_bounce`: The email permanently bounced.
	// - `soft_bounce`: The email temporarily bounced, such as when a mailbox is full.
	// - `undelivered`: The channel reported a generic delivery failure.
	// - `channel_unavailable`: The channel could not be used, so the verification
	//   moved to the next channel.
	// - `channel_disabled`: Sending on the channel is temporarily disabled, so the
	//   verification moved to the next channel.
	// - `delivery_timeout`: No delivery confirmation arrived before the channel's
	//   timeout, so the verification moved to the next channel.
	// - `not_billable`: The send could not be charged, so it was never handed to the
	//   channel. Usually the workspace balance is too low to cover it. Topping up
	//   the balance is what clears this.
	//
	// New reasons may be added over time. Treat unrecognized values as reasons added
	// later rather than errors.
	Reason VerificationAttemptFailureReason `json:"reason"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyAttemptUndeliveredData defines model for EventVerifyAttemptUndeliveredData.

type EventVerifyAttemptUndeliveredType added in v0.14.0

type EventVerifyAttemptUndeliveredType string

EventVerifyAttemptUndeliveredType Event type.

const (
	VerifyAttemptUndelivered EventVerifyAttemptUndeliveredType = "verify.attempt.undelivered"
)

Defines values for EventVerifyAttemptUndeliveredType.

func (EventVerifyAttemptUndeliveredType) Valid added in v0.14.0

Valid indicates whether the value is a known member of the EventVerifyAttemptUndeliveredType enum.

type EventVerifyBase added in v0.14.0

type EventVerifyBase struct {
	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyBase Identity fields shared by every Verify lifecycle event payload.

type EventVerifyVerificationCreated added in v0.14.0

type EventVerifyVerificationCreated struct {
	// Data Payload of the verify.verification.created event.
	Data EventVerifyVerificationCreatedData `json:"data"`

	// Timestamp Time the verification session was created.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVerifyVerificationCreatedType `json:"type"`
}

EventVerifyVerificationCreated A verification session was created and its first one-time passcode is being sent.

type EventVerifyVerificationCreatedData added in v0.14.0

type EventVerifyVerificationCreatedData struct {
	// Channel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	Channel VerificationChannel `json:"channel"`

	// CreatedAt Time the verification session was created.
	CreatedAt time.Time `json:"created_at"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Status The verification's state at creation, always `pending`. Open enum for forward compatibility.
	Status string `json:"status"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyVerificationCreatedData defines model for EventVerifyVerificationCreatedData.

type EventVerifyVerificationCreatedType added in v0.14.0

type EventVerifyVerificationCreatedType string

EventVerifyVerificationCreatedType Event type.

const (
	VerifyVerificationCreated EventVerifyVerificationCreatedType = "verify.verification.created"
)

Defines values for EventVerifyVerificationCreatedType.

func (EventVerifyVerificationCreatedType) Valid added in v0.14.0

Valid indicates whether the value is a known member of the EventVerifyVerificationCreatedType enum.

type EventVerifyVerificationFailed added in v0.36.0

type EventVerifyVerificationFailed struct {
	// Data Payload of the verify.verification.failed event.
	Data EventVerifyVerificationFailedData `json:"data"`

	// Timestamp Time the verification was resolved.
	Timestamp time.Time `json:"timestamp"`

	// Type Always `verify.verification.failed` for this event.
	Type VerifyVerificationFailedEventType `json:"type"`
}

EventVerifyVerificationFailed The verification ended without the recipient receiving a passcode: every planned channel reported that its send would not arrive.

type EventVerifyVerificationFailedData added in v0.36.0

type EventVerifyVerificationFailedData struct {
	// Channel The last channel the verification tried, the one whose failure left it with nowhere else to go. Null when no channel was attributed.
	Channel *VerificationChannel `json:"channel"`

	// FailedAt Time the verification was resolved.
	FailedAt time.Time `json:"failed_at"`

	// LastAttemptReason Why a passcode send did not deliver:
	//
	// - `carrier_rejected`: The SMS carrier rejected the send.
	// - `hard_bounce`: The email permanently bounced.
	// - `soft_bounce`: The email temporarily bounced, such as when a mailbox is full.
	// - `undelivered`: The channel reported a generic delivery failure.
	// - `channel_unavailable`: The channel could not be used, so the verification
	//   moved to the next channel.
	// - `channel_disabled`: Sending on the channel is temporarily disabled, so the
	//   verification moved to the next channel.
	// - `delivery_timeout`: No delivery confirmation arrived before the channel's
	//   timeout, so the verification moved to the next channel.
	// - `not_billable`: The send could not be charged, so it was never handed to the
	//   channel. Usually the workspace balance is too low to cover it. Topping up
	//   the balance is what clears this.
	//
	// New reasons may be added over time. Treat unrecognized values as reasons added
	// later rather than errors.
	LastAttemptReason VerificationAttemptFailureReason `json:"last_attempt_reason"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Reason Why a verification session reached its final state without succeeding: `attempts_exhausted` (too many incorrect passcodes), `ttl_elapsed` (the time window elapsed before a correct passcode), or `undeliverable` (no planned channel could deliver a passcode, so the recipient never had one to submit). Open enum: new reasons may be added over time, so treat any unrecognized value as a future reason rather than an error.
	Reason VerificationTerminalReason `json:"reason"`

	// Status The verification's state, always `failed`. Open enum for forward compatibility.
	Status string `json:"status"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`
	WorkspaceId    WorkspaceID    `json:"workspace_id"`
}

EventVerifyVerificationFailedData defines model for EventVerifyVerificationFailedData.

type EventVerifyVerificationVerified added in v0.14.0

type EventVerifyVerificationVerified struct {
	// Data Payload of the verify.verification.verified event.
	Data EventVerifyVerificationVerifiedData `json:"data"`

	// Timestamp Time the verification was verified.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVerifyVerificationVerifiedType `json:"type"`
}

EventVerifyVerificationVerified The verification was successfully resolved: the recipient confirmed the correct code.

type EventVerifyVerificationVerifiedData added in v0.14.0

type EventVerifyVerificationVerifiedData struct {
	// Channel The channel whose passcode the recipient confirmed, the channel that converted. Null when the verification was resolved without attributing a channel.
	Channel *VerificationChannel `json:"channel"`

	// Metadata The metadata object provided when the verification was created, echoed on every event for the session so you can correlate events with your own records. Null when the verification carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Status The verification's state, always `verified`. Open enum for forward compatibility.
	Status string `json:"status"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To             VerificationTo `json:"to"`
	VerificationId VerificationID `json:"verification_id"`

	// VerifiedAt Time the verification was verified.
	VerifiedAt  time.Time   `json:"verified_at"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventVerifyVerificationVerifiedData defines model for EventVerifyVerificationVerifiedData.

type EventVerifyVerificationVerifiedType added in v0.14.0

type EventVerifyVerificationVerifiedType string

EventVerifyVerificationVerifiedType Event type.

const (
	VerifyVerificationVerified EventVerifyVerificationVerifiedType = "verify.verification.verified"
)

Defines values for EventVerifyVerificationVerifiedType.

func (EventVerifyVerificationVerifiedType) Valid added in v0.14.0

Valid indicates whether the value is a known member of the EventVerifyVerificationVerifiedType enum.

type EventVoiceBase added in v0.9.2

type EventVoiceBase struct {
	CallId VoiceCallID `json:"call_id"`

	// Direction Whether the call originated from your PBX (outbound) or arrived from a remote party (inbound).
	Direction VoiceCallDirection `json:"direction"`

	// From Calling party number in E.164 format.
	From string `json:"from"`

	// SessionId Session identifier shared across all legs of a multi-party or transferred call. Use this to correlate related call records. Null when session correlation is not available for the call.
	SessionId *VoiceSessionID `json:"session_id,omitempty"`

	// To Called party number in E.164 format.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventVoiceBase Identity fields shared by every voice call lifecycle event payload.

type EventVoiceCallAnswered added in v0.9.2

type EventVoiceCallAnswered struct {
	// Data Payload of the voice_call.answered event.
	Data EventVoiceCallAnsweredData `json:"data"`

	// Timestamp Time the call was answered.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVoiceCallAnsweredType `json:"type"`
}

EventVoiceCallAnswered The called party answered and media began flowing.

type EventVoiceCallAnsweredData added in v0.9.2

type EventVoiceCallAnsweredData = EventVoiceBase

EventVoiceCallAnsweredData Identity fields shared by every voice call lifecycle event payload.

type EventVoiceCallAnsweredType added in v0.9.2

type EventVoiceCallAnsweredType string

EventVoiceCallAnsweredType Event type.

const (
	VoiceCallAnswered EventVoiceCallAnsweredType = "voice_call.answered"
)

Defines values for EventVoiceCallAnsweredType.

func (EventVoiceCallAnsweredType) Valid added in v0.9.2

func (e EventVoiceCallAnsweredType) Valid() bool

Valid indicates whether the value is a known member of the EventVoiceCallAnsweredType enum.

type EventVoiceCallEnded added in v0.9.2

type EventVoiceCallEnded struct {
	// Data Payload of the voice_call.ended event.
	Data EventVoiceCallEndedData `json:"data"`

	// Timestamp Time either party hung up or call setup failed.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVoiceCallEndedType `json:"type"`
}

EventVoiceCallEnded The call ended after either party hung up or call setup failed.

type EventVoiceCallEndedData added in v0.9.2

type EventVoiceCallEndedData struct {
	// BillableMs Billable duration in milliseconds, measured from answer to call end. Zero for unanswered calls.
	BillableMs int         `json:"billable_ms"`
	CallId     VoiceCallID `json:"call_id"`

	// Direction Whether the call originated from your PBX (outbound) or arrived from a remote party (inbound).
	Direction VoiceCallDirection `json:"direction"`

	// DurationMs Total call duration in milliseconds, measured from the first SIP `INVITE` to the `BYE` or final response.
	DurationMs int `json:"duration_ms"`

	// From Calling party number in E.164 format.
	From string `json:"from"`

	// SessionId Session identifier shared across all legs of a multi-party or transferred call. Use this to correlate related call records. Null when session correlation is not available for the call.
	SessionId *VoiceSessionID `json:"session_id,omitempty"`

	// SipResponseCode Final SIP response code received from the carrier. Null when no SIP response was received, for example on timeout or DNS failure.
	SipResponseCode *int `json:"sip_response_code"`

	// Status Call status.
	//
	// A call that has ended carries one of:
	//
	// - `answered` means it connected and the far end picked up.
	// - `no_answer` means nobody picked up before the call timed out.
	// - `rejected` means it was refused rather than attempted. Either we turned it
	//   away before dialing a carrier, in which case `rejection_reason` names the
	//   check it failed where there was one, or the far end declined it.
	// - `failed` means it was attempted and did not work, and `sip_response_code`
	//   is what came back.
	// - `unknown` means the outcome could not be determined. Contact support with
	//   the call `id` if you see one.
	//
	// An active call carries `ringing` before it is picked up and `in_progress`
	// afterward. The call list's `status` filter takes any mix of the two sets.
	//
	// `busy` and `canceled` are reserved for incoming calls delivered to your own
	// numbers: `busy` for a called party that rejected the call as busy, `canceled`
	// for a caller who hung up before it was picked up. Neither is emitted yet and
	// both outcomes are reported as `failed` today.
	Status VoiceCallStatus `json:"status"`

	// To Called party number in E.164 format.
	To          string      `json:"to"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventVoiceCallEndedData defines model for EventVoiceCallEndedData.

type EventVoiceCallEndedType added in v0.9.2

type EventVoiceCallEndedType string

EventVoiceCallEndedType Event type.

const (
	VoiceCallEnded EventVoiceCallEndedType = "voice_call.ended"
)

Defines values for EventVoiceCallEndedType.

func (EventVoiceCallEndedType) Valid added in v0.9.2

func (e EventVoiceCallEndedType) Valid() bool

Valid indicates whether the value is a known member of the EventVoiceCallEndedType enum.

type EventVoiceCallInitiated added in v0.9.2

type EventVoiceCallInitiated struct {
	// Data Payload of the voice_call.initiated event.
	Data EventVoiceCallInitiatedData `json:"data"`

	// Timestamp Time the call was initiated.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventVoiceCallInitiatedType `json:"type"`
}

EventVoiceCallInitiated Call routing began.

type EventVoiceCallInitiatedData added in v0.9.2

type EventVoiceCallInitiatedData = EventVoiceBase

EventVoiceCallInitiatedData Identity fields shared by every voice call lifecycle event payload.

type EventVoiceCallInitiatedType added in v0.9.2

type EventVoiceCallInitiatedType string

EventVoiceCallInitiatedType Event type.

const (
	VoiceCallInitiated EventVoiceCallInitiatedType = "voice_call.initiated"
)

Defines values for EventVoiceCallInitiatedType.

func (EventVoiceCallInitiatedType) Valid added in v0.9.2

Valid indicates whether the value is a known member of the EventVoiceCallInitiatedType enum.

type EventWhatsAppAccepted added in v0.8.1

type EventWhatsAppAccepted struct {
	// Data Payload of the whatsapp.accepted event.
	Data EventWhatsAppAcceptedData `json:"data"`

	// Timestamp Time the API accepted and charged the send request.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppAcceptedType `json:"type"`
}

EventWhatsAppAccepted The API accepted and charged the send request.

type EventWhatsAppAcceptedData added in v0.8.1

type EventWhatsAppAcceptedData = EventWhatsAppBase

EventWhatsAppAcceptedData Identity fields shared by every WhatsApp lifecycle event payload.

type EventWhatsAppAcceptedType added in v0.8.1

type EventWhatsAppAcceptedType string

EventWhatsAppAcceptedType Event type.

const (
	WhatsappAccepted EventWhatsAppAcceptedType = "whatsapp.accepted"
)

Defines values for EventWhatsAppAcceptedType.

func (EventWhatsAppAcceptedType) Valid added in v0.8.1

func (e EventWhatsAppAcceptedType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppAcceptedType enum.

type EventWhatsAppBase added in v0.8.1

type EventWhatsAppBase struct {
	// Direction Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).
	Direction EventWhatsAppBaseDirection `json:"direction"`

	// From Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	From WhatsAppAddress `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Tags Tags provided on the send request, echoed on every event for the message. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	To          WhatsAppAddress   `json:"to"`
	WhatsappId  WhatsAppMessageID `json:"whatsapp_id"`
	WorkspaceId WorkspaceID       `json:"workspace_id"`
}

EventWhatsAppBase Identity fields shared by every WhatsApp lifecycle event payload.

type EventWhatsAppBaseDirection added in v0.8.1

type EventWhatsAppBaseDirection string

EventWhatsAppBaseDirection Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).

const (
	EventWhatsAppBaseDirectionInbound  EventWhatsAppBaseDirection = "inbound"
	EventWhatsAppBaseDirectionOutbound EventWhatsAppBaseDirection = "outbound"
)

Defines values for EventWhatsAppBaseDirection.

func (EventWhatsAppBaseDirection) Valid added in v0.8.1

func (e EventWhatsAppBaseDirection) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppBaseDirection enum.

type EventWhatsAppDelivered added in v0.8.1

type EventWhatsAppDelivered struct {
	// Data Payload of the whatsapp.delivered event.
	Data EventWhatsAppDeliveredData `json:"data"`

	// Timestamp Time the message was delivered to the recipient's device.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppDeliveredType `json:"type"`
}

EventWhatsAppDelivered The message was delivered to the recipient's device.

type EventWhatsAppDeliveredData added in v0.8.1

type EventWhatsAppDeliveredData = EventWhatsAppBase

EventWhatsAppDeliveredData Identity fields shared by every WhatsApp lifecycle event payload.

type EventWhatsAppDeliveredType added in v0.8.1

type EventWhatsAppDeliveredType string

EventWhatsAppDeliveredType Event type.

const (
	WhatsappDelivered EventWhatsAppDeliveredType = "whatsapp.delivered"
)

Defines values for EventWhatsAppDeliveredType.

func (EventWhatsAppDeliveredType) Valid added in v0.8.1

func (e EventWhatsAppDeliveredType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppDeliveredType enum.

type EventWhatsAppFailed added in v0.8.1

type EventWhatsAppFailed struct {
	// Data Payload of the whatsapp.failed event.
	Data EventWhatsAppFailedData `json:"data"`

	// Timestamp Time the failure was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppFailedType `json:"type"`
}

EventWhatsAppFailed Message delivery failed permanently.

type EventWhatsAppFailedData added in v0.8.1

type EventWhatsAppFailedData struct {
	// Direction Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).
	Direction EventWhatsAppFailedDataDirection `json:"direction"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *WhatsAppError `json:"error,omitempty"`

	// From Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	From WhatsAppAddress `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Tags Tags provided on the send request, echoed on every event for the message. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	To          WhatsAppAddress   `json:"to"`
	WhatsappId  WhatsAppMessageID `json:"whatsapp_id"`
	WorkspaceId WorkspaceID       `json:"workspace_id"`
}

EventWhatsAppFailedData defines model for EventWhatsAppFailedData.

type EventWhatsAppFailedDataDirection added in v0.8.1

type EventWhatsAppFailedDataDirection string

EventWhatsAppFailedDataDirection Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).

const (
	EventWhatsAppFailedDataDirectionInbound  EventWhatsAppFailedDataDirection = "inbound"
	EventWhatsAppFailedDataDirectionOutbound EventWhatsAppFailedDataDirection = "outbound"
)

Defines values for EventWhatsAppFailedDataDirection.

func (EventWhatsAppFailedDataDirection) Valid added in v0.8.1

Valid indicates whether the value is a known member of the EventWhatsAppFailedDataDirection enum.

type EventWhatsAppFailedType added in v0.8.1

type EventWhatsAppFailedType string

EventWhatsAppFailedType Event type.

const (
	WhatsappFailed EventWhatsAppFailedType = "whatsapp.failed"
)

Defines values for EventWhatsAppFailedType.

func (EventWhatsAppFailedType) Valid added in v0.8.1

func (e EventWhatsAppFailedType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppFailedType enum.

type EventWhatsAppRead added in v0.8.1

type EventWhatsAppRead struct {
	// Data Payload of the whatsapp.read event.
	Data EventWhatsAppReadData `json:"data"`

	// Timestamp Time the recipient read the message.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppReadType `json:"type"`
}

EventWhatsAppRead The recipient read the message.

type EventWhatsAppReadData added in v0.8.1

type EventWhatsAppReadData = EventWhatsAppBase

EventWhatsAppReadData Identity fields shared by every WhatsApp lifecycle event payload.

type EventWhatsAppReadType added in v0.8.1

type EventWhatsAppReadType string

EventWhatsAppReadType Event type.

const (
	WhatsappRead EventWhatsAppReadType = "whatsapp.read"
)

Defines values for EventWhatsAppReadType.

func (EventWhatsAppReadType) Valid added in v0.8.1

func (e EventWhatsAppReadType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppReadType enum.

type EventWhatsAppReceived added in v0.33.0

type EventWhatsAppReceived struct {
	// Data Payload of the whatsapp.received event. Carries the message's content so a subscriber can act on it without reading the message back.
	Data EventWhatsAppReceivedData `json:"data"`

	// Timestamp Time the contact sent the message, as reported by WhatsApp.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type WhatsAppReceivedEventType `json:"type"`
}

EventWhatsAppReceived A contact sent the business a WhatsApp message.

type EventWhatsAppReceivedData added in v0.33.0

type EventWhatsAppReceivedData struct {
	// Audio Audio the contact sent.
	Audio *WhatsAppAudio `json:"audio,omitempty"`

	// Direction Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).
	Direction EventWhatsAppReceivedDataDirection `json:"direction"`

	// Document Document the contact sent.
	Document *WhatsAppDocument `json:"document,omitempty"`

	// From Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	From WhatsAppAddress `json:"from"`

	// Image Image the contact sent.
	Image *WhatsAppImage `json:"image,omitempty"`

	// Location Location the contact sent.
	Location *WhatsAppLocation `json:"location,omitempty"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Sticker Sticker the contact sent.
	Sticker *WhatsAppSticker `json:"sticker,omitempty"`

	// Tags Tags provided on the send request, echoed on every event for the message. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// Text Text the contact sent.
	Text *WhatsAppText `json:"text,omitempty"`

	// To Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	To WhatsAppAddress `json:"to"`

	// Unsupported Set when the contact sent content the API does not model, naming the WhatsApp content type.
	Unsupported *WhatsAppUnsupported `json:"unsupported,omitempty"`

	// Video Video the contact sent.
	Video       *WhatsAppVideo    `json:"video,omitempty"`
	WhatsappId  WhatsAppMessageID `json:"whatsapp_id"`
	WorkspaceId WorkspaceID       `json:"workspace_id"`
}

EventWhatsAppReceivedData defines model for EventWhatsAppReceivedData.

type EventWhatsAppReceivedDataDirection added in v0.33.0

type EventWhatsAppReceivedDataDirection string

EventWhatsAppReceivedDataDirection Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).

const (
	EventWhatsAppReceivedDataDirectionInbound  EventWhatsAppReceivedDataDirection = "inbound"
	EventWhatsAppReceivedDataDirectionOutbound EventWhatsAppReceivedDataDirection = "outbound"
)

Defines values for EventWhatsAppReceivedDataDirection.

func (EventWhatsAppReceivedDataDirection) Valid added in v0.33.0

Valid indicates whether the value is a known member of the EventWhatsAppReceivedDataDirection enum.

type EventWhatsAppRejected added in v0.10.1

type EventWhatsAppRejected struct {
	// Data Payload of the whatsapp.rejected event.
	Data EventWhatsAppRejectedData `json:"data"`

	// Timestamp Time the rejection was recorded.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppRejectedType `json:"type"`
}

EventWhatsAppRejected The API rejected the message before sending it to WhatsApp because the recipient is on the workspace suppression list, the wallet has insufficient balance, or the destination is unpriced. The message is not sent or charged.

type EventWhatsAppRejectedData added in v0.10.1

type EventWhatsAppRejectedData struct {
	// Direction Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).
	Direction EventWhatsAppRejectedDataDirection `json:"direction"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *WhatsAppError `json:"error,omitempty"`

	// From Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	From WhatsAppAddress `json:"from"`

	// Metadata The metadata object provided on the send request, echoed on every event for the message. Null when the message carried no metadata.
	Metadata *map[string]interface{} `json:"metadata"`

	// Tags Tags provided on the send request, echoed on every event for the message. Null when the message carried no tags.
	Tags *[]Tag `json:"tags"`

	// To Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.
	To          WhatsAppAddress   `json:"to"`
	WhatsappId  WhatsAppMessageID `json:"whatsapp_id"`
	WorkspaceId WorkspaceID       `json:"workspace_id"`
}

EventWhatsAppRejectedData defines model for EventWhatsAppRejectedData.

type EventWhatsAppRejectedDataDirection added in v0.10.1

type EventWhatsAppRejectedDataDirection string

EventWhatsAppRejectedDataDirection Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).

const (
	EventWhatsAppRejectedDataDirectionInbound  EventWhatsAppRejectedDataDirection = "inbound"
	EventWhatsAppRejectedDataDirectionOutbound EventWhatsAppRejectedDataDirection = "outbound"
)

Defines values for EventWhatsAppRejectedDataDirection.

func (EventWhatsAppRejectedDataDirection) Valid added in v0.10.1

Valid indicates whether the value is a known member of the EventWhatsAppRejectedDataDirection enum.

type EventWhatsAppRejectedType added in v0.10.1

type EventWhatsAppRejectedType string

EventWhatsAppRejectedType Event type.

const (
	WhatsappRejected EventWhatsAppRejectedType = "whatsapp.rejected"
)

Defines values for EventWhatsAppRejectedType.

func (EventWhatsAppRejectedType) Valid added in v0.10.1

func (e EventWhatsAppRejectedType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppRejectedType enum.

type EventWhatsAppSent added in v0.8.1

type EventWhatsAppSent struct {
	// Data Payload of the whatsapp.sent event.
	Data EventWhatsAppSentData `json:"data"`

	// Timestamp Time the API handed the message to Meta for delivery.
	Timestamp time.Time `json:"timestamp"`

	// Type Event type.
	Type EventWhatsAppSentType `json:"type"`
}

EventWhatsAppSent The API handed the message to Meta for delivery.

type EventWhatsAppSentData added in v0.8.1

type EventWhatsAppSentData = EventWhatsAppBase

EventWhatsAppSentData Identity fields shared by every WhatsApp lifecycle event payload.

type EventWhatsAppSentType added in v0.8.1

type EventWhatsAppSentType string

EventWhatsAppSentType Event type.

const (
	WhatsappSent EventWhatsAppSentType = "whatsapp.sent"
)

Defines values for EventWhatsAppSentType.

func (EventWhatsAppSentType) Valid added in v0.8.1

func (e EventWhatsAppSentType) Valid() bool

Valid indicates whether the value is a known member of the EventWhatsAppSentType enum.

type EventWhatsAppSuppressionCreated added in v0.41.0

type EventWhatsAppSuppressionCreated struct {
	// Data Payload of the whatsapp_suppression.created event.
	Data EventWhatsAppSuppressionCreatedData `json:"data"`

	// Timestamp When the episode's opening statement took effect (`effective_at`).
	Timestamp time.Time `json:"timestamp"`

	// Type Always `whatsapp_suppression.created` for this event.
	Type WhatsAppSuppressionCreatedEventType `json:"type"`
}

EventWhatsAppSuppressionCreated An address was added to the workspace's WhatsApp suppression ledger.

type EventWhatsAppSuppressionCreatedData added in v0.41.0

type EventWhatsAppSuppressionCreatedData struct {
	// Address The suppressed WhatsApp address. For a phone number this is canonical E.164 with a leading plus sign, such as `+5511977670804`.
	Address string `json:"address"`

	// Reason Why the address is suppressed. `manual` means it was added directly rather than created automatically from a delivery outcome. This list grows over time, so treat an unknown value as informational rather than rejecting the record.
	Reason        string                `json:"reason"`
	SuppressionId WhatsAppSuppressionID `json:"suppression_id"`

	// Waba The WhatsApp Business Account the suppression is limited to, identified by its WhatsApp-issued account ID, or null when it covers the whole workspace.
	Waba        *string     `json:"waba"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

EventWhatsAppSuppressionCreatedData Payload of the whatsapp_suppression.created event.

type Forbidden

type Forbidden = Error

Forbidden defines model for Forbidden.

type GetAudienceResponse added in v0.4.0

type GetAudienceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Audience
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetAudienceResponse added in v0.4.0

func ParseGetAudienceResponse(rsp *http.Response) (*GetAudienceResponse, error)

ParseGetAudienceResponse parses an HTTP response from a GetAudienceWithResponse call

func (GetAudienceResponse) ContentType added in v0.4.0

func (r GetAudienceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetAudienceResponse) Status added in v0.4.0

func (r GetAudienceResponse) Status() string

Status returns HTTPResponse.Status

func (GetAudienceResponse) StatusCode added in v0.4.0

func (r GetAudienceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetAvailableNumberParams added in v0.34.0

type GetAvailableNumberParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

GetAvailableNumberParams defines parameters for GetAvailableNumber.

type GetAvailableNumberResponse added in v0.34.0

type GetAvailableNumberResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *AvailableNumber
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetAvailableNumberResponse added in v0.34.0

func ParseGetAvailableNumberResponse(rsp *http.Response) (*GetAvailableNumberResponse, error)

ParseGetAvailableNumberResponse parses an HTTP response from a GetAvailableNumberWithResponse call

func (GetAvailableNumberResponse) ContentType added in v0.34.0

func (r GetAvailableNumberResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetAvailableNumberResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (GetAvailableNumberResponse) StatusCode added in v0.34.0

func (r GetAvailableNumberResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetContactPropertyResponse added in v0.4.0

type GetContactPropertyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactProperty
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetContactPropertyResponse added in v0.4.0

func ParseGetContactPropertyResponse(rsp *http.Response) (*GetContactPropertyResponse, error)

ParseGetContactPropertyResponse parses an HTTP response from a GetContactPropertyWithResponse call

func (GetContactPropertyResponse) ContentType added in v0.4.0

func (r GetContactPropertyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetContactPropertyResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (GetContactPropertyResponse) StatusCode added in v0.4.0

func (r GetContactPropertyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetContactResponse added in v0.4.0

type GetContactResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Contact
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetContactResponse added in v0.4.0

func ParseGetContactResponse(rsp *http.Response) (*GetContactResponse, error)

ParseGetContactResponse parses an HTTP response from a GetContactWithResponse call

func (GetContactResponse) ContentType added in v0.4.0

func (r GetContactResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetContactResponse) Status added in v0.4.0

func (r GetContactResponse) Status() string

Status returns HTTPResponse.Status

func (GetContactResponse) StatusCode added in v0.4.0

func (r GetContactResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetDomainResponse added in v0.8.0

type GetDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Domain
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetDomainResponse added in v0.8.0

func ParseGetDomainResponse(rsp *http.Response) (*GetDomainResponse, error)

ParseGetDomainResponse parses an HTTP response from a GetDomainWithResponse call

func (GetDomainResponse) ContentType added in v0.8.0

func (r GetDomainResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetDomainResponse) Status added in v0.8.0

func (r GetDomainResponse) Status() string

Status returns HTTPResponse.Status

func (GetDomainResponse) StatusCode added in v0.8.0

func (r GetDomainResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailMessageResponse

type GetEmailMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailMessage
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetEmailMessageResponse

func ParseGetEmailMessageResponse(rsp *http.Response) (*GetEmailMessageResponse, error)

ParseGetEmailMessageResponse parses an HTTP response from a GetEmailMessageWithResponse call

func (GetEmailMessageResponse) ContentType

func (r GetEmailMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailMessageResponse) Status

func (r GetEmailMessageResponse) Status() string

Status returns HTTPResponse.Status

func (GetEmailMessageResponse) StatusCode

func (r GetEmailMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByBounceCodeParams added in v0.10.0

type GetEmailStatsByBounceCodeParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.
	Sort *GetEmailStatsByBounceCodeParamsSort `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of bounce-code rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetEmailStatsByBounceCodeParams defines parameters for GetEmailStatsByBounceCode.

type GetEmailStatsByBounceCodeParamsSort added in v0.10.0

type GetEmailStatsByBounceCodeParamsSort string

GetEmailStatsByBounceCodeParamsSort defines parameters for GetEmailStatsByBounceCode.

const (
	GetEmailStatsByBounceCodeParamsSortBounced             GetEmailStatsByBounceCodeParamsSort = "bounced"
	GetEmailStatsByBounceCodeParamsSortBouncesAdmin        GetEmailStatsByBounceCodeParamsSort = "bounces.admin"
	GetEmailStatsByBounceCodeParamsSortBouncesBlock        GetEmailStatsByBounceCodeParamsSort = "bounces.block"
	GetEmailStatsByBounceCodeParamsSortBouncesHard         GetEmailStatsByBounceCodeParamsSort = "bounces.hard"
	GetEmailStatsByBounceCodeParamsSortBouncesSoft         GetEmailStatsByBounceCodeParamsSort = "bounces.soft"
	GetEmailStatsByBounceCodeParamsSortBouncesUndetermined GetEmailStatsByBounceCodeParamsSort = "bounces.undetermined"
)

Defines values for GetEmailStatsByBounceCodeParamsSort.

func (GetEmailStatsByBounceCodeParamsSort) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsByBounceCodeParamsSort enum.

type GetEmailStatsByBounceCodeResponse added in v0.10.0

type GetEmailStatsByBounceCodeResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByBounceCodeResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByBounceCodeResponse added in v0.10.0

func ParseGetEmailStatsByBounceCodeResponse(rsp *http.Response) (*GetEmailStatsByBounceCodeResponse, error)

ParseGetEmailStatsByBounceCodeResponse parses an HTTP response from a GetEmailStatsByBounceCodeWithResponse call

func (GetEmailStatsByBounceCodeResponse) ContentType added in v0.10.0

func (r GetEmailStatsByBounceCodeResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByBounceCodeResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByBounceCodeResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByBounceCodeResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByBroadcastParams added in v0.10.0

type GetEmailStatsByBroadcastParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of broadcast rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetEmailStatsByBroadcastParams defines parameters for GetEmailStatsByBroadcast.

type GetEmailStatsByBroadcastResponse added in v0.10.0

type GetEmailStatsByBroadcastResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByBroadcastResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByBroadcastResponse added in v0.10.0

func ParseGetEmailStatsByBroadcastResponse(rsp *http.Response) (*GetEmailStatsByBroadcastResponse, error)

ParseGetEmailStatsByBroadcastResponse parses an HTTP response from a GetEmailStatsByBroadcastWithResponse call

func (GetEmailStatsByBroadcastResponse) ContentType added in v0.10.0

func (r GetEmailStatsByBroadcastResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByBroadcastResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByBroadcastResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByBroadcastResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByCategoryParams added in v0.10.0

type GetEmailStatsByCategoryParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of category rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByCategoryParams defines parameters for GetEmailStatsByCategory.

type GetEmailStatsByCategoryResponse added in v0.10.0

type GetEmailStatsByCategoryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByCategoryResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByCategoryResponse added in v0.10.0

func ParseGetEmailStatsByCategoryResponse(rsp *http.Response) (*GetEmailStatsByCategoryResponse, error)

ParseGetEmailStatsByCategoryResponse parses an HTTP response from a GetEmailStatsByCategoryWithResponse call

func (GetEmailStatsByCategoryResponse) ContentType added in v0.10.0

func (r GetEmailStatsByCategoryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByCategoryResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByCategoryResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByCategoryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByClientParams added in v0.10.0

type GetEmailStatsByClientParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// GroupBy Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.
	GroupBy *GetEmailStatsByClientParamsGroupBy `form:"group_by,omitempty" json:"group_by,omitempty"`

	// Sort Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.
	Sort *EmailEngagementSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of client rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetEmailStatsByClientParams defines parameters for GetEmailStatsByClient.

type GetEmailStatsByClientParamsGroupBy added in v0.10.0

type GetEmailStatsByClientParamsGroupBy string

GetEmailStatsByClientParamsGroupBy defines parameters for GetEmailStatsByClient.

const (
	GetEmailStatsByClientParamsGroupByDeviceType  GetEmailStatsByClientParamsGroupBy = "device_type"
	GetEmailStatsByClientParamsGroupByEmailClient GetEmailStatsByClientParamsGroupBy = "email_client"
	GetEmailStatsByClientParamsGroupByOs          GetEmailStatsByClientParamsGroupBy = "os"
)

Defines values for GetEmailStatsByClientParamsGroupBy.

func (GetEmailStatsByClientParamsGroupBy) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsByClientParamsGroupBy enum.

type GetEmailStatsByClientResponse added in v0.10.0

type GetEmailStatsByClientResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByClientResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByClientResponse added in v0.10.0

func ParseGetEmailStatsByClientResponse(rsp *http.Response) (*GetEmailStatsByClientResponse, error)

ParseGetEmailStatsByClientResponse parses an HTTP response from a GetEmailStatsByClientWithResponse call

func (GetEmailStatsByClientResponse) ContentType added in v0.10.0

func (r GetEmailStatsByClientResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByClientResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByClientResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByClientResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByComplaintTypeParams added in v0.10.0

type GetEmailStatsByComplaintTypeParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.
	Sort *GetEmailStatsByComplaintTypeParamsSort `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of complaint-type rows to return, ranked by `complained` descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetEmailStatsByComplaintTypeParams defines parameters for GetEmailStatsByComplaintType.

type GetEmailStatsByComplaintTypeParamsSort added in v0.10.0

type GetEmailStatsByComplaintTypeParamsSort string

GetEmailStatsByComplaintTypeParamsSort defines parameters for GetEmailStatsByComplaintType.

const (
	GetEmailStatsByComplaintTypeParamsSortComplained GetEmailStatsByComplaintTypeParamsSort = "complained"
)

Defines values for GetEmailStatsByComplaintTypeParamsSort.

func (GetEmailStatsByComplaintTypeParamsSort) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsByComplaintTypeParamsSort enum.

type GetEmailStatsByComplaintTypeResponse added in v0.10.0

type GetEmailStatsByComplaintTypeResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByComplaintTypeResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByComplaintTypeResponse added in v0.10.0

func ParseGetEmailStatsByComplaintTypeResponse(rsp *http.Response) (*GetEmailStatsByComplaintTypeResponse, error)

ParseGetEmailStatsByComplaintTypeResponse parses an HTTP response from a GetEmailStatsByComplaintTypeWithResponse call

func (GetEmailStatsByComplaintTypeResponse) ContentType added in v0.10.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByComplaintTypeResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByComplaintTypeResponse) StatusCode added in v0.10.0

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByLocationParams added in v0.10.0

type GetEmailStatsByLocationParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// GroupBy Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.
	GroupBy *GetEmailStatsByLocationParamsGroupBy `form:"group_by,omitempty" json:"group_by,omitempty"`

	// Sort Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.
	Sort *EmailEngagementSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of location rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetEmailStatsByLocationParams defines parameters for GetEmailStatsByLocation.

type GetEmailStatsByLocationParamsGroupBy added in v0.10.0

type GetEmailStatsByLocationParamsGroupBy string

GetEmailStatsByLocationParamsGroupBy defines parameters for GetEmailStatsByLocation.

const (
	GetEmailStatsByLocationParamsGroupByCity    GetEmailStatsByLocationParamsGroupBy = "city"
	GetEmailStatsByLocationParamsGroupByCountry GetEmailStatsByLocationParamsGroupBy = "country"
	GetEmailStatsByLocationParamsGroupByRegion  GetEmailStatsByLocationParamsGroupBy = "region"
)

Defines values for GetEmailStatsByLocationParamsGroupBy.

func (GetEmailStatsByLocationParamsGroupBy) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsByLocationParamsGroupBy enum.

type GetEmailStatsByLocationResponse added in v0.10.0

type GetEmailStatsByLocationResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByLocationResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByLocationResponse added in v0.10.0

func ParseGetEmailStatsByLocationResponse(rsp *http.Response) (*GetEmailStatsByLocationResponse, error)

ParseGetEmailStatsByLocationResponse parses an HTTP response from a GetEmailStatsByLocationWithResponse call

func (GetEmailStatsByLocationResponse) ContentType added in v0.10.0

func (r GetEmailStatsByLocationResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByLocationResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByLocationResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByLocationResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByMailboxProviderParams added in v0.10.0

type GetEmailStatsByMailboxProviderParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.
	Sort *EmailMailboxProviderSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByMailboxProviderParams defines parameters for GetEmailStatsByMailboxProvider.

type GetEmailStatsByMailboxProviderRegionParams added in v0.10.0

type GetEmailStatsByMailboxProviderRegionParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.
	Sort *EmailMailboxProviderSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of provider-region rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByMailboxProviderRegionParams defines parameters for GetEmailStatsByMailboxProviderRegion.

type GetEmailStatsByMailboxProviderRegionResponse added in v0.10.0

type GetEmailStatsByMailboxProviderRegionResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByMailboxProviderRegionResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByMailboxProviderRegionResponse added in v0.10.0

func ParseGetEmailStatsByMailboxProviderRegionResponse(rsp *http.Response) (*GetEmailStatsByMailboxProviderRegionResponse, error)

ParseGetEmailStatsByMailboxProviderRegionResponse parses an HTTP response from a GetEmailStatsByMailboxProviderRegionWithResponse call

func (GetEmailStatsByMailboxProviderRegionResponse) ContentType added in v0.10.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByMailboxProviderRegionResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByMailboxProviderRegionResponse) StatusCode added in v0.10.0

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByMailboxProviderResponse added in v0.10.0

type GetEmailStatsByMailboxProviderResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByMailboxProviderResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByMailboxProviderResponse added in v0.10.0

func ParseGetEmailStatsByMailboxProviderResponse(rsp *http.Response) (*GetEmailStatsByMailboxProviderResponse, error)

ParseGetEmailStatsByMailboxProviderResponse parses an HTTP response from a GetEmailStatsByMailboxProviderWithResponse call

func (GetEmailStatsByMailboxProviderResponse) ContentType added in v0.10.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByMailboxProviderResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByMailboxProviderResponse) StatusCode added in v0.10.0

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByRecipientDomainParams added in v0.10.0

type GetEmailStatsByRecipientDomainParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of recipient-domain rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByRecipientDomainParams defines parameters for GetEmailStatsByRecipientDomain.

type GetEmailStatsByRecipientDomainResponse added in v0.10.0

type GetEmailStatsByRecipientDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByRecipientDomainResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByRecipientDomainResponse added in v0.10.0

func ParseGetEmailStatsByRecipientDomainResponse(rsp *http.Response) (*GetEmailStatsByRecipientDomainResponse, error)

ParseGetEmailStatsByRecipientDomainResponse parses an HTTP response from a GetEmailStatsByRecipientDomainWithResponse call

func (GetEmailStatsByRecipientDomainResponse) ContentType added in v0.10.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByRecipientDomainResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByRecipientDomainResponse) StatusCode added in v0.10.0

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsBySendingDomainParams added in v0.10.0

type GetEmailStatsBySendingDomainParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of domain rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsBySendingDomainParams defines parameters for GetEmailStatsBySendingDomain.

type GetEmailStatsBySendingDomainResponse added in v0.10.0

type GetEmailStatsBySendingDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsBySendingDomainResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsBySendingDomainResponse added in v0.10.0

func ParseGetEmailStatsBySendingDomainResponse(rsp *http.Response) (*GetEmailStatsBySendingDomainResponse, error)

ParseGetEmailStatsBySendingDomainResponse parses an HTTP response from a GetEmailStatsBySendingDomainWithResponse call

func (GetEmailStatsBySendingDomainResponse) ContentType added in v0.10.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsBySendingDomainResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsBySendingDomainResponse) StatusCode added in v0.10.0

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsBySendingIpParams added in v0.10.0

type GetEmailStatsBySendingIpParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.
	Sort *GetEmailStatsBySendingIpParamsSort `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of IP rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsBySendingIpParams defines parameters for GetEmailStatsBySendingIp.

type GetEmailStatsBySendingIpParamsSort added in v0.10.0

type GetEmailStatsBySendingIpParamsSort string

GetEmailStatsBySendingIpParamsSort defines parameters for GetEmailStatsBySendingIp.

const (
	GetEmailStatsBySendingIpParamsSortBounceRate              GetEmailStatsBySendingIpParamsSort = "bounce_rate"
	GetEmailStatsBySendingIpParamsSortBounced                 GetEmailStatsBySendingIpParamsSort = "bounced"
	GetEmailStatsBySendingIpParamsSortBouncesAdmin            GetEmailStatsBySendingIpParamsSort = "bounces.admin"
	GetEmailStatsBySendingIpParamsSortBouncesAdminRate        GetEmailStatsBySendingIpParamsSort = "bounces.admin_rate"
	GetEmailStatsBySendingIpParamsSortBouncesBlock            GetEmailStatsBySendingIpParamsSort = "bounces.block"
	GetEmailStatsBySendingIpParamsSortBouncesBlockRate        GetEmailStatsBySendingIpParamsSort = "bounces.block_rate"
	GetEmailStatsBySendingIpParamsSortBouncesHard             GetEmailStatsBySendingIpParamsSort = "bounces.hard"
	GetEmailStatsBySendingIpParamsSortBouncesHardRate         GetEmailStatsBySendingIpParamsSort = "bounces.hard_rate"
	GetEmailStatsBySendingIpParamsSortBouncesSoft             GetEmailStatsBySendingIpParamsSort = "bounces.soft"
	GetEmailStatsBySendingIpParamsSortBouncesSoftRate         GetEmailStatsBySendingIpParamsSort = "bounces.soft_rate"
	GetEmailStatsBySendingIpParamsSortBouncesUndetermined     GetEmailStatsBySendingIpParamsSort = "bounces.undetermined"
	GetEmailStatsBySendingIpParamsSortBouncesUndeterminedRate GetEmailStatsBySendingIpParamsSort = "bounces.undetermined_rate"
	GetEmailStatsBySendingIpParamsSortComplained              GetEmailStatsBySendingIpParamsSort = "complained"
	GetEmailStatsBySendingIpParamsSortComplaintRate           GetEmailStatsBySendingIpParamsSort = "complaint_rate"
	GetEmailStatsBySendingIpParamsSortDeferred                GetEmailStatsBySendingIpParamsSort = "deferred"
	GetEmailStatsBySendingIpParamsSortDelivered               GetEmailStatsBySendingIpParamsSort = "delivered"
	GetEmailStatsBySendingIpParamsSortDeliveryRate            GetEmailStatsBySendingIpParamsSort = "delivery_rate"
)

Defines values for GetEmailStatsBySendingIpParamsSort.

func (GetEmailStatsBySendingIpParamsSort) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsBySendingIpParamsSort enum.

type GetEmailStatsBySendingIpResponse added in v0.10.0

type GetEmailStatsBySendingIpResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsBySendingIpResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsBySendingIpResponse added in v0.10.0

func ParseGetEmailStatsBySendingIpResponse(rsp *http.Response) (*GetEmailStatsBySendingIpResponse, error)

ParseGetEmailStatsBySendingIpResponse parses an HTTP response from a GetEmailStatsBySendingIpWithResponse call

func (GetEmailStatsBySendingIpResponse) ContentType added in v0.10.0

func (r GetEmailStatsBySendingIpResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsBySendingIpResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsBySendingIpResponse) StatusCode added in v0.10.0

func (r GetEmailStatsBySendingIpResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByTagParams added in v0.10.0

type GetEmailStatsByTagParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of tag rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByTagParams defines parameters for GetEmailStatsByTag.

type GetEmailStatsByTagResponse added in v0.10.0

type GetEmailStatsByTagResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsTagsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByTagResponse added in v0.10.0

func ParseGetEmailStatsByTagResponse(rsp *http.Response) (*GetEmailStatsByTagResponse, error)

ParseGetEmailStatsByTagResponse parses an HTTP response from a GetEmailStatsByTagWithResponse call

func (GetEmailStatsByTagResponse) ContentType added in v0.10.0

func (r GetEmailStatsByTagResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByTagResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByTagResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByTagResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsByTemplateParams added in v0.10.0

type GetEmailStatsByTemplateParams struct {
	// From Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.
	Sort *EmailStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of template rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetEmailStatsByTemplateParams defines parameters for GetEmailStatsByTemplate.

type GetEmailStatsByTemplateResponse added in v0.10.0

type GetEmailStatsByTemplateResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsByTemplateResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsByTemplateResponse added in v0.10.0

func ParseGetEmailStatsByTemplateResponse(rsp *http.Response) (*GetEmailStatsByTemplateResponse, error)

ParseGetEmailStatsByTemplateResponse parses an HTTP response from a GetEmailStatsByTemplateWithResponse call

func (GetEmailStatsByTemplateResponse) ContentType added in v0.10.0

func (r GetEmailStatsByTemplateResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsByTemplateResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsByTemplateResponse) StatusCode added in v0.10.0

func (r GetEmailStatsByTemplateResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsDailyParams added in v0.10.0

type GetEmailStatsDailyParams struct {
	// From Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// SendingDomain Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request.
	SendingDomain *string `form:"sending_domain,omitempty" json:"sending_domain,omitempty"`

	// Tag Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.
	Tag *string `form:"tag,omitempty" json:"tag,omitempty"`

	// SendingIp Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.
	SendingIp *string `form:"sending_ip,omitempty" json:"sending_ip,omitempty"`

	// RecipientDomain Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.
	RecipientDomain *string `form:"recipient_domain,omitempty" json:"recipient_domain,omitempty"`

	// Template Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.
	Template *EmailStatsTemplateFilter `form:"template,omitempty" json:"template,omitempty"`
}

GetEmailStatsDailyParams defines parameters for GetEmailStatsDaily.

type GetEmailStatsDailyResponse added in v0.10.0

type GetEmailStatsDailyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsDailyResponse added in v0.10.0

func ParseGetEmailStatsDailyResponse(rsp *http.Response) (*GetEmailStatsDailyResponse, error)

ParseGetEmailStatsDailyResponse parses an HTTP response from a GetEmailStatsDailyWithResponse call

func (GetEmailStatsDailyResponse) ContentType added in v0.10.0

func (r GetEmailStatsDailyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsDailyResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsDailyResponse) StatusCode added in v0.10.0

func (r GetEmailStatsDailyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsHourlyParams added in v0.10.0

type GetEmailStatsHourlyParams struct {
	// From Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted.
	From *time.Time `form:"from,omitempty" json:"from,omitempty"`

	// To End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours).
	To *time.Time `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// SendingDomain Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request.
	SendingDomain *string `form:"sending_domain,omitempty" json:"sending_domain,omitempty"`

	// Tag Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.
	Tag *string `form:"tag,omitempty" json:"tag,omitempty"`

	// SendingIp Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.
	SendingIp *string `form:"sending_ip,omitempty" json:"sending_ip,omitempty"`

	// RecipientDomain Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.
	RecipientDomain *string `form:"recipient_domain,omitempty" json:"recipient_domain,omitempty"`

	// Template Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.
	Template *EmailStatsTemplateFilter `form:"template,omitempty" json:"template,omitempty"`
}

GetEmailStatsHourlyParams defines parameters for GetEmailStatsHourly.

type GetEmailStatsHourlyResponse added in v0.10.0

type GetEmailStatsHourlyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsHourlyResponse added in v0.10.0

func ParseGetEmailStatsHourlyResponse(rsp *http.Response) (*GetEmailStatsHourlyResponse, error)

ParseGetEmailStatsHourlyResponse parses an HTTP response from a GetEmailStatsHourlyWithResponse call

func (GetEmailStatsHourlyResponse) ContentType added in v0.10.0

func (r GetEmailStatsHourlyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsHourlyResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsHourlyResponse) StatusCode added in v0.10.0

func (r GetEmailStatsHourlyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailStatsSummaryParams added in v0.10.0

type GetEmailStatsSummaryParams struct {
	// From Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// To Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Category Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// SendingDomain Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request.
	SendingDomain *string `form:"sending_domain,omitempty" json:"sending_domain,omitempty"`

	// Tag Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.
	Tag *string `form:"tag,omitempty" json:"tag,omitempty"`

	// SendingIp Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.
	SendingIp *string `form:"sending_ip,omitempty" json:"sending_ip,omitempty"`

	// RecipientDomain Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.
	RecipientDomain *string `form:"recipient_domain,omitempty" json:"recipient_domain,omitempty"`

	// Template Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.
	Template *EmailStatsTemplateFilter `form:"template,omitempty" json:"template,omitempty"`

	// Compare Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show "+X% vs last period" without a second request.
	Compare *GetEmailStatsSummaryParamsCompare `form:"compare,omitempty" json:"compare,omitempty"`
}

GetEmailStatsSummaryParams defines parameters for GetEmailStatsSummary.

type GetEmailStatsSummaryParamsCompare added in v0.10.0

type GetEmailStatsSummaryParamsCompare string

GetEmailStatsSummaryParamsCompare defines parameters for GetEmailStatsSummary.

const (
	GetEmailStatsSummaryParamsComparePreviousPeriod GetEmailStatsSummaryParamsCompare = "previous_period"
)

Defines values for GetEmailStatsSummaryParamsCompare.

func (GetEmailStatsSummaryParamsCompare) Valid added in v0.10.0

Valid indicates whether the value is a known member of the GetEmailStatsSummaryParamsCompare enum.

type GetEmailStatsSummaryResponse added in v0.10.0

type GetEmailStatsSummaryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailStatsSummary
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetEmailStatsSummaryResponse added in v0.10.0

func ParseGetEmailStatsSummaryResponse(rsp *http.Response) (*GetEmailStatsSummaryResponse, error)

ParseGetEmailStatsSummaryResponse parses an HTTP response from a GetEmailStatsSummaryWithResponse call

func (GetEmailStatsSummaryResponse) ContentType added in v0.10.0

func (r GetEmailStatsSummaryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailStatsSummaryResponse) Status added in v0.10.0

Status returns HTTPResponse.Status

func (GetEmailStatsSummaryResponse) StatusCode added in v0.10.0

func (r GetEmailStatsSummaryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailThreadMessageBodyResponse added in v0.12.0

type GetEmailThreadMessageBodyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThreadMessageBody
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetEmailThreadMessageBodyResponse added in v0.12.0

func ParseGetEmailThreadMessageBodyResponse(rsp *http.Response) (*GetEmailThreadMessageBodyResponse, error)

ParseGetEmailThreadMessageBodyResponse parses an HTTP response from a GetEmailThreadMessageBodyWithResponse call

func (GetEmailThreadMessageBodyResponse) ContentType added in v0.12.0

func (r GetEmailThreadMessageBodyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailThreadMessageBodyResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (GetEmailThreadMessageBodyResponse) StatusCode added in v0.12.0

func (r GetEmailThreadMessageBodyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailThreadMessageResponse added in v0.12.0

type GetEmailThreadMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThreadMessage
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetEmailThreadMessageResponse added in v0.12.0

func ParseGetEmailThreadMessageResponse(rsp *http.Response) (*GetEmailThreadMessageResponse, error)

ParseGetEmailThreadMessageResponse parses an HTTP response from a GetEmailThreadMessageWithResponse call

func (GetEmailThreadMessageResponse) ContentType added in v0.12.0

func (r GetEmailThreadMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailThreadMessageResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (GetEmailThreadMessageResponse) StatusCode added in v0.12.0

func (r GetEmailThreadMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetEmailThreadResponse added in v0.12.0

type GetEmailThreadResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThread
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetEmailThreadResponse added in v0.12.0

func ParseGetEmailThreadResponse(rsp *http.Response) (*GetEmailThreadResponse, error)

ParseGetEmailThreadResponse parses an HTTP response from a GetEmailThreadWithResponse call

func (GetEmailThreadResponse) ContentType added in v0.12.0

func (r GetEmailThreadResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetEmailThreadResponse) Status added in v0.12.0

func (r GetEmailThreadResponse) Status() string

Status returns HTTPResponse.Status

func (GetEmailThreadResponse) StatusCode added in v0.12.0

func (r GetEmailThreadResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetMailboxResponse added in v0.12.0

type GetMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Mailbox
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetMailboxResponse added in v0.12.0

func ParseGetMailboxResponse(rsp *http.Response) (*GetMailboxResponse, error)

ParseGetMailboxResponse parses an HTTP response from a GetMailboxWithResponse call

func (GetMailboxResponse) ContentType added in v0.12.0

func (r GetMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetMailboxResponse) Status added in v0.12.0

func (r GetMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (GetMailboxResponse) StatusCode added in v0.12.0

func (r GetMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetMailboxStatsParams added in v0.12.0

type GetMailboxStatsParams struct {
	// From Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// To Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Granularity Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.
	Granularity *GetMailboxStatsParamsGranularity `form:"granularity,omitempty" json:"granularity,omitempty"`
}

GetMailboxStatsParams defines parameters for GetMailboxStats.

type GetMailboxStatsParamsGranularity added in v0.12.0

type GetMailboxStatsParamsGranularity string

GetMailboxStatsParamsGranularity defines parameters for GetMailboxStats.

const (
	GetMailboxStatsParamsGranularityDay  GetMailboxStatsParamsGranularity = "day"
	GetMailboxStatsParamsGranularityHour GetMailboxStatsParamsGranularity = "hour"
)

Defines values for GetMailboxStatsParamsGranularity.

func (GetMailboxStatsParamsGranularity) Valid added in v0.12.0

Valid indicates whether the value is a known member of the GetMailboxStatsParamsGranularity enum.

type GetMailboxStatsResponse added in v0.12.0

type GetMailboxStatsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *MailboxStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetMailboxStatsResponse added in v0.12.0

func ParseGetMailboxStatsResponse(rsp *http.Response) (*GetMailboxStatsResponse, error)

ParseGetMailboxStatsResponse parses an HTTP response from a GetMailboxStatsWithResponse call

func (GetMailboxStatsResponse) ContentType added in v0.12.0

func (r GetMailboxStatsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetMailboxStatsResponse) Status added in v0.12.0

func (r GetMailboxStatsResponse) Status() string

Status returns HTTPResponse.Status

func (GetMailboxStatsResponse) StatusCode added in v0.12.0

func (r GetMailboxStatsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetNumbersOrderParams added in v0.34.0

type GetNumbersOrderParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

GetNumbersOrderParams defines parameters for GetNumbersOrder.

type GetNumbersOrderResponse added in v0.34.0

type GetNumbersOrderResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NumbersOrder
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetNumbersOrderResponse added in v0.34.0

func ParseGetNumbersOrderResponse(rsp *http.Response) (*GetNumbersOrderResponse, error)

ParseGetNumbersOrderResponse parses an HTTP response from a GetNumbersOrderWithResponse call

func (GetNumbersOrderResponse) ContentType added in v0.34.0

func (r GetNumbersOrderResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetNumbersOrderResponse) Status added in v0.34.0

func (r GetNumbersOrderResponse) Status() string

Status returns HTTPResponse.Status

func (GetNumbersOrderResponse) StatusCode added in v0.34.0

func (r GetNumbersOrderResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetPreferenceResponse added in v0.41.0

type GetPreferenceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Preference
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetPreferenceResponse added in v0.41.0

func ParseGetPreferenceResponse(rsp *http.Response) (*GetPreferenceResponse, error)

ParseGetPreferenceResponse parses an HTTP response from a GetPreferenceWithResponse call

func (GetPreferenceResponse) ContentType added in v0.41.0

func (r GetPreferenceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetPreferenceResponse) Status added in v0.41.0

func (r GetPreferenceResponse) Status() string

Status returns HTTPResponse.Status

func (GetPreferenceResponse) StatusCode added in v0.41.0

func (r GetPreferenceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetRealtimeAppChannelParams added in v0.15.0

type GetRealtimeAppChannelParams struct {
	// Include Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400).
	Include *[]RealtimeChannelInclude `form:"include,omitempty" json:"include,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

GetRealtimeAppChannelParams defines parameters for GetRealtimeAppChannel.

type GetRealtimeAppChannelResponse added in v0.15.0

type GetRealtimeAppChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *RealtimeChannelInfo
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetRealtimeAppChannelResponse added in v0.15.0

func ParseGetRealtimeAppChannelResponse(rsp *http.Response) (*GetRealtimeAppChannelResponse, error)

ParseGetRealtimeAppChannelResponse parses an HTTP response from a GetRealtimeAppChannelWithResponse call

func (GetRealtimeAppChannelResponse) ContentType added in v0.15.0

func (r GetRealtimeAppChannelResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetRealtimeAppChannelResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (GetRealtimeAppChannelResponse) StatusCode added in v0.15.0

func (r GetRealtimeAppChannelResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsByCountryParams added in v0.33.0

type GetSMSInboundStatsByCountryParams struct {
	// From Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Limit Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetSMSInboundStatsByCountryParams defines parameters for GetSMSInboundStatsByCountry.

type GetSMSInboundStatsByCountryResponse added in v0.33.0

type GetSMSInboundStatsByCountryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsByCountryResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsByCountryResponse added in v0.33.0

func ParseGetSMSInboundStatsByCountryResponse(rsp *http.Response) (*GetSMSInboundStatsByCountryResponse, error)

ParseGetSMSInboundStatsByCountryResponse parses an HTTP response from a GetSMSInboundStatsByCountryWithResponse call

func (GetSMSInboundStatsByCountryResponse) ContentType added in v0.33.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsByCountryResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsByCountryResponse) StatusCode added in v0.33.0

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsByNumberParams added in v0.33.0

type GetSMSInboundStatsByNumberParams struct {
	// From Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Limit Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetSMSInboundStatsByNumberParams defines parameters for GetSMSInboundStatsByNumber.

type GetSMSInboundStatsByNumberResponse added in v0.33.0

type GetSMSInboundStatsByNumberResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsByNumberResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsByNumberResponse added in v0.33.0

func ParseGetSMSInboundStatsByNumberResponse(rsp *http.Response) (*GetSMSInboundStatsByNumberResponse, error)

ParseGetSMSInboundStatsByNumberResponse parses an HTTP response from a GetSMSInboundStatsByNumberWithResponse call

func (GetSMSInboundStatsByNumberResponse) ContentType added in v0.33.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsByNumberResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsByNumberResponse) StatusCode added in v0.33.0

func (r GetSMSInboundStatsByNumberResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsByOperatorParams added in v0.33.0

type GetSMSInboundStatsByOperatorParams struct {
	// From Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Limit Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

GetSMSInboundStatsByOperatorParams defines parameters for GetSMSInboundStatsByOperator.

type GetSMSInboundStatsByOperatorResponse added in v0.33.0

type GetSMSInboundStatsByOperatorResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsByOperatorResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsByOperatorResponse added in v0.33.0

func ParseGetSMSInboundStatsByOperatorResponse(rsp *http.Response) (*GetSMSInboundStatsByOperatorResponse, error)

ParseGetSMSInboundStatsByOperatorResponse parses an HTTP response from a GetSMSInboundStatsByOperatorWithResponse call

func (GetSMSInboundStatsByOperatorResponse) ContentType added in v0.33.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsByOperatorResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsByOperatorResponse) StatusCode added in v0.33.0

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsDailyParams added in v0.33.0

type GetSMSInboundStatsDailyParams struct {
	// From Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`
}

GetSMSInboundStatsDailyParams defines parameters for GetSMSInboundStatsDaily.

type GetSMSInboundStatsDailyResponse added in v0.33.0

type GetSMSInboundStatsDailyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsDailyResponse added in v0.33.0

func ParseGetSMSInboundStatsDailyResponse(rsp *http.Response) (*GetSMSInboundStatsDailyResponse, error)

ParseGetSMSInboundStatsDailyResponse parses an HTTP response from a GetSMSInboundStatsDailyWithResponse call

func (GetSMSInboundStatsDailyResponse) ContentType added in v0.33.0

func (r GetSMSInboundStatsDailyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsDailyResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsDailyResponse) StatusCode added in v0.33.0

func (r GetSMSInboundStatsDailyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsHourlyParams added in v0.33.0

type GetSMSInboundStatsHourlyParams struct {
	// From Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted.
	From *time.Time `form:"from,omitempty" json:"from,omitempty"`

	// To End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead.
	To *time.Time `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`
}

GetSMSInboundStatsHourlyParams defines parameters for GetSMSInboundStatsHourly.

type GetSMSInboundStatsHourlyResponse added in v0.33.0

type GetSMSInboundStatsHourlyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsHourlyResponse added in v0.33.0

func ParseGetSMSInboundStatsHourlyResponse(rsp *http.Response) (*GetSMSInboundStatsHourlyResponse, error)

ParseGetSMSInboundStatsHourlyResponse parses an HTTP response from a GetSMSInboundStatsHourlyWithResponse call

func (GetSMSInboundStatsHourlyResponse) ContentType added in v0.33.0

func (r GetSMSInboundStatsHourlyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsHourlyResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsHourlyResponse) StatusCode added in v0.33.0

func (r GetSMSInboundStatsHourlyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSInboundStatsSummaryParams added in v0.33.0

type GetSMSInboundStatsSummaryParams struct {
	// From Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// To Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Compare Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show "+X% vs last period" without a second request.
	Compare *StatsComparePeriod `form:"compare,omitempty" json:"compare,omitempty"`
}

GetSMSInboundStatsSummaryParams defines parameters for GetSMSInboundStatsSummary.

type GetSMSInboundStatsSummaryResponse added in v0.33.0

type GetSMSInboundStatsSummaryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSInboundStatsSummaryResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSInboundStatsSummaryResponse added in v0.33.0

func ParseGetSMSInboundStatsSummaryResponse(rsp *http.Response) (*GetSMSInboundStatsSummaryResponse, error)

ParseGetSMSInboundStatsSummaryResponse parses an HTTP response from a GetSMSInboundStatsSummaryWithResponse call

func (GetSMSInboundStatsSummaryResponse) ContentType added in v0.33.0

func (r GetSMSInboundStatsSummaryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSInboundStatsSummaryResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSInboundStatsSummaryResponse) StatusCode added in v0.33.0

func (r GetSMSInboundStatsSummaryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSKeywordRuleParams added in v0.33.0

type GetSMSKeywordRuleParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

GetSMSKeywordRuleParams defines parameters for GetSMSKeywordRule.

type GetSMSKeywordRuleResponse added in v0.33.0

type GetSMSKeywordRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSKeywordRule
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetSMSKeywordRuleResponse added in v0.33.0

func ParseGetSMSKeywordRuleResponse(rsp *http.Response) (*GetSMSKeywordRuleResponse, error)

ParseGetSMSKeywordRuleResponse parses an HTTP response from a GetSMSKeywordRuleWithResponse call

func (GetSMSKeywordRuleResponse) ContentType added in v0.33.0

func (r GetSMSKeywordRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSKeywordRuleResponse) Status added in v0.33.0

func (r GetSMSKeywordRuleResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSKeywordRuleResponse) StatusCode added in v0.33.0

func (r GetSMSKeywordRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSMessageResponse added in v0.3.0

type GetSMSMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSMessage
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSMessageResponse added in v0.3.0

func ParseGetSMSMessageResponse(rsp *http.Response) (*GetSMSMessageResponse, error)

ParseGetSMSMessageResponse parses an HTTP response from a GetSMSMessageWithResponse call

func (GetSMSMessageResponse) ContentType added in v0.3.0

func (r GetSMSMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSMessageResponse) Status added in v0.3.0

func (r GetSMSMessageResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSMessageResponse) StatusCode added in v0.3.0

func (r GetSMSMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByCarrierParams added in v0.33.0

type GetSMSStatsByCarrierParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.
	Sort *SMSStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of carrier rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByCarrierParams defines parameters for GetSMSStatsByCarrier.

type GetSMSStatsByCarrierResponse added in v0.33.0

type GetSMSStatsByCarrierResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByCarrierResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByCarrierResponse added in v0.33.0

func ParseGetSMSStatsByCarrierResponse(rsp *http.Response) (*GetSMSStatsByCarrierResponse, error)

ParseGetSMSStatsByCarrierResponse parses an HTTP response from a GetSMSStatsByCarrierWithResponse call

func (GetSMSStatsByCarrierResponse) ContentType added in v0.33.0

func (r GetSMSStatsByCarrierResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByCarrierResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByCarrierResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByCarrierResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByCategoryParams added in v0.33.0

type GetSMSStatsByCategoryParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.
	Sort *SMSStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of category rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByCategoryParams defines parameters for GetSMSStatsByCategory.

type GetSMSStatsByCategoryResponse added in v0.33.0

type GetSMSStatsByCategoryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByCategoryResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByCategoryResponse added in v0.33.0

func ParseGetSMSStatsByCategoryResponse(rsp *http.Response) (*GetSMSStatsByCategoryResponse, error)

ParseGetSMSStatsByCategoryResponse parses an HTTP response from a GetSMSStatsByCategoryWithResponse call

func (GetSMSStatsByCategoryResponse) ContentType added in v0.33.0

func (r GetSMSStatsByCategoryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByCategoryResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByCategoryResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByCategoryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByCountryParams added in v0.33.0

type GetSMSStatsByCountryParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.
	Sort *SMSStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of country rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByCountryParams defines parameters for GetSMSStatsByCountry.

type GetSMSStatsByCountryResponse added in v0.33.0

type GetSMSStatsByCountryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByCountryResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByCountryResponse added in v0.33.0

func ParseGetSMSStatsByCountryResponse(rsp *http.Response) (*GetSMSStatsByCountryResponse, error)

ParseGetSMSStatsByCountryResponse parses an HTTP response from a GetSMSStatsByCountryWithResponse call

func (GetSMSStatsByCountryResponse) ContentType added in v0.33.0

func (r GetSMSStatsByCountryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByCountryResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByCountryResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByCountryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByErrorCodeParams added in v0.33.0

type GetSMSStatsByErrorCodeParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.
	Sort *SMSStatsLifecycleSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of error-code rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByErrorCodeParams defines parameters for GetSMSStatsByErrorCode.

type GetSMSStatsByErrorCodeResponse added in v0.33.0

type GetSMSStatsByErrorCodeResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByErrorCodeResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByErrorCodeResponse added in v0.33.0

func ParseGetSMSStatsByErrorCodeResponse(rsp *http.Response) (*GetSMSStatsByErrorCodeResponse, error)

ParseGetSMSStatsByErrorCodeResponse parses an HTTP response from a GetSMSStatsByErrorCodeWithResponse call

func (GetSMSStatsByErrorCodeResponse) ContentType added in v0.33.0

func (r GetSMSStatsByErrorCodeResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByErrorCodeResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByErrorCodeResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByErrorCodeResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByOriginatorParams added in v0.33.0

type GetSMSStatsByOriginatorParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.
	Sort *SMSStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of originator rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByOriginatorParams defines parameters for GetSMSStatsByOriginator.

type GetSMSStatsByOriginatorResponse added in v0.33.0

type GetSMSStatsByOriginatorResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByOriginatorResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByOriginatorResponse added in v0.33.0

func ParseGetSMSStatsByOriginatorResponse(rsp *http.Response) (*GetSMSStatsByOriginatorResponse, error)

ParseGetSMSStatsByOriginatorResponse parses an HTTP response from a GetSMSStatsByOriginatorWithResponse call

func (GetSMSStatsByOriginatorResponse) ContentType added in v0.33.0

func (r GetSMSStatsByOriginatorResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByOriginatorResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByOriginatorResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByOriginatorResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByStatusParams added in v0.33.0

type GetSMSStatsByStatusParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`
}

GetSMSStatsByStatusParams defines parameters for GetSMSStatsByStatus.

type GetSMSStatsByStatusResponse added in v0.33.0

type GetSMSStatsByStatusResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByStatusResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByStatusResponse added in v0.33.0

func ParseGetSMSStatsByStatusResponse(rsp *http.Response) (*GetSMSStatsByStatusResponse, error)

ParseGetSMSStatsByStatusResponse parses an HTTP response from a GetSMSStatsByStatusWithResponse call

func (GetSMSStatsByStatusResponse) ContentType added in v0.33.0

func (r GetSMSStatsByStatusResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByStatusResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsByStatusResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByStatusResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsByTagParams added in v0.33.0

type GetSMSStatsByTagParams struct {
	// From Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Sort Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.
	Sort *SMSStatsSortMetric `form:"sort,omitempty" json:"sort,omitempty"`

	// Limit Maximum number of tag rows to return, ranked by the `sort` field descending.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// IncludeTrend When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.
	IncludeTrend *bool `form:"include_trend,omitempty" json:"include_trend,omitempty"`

	// TrendGrain Bucket grain for the `trend` series. Has no effect unless `include_trend=true`.
	TrendGrain *StatsTrendGrain `form:"trend_grain,omitempty" json:"trend_grain,omitempty"`
}

GetSMSStatsByTagParams defines parameters for GetSMSStatsByTag.

type GetSMSStatsByTagResponse added in v0.33.0

type GetSMSStatsByTagResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsByTagResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsByTagResponse added in v0.33.0

func ParseGetSMSStatsByTagResponse(rsp *http.Response) (*GetSMSStatsByTagResponse, error)

ParseGetSMSStatsByTagResponse parses an HTTP response from a GetSMSStatsByTagWithResponse call

func (GetSMSStatsByTagResponse) ContentType added in v0.33.0

func (r GetSMSStatsByTagResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsByTagResponse) Status added in v0.33.0

func (r GetSMSStatsByTagResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSStatsByTagResponse) StatusCode added in v0.33.0

func (r GetSMSStatsByTagResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsDailyParams added in v0.33.0

type GetSMSStatsDailyParams struct {
	// From Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted.
	From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`

	// To End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.
	To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Originator Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.
	Originator *string `form:"originator,omitempty" json:"originator,omitempty"`

	// Country Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.
	Country *string `form:"country,omitempty" json:"country,omitempty"`

	// Category Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Carrier Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.
	Carrier *string `form:"carrier,omitempty" json:"carrier,omitempty"`
}

GetSMSStatsDailyParams defines parameters for GetSMSStatsDaily.

type GetSMSStatsDailyResponse added in v0.33.0

type GetSMSStatsDailyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsDailyResponse added in v0.33.0

func ParseGetSMSStatsDailyResponse(rsp *http.Response) (*GetSMSStatsDailyResponse, error)

ParseGetSMSStatsDailyResponse parses an HTTP response from a GetSMSStatsDailyWithResponse call

func (GetSMSStatsDailyResponse) ContentType added in v0.33.0

func (r GetSMSStatsDailyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsDailyResponse) Status added in v0.33.0

func (r GetSMSStatsDailyResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSStatsDailyResponse) StatusCode added in v0.33.0

func (r GetSMSStatsDailyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsHourlyParams added in v0.33.0

type GetSMSStatsHourlyParams struct {
	// From Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted.
	From *time.Time `form:"from,omitempty" json:"from,omitempty"`

	// To End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours).
	To *time.Time `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Originator Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.
	Originator *string `form:"originator,omitempty" json:"originator,omitempty"`

	// Country Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.
	Country *string `form:"country,omitempty" json:"country,omitempty"`

	// Category Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Carrier Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.
	Carrier *string `form:"carrier,omitempty" json:"carrier,omitempty"`
}

GetSMSStatsHourlyParams defines parameters for GetSMSStatsHourly.

type GetSMSStatsHourlyResponse added in v0.33.0

type GetSMSStatsHourlyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsResponse
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsHourlyResponse added in v0.33.0

func ParseGetSMSStatsHourlyResponse(rsp *http.Response) (*GetSMSStatsHourlyResponse, error)

ParseGetSMSStatsHourlyResponse parses an HTTP response from a GetSMSStatsHourlyWithResponse call

func (GetSMSStatsHourlyResponse) ContentType added in v0.33.0

func (r GetSMSStatsHourlyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsHourlyResponse) Status added in v0.33.0

func (r GetSMSStatsHourlyResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSStatsHourlyResponse) StatusCode added in v0.33.0

func (r GetSMSStatsHourlyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSStatsSummaryParams added in v0.33.0

type GetSMSStatsSummaryParams struct {
	// From Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// To Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// Timezone IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.
	Timezone *StatsTimezone `form:"timezone,omitempty" json:"timezone,omitempty"`

	// Originator Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.
	Originator *string `form:"originator,omitempty" json:"originator,omitempty"`

	// Country Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.
	Country *string `form:"country,omitempty" json:"country,omitempty"`

	// Category Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.
	Category *string `form:"category,omitempty" json:"category,omitempty"`

	// Carrier Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.
	Carrier *string `form:"carrier,omitempty" json:"carrier,omitempty"`

	// Compare Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show "+X% vs last period" without a second request.
	Compare *StatsComparePeriod `form:"compare,omitempty" json:"compare,omitempty"`
}

GetSMSStatsSummaryParams defines parameters for GetSMSStatsSummary.

type GetSMSStatsSummaryResponse added in v0.33.0

type GetSMSStatsSummaryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSStatsSummary
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetSMSStatsSummaryResponse added in v0.33.0

func ParseGetSMSStatsSummaryResponse(rsp *http.Response) (*GetSMSStatsSummaryResponse, error)

ParseGetSMSStatsSummaryResponse parses an HTTP response from a GetSMSStatsSummaryWithResponse call

func (GetSMSStatsSummaryResponse) ContentType added in v0.33.0

func (r GetSMSStatsSummaryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSStatsSummaryResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (GetSMSStatsSummaryResponse) StatusCode added in v0.33.0

func (r GetSMSStatsSummaryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSSuppressionResponse added in v0.33.0

type GetSMSSuppressionResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSSuppression
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetSMSSuppressionResponse added in v0.33.0

func ParseGetSMSSuppressionResponse(rsp *http.Response) (*GetSMSSuppressionResponse, error)

ParseGetSMSSuppressionResponse parses an HTTP response from a GetSMSSuppressionWithResponse call

func (GetSMSSuppressionResponse) ContentType added in v0.33.0

func (r GetSMSSuppressionResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSSuppressionResponse) Status added in v0.33.0

func (r GetSMSSuppressionResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSSuppressionResponse) StatusCode added in v0.33.0

func (r GetSMSSuppressionResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetSMSTemplateResponse added in v0.3.0

type GetSMSTemplateResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSTemplate
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetSMSTemplateResponse added in v0.3.0

func ParseGetSMSTemplateResponse(rsp *http.Response) (*GetSMSTemplateResponse, error)

ParseGetSMSTemplateResponse parses an HTTP response from a GetSMSTemplateWithResponse call

func (GetSMSTemplateResponse) ContentType added in v0.3.0

func (r GetSMSTemplateResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetSMSTemplateResponse) Status added in v0.3.0

func (r GetSMSTemplateResponse) Status() string

Status returns HTTPResponse.Status

func (GetSMSTemplateResponse) StatusCode added in v0.3.0

func (r GetSMSTemplateResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetVoiceCallResponse added in v0.27.0

type GetVoiceCallResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *VoiceCall
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetVoiceCallResponse added in v0.27.0

func ParseGetVoiceCallResponse(rsp *http.Response) (*GetVoiceCallResponse, error)

ParseGetVoiceCallResponse parses an HTTP response from a GetVoiceCallWithResponse call

func (GetVoiceCallResponse) ContentType added in v0.27.0

func (r GetVoiceCallResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetVoiceCallResponse) Status added in v0.27.0

func (r GetVoiceCallResponse) Status() string

Status returns HTTPResponse.Status

func (GetVoiceCallResponse) StatusCode added in v0.27.0

func (r GetVoiceCallResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetWhatsAppMessageResponse added in v0.6.0

type GetWhatsAppMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *WhatsAppMessage
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseGetWhatsAppMessageResponse added in v0.6.0

func ParseGetWhatsAppMessageResponse(rsp *http.Response) (*GetWhatsAppMessageResponse, error)

ParseGetWhatsAppMessageResponse parses an HTTP response from a GetWhatsAppMessageWithResponse call

func (GetWhatsAppMessageResponse) ContentType added in v0.6.0

func (r GetWhatsAppMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetWhatsAppMessageResponse) Status added in v0.6.0

Status returns HTTPResponse.Status

func (GetWhatsAppMessageResponse) StatusCode added in v0.6.0

func (r GetWhatsAppMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetWorkspaceNumberParams added in v0.34.0

type GetWorkspaceNumberParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

GetWorkspaceNumberParams defines parameters for GetWorkspaceNumber.

type GetWorkspaceNumberResponse added in v0.34.0

type GetWorkspaceNumberResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Number
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseGetWorkspaceNumberResponse added in v0.34.0

func ParseGetWorkspaceNumberResponse(rsp *http.Response) (*GetWorkspaceNumberResponse, error)

ParseGetWorkspaceNumberResponse parses an HTTP response from a GetWorkspaceNumberWithResponse call

func (GetWorkspaceNumberResponse) ContentType added in v0.34.0

func (r GetWorkspaceNumberResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetWorkspaceNumberResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (GetWorkspaceNumberResponse) StatusCode added in v0.34.0

func (r GetWorkspaceNumberResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Gone

type Gone = Error

Gone defines model for Gone.

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type IPPoolID added in v0.10.0

type IPPoolID = string

IPPoolID defines model for IPPoolID.

type IdempotencyKey

type IdempotencyKey = string

IdempotencyKey defines model for IdempotencyKey.

type InboundAddress added in v0.3.0

type InboundAddress struct {
	// Address The address to forward your mailbox to. We generate it when the inbound address is created.
	Address *openapi_types.Email `json:"address,omitempty"`

	// CreatedAt When the inbound address was created.
	CreatedAt *time.Time       `json:"created_at,omitempty"`
	Id        InboundAddressID `json:"id"`

	// Label Your own label for this address, typically the source mailbox it maps to. `null` when unset.
	Label *string `json:"label"`

	// UpdatedAt When the inbound address was last updated.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

InboundAddress An email address we create for you, which receives mail on your behalf. Forward a real mailbox (for example, a support inbox) to this address. Every message sent to it becomes a received email you can retrieve.

type InboundAddressCreate added in v0.3.0

type InboundAddressCreate struct {
	// Label Your own label for this address, typically the source mailbox it maps to.
	Label *string `json:"label,omitempty"`
}

InboundAddressCreate Parameters for minting a new inbound address.

type InboundAddressID added in v0.3.0

type InboundAddressID = string

InboundAddressID defines model for InboundAddressID.

type InboundAddressList added in v0.3.0

type InboundAddressList struct {
	// Data Page of inbound addresses, newest first.
	Data []InboundAddress `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

InboundAddressList defines model for InboundAddressList.

type InboundAddressUpdate added in v0.3.0

type InboundAddressUpdate struct {
	// Label Your own label for this address, typically the source mailbox it maps to. Send `null` to clear it. Omit the field to leave it unchanged.
	Label nullable.Nullable[string] `json:"label,omitempty"`
}

InboundAddressUpdate Fields to update on an inbound address.

type InboundAttachment added in v0.3.0

type InboundAttachment struct {
	// ContentType MIME type parsed from the attachment part, or `null` when absent.
	ContentType *string `json:"content_type"`

	// Filename Filename from the attachment's Content-Disposition, or `null` when the sender did not name the part.
	Filename *string             `json:"filename"`
	Id       InboundAttachmentID `json:"id"`

	// Size Size of the attachment in bytes.
	Size int `json:"size"`
}

InboundAttachment Metadata for a file attached to a received email. The raw bytes are fetched separately with `GET /v1/email/inbound-messages/{inbound_message_id}/attachments/{attachment_id}`.

type InboundAttachmentID added in v0.3.0

type InboundAttachmentID = string

InboundAttachmentID defines model for InboundAttachmentID.

type InboundAttachmentList added in v0.3.0

type InboundAttachmentList struct {
	// Data Metadata for every attachment on the message. Empty when the message had no attachments.
	Data []InboundAttachment `json:"data"`
}

InboundAttachmentList The attachments on a received email. The response returns every attachment without pagination.

type InboundEmailMessage added in v0.3.0

type InboundEmailMessage struct {
	// Attachments Metadata for each attachment found on the message. Empty when the message had no attachments.
	Attachments []InboundAttachment `json:"attachments"`

	// Authentication Whether the sender of the received message was authenticated:
	//
	// - `pass`: The sender's identity was verified.
	// - `fail`: The sender's identity was checked and did not verify.
	// - `unknown`: No verdict is available, so the sender should not be treated as verified.
	Authentication *InboundEmailMessageAuthentication `json:"authentication"`

	// Cc Recipients on the message's Cc header.
	Cc []EmailAddress `json:"cc"`

	// DkimPass Whether DKIM passed for the sender, parsed from the message's authentication results. `null` when the authentication results did not include a DKIM verdict.
	DkimPass *bool `json:"dkim_pass"`

	// DmarcPass Whether DMARC passed for the sender, parsed from the message's authentication results. `null` when the authentication results did not include a DMARC verdict.
	DmarcPass *bool `json:"dmarc_pass"`

	// From An email address with an optional display name.
	From EmailAddress          `json:"from"`
	Id   InboundEmailMessageID `json:"id"`

	// InReplyTo The `In-Reply-To` header, which holds the Message-ID this message is replying to. `null` when the message is not a reply.
	InReplyTo *string `json:"in_reply_to"`

	// MessageId RFC 5322 Message-ID header from the sender, or `null` when the sender did not include one.
	MessageId *string `json:"message_id"`

	// ReceivedAt When the message was received.
	ReceivedAt *time.Time `json:"received_at,omitempty"`

	// References The References header, which holds every Message-ID in this conversation, oldest first. Left out when the message arrived without one.
	References *[]string `json:"references,omitempty"`

	// SpamScore Spam score on the received message, or `null` when no score is available.
	SpamScore *float32 `json:"spam_score"`

	// SpfPass Whether SPF passed for the sender, parsed from the message's authentication results. `null` when the authentication results did not include an SPF verdict.
	SpfPass *bool `json:"spf_pass"`

	// Subject Subject line as received, or `null` when the message had no subject.
	Subject *string `json:"subject"`

	// ThreadId Conversation this message belongs to, or `null` when it is not grouped into one.
	ThreadId *string `json:"thread_id"`

	// To Recipients on the message's To header.
	To []EmailAddress `json:"to"`
}

InboundEmailMessage An email received on your behalf, parsed from the original message. Fetch the body with `/body`, the original MIME with `/raw`, and attachment bytes with `/attachments/{attachment_id}`.

type InboundEmailMessageAuthentication added in v0.8.2

type InboundEmailMessageAuthentication string

InboundEmailMessageAuthentication Whether the sender of the received message was authenticated:

- `pass`: The sender's identity was verified. - `fail`: The sender's identity was checked and did not verify. - `unknown`: No verdict is available, so the sender should not be treated as verified.

const (
	InboundEmailMessageAuthenticationFail        InboundEmailMessageAuthentication = "fail"
	InboundEmailMessageAuthenticationLessThannil InboundEmailMessageAuthentication = "<nil>"
	InboundEmailMessageAuthenticationPass        InboundEmailMessageAuthentication = "pass"
	InboundEmailMessageAuthenticationUnknown     InboundEmailMessageAuthentication = "unknown"
)

Defines values for InboundEmailMessageAuthentication.

func (InboundEmailMessageAuthentication) Valid added in v0.8.2

Valid indicates whether the value is a known member of the InboundEmailMessageAuthentication enum.

type InboundEmailMessageBody added in v0.3.0

type InboundEmailMessageBody struct {
	// Html The HTML body of the message, or `null` when the message had no HTML part.
	Html *string `json:"html"`

	// Text The plain-text body of the message, or `null` when the message had no text part.
	Text *string `json:"text"`
}

InboundEmailMessageBody The parsed body of a received email.

type InboundEmailMessageID added in v0.2.0

type InboundEmailMessageID = string

InboundEmailMessageID defines model for InboundEmailMessageID.

type InboundEmailMessageList added in v0.3.0

type InboundEmailMessageList struct {
	// Data Page of received emails, newest first.
	Data []InboundEmailMessage `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

InboundEmailMessageList defines model for InboundEmailMessageList.

type InboundRoute added in v0.4.1

type InboundRoute struct {
	// Action What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id`. `drop` discards it silently, with nothing stored and no webhook fired.
	Action InboundRouteAction `json:"action"`

	// CreatedAt When the route was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Domain The domain the route applies to.
	Domain *string `json:"domain,omitempty"`

	// Enabled Whether the route is evaluated. Disabled routes are kept but skipped.
	Enabled bool                `json:"enabled"`
	Id      EmailInboundRouteID `json:"id"`

	// MatchType How the route matches recipients. `address` matches one local part. `catch_all` matches every recipient on the domain that nothing else matched.
	MatchType InboundRouteMatchType `json:"match_type"`

	// MatchValue The local part an `address` route matches. `null` for `catch_all` routes.
	MatchValue *string `json:"match_value"`

	// Priority The order routes are tried in, lowest number first. Your own routes take a priority from 11 to 1000, and default to 100. A mailbox's own address always matches at priority 10.
	Priority int `json:"priority"`

	// TargetMailboxId The mailbox that receives matching mail. `null` for `drop` routes.
	TargetMailboxId *MailboxID `json:"target_mailbox_id"`

	// UpdatedAt When the route was last updated.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

InboundRoute A routing rule that directs inbound mail on one of your domains into a mailbox, or drops it. Routes are tried in priority order, lowest number first. Each mailbox's own address always matches at priority 10 and your own routes take a priority from 11 to 1000, so delivery to an exact address always takes precedence.

type InboundRouteAction added in v0.4.1

type InboundRouteAction string

InboundRouteAction What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id`. `drop` discards it silently, with nothing stored and no webhook fired.

const (
	InboundRouteActionDeliverToMailbox InboundRouteAction = "deliver_to_mailbox"
	InboundRouteActionDrop             InboundRouteAction = "drop"
)

Defines values for InboundRouteAction.

func (InboundRouteAction) Valid added in v0.4.1

func (e InboundRouteAction) Valid() bool

Valid indicates whether the value is a known member of the InboundRouteAction enum.

type InboundRouteCreate added in v0.4.1

type InboundRouteCreate struct {
	// Action What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id` (required). `drop` discards it silently, with nothing stored and no webhook fired.
	Action InboundRouteCreateAction `json:"action"`

	// Domain The domain the route applies to. It has to be one of your inbound-enabled custom domains.
	Domain string `json:"domain"`

	// Enabled Whether the route is evaluated.
	Enabled *bool `json:"enabled,omitempty"`

	// MatchType How the route matches recipients. `address` matches one local part and requires `match_value`. `catch_all` matches every recipient on the domain that nothing else matched.
	MatchType InboundRouteCreateMatchType `json:"match_type"`

	// MatchValue The local part an `address` route matches. Required for `address` routes. Stored lowercase.
	MatchValue *string `json:"match_value,omitempty"`

	// Priority The order routes are tried in, lowest number first. Your own routes take a priority from 11 to 1000. The mailbox's own address always matches at priority 10, so a route can never pre-empt exact-address delivery.
	Priority        *int       `json:"priority,omitempty"`
	TargetMailboxId *MailboxID `json:"target_mailbox_id,omitempty"`
}

InboundRouteCreate Parameters for creating an inbound route.

type InboundRouteCreateAction added in v0.4.1

type InboundRouteCreateAction string

InboundRouteCreateAction What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id` (required). `drop` discards it silently, with nothing stored and no webhook fired.

const (
	InboundRouteCreateActionDeliverToMailbox InboundRouteCreateAction = "deliver_to_mailbox"
	InboundRouteCreateActionDrop             InboundRouteCreateAction = "drop"
)

Defines values for InboundRouteCreateAction.

func (InboundRouteCreateAction) Valid added in v0.4.1

func (e InboundRouteCreateAction) Valid() bool

Valid indicates whether the value is a known member of the InboundRouteCreateAction enum.

type InboundRouteCreateMatchType added in v0.4.1

type InboundRouteCreateMatchType string

InboundRouteCreateMatchType How the route matches recipients. `address` matches one local part and requires `match_value`. `catch_all` matches every recipient on the domain that nothing else matched.

const (
	InboundRouteCreateMatchTypeAddress  InboundRouteCreateMatchType = "address"
	InboundRouteCreateMatchTypeCatchAll InboundRouteCreateMatchType = "catch_all"
)

Defines values for InboundRouteCreateMatchType.

func (InboundRouteCreateMatchType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the InboundRouteCreateMatchType enum.

type InboundRouteList added in v0.4.1

type InboundRouteList struct {
	// Data Page of inbound routes in evaluation order, with the lowest priority number first.
	Data []InboundRoute `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

InboundRouteList defines model for InboundRouteList.

type InboundRouteMatchType added in v0.4.1

type InboundRouteMatchType string

InboundRouteMatchType How the route matches recipients. `address` matches one local part. `catch_all` matches every recipient on the domain that nothing else matched.

const (
	InboundRouteMatchTypeAddress  InboundRouteMatchType = "address"
	InboundRouteMatchTypeCatchAll InboundRouteMatchType = "catch_all"
)

Defines values for InboundRouteMatchType.

func (InboundRouteMatchType) Valid added in v0.4.1

func (e InboundRouteMatchType) Valid() bool

Valid indicates whether the value is a known member of the InboundRouteMatchType enum.

type InboundRouteUpdate added in v0.4.1

type InboundRouteUpdate struct {
	// Action What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id` (required). `drop` discards it silently, with nothing stored and no webhook fired.
	Action *InboundRouteUpdateAction `json:"action,omitempty"`

	// Enabled Whether the route is evaluated.
	Enabled *bool `json:"enabled,omitempty"`

	// MatchType How the route matches recipients.
	MatchType *InboundRouteUpdateMatchType `json:"match_type,omitempty"`

	// MatchValue The local part an `address` route matches. `null` for `catch_all` routes.
	MatchValue nullable.Nullable[string] `json:"match_value,omitempty"`

	// Priority The order routes are tried in, lowest number first. Your own routes take a priority from 11 to 1000. The mailbox's own address always matches at priority 10.
	Priority *int `json:"priority,omitempty"`

	// TargetMailboxId The mailbox that receives matching mail. `null` for `drop` routes.
	TargetMailboxId nullable.Nullable[MailboxID] `json:"target_mailbox_id,omitempty"`
}

InboundRouteUpdate Fields to update on an inbound route. Omitted fields are unchanged. The domain is immutable.

type InboundRouteUpdateAction added in v0.4.1

type InboundRouteUpdateAction string

InboundRouteUpdateAction What happens to matching mail. `deliver_to_mailbox` delivers it to `target_mailbox_id` (required). `drop` discards it silently, with nothing stored and no webhook fired.

const (
	InboundRouteUpdateActionDeliverToMailbox InboundRouteUpdateAction = "deliver_to_mailbox"
	InboundRouteUpdateActionDrop             InboundRouteUpdateAction = "drop"
)

Defines values for InboundRouteUpdateAction.

func (InboundRouteUpdateAction) Valid added in v0.4.1

func (e InboundRouteUpdateAction) Valid() bool

Valid indicates whether the value is a known member of the InboundRouteUpdateAction enum.

type InboundRouteUpdateMatchType added in v0.4.1

type InboundRouteUpdateMatchType string

InboundRouteUpdateMatchType How the route matches recipients.

const (
	InboundRouteUpdateMatchTypeAddress  InboundRouteUpdateMatchType = "address"
	InboundRouteUpdateMatchTypeCatchAll InboundRouteUpdateMatchType = "catch_all"
)

Defines values for InboundRouteUpdateMatchType.

func (InboundRouteUpdateMatchType) Valid added in v0.4.1

Valid indicates whether the value is a known member of the InboundRouteUpdateMatchType enum.

type IncludeTotal

type IncludeTotal = bool

IncludeTotal defines model for IncludeTotal.

type InternalError

type InternalError = Error

InternalError defines model for InternalError.

type LanguageTag added in v0.16.0

type LanguageTag = string

LanguageTag A language tag in BCP-47 form, for example `en` or `pt-BR`.

type ListAudienceContactsParams added in v0.4.0

type ListAudienceContactsParams struct {
	// Q Case-insensitive substring match against a contact's email address or the digits in its international phone number.
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListAudienceContactsParams defines parameters for ListAudienceContacts.

type ListAudienceContactsResponse added in v0.4.0

type ListAudienceContactsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *AudienceMemberList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListAudienceContactsResponse added in v0.4.0

func ParseListAudienceContactsResponse(rsp *http.Response) (*ListAudienceContactsResponse, error)

ParseListAudienceContactsResponse parses an HTTP response from a ListAudienceContactsWithResponse call

func (ListAudienceContactsResponse) ContentType added in v0.4.0

func (r ListAudienceContactsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListAudienceContactsResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (ListAudienceContactsResponse) StatusCode added in v0.4.0

func (r ListAudienceContactsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListAudiencesParams added in v0.4.0

type ListAudiencesParams struct {
	// Q Case-insensitive substring match against the audience's name.
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListAudiencesParams defines parameters for ListAudiences.

type ListAudiencesResponse added in v0.4.0

type ListAudiencesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *AudienceList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListAudiencesResponse added in v0.4.0

func ParseListAudiencesResponse(rsp *http.Response) (*ListAudiencesResponse, error)

ParseListAudiencesResponse parses an HTTP response from a ListAudiencesWithResponse call

func (ListAudiencesResponse) ContentType added in v0.4.0

func (r ListAudiencesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListAudiencesResponse) Status added in v0.4.0

func (r ListAudiencesResponse) Status() string

Status returns HTTPResponse.Status

func (ListAudiencesResponse) StatusCode added in v0.4.0

func (r ListAudiencesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListAvailableNumbersParams added in v0.34.0

type ListAvailableNumbersParams struct {
	// CountryCode ISO 3166-1 alpha-2 country code to search in.
	CountryCode string `form:"country_code" json:"country_code"`

	// NumberType Return only numbers of this physical type after applying the country and prefix filters.
	NumberType *NumberType `form:"number_type,omitempty" json:"number_type,omitempty"`

	// Prefix Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search.
	Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"`

	// Capabilities Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both.
	Capabilities *[]string `form:"capabilities,omitempty" json:"capabilities,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListAvailableNumbersParams defines parameters for ListAvailableNumbers.

type ListAvailableNumbersResponse added in v0.34.0

type ListAvailableNumbersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *AvailableNumberList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListAvailableNumbersResponse added in v0.34.0

func ParseListAvailableNumbersResponse(rsp *http.Response) (*ListAvailableNumbersResponse, error)

ParseListAvailableNumbersResponse parses an HTTP response from a ListAvailableNumbersWithResponse call

func (ListAvailableNumbersResponse) ContentType added in v0.34.0

func (r ListAvailableNumbersResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListAvailableNumbersResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (ListAvailableNumbersResponse) StatusCode added in v0.34.0

func (r ListAvailableNumbersResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListContactPreferencesParams added in v0.41.0

type ListContactPreferencesParams struct {
	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListContactPreferencesParams defines parameters for ListContactPreferences.

type ListContactPreferencesResponse added in v0.41.0

type ListContactPreferencesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *PreferenceList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListContactPreferencesResponse added in v0.41.0

func ParseListContactPreferencesResponse(rsp *http.Response) (*ListContactPreferencesResponse, error)

ParseListContactPreferencesResponse parses an HTTP response from a ListContactPreferencesWithResponse call

func (ListContactPreferencesResponse) ContentType added in v0.41.0

func (r ListContactPreferencesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListContactPreferencesResponse) Status added in v0.41.0

Status returns HTTPResponse.Status

func (ListContactPreferencesResponse) StatusCode added in v0.41.0

func (r ListContactPreferencesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListContactPropertiesParams added in v0.4.0

type ListContactPropertiesParams struct {
	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListContactPropertiesParams defines parameters for ListContactProperties.

type ListContactPropertiesResponse added in v0.4.0

type ListContactPropertiesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactPropertyList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListContactPropertiesResponse added in v0.4.0

func ParseListContactPropertiesResponse(rsp *http.Response) (*ListContactPropertiesResponse, error)

ParseListContactPropertiesResponse parses an HTTP response from a ListContactPropertiesWithResponse call

func (ListContactPropertiesResponse) ContentType added in v0.4.0

func (r ListContactPropertiesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListContactPropertiesResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (ListContactPropertiesResponse) StatusCode added in v0.4.0

func (r ListContactPropertiesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListContactsParams added in v0.4.0

type ListContactsParams struct {
	// Email Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page.
	Email *string `form:"email,omitempty" json:"email,omitempty"`

	// PhoneNumber Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page.
	PhoneNumber *[]string `form:"phone_number,omitempty" json:"phone_number,omitempty"`

	// ExternalId Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page.
	ExternalId *string `form:"external_id,omitempty" json:"external_id,omitempty"`

	// Q Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not.
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Identifier Filter to contacts that have a specific identifier on file.
	Identifier *ContactIdentifierFilter `form:"identifier,omitempty" json:"identifier,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// IncludeTotal When true, the response includes a `total` field with the total number of items matching the request's filters across all pages.
	IncludeTotal *IncludeTotal `form:"include_total,omitempty" json:"include_total,omitempty"`
}

ListContactsParams defines parameters for ListContacts.

type ListContactsResponse added in v0.4.0

type ListContactsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListContactsResponse added in v0.4.0

func ParseListContactsResponse(rsp *http.Response) (*ListContactsResponse, error)

ParseListContactsResponse parses an HTTP response from a ListContactsWithResponse call

func (ListContactsResponse) ContentType added in v0.4.0

func (r ListContactsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListContactsResponse) Status added in v0.4.0

func (r ListContactsResponse) Status() string

Status returns HTTPResponse.Status

func (ListContactsResponse) StatusCode added in v0.4.0

func (r ListContactsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListDomainsParams added in v0.8.0

type ListDomainsParams struct {
	// Name Substring match against the domain name (case-insensitive).
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// Sort Field to sort by. Defaults to `created_at`.
	Sort *ListDomainsParamsSort `form:"sort,omitempty" json:"sort,omitempty"`

	// Order Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.
	Order *ListDomainsParamsOrder `form:"order,omitempty" json:"order,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// IncludeTotal When true, the response includes a `total` field with the total number of items matching the request's filters across all pages.
	IncludeTotal *IncludeTotal `form:"include_total,omitempty" json:"include_total,omitempty"`
}

ListDomainsParams defines parameters for ListDomains.

type ListDomainsParamsOrder added in v0.8.0

type ListDomainsParamsOrder string

ListDomainsParamsOrder defines parameters for ListDomains.

const (
	ListDomainsParamsOrderAsc  ListDomainsParamsOrder = "asc"
	ListDomainsParamsOrderDesc ListDomainsParamsOrder = "desc"
)

Defines values for ListDomainsParamsOrder.

func (ListDomainsParamsOrder) Valid added in v0.8.0

func (e ListDomainsParamsOrder) Valid() bool

Valid indicates whether the value is a known member of the ListDomainsParamsOrder enum.

type ListDomainsParamsSort added in v0.8.0

type ListDomainsParamsSort string

ListDomainsParamsSort defines parameters for ListDomains.

const (
	ListDomainsParamsSortCreatedAt ListDomainsParamsSort = "created_at"
	ListDomainsParamsSortName      ListDomainsParamsSort = "name"
)

Defines values for ListDomainsParamsSort.

func (ListDomainsParamsSort) Valid added in v0.8.0

func (e ListDomainsParamsSort) Valid() bool

Valid indicates whether the value is a known member of the ListDomainsParamsSort enum.

type ListDomainsResponse added in v0.8.0

type ListDomainsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *DomainList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListDomainsResponse added in v0.8.0

func ParseListDomainsResponse(rsp *http.Response) (*ListDomainsResponse, error)

ParseListDomainsResponse parses an HTTP response from a ListDomainsWithResponse call

func (ListDomainsResponse) ContentType added in v0.8.0

func (r ListDomainsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListDomainsResponse) Status added in v0.8.0

func (r ListDomainsResponse) Status() string

Status returns HTTPResponse.Status

func (ListDomainsResponse) StatusCode added in v0.8.0

func (r ListDomainsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListEmailMessagesParams

type ListEmailMessagesParams struct {
	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// CreatedAfter Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedAfter *CreatedAfter `form:"created_after,omitempty" json:"created_after,omitempty"`

	// CreatedBefore Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedBefore *CreatedBefore `form:"created_before,omitempty" json:"created_before,omitempty"`

	// Status Filter by aggregate delivery status.
	Status *EmailMessageStatus `form:"status,omitempty" json:"status,omitempty"`

	// Tag Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.
	Tag *TagFilter `form:"tag,omitempty" json:"tag,omitempty"`

	// Category Filter by category.
	Category *EmailMessageCategory `form:"category,omitempty" json:"category,omitempty"`

	// To Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.
	To *openapi_types.Email `form:"to,omitempty" json:"to,omitempty"`

	// From Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.
	From *openapi_types.Email `form:"from,omitempty" json:"from,omitempty"`
}

ListEmailMessagesParams defines parameters for ListEmailMessages.

type ListEmailMessagesResponse

type ListEmailMessagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailMessageList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListEmailMessagesResponse

func ParseListEmailMessagesResponse(rsp *http.Response) (*ListEmailMessagesResponse, error)

ParseListEmailMessagesResponse parses an HTTP response from a ListEmailMessagesWithResponse call

func (ListEmailMessagesResponse) ContentType

func (r ListEmailMessagesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListEmailMessagesResponse) Status

func (r ListEmailMessagesResponse) Status() string

Status returns HTTPResponse.Status

func (ListEmailMessagesResponse) StatusCode

func (r ListEmailMessagesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListEmailThreadMessageAttachmentsResponse added in v0.12.0

type ListEmailThreadMessageAttachmentsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThreadMessageAttachmentList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListEmailThreadMessageAttachmentsResponse added in v0.12.0

func ParseListEmailThreadMessageAttachmentsResponse(rsp *http.Response) (*ListEmailThreadMessageAttachmentsResponse, error)

ParseListEmailThreadMessageAttachmentsResponse parses an HTTP response from a ListEmailThreadMessageAttachmentsWithResponse call

func (ListEmailThreadMessageAttachmentsResponse) ContentType added in v0.12.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListEmailThreadMessageAttachmentsResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (ListEmailThreadMessageAttachmentsResponse) StatusCode added in v0.12.0

StatusCode returns HTTPResponse.StatusCode

type ListEmailThreadMessagesParams added in v0.12.0

type ListEmailThreadMessagesParams struct {
	// Direction Filter to received (`inbound`) or sent (`outbound`) messages.
	Direction *MessageDirection `form:"direction,omitempty" json:"direction,omitempty"`

	// Label Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.
	Label *string `form:"label,omitempty" json:"label,omitempty"`

	// Include Set to `extracted_text` to inline each message's extracted plain text.
	Include *ListEmailThreadMessagesParamsInclude `form:"include,omitempty" json:"include,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListEmailThreadMessagesParams defines parameters for ListEmailThreadMessages.

type ListEmailThreadMessagesParamsInclude added in v0.12.0

type ListEmailThreadMessagesParamsInclude string

ListEmailThreadMessagesParamsInclude defines parameters for ListEmailThreadMessages.

const (
	ExtractedText ListEmailThreadMessagesParamsInclude = "extracted_text"
)

Defines values for ListEmailThreadMessagesParamsInclude.

func (ListEmailThreadMessagesParamsInclude) Valid added in v0.12.0

Valid indicates whether the value is a known member of the ListEmailThreadMessagesParamsInclude enum.

type ListEmailThreadMessagesResponse added in v0.12.0

type ListEmailThreadMessagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThreadMessageList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListEmailThreadMessagesResponse added in v0.12.0

func ParseListEmailThreadMessagesResponse(rsp *http.Response) (*ListEmailThreadMessagesResponse, error)

ParseListEmailThreadMessagesResponse parses an HTTP response from a ListEmailThreadMessagesWithResponse call

func (ListEmailThreadMessagesResponse) ContentType added in v0.12.0

func (r ListEmailThreadMessagesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListEmailThreadMessagesResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (ListEmailThreadMessagesResponse) StatusCode added in v0.12.0

func (r ListEmailThreadMessagesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListEmailThreadsParams added in v0.12.0

type ListEmailThreadsParams struct {
	// MailboxId Filter to conversations in a specific mailbox.
	MailboxId *MailboxID `form:"mailbox_id,omitempty" json:"mailbox_id,omitempty"`

	// ContactId Filter to conversations linked to a specific contact.
	ContactId *ContactID `form:"contact_id,omitempty" json:"contact_id,omitempty"`

	// Label Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.
	//
	// A placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox.
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// HasUnread When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state.
	HasUnread *bool `form:"has_unread,omitempty" json:"has_unread,omitempty"`

	// Participant Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address.
	Participant *string `form:"participant,omitempty" json:"participant,omitempty"`

	// Subject Conversations whose subject contains this text (case-insensitive).
	Subject *string `form:"subject,omitempty" json:"subject,omitempty"`

	// After Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination.
	After *time.Time `form:"after,omitempty" json:"after,omitempty"`

	// Before Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination.
	Before *time.Time `form:"before,omitempty" json:"before,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListEmailThreadsParams defines parameters for ListEmailThreads.

type ListEmailThreadsResponse added in v0.12.0

type ListEmailThreadsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThreadList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListEmailThreadsResponse added in v0.12.0

func ParseListEmailThreadsResponse(rsp *http.Response) (*ListEmailThreadsResponse, error)

ParseListEmailThreadsResponse parses an HTTP response from a ListEmailThreadsWithResponse call

func (ListEmailThreadsResponse) ContentType added in v0.12.0

func (r ListEmailThreadsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListEmailThreadsResponse) Status added in v0.12.0

func (r ListEmailThreadsResponse) Status() string

Status returns HTTPResponse.Status

func (ListEmailThreadsResponse) StatusCode added in v0.12.0

func (r ListEmailThreadsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListMailboxLabelsResponse added in v0.12.0

type ListMailboxLabelsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailMailboxLabelList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListMailboxLabelsResponse added in v0.12.0

func ParseListMailboxLabelsResponse(rsp *http.Response) (*ListMailboxLabelsResponse, error)

ParseListMailboxLabelsResponse parses an HTTP response from a ListMailboxLabelsWithResponse call

func (ListMailboxLabelsResponse) ContentType added in v0.12.0

func (r ListMailboxLabelsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListMailboxLabelsResponse) Status added in v0.12.0

func (r ListMailboxLabelsResponse) Status() string

Status returns HTTPResponse.Status

func (ListMailboxLabelsResponse) StatusCode added in v0.12.0

func (r ListMailboxLabelsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListMailboxReceiveRulesParams added in v0.12.0

type ListMailboxReceiveRulesParams struct {
	// Action Return only `allow` or `block` rules; omit to return both actions.
	Action *ListMailboxReceiveRulesParamsAction `form:"action,omitempty" json:"action,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListMailboxReceiveRulesParams defines parameters for ListMailboxReceiveRules.

type ListMailboxReceiveRulesParamsAction added in v0.12.0

type ListMailboxReceiveRulesParamsAction string

ListMailboxReceiveRulesParamsAction defines parameters for ListMailboxReceiveRules.

Defines values for ListMailboxReceiveRulesParamsAction.

func (ListMailboxReceiveRulesParamsAction) Valid added in v0.12.0

Valid indicates whether the value is a known member of the ListMailboxReceiveRulesParamsAction enum.

type ListMailboxReceiveRulesResponse added in v0.12.0

type ListMailboxReceiveRulesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ReceiveRuleList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListMailboxReceiveRulesResponse added in v0.12.0

func ParseListMailboxReceiveRulesResponse(rsp *http.Response) (*ListMailboxReceiveRulesResponse, error)

ParseListMailboxReceiveRulesResponse parses an HTTP response from a ListMailboxReceiveRulesWithResponse call

func (ListMailboxReceiveRulesResponse) ContentType added in v0.12.0

func (r ListMailboxReceiveRulesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListMailboxReceiveRulesResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (ListMailboxReceiveRulesResponse) StatusCode added in v0.12.0

func (r ListMailboxReceiveRulesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListMailboxesParams added in v0.12.0

type ListMailboxesParams struct {
	// Address Filter to the mailbox with exactly this address.
	Address *openapi_types.Email `form:"address,omitempty" json:"address,omitempty"`

	// Q Case-insensitive search matching the mailbox's address or display name (substring).
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// State Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes.
	State *ListMailboxesParamsState `form:"state,omitempty" json:"state,omitempty"`

	// Domain Filter to mailboxes whose address is on this domain.
	Domain *string `form:"domain,omitempty" json:"domain,omitempty"`

	// IncludeDeleted Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set.
	IncludeDeleted *bool `form:"include_deleted,omitempty" json:"include_deleted,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListMailboxesParams defines parameters for ListMailboxes.

type ListMailboxesParamsState added in v0.12.0

type ListMailboxesParamsState string

ListMailboxesParamsState defines parameters for ListMailboxes.

const (
	ListMailboxesParamsStateActive    ListMailboxesParamsState = "active"
	ListMailboxesParamsStateSuspended ListMailboxesParamsState = "suspended"
)

Defines values for ListMailboxesParamsState.

func (ListMailboxesParamsState) Valid added in v0.12.0

func (e ListMailboxesParamsState) Valid() bool

Valid indicates whether the value is a known member of the ListMailboxesParamsState enum.

type ListMailboxesResponse added in v0.12.0

type ListMailboxesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *MailboxList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListMailboxesResponse added in v0.12.0

func ParseListMailboxesResponse(rsp *http.Response) (*ListMailboxesResponse, error)

ParseListMailboxesResponse parses an HTTP response from a ListMailboxesWithResponse call

func (ListMailboxesResponse) ContentType added in v0.12.0

func (r ListMailboxesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListMailboxesResponse) Status added in v0.12.0

func (r ListMailboxesResponse) Status() string

Status returns HTTPResponse.Status

func (ListMailboxesResponse) StatusCode added in v0.12.0

func (r ListMailboxesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListNumbersOrdersParams added in v0.34.0

type ListNumbersOrdersParams struct {
	// Status Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`.
	Status *NumbersOrderStatus `form:"status,omitempty" json:"status,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListNumbersOrdersParams defines parameters for ListNumbersOrders.

type ListNumbersOrdersResponse added in v0.34.0

type ListNumbersOrdersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NumbersOrderList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListNumbersOrdersResponse added in v0.34.0

func ParseListNumbersOrdersResponse(rsp *http.Response) (*ListNumbersOrdersResponse, error)

ParseListNumbersOrdersResponse parses an HTTP response from a ListNumbersOrdersWithResponse call

func (ListNumbersOrdersResponse) ContentType added in v0.34.0

func (r ListNumbersOrdersResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListNumbersOrdersResponse) Status added in v0.34.0

func (r ListNumbersOrdersResponse) Status() string

Status returns HTTPResponse.Status

func (ListNumbersOrdersResponse) StatusCode added in v0.34.0

func (r ListNumbersOrdersResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListPreferencesParams added in v0.41.0

type ListPreferencesParams struct {
	// Channel Return only preferences on this channel.
	Channel *PreferenceChannel `form:"channel,omitempty" json:"channel,omitempty"`

	// Handle Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.
	Handle *string `form:"handle,omitempty" json:"handle,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListPreferencesParams defines parameters for ListPreferences.

type ListPreferencesResponse added in v0.41.0

type ListPreferencesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *PreferenceList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListPreferencesResponse added in v0.41.0

func ParseListPreferencesResponse(rsp *http.Response) (*ListPreferencesResponse, error)

ParseListPreferencesResponse parses an HTTP response from a ListPreferencesWithResponse call

func (ListPreferencesResponse) ContentType added in v0.41.0

func (r ListPreferencesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListPreferencesResponse) Status added in v0.41.0

func (r ListPreferencesResponse) Status() string

Status returns HTTPResponse.Status

func (ListPreferencesResponse) StatusCode added in v0.41.0

func (r ListPreferencesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListRealtimeAppChannelMembersParams added in v0.15.0

type ListRealtimeAppChannelMembersParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListRealtimeAppChannelMembersParams defines parameters for ListRealtimeAppChannelMembers.

type ListRealtimeAppChannelMembersResponse added in v0.15.0

type ListRealtimeAppChannelMembersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *RealtimeChannelMembers
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListRealtimeAppChannelMembersResponse added in v0.15.0

func ParseListRealtimeAppChannelMembersResponse(rsp *http.Response) (*ListRealtimeAppChannelMembersResponse, error)

ParseListRealtimeAppChannelMembersResponse parses an HTTP response from a ListRealtimeAppChannelMembersWithResponse call

func (ListRealtimeAppChannelMembersResponse) ContentType added in v0.15.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListRealtimeAppChannelMembersResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (ListRealtimeAppChannelMembersResponse) StatusCode added in v0.15.0

StatusCode returns HTTPResponse.StatusCode

type ListRealtimeAppChannelsParams added in v0.15.0

type ListRealtimeAppChannelsParams struct {
	// Prefix Only channels whose name starts with this prefix (for example, `presence-`).
	Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"`

	// Include Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400).
	Include *[]RealtimeChannelInclude `form:"include,omitempty" json:"include,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListRealtimeAppChannelsParams defines parameters for ListRealtimeAppChannels.

type ListRealtimeAppChannelsResponse added in v0.15.0

type ListRealtimeAppChannelsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *RealtimeChannelsList
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListRealtimeAppChannelsResponse added in v0.15.0

func ParseListRealtimeAppChannelsResponse(rsp *http.Response) (*ListRealtimeAppChannelsResponse, error)

ParseListRealtimeAppChannelsResponse parses an HTTP response from a ListRealtimeAppChannelsWithResponse call

func (ListRealtimeAppChannelsResponse) ContentType added in v0.15.0

func (r ListRealtimeAppChannelsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListRealtimeAppChannelsResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (ListRealtimeAppChannelsResponse) StatusCode added in v0.15.0

func (r ListRealtimeAppChannelsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListSMSKeywordRulesParams added in v0.33.0

type ListSMSKeywordRulesParams struct {
	// Country Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.
	Country *string `form:"country,omitempty" json:"country,omitempty"`

	// Number Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.
	Number *string `form:"number,omitempty" json:"number,omitempty"`

	// FromCountry The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.
	FromCountry *string `form:"from_country,omitempty" json:"from_country,omitempty"`

	// Operation Keep only rules for this operation. Omit for all of them.
	Operation *SMSKeywordOperation `form:"operation,omitempty" json:"operation,omitempty"`

	// Scope Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.
	Scope *SMSKeywordRuleScope `form:"scope,omitempty" json:"scope,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListSMSKeywordRulesParams defines parameters for ListSMSKeywordRules.

type ListSMSKeywordRulesResponse added in v0.33.0

type ListSMSKeywordRulesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSKeywordRuleList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListSMSKeywordRulesResponse added in v0.33.0

func ParseListSMSKeywordRulesResponse(rsp *http.Response) (*ListSMSKeywordRulesResponse, error)

ParseListSMSKeywordRulesResponse parses an HTTP response from a ListSMSKeywordRulesWithResponse call

func (ListSMSKeywordRulesResponse) ContentType added in v0.33.0

func (r ListSMSKeywordRulesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListSMSKeywordRulesResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (ListSMSKeywordRulesResponse) StatusCode added in v0.33.0

func (r ListSMSKeywordRulesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListSMSMessageEventsParams added in v0.33.0

type ListSMSMessageEventsParams struct {
	// Type Filter by event type, such as `sms.delivered` or `sms.failed`.
	Type *string `form:"type,omitempty" json:"type,omitempty"`
}

ListSMSMessageEventsParams defines parameters for ListSMSMessageEvents.

type ListSMSMessageEventsResponse added in v0.33.0

type ListSMSMessageEventsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSEventList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseListSMSMessageEventsResponse added in v0.33.0

func ParseListSMSMessageEventsResponse(rsp *http.Response) (*ListSMSMessageEventsResponse, error)

ParseListSMSMessageEventsResponse parses an HTTP response from a ListSMSMessageEventsWithResponse call

func (ListSMSMessageEventsResponse) ContentType added in v0.33.0

func (r ListSMSMessageEventsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListSMSMessageEventsResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (ListSMSMessageEventsResponse) StatusCode added in v0.33.0

func (r ListSMSMessageEventsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListSMSMessagesParams added in v0.3.0

type ListSMSMessagesParams struct {
	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// CreatedAfter Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedAfter *CreatedAfter `form:"created_after,omitempty" json:"created_after,omitempty"`

	// CreatedBefore Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedBefore *CreatedBefore `form:"created_before,omitempty" json:"created_before,omitempty"`

	// Direction Filter by direction. Omit for both.
	Direction *MessageDirection `form:"direction,omitempty" json:"direction,omitempty"`

	// Status Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`.
	Status *[]string `form:"status,omitempty" json:"status,omitempty"`

	// ErrorCode Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.
	ErrorCode *[]string `form:"error_code,omitempty" json:"error_code,omitempty"`

	// Category Filter by category.
	Category *SMSMessageCategory `form:"category,omitempty" json:"category,omitempty"`

	// To Filter by recipient phone number (E.164 exact match).
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// From Filter by sender (E.164, alphanumeric, or short code; exact match).
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// Tag Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.
	Tag *TagFilter `form:"tag,omitempty" json:"tag,omitempty"`
}

ListSMSMessagesParams defines parameters for ListSMSMessages.

type ListSMSMessagesResponse added in v0.3.0

type ListSMSMessagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSMessageList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseListSMSMessagesResponse added in v0.3.0

func ParseListSMSMessagesResponse(rsp *http.Response) (*ListSMSMessagesResponse, error)

ParseListSMSMessagesResponse parses an HTTP response from a ListSMSMessagesWithResponse call

func (ListSMSMessagesResponse) ContentType added in v0.3.0

func (r ListSMSMessagesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListSMSMessagesResponse) Status added in v0.3.0

func (r ListSMSMessagesResponse) Status() string

Status returns HTTPResponse.Status

func (ListSMSMessagesResponse) StatusCode added in v0.3.0

func (r ListSMSMessagesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListSMSSuppressionsParams added in v0.33.0

type ListSMSSuppressionsParams struct {
	// Destination Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.
	Destination *string `form:"destination,omitempty" json:"destination,omitempty"`

	// Originator Return only suppressions covering this sender.
	Originator *string `form:"originator,omitempty" json:"originator,omitempty"`

	// Reason Return only suppressions with this reason:
	//
	// - `keyword_stop`: The subscriber texted a stop keyword to the sender.
	// - `carrier_opted_out`: Their carrier reported the opt-out.
	// - `manual`: Added through the API or dashboard.
	Reason *SMSSuppressionReasonFilter `form:"reason,omitempty" json:"reason,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListSMSSuppressionsParams defines parameters for ListSMSSuppressions.

type ListSMSSuppressionsResponse added in v0.33.0

type ListSMSSuppressionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSSuppressionList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListSMSSuppressionsResponse added in v0.33.0

func ParseListSMSSuppressionsResponse(rsp *http.Response) (*ListSMSSuppressionsResponse, error)

ParseListSMSSuppressionsResponse parses an HTTP response from a ListSMSSuppressionsWithResponse call

func (ListSMSSuppressionsResponse) ContentType added in v0.33.0

func (r ListSMSSuppressionsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListSMSSuppressionsResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (ListSMSSuppressionsResponse) StatusCode added in v0.33.0

func (r ListSMSSuppressionsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListSMSTemplatesParams added in v0.3.0

type ListSMSTemplatesParams struct {
	// Scope Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.
	Scope *TemplateScope `form:"scope,omitempty" json:"scope,omitempty"`

	// Category Keep only templates whose `category` matches. Omit for all categories.
	Category *SMSMessageCategory `form:"category,omitempty" json:"category,omitempty"`

	// Language Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.
	Language *LanguageTag `form:"language,omitempty" json:"language,omitempty"`
}

ListSMSTemplatesParams defines parameters for ListSMSTemplates.

type ListSMSTemplatesResponse added in v0.3.0

type ListSMSTemplatesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSTemplateList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListSMSTemplatesResponse added in v0.3.0

func ParseListSMSTemplatesResponse(rsp *http.Response) (*ListSMSTemplatesResponse, error)

ParseListSMSTemplatesResponse parses an HTTP response from a ListSMSTemplatesWithResponse call

func (ListSMSTemplatesResponse) ContentType added in v0.3.0

func (r ListSMSTemplatesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListSMSTemplatesResponse) Status added in v0.3.0

func (r ListSMSTemplatesResponse) Status() string

Status returns HTTPResponse.Status

func (ListSMSTemplatesResponse) StatusCode added in v0.3.0

func (r ListSMSTemplatesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListVoiceCallsParams added in v0.27.0

type ListVoiceCallsParams struct {
	// Direction Return only calls in this direction.
	Direction *VoiceCallDirection `form:"direction,omitempty" json:"direction,omitempty"`

	// Status Return only calls with one of these statuses, comma-separated.
	// In-flight and final statuses may be combined freely.
	Status *[]VoiceCallStatus `form:"status,omitempty" json:"status,omitempty"`

	// SessionId Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated.
	SessionId *VoiceSessionID `form:"session_id,omitempty" json:"session_id,omitempty"`

	// SipTrunkId Return only calls carried by this SIP trunk.
	SipTrunkId *SIPTrunkID `form:"sip_trunk_id,omitempty" json:"sip_trunk_id,omitempty"`

	// From Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// To Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// Number Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly.
	Number *string `form:"number,omitempty" json:"number,omitempty"`

	// Tag Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.
	Tag *TagFilter `form:"tag,omitempty" json:"tag,omitempty"`

	// StartedAfter Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp.
	StartedAfter *time.Time `form:"started_after,omitempty" json:"started_after,omitempty"`

	// StartedBefore Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp.
	StartedBefore *time.Time `form:"started_before,omitempty" json:"started_before,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`
}

ListVoiceCallsParams defines parameters for ListVoiceCalls.

type ListVoiceCallsResponse added in v0.27.0

type ListVoiceCallsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *VoiceCallList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListVoiceCallsResponse added in v0.27.0

func ParseListVoiceCallsResponse(rsp *http.Response) (*ListVoiceCallsResponse, error)

ParseListVoiceCallsResponse parses an HTTP response from a ListVoiceCallsWithResponse call

func (ListVoiceCallsResponse) ContentType added in v0.27.0

func (r ListVoiceCallsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListVoiceCallsResponse) Status added in v0.27.0

func (r ListVoiceCallsResponse) Status() string

Status returns HTTPResponse.Status

func (ListVoiceCallsResponse) StatusCode added in v0.27.0

func (r ListVoiceCallsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListWhatsAppMessageEventsParams added in v0.6.0

type ListWhatsAppMessageEventsParams struct {
	// Type Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.
	Type *WhatsAppEventType `form:"type,omitempty" json:"type,omitempty"`
}

ListWhatsAppMessageEventsParams defines parameters for ListWhatsAppMessageEvents.

type ListWhatsAppMessageEventsResponse added in v0.6.0

type ListWhatsAppMessageEventsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *WhatsAppEventList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseListWhatsAppMessageEventsResponse added in v0.6.0

func ParseListWhatsAppMessageEventsResponse(rsp *http.Response) (*ListWhatsAppMessageEventsResponse, error)

ParseListWhatsAppMessageEventsResponse parses an HTTP response from a ListWhatsAppMessageEventsWithResponse call

func (ListWhatsAppMessageEventsResponse) ContentType added in v0.6.0

func (r ListWhatsAppMessageEventsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListWhatsAppMessageEventsResponse) Status added in v0.6.0

Status returns HTTPResponse.Status

func (ListWhatsAppMessageEventsResponse) StatusCode added in v0.6.0

func (r ListWhatsAppMessageEventsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListWhatsAppMessagesParams added in v0.6.0

type ListWhatsAppMessagesParams struct {
	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// CreatedAfter Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedAfter *CreatedAfter `form:"created_after,omitempty" json:"created_after,omitempty"`

	// CreatedBefore Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset.
	CreatedBefore *CreatedBefore `form:"created_before,omitempty" json:"created_before,omitempty"`

	// Status Filter by status. Repeat the parameter to match any of several statuses.
	Status *[]WhatsAppMessageStatus `form:"status,omitempty" json:"status,omitempty"`

	// Direction Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).
	Direction *MessageDirection `form:"direction,omitempty" json:"direction,omitempty"`

	// To Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.
	To *string `form:"to,omitempty" json:"to,omitempty"`

	// From Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.
	From *string `form:"from,omitempty" json:"from,omitempty"`

	// PhoneNumber Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.
	PhoneNumber *string `form:"phone_number,omitempty" json:"phone_number,omitempty"`

	// Bsuid Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.
	Bsuid *string `form:"bsuid,omitempty" json:"bsuid,omitempty"`

	// Category Filter by category.
	Category *WhatsAppTemplateCategory `form:"category,omitempty" json:"category,omitempty"`

	// Tag Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.
	Tag *TagFilter `form:"tag,omitempty" json:"tag,omitempty"`
}

ListWhatsAppMessagesParams defines parameters for ListWhatsAppMessages.

type ListWhatsAppMessagesResponse added in v0.6.0

type ListWhatsAppMessagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *WhatsAppMessageList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
	JSON503      *ServiceUnavailable
}

func ParseListWhatsAppMessagesResponse added in v0.6.0

func ParseListWhatsAppMessagesResponse(rsp *http.Response) (*ListWhatsAppMessagesResponse, error)

ParseListWhatsAppMessagesResponse parses an HTTP response from a ListWhatsAppMessagesWithResponse call

func (ListWhatsAppMessagesResponse) ContentType added in v0.6.0

func (r ListWhatsAppMessagesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListWhatsAppMessagesResponse) Status added in v0.6.0

Status returns HTTPResponse.Status

func (ListWhatsAppMessagesResponse) StatusCode added in v0.6.0

func (r ListWhatsAppMessagesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListWorkspaceNumbersParams added in v0.34.0

type ListWorkspaceNumbersParams struct {
	// Number Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`.
	Number *string `form:"number,omitempty" json:"number,omitempty"`

	// CountryCode Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code.
	CountryCode *string `form:"country_code,omitempty" json:"country_code,omitempty"`

	// NumberType Return only allocated numbers of this physical type after applying the country and prefix filters.
	NumberType *NumberType `form:"number_type,omitempty" json:"number_type,omitempty"`

	// Prefix Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Digits only, and `country_code` is required alongside it, since the digits are national ones. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search.
	Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"`

	// Capabilities Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both.
	Capabilities *[]string `form:"capabilities,omitempty" json:"capabilities,omitempty"`

	// Limit Maximum number of items to return per page.
	Limit *PaginationLimit `form:"limit,omitempty" json:"limit,omitempty"`

	// StartingAfter Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
	StartingAfter *StartingAfter `form:"starting_after,omitempty" json:"starting_after,omitempty"`

	// EndingBefore Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
	EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"`

	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`
}

ListWorkspaceNumbersParams defines parameters for ListWorkspaceNumbers.

type ListWorkspaceNumbersResponse added in v0.34.0

type ListWorkspaceNumbersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NumberList
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseListWorkspaceNumbersResponse added in v0.34.0

func ParseListWorkspaceNumbersResponse(rsp *http.Response) (*ListWorkspaceNumbersResponse, error)

ParseListWorkspaceNumbersResponse parses an HTTP response from a ListWorkspaceNumbersWithResponse call

func (ListWorkspaceNumbersResponse) ContentType added in v0.34.0

func (r ListWorkspaceNumbersResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListWorkspaceNumbersResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (ListWorkspaceNumbersResponse) StatusCode added in v0.34.0

func (r ListWorkspaceNumbersResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type LookupClassification added in v0.31.0

type LookupClassification struct {
	Status *LookupPropertyStatus `json:"status,omitempty"`

	// Value The allocated service of the range. Present only when `status` is `ok`.
	Value *LookupClassificationValue `json:"value,omitempty"`
}

LookupClassification The allocated service of the number's range. Returned when you request the `classification` property.

This sits beside `line_type` rather than replacing it, so you can always see which source answered. The `line_type` property is included in the base lookup and comes from the carrier platform. The `classification` property is separately billed and comes from an intelligence source.

type LookupClassificationValue added in v0.31.0

type LookupClassificationValue string

LookupClassificationValue The allocated service of the number's range, at the precision the intelligence source publishes it.

This is a finer vocabulary than `line_type`, which reports what the carrier platform alone can tell. Some values have no carrier equivalent. For example, a number the carrier calls `service` may be classified as `premium_rate`, `shared_cost`, `universal_access`, or a voicemail platform. Where the fields overlap, they remain independent results rather than one refining the other.

Three values in particular have no carrier-side concept at all:

  • `m2m` is a range reserved for machine-to-machine traffic, belonging to no individual subscriber.
  • `national_rate` is a non-geographic landline number charged above the local rate.
  • `fixed_line_or_mobile` is a range a country allocates so a number can port between the two.
const (
	LookupClassificationValueCallingCards      LookupClassificationValue = "calling_cards"
	LookupClassificationValueFixedLine         LookupClassificationValue = "fixed_line"
	LookupClassificationValueFixedLineOrMobile LookupClassificationValue = "fixed_line_or_mobile"
	LookupClassificationValueIsp               LookupClassificationValue = "isp"
	LookupClassificationValueLocalRate         LookupClassificationValue = "local_rate"
	LookupClassificationValueM2m               LookupClassificationValue = "m2m"
	LookupClassificationValueMobile            LookupClassificationValue = "mobile"
	LookupClassificationValueNationalRate      LookupClassificationValue = "national_rate"
	LookupClassificationValueOther             LookupClassificationValue = "other"
	LookupClassificationValuePager             LookupClassificationValue = "pager"
	LookupClassificationValuePayphone          LookupClassificationValue = "payphone"
	LookupClassificationValuePersonalNumber    LookupClassificationValue = "personal_number"
	LookupClassificationValuePremiumRate       LookupClassificationValue = "premium_rate"
	LookupClassificationValueSatellite         LookupClassificationValue = "satellite"
	LookupClassificationValueService           LookupClassificationValue = "service"
	LookupClassificationValueSharedCost        LookupClassificationValue = "shared_cost"
	LookupClassificationValueShortCodes        LookupClassificationValue = "short_codes"
	LookupClassificationValueTollFree          LookupClassificationValue = "toll_free"
	LookupClassificationValueUniversalAccess   LookupClassificationValue = "universal_access"
	LookupClassificationValueVoiceMail         LookupClassificationValue = "voice_mail"
	LookupClassificationValueVoip              LookupClassificationValue = "voip"
	LookupClassificationValueVpn               LookupClassificationValue = "vpn"
)

Defines values for LookupClassificationValue.

func (LookupClassificationValue) Valid added in v0.31.0

func (e LookupClassificationValue) Valid() bool

Valid indicates whether the value is a known member of the LookupClassificationValue enum.

type LookupFlag added in v0.31.0

type LookupFlag string

LookupFlag A notable characteristic of a number. `ported` means the number has moved from the network that issued it to another one, so `network_info` and `original_network_info` name different carriers.

Open enum: more flags may be added over time, so treat an unrecognized value as a future flag rather than an error.

const (
	LookupFlagPorted LookupFlag = "ported"
)

Defines values for LookupFlag.

func (LookupFlag) Valid added in v0.31.0

func (e LookupFlag) Valid() bool

Valid indicates whether the value is a known member of the LookupFlag enum.

type LookupLineType added in v0.31.0

type LookupLineType string

LookupLineType What kind of line the number is, as reported by the carrier platform.

This is included in every base lookup, regardless of which properties you request.

  • `unknown`: the carrier platform holds no classification for the range.
  • `other`: it holds a classification with no equivalent here.
  • `m2m`: a range reserved for machine-to-machine traffic, belonging to no individual subscriber.

For the allocated service of the range at finer precision, request the `classification` property. That answers from a different source, with its own wider vocabulary, and is reported separately so you can always tell the two apart.

const (
	LookupLineTypeFixedLine   LookupLineType = "fixed_line"
	LookupLineTypeM2m         LookupLineType = "m2m"
	LookupLineTypeMobile      LookupLineType = "mobile"
	LookupLineTypeOther       LookupLineType = "other"
	LookupLineTypePager       LookupLineType = "pager"
	LookupLineTypePayphone    LookupLineType = "payphone"
	LookupLineTypePremiumRate LookupLineType = "premium_rate"
	LookupLineTypeSatellite   LookupLineType = "satellite"
	LookupLineTypeService     LookupLineType = "service"
	LookupLineTypeTollFree    LookupLineType = "toll_free"
	LookupLineTypeUnknown     LookupLineType = "unknown"
	LookupLineTypeVoip        LookupLineType = "voip"
)

Defines values for LookupLineType.

func (LookupLineType) Valid added in v0.31.0

func (e LookupLineType) Valid() bool

Valid indicates whether the value is a known member of the LookupLineType enum.

type LookupNetworkInfo added in v0.31.0

type LookupNetworkInfo struct {
	// CarrierName The carrier's name, absent when the carrier could not be identified.
	CarrierName *string `json:"carrier_name,omitempty"`

	// Mcc The mobile country code, absent for a network that has none or could not be identified.
	Mcc *string `json:"mcc,omitempty"`

	// Mnc The mobile network code, absent for a network that has none or could not be identified.
	Mnc *string `json:"mnc,omitempty"`
}

LookupNetworkInfo The network a number belongs to.

type LookupPorting added in v0.31.0

type LookupPorting struct {
	// History Every move on record, oldest first. Absent when the number has never ported or when its registry publishes no history.
	History *[]LookupPortingEvent `json:"history,omitempty"`

	// LastPortedAt When the number last moved network. Absent when it has never ported or when no date is on record.
	LastPortedAt *time.Time `json:"last_ported_at,omitempty"`

	// LastPortedAtIsApproximate Whether `last_ported_at` is an approximation. Some registries record the period of a move without its exact day.
	LastPortedAtIsApproximate *bool `json:"last_ported_at_is_approximate,omitempty"`

	// Ported Whether the number has ever moved network. `false` is a positive finding rather than a lack of one: the registry was consulted and holds no move for this number. Present only when `status` is `ok`.
	Ported *bool                 `json:"ported,omitempty"`
	Status *LookupPropertyStatus `json:"status,omitempty"`
}

LookupPorting Whether the number has ever moved network, when it last did, and its full porting record. Returned when you request the `porting` property. The base lookup only reports whether the number has ever ported, through the `ported` flag.

type LookupPortingEvent added in v0.31.0

type LookupPortingEvent struct {
	// Action What the record describes, as the number's registry reports it. Registries use their own short codes rather than a shared vocabulary, so treat this as a label to display rather than a value to branch on.
	Action *string `json:"action,omitempty"`

	// OccurredAt When the move was recorded, `null` when the record carries no date.
	OccurredAt *time.Time `json:"occurred_at,omitempty"`
}

LookupPortingEvent One recorded move of a number between networks.

type LookupPresence added in v0.31.0

type LookupPresence struct {
	// Reachable Whether the number is registered on a network and able to receive traffic. A `false` value means the network answered and reported the number as currently unreachable. This differs from the API being unable to find out. Present only when `status` is `ok`.
	Reachable *bool                 `json:"reachable,omitempty"`
	Status    *LookupPropertyStatus `json:"status,omitempty"`
}

LookupPresence Whether the number is live on its network right now. Returned when you request the `presence` property.

The result reflects a real-time query to the network where the number is registered.

type LookupProperty added in v0.31.0

type LookupProperty string

LookupProperty An intelligence property you can add to a base phone number lookup.

  • `classification`: the property resolves `line_type` to its precise allocated service (premium rate, satellite, machine-to-machine, payphone) where the base lookup only distinguishes broad categories.
  • `porting`: the property returns when the number last moved network and its full porting record.
  • `presence`: the property reports whether the number is currently live on the network.
  • `roaming`: the property reports whether it is roaming and on which network.
  • `sim_swap`: the property returns when its SIM last changed.
  • `score`: the property returns a credibility score from 0 to 100.

Each property you request is billed separately, and only when it is delivered.

const (
	Classification LookupProperty = "classification"
	Porting        LookupProperty = "porting"
	Presence       LookupProperty = "presence"
	Roaming        LookupProperty = "roaming"
	Score          LookupProperty = "score"
	SimSwap        LookupProperty = "sim_swap"
)

Defines values for LookupProperty.

func (LookupProperty) Valid added in v0.31.0

func (e LookupProperty) Valid() bool

Valid indicates whether the value is a known member of the LookupProperty enum.

type LookupPropertyStatus added in v0.31.0

type LookupPropertyStatus string

LookupPropertyStatus How a requested property resolved.

  • `ok`: the property was answered and its value is in the response.
  • `unavailable`: no answer arrived, so the property adds nothing: its block is `null`, or for `classification`, `line_type` retains the value from the base lookup. The property is not billed.
  • `inconclusive`: an answer arrived but does not resolve the property, either because the number is outside the coverage of the data behind it or because the source returned a value this property does not report. It is a real answer rather than a missing one, and it is not billed either.

Open enum: further statuses may be added over time, so treat an unrecognized value as a future one rather than an error. Only `ok` carries a value and only `ok` is billed, so branching on `ok` and treating everything else as "not answered" stays correct however the vocabulary grows.

const (
	LookupPropertyStatusInconclusive LookupPropertyStatus = "inconclusive"
	LookupPropertyStatusOk           LookupPropertyStatus = "ok"
	LookupPropertyStatusUnavailable  LookupPropertyStatus = "unavailable"
)

Defines values for LookupPropertyStatus.

func (LookupPropertyStatus) Valid added in v0.31.0

func (e LookupPropertyStatus) Valid() bool

Valid indicates whether the value is a known member of the LookupPropertyStatus enum.

type LookupRoaming added in v0.31.0

type LookupRoaming struct {
	// IsRoaming Whether the number is currently roaming outside its home network. Present only when `status` is `ok`.
	IsRoaming *bool `json:"is_roaming,omitempty"`

	// Mcc The mobile country code of the visited network. Absent when the number is not roaming or the visited network is not reported.
	Mcc *string `json:"mcc,omitempty"`

	// Mnc The mobile network code of the visited network. Absent when the number is not roaming or the visited network is not reported.
	Mnc    *string               `json:"mnc,omitempty"`
	Status *LookupPropertyStatus `json:"status,omitempty"`
}

LookupRoaming Whether the number is roaming, and on which network. Returned when you request the `roaming` property.

type LookupScore added in v0.31.0

type LookupScore struct {
	Status *LookupPropertyStatus `json:"status,omitempty"`

	// Value Credibility from 0 (low) to 100 (high). A low score means the number looks less credible than a typical subscriber line in the same range. Treat it as one signal instead of a verdict. It is a composite and is not derivable from the other properties. Present only when `status` is `ok`.
	Value *int `json:"value,omitempty"`
}

LookupScore A credibility score for the number. Returned when you request the `score` property.

type LookupSimSwap added in v0.31.0

type LookupSimSwap struct {
	// LastSwappedAt When the SIM was last changed. Absent when only a recency band is known.
	LastSwappedAt *time.Time `json:"last_swapped_at,omitempty"`

	// MaxDays The upper bound, in days, of how long ago the SIM was last changed. Absent when no upper bound is known; with a lower bound present, that means the change was at least `min_days` ago.
	MaxDays *int `json:"max_days,omitempty"`

	// MinDays The lower bound, in days, of how long ago the SIM was last changed. Networks that do not release an exact date report a band instead; absent when no lower bound is known.
	MinDays *int                  `json:"min_days,omitempty"`
	Status  *LookupPropertyStatus `json:"status,omitempty"`
}

LookupSimSwap When the number's SIM last changed. Returned when you request the `sim_swap` property.

type Mailbox added in v0.4.1

type Mailbox struct {
	// Address The mailbox's email address. Immutable once created.
	Address *openapi_types.Email `json:"address,omitempty"`

	// Channel The channel this mailbox receives on. Always `email`.
	Channel *MailboxChannel `json:"channel,omitempty"`

	// CreatedAt When the mailbox was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// DefaultReplyTo Default `Reply-To` address stamped on mail sent from this mailbox. `null` when unset.
	DefaultReplyTo *openapi_types.Email `json:"default_reply_to"`

	// DeletedAt When the mailbox was deleted, or `null` if it is active. A deleted mailbox stops receiving mail immediately but can be restored for 30 days, after which it and its remembered messages are permanently removed.
	DeletedAt *time.Time `json:"deleted_at,omitempty"`

	// DisplayName Display name used as the sender name on mail from this mailbox. `null` when unset.
	DisplayName      *string          `json:"display_name"`
	Id               MailboxID        `json:"id"`
	InboundAddressId InboundAddressID `json:"inbound_address_id"`

	// LocalPartGenerated Whether we generated the local part of the address. `false` means a custom handle was chosen at creation. On the shared `inbox.ai` domain a custom handle counts against your plan's custom-handle allowance.
	LocalPartGenerated *bool `json:"local_part_generated,omitempty"`

	// MessageCount Number of retained messages across all threads.
	MessageCount *int64 `json:"message_count,omitempty"`

	// Metadata Your own key/value data attached to the mailbox. Up to 2 KB. Keys starting with `__bird` are reserved.
	Metadata map[string]interface{} `json:"metadata"`

	// Owner The principal that owns the mailbox. Always the workspace.
	Owner MailboxOwner `json:"owner"`

	// ReceivePolicy Which inbound mail the mailbox accepts:
	//
	// - `open`: Accepts everything not blocked by a rule.
	// - `replies_only`: Accepts only replies to messages this mailbox has
	//   sent. A reply must match a message the mailbox sent. Landing in an
	//   existing thread by itself does not count.
	// - `allowlist`: Accepts only senders matching an allow rule. Replies to
	//   prior outbound mail are always admitted unless blocked.
	// - `drop`: Stores nothing.
	ReceivePolicy MailboxReceivePolicy `json:"receive_policy"`

	// RetentionTier How long the mailbox remembers message metadata and extracted text. Original rendered source (HTML, raw message, attachments) is always available for 30 days regardless of tier.
	RetentionTier MailboxRetentionTier `json:"retention_tier"`

	// State Lifecycle state. Suspended mailboxes stop emitting events. Inbound mail is retained as blocked.
	State *MailboxState `json:"state,omitempty"`

	// ThreadCount Number of retained threads.
	ThreadCount *int64 `json:"thread_count,omitempty"`

	// UnreadThreadCount Number of threads with unread messages in this mailbox, excluding trash. `null` on create/update responses.
	UnreadThreadCount *int64 `json:"unread_thread_count,omitempty"`

	// UpdatedAt When the mailbox was last updated.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

Mailbox A durable mailbox identity for an agent. A mailbox owns an email address, groups mail into threads, applies receive policy, and remembers message metadata and extracted text for its retention tier. The original rendered source of each message remains available for 30 days.

type MailboxChannel added in v0.4.1

type MailboxChannel string

MailboxChannel The channel this mailbox receives on. Always `email`.

const (
	Email MailboxChannel = "email"
)

Defines values for MailboxChannel.

func (MailboxChannel) Valid added in v0.4.1

func (e MailboxChannel) Valid() bool

Valid indicates whether the value is a known member of the MailboxChannel enum.

type MailboxCreate added in v0.4.1

type MailboxCreate struct {
	// DefaultReplyTo Default `Reply-To` address stamped on mail sent from this mailbox.
	DefaultReplyTo *openapi_types.Email `json:"default_reply_to,omitempty"`

	// DisplayName Display name used as the sender name on mail from this mailbox.
	DisplayName *string `json:"display_name,omitempty"`

	// Domain The domain the address lives under. Defaults to `inbox.ai`, our shared mailbox domain. Creating a mailbox claims the shared address for your organization on a first-come, first-served basis. The address remains reserved to your organization after the mailbox is deleted. You can instead use one of your own domains enabled for receiving email.
	Domain *string `json:"domain,omitempty"`

	// LocalPart The local part of the mailbox address (the part before `@`). Letters, digits, dots, underscores, and hyphens. Stored lowercase. On the shared `inbox.ai` domain, separators must sit between letters or digits. Leading, trailing, and repeated separators are not allowed. Reserved names such as `postmaster` and `abuse` are unavailable. Choosing your own local part uses one of your plan's custom-handle allowance slots; generated addresses remain available. Omit this field to generate a random local part.
	LocalPart *string `json:"local_part,omitempty"`

	// Metadata Your own key/value data to attach to the mailbox. Up to 2 KB. Keys starting with `__bird` are reserved.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// ReceivePolicy Which inbound mail the mailbox accepts:
	//
	// - `open`: Accepts everything not blocked by a rule.
	// - `replies_only`: Accepts only replies to messages this mailbox has
	//   sent. A reply must match a message the mailbox sent. Landing in an
	//   existing thread by itself does not count.
	// - `allowlist`: Accepts only senders matching an allow rule.
	// - `drop`: Stores nothing.
	ReceivePolicy *MailboxCreateReceivePolicy `json:"receive_policy,omitempty"`

	// RetentionTier How long the mailbox remembers message metadata and extracted text. Original rendered source is always available for 30 days regardless of tier.
	RetentionTier *MailboxCreateRetentionTier `json:"retention_tier,omitempty"`
}

MailboxCreate Parameters for creating a mailbox.

type MailboxCreateReceivePolicy added in v0.4.1

type MailboxCreateReceivePolicy string

MailboxCreateReceivePolicy Which inbound mail the mailbox accepts:

  • `open`: Accepts everything not blocked by a rule.
  • `replies_only`: Accepts only replies to messages this mailbox has sent. A reply must match a message the mailbox sent. Landing in an existing thread by itself does not count.
  • `allowlist`: Accepts only senders matching an allow rule.
  • `drop`: Stores nothing.
const (
	MailboxCreateReceivePolicyAllowlist   MailboxCreateReceivePolicy = "allowlist"
	MailboxCreateReceivePolicyDrop        MailboxCreateReceivePolicy = "drop"
	MailboxCreateReceivePolicyOpen        MailboxCreateReceivePolicy = "open"
	MailboxCreateReceivePolicyRepliesOnly MailboxCreateReceivePolicy = "replies_only"
)

Defines values for MailboxCreateReceivePolicy.

func (MailboxCreateReceivePolicy) Valid added in v0.4.1

func (e MailboxCreateReceivePolicy) Valid() bool

Valid indicates whether the value is a known member of the MailboxCreateReceivePolicy enum.

type MailboxCreateRetentionTier added in v0.4.1

type MailboxCreateRetentionTier string

MailboxCreateRetentionTier How long the mailbox remembers message metadata and extracted text. Original rendered source is always available for 30 days regardless of tier.

const (
	MailboxCreateRetentionTierN30d MailboxCreateRetentionTier = "30d"
)

Defines values for MailboxCreateRetentionTier.

func (MailboxCreateRetentionTier) Valid added in v0.4.1

func (e MailboxCreateRetentionTier) Valid() bool

Valid indicates whether the value is a known member of the MailboxCreateRetentionTier enum.

type MailboxID added in v0.4.1

type MailboxID = string

MailboxID defines model for MailboxID.

type MailboxList added in v0.4.1

type MailboxList struct {
	Data []Mailbox `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

MailboxList defines model for MailboxList.

type MailboxOwner added in v0.4.1

type MailboxOwner struct {
	Id WorkspaceID `json:"id"`

	// Type Owner principal type.
	Type *MailboxOwnerType `json:"type,omitempty"`
}

MailboxOwner The principal that owns the mailbox. Always the workspace.

type MailboxOwnerType added in v0.4.1

type MailboxOwnerType string

MailboxOwnerType Owner principal type.

const (
	MailboxOwnerTypeWorkspace MailboxOwnerType = "workspace"
)

Defines values for MailboxOwnerType.

func (MailboxOwnerType) Valid added in v0.4.1

func (e MailboxOwnerType) Valid() bool

Valid indicates whether the value is a known member of the MailboxOwnerType enum.

type MailboxReceivePolicy added in v0.4.1

type MailboxReceivePolicy string

MailboxReceivePolicy Which inbound mail the mailbox accepts:

  • `open`: Accepts everything not blocked by a rule.
  • `replies_only`: Accepts only replies to messages this mailbox has sent. A reply must match a message the mailbox sent. Landing in an existing thread by itself does not count.
  • `allowlist`: Accepts only senders matching an allow rule. Replies to prior outbound mail are always admitted unless blocked.
  • `drop`: Stores nothing.
const (
	MailboxReceivePolicyAllowlist   MailboxReceivePolicy = "allowlist"
	MailboxReceivePolicyDrop        MailboxReceivePolicy = "drop"
	MailboxReceivePolicyOpen        MailboxReceivePolicy = "open"
	MailboxReceivePolicyRepliesOnly MailboxReceivePolicy = "replies_only"
)

Defines values for MailboxReceivePolicy.

func (MailboxReceivePolicy) Valid added in v0.4.1

func (e MailboxReceivePolicy) Valid() bool

Valid indicates whether the value is a known member of the MailboxReceivePolicy enum.

type MailboxRetentionTier added in v0.4.1

type MailboxRetentionTier string

MailboxRetentionTier How long the mailbox remembers message metadata and extracted text. Original rendered source (HTML, raw message, attachments) is always available for 30 days regardless of tier.

const (
	MailboxRetentionTierN1y  MailboxRetentionTier = "1y"
	MailboxRetentionTierN30d MailboxRetentionTier = "30d"
	MailboxRetentionTierN90d MailboxRetentionTier = "90d"
)

Defines values for MailboxRetentionTier.

func (MailboxRetentionTier) Valid added in v0.4.1

func (e MailboxRetentionTier) Valid() bool

Valid indicates whether the value is a known member of the MailboxRetentionTier enum.

type MailboxState added in v0.4.1

type MailboxState string

MailboxState Lifecycle state. Suspended mailboxes stop emitting events. Inbound mail is retained as blocked.

const (
	MailboxStateActive    MailboxState = "active"
	MailboxStateSuspended MailboxState = "suspended"
)

Defines values for MailboxState.

func (MailboxState) Valid added in v0.4.1

func (e MailboxState) Valid() bool

Valid indicates whether the value is a known member of the MailboxState enum.

type MailboxStatsPoint added in v0.12.0

type MailboxStatsPoint struct {
	// Bucket The day (`YYYY-MM-DD`) or instant (RFC 3339, on the bucket boundary) this point covers, matching the period's grain.
	Bucket     *string               `json:"bucket,omitempty"`
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// Received Distinct emails the mailbox received in this bucket.
	Received *int `json:"received,omitempty"`

	// SendsAccepted Distinct email messages the mailbox sent that were accepted in this bucket, counted at the message level (one per accepted send regardless of how many recipients it addresses). Every other sent-mail metric in `delivery` and `engagement` is recipient-level or event-level.
	SendsAccepted *int `json:"sends_accepted,omitempty"`
}

MailboxStatsPoint Per-mailbox email activity for one time bucket, bucketed by event time. Sent-mail metrics use the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox. Buckets with no activity are included with zero counts and `null` latency percentiles.

type MailboxStatsResponse added in v0.12.0

type MailboxStatsResponse struct {
	// Data One row per bucket in the period, in chronological order. Buckets with no activity are included with zero counts.
	Data *[]MailboxStatsPoint `json:"data,omitempty"`

	// Period The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.
	Period EmailStatsSeriesPeriod `json:"period"`

	// Summary Single-row aggregate of the mailbox's email activity across the full requested period. Counts are sums of per-bucket counts across the window. Latency percentiles are computed across the whole period rather than summed per bucket. Rates are `null` when their denominator is zero.
	Summary *MailboxStatsSummary `json:"summary,omitempty"`
}

MailboxStatsResponse A mailbox's sent and received email statistics: a period-wide summary plus a bucketed time series. `period` echoes the range and grain actually used. `data` is one row per bucket in chronological order.

type MailboxStatsSummary added in v0.12.0

type MailboxStatsSummary struct {
	Delivery   *EmailDeliveryStats   `json:"delivery,omitempty"`
	Engagement *EmailEngagementStats `json:"engagement,omitempty"`
	Latency    *EmailLatencyStats    `json:"latency,omitempty"`

	// Received Distinct emails the mailbox received, summed per bucket across the period.
	Received *int `json:"received,omitempty"`

	// SendsAccepted Distinct email messages the mailbox sent that were accepted, counted at the message level and summed per bucket across the period.
	SendsAccepted *int `json:"sends_accepted,omitempty"`
}

MailboxStatsSummary Single-row aggregate of the mailbox's email activity across the full requested period. Counts are sums of per-bucket counts across the window. Latency percentiles are computed across the whole period rather than summed per bucket. Rates are `null` when their denominator is zero.

type MailboxUpdate added in v0.4.1

type MailboxUpdate struct {
	// DefaultReplyTo Default `Reply-To` address stamped on mail sent from this mailbox. `null` clears it.
	DefaultReplyTo nullable.Nullable[string] `json:"default_reply_to,omitempty"`

	// DisplayName Display name used as the sender name on mail from this mailbox. `null` clears it.
	DisplayName nullable.Nullable[string] `json:"display_name,omitempty"`

	// Metadata Replaces the mailbox's key/value data. Up to 2 KB. Keys starting with `__bird` are reserved.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// ReceivePolicy Which inbound mail the mailbox accepts:
	//
	// - `open`: Accepts everything not blocked by a rule.
	// - `replies_only`: Accepts only replies to messages this mailbox has
	//   sent. A reply must match a message the mailbox sent. Landing in an
	//   existing thread by itself does not count.
	// - `allowlist`: Accepts only senders matching an allow rule.
	// - `drop`: Stores nothing.
	ReceivePolicy *MailboxUpdateReceivePolicy `json:"receive_policy,omitempty"`

	// RetentionTier How long the mailbox remembers message metadata and extracted text. Lowering the tier deletes remembered messages older than the new horizon, and requires `confirm=true` when that would happen.
	RetentionTier *MailboxUpdateRetentionTier `json:"retention_tier,omitempty"`
}

MailboxUpdate Fields to update on a mailbox. Omitted fields are unchanged. Fields set to `null` are cleared. The address and domain are immutable.

type MailboxUpdateReceivePolicy added in v0.4.1

type MailboxUpdateReceivePolicy string

MailboxUpdateReceivePolicy Which inbound mail the mailbox accepts:

  • `open`: Accepts everything not blocked by a rule.
  • `replies_only`: Accepts only replies to messages this mailbox has sent. A reply must match a message the mailbox sent. Landing in an existing thread by itself does not count.
  • `allowlist`: Accepts only senders matching an allow rule.
  • `drop`: Stores nothing.
const (
	MailboxUpdateReceivePolicyAllowlist   MailboxUpdateReceivePolicy = "allowlist"
	MailboxUpdateReceivePolicyDrop        MailboxUpdateReceivePolicy = "drop"
	MailboxUpdateReceivePolicyOpen        MailboxUpdateReceivePolicy = "open"
	MailboxUpdateReceivePolicyRepliesOnly MailboxUpdateReceivePolicy = "replies_only"
)

Defines values for MailboxUpdateReceivePolicy.

func (MailboxUpdateReceivePolicy) Valid added in v0.4.1

func (e MailboxUpdateReceivePolicy) Valid() bool

Valid indicates whether the value is a known member of the MailboxUpdateReceivePolicy enum.

type MailboxUpdateRetentionTier added in v0.4.1

type MailboxUpdateRetentionTier string

MailboxUpdateRetentionTier How long the mailbox remembers message metadata and extracted text. Lowering the tier deletes remembered messages older than the new horizon, and requires `confirm=true` when that would happen.

const (
	N30d MailboxUpdateRetentionTier = "30d"
)

Defines values for MailboxUpdateRetentionTier.

func (MailboxUpdateRetentionTier) Valid added in v0.4.1

func (e MailboxUpdateRetentionTier) Valid() bool

Valid indicates whether the value is a known member of the MailboxUpdateRetentionTier enum.

type MessageCost added in v0.26.0

type MessageCost struct {
	// Amount Total charged, as a decimal string: the sum of the components below. Net of tax, which applies to your wallet balance rather than to an individual charge.
	Amount *string `json:"amount,omitempty"`

	// CurrencyCode ISO 4217 three-letter currency code.
	CurrencyCode CurrencyCode `json:"currency_code"`

	// PassthroughAmount Third-party fees we pass on, as a decimal string, such as US 10DLC carrier surcharges. `null` when this component was not priced; `"0.00000"` when it priced at zero.
	PassthroughAmount *string `json:"passthrough_amount,omitempty"`

	// TransactionAmount What we charged to carry the message, as a decimal string. `null` when this component was not priced; `"0.00000"` when it priced at zero.
	TransactionAmount *string `json:"transaction_amount,omitempty"`
}

MessageCost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.

type MessageDirection added in v0.16.0

type MessageDirection string

MessageDirection Whether a message was sent from the workspace (`outbound`) or received by it (`inbound`).

const (
	MessageDirectionInbound  MessageDirection = "inbound"
	MessageDirectionOutbound MessageDirection = "outbound"
)

Defines values for MessageDirection.

func (MessageDirection) Valid added in v0.16.0

func (e MessageDirection) Valid() bool

Valid indicates whether the value is a known member of the MessageDirection enum.

type NextAction added in v0.32.0

type NextAction struct {
	// Description A short, human-readable label for the step, suitable for display.
	Description string `json:"description"`

	// Kind What you do about this step.
	//
	// - `operation`: call the operation named in `operation`, then
	//   read again.
	// - `external`: act somewhere this API does not reach, then read
	//   again.
	// - `wait`: nothing is asked of you, so read again later.
	// - `terminal`: nothing you do resolves this, so stop retrying.
	//
	// Tolerate a value you do not recognize: show the `description` and
	// offer no action.
	Kind string `json:"kind"`

	// Operation The operationId to call. Present only when `kind` is `operation`. The operation's own schema says how to call it; this says only which one, and what to address it with.
	Operation *string `json:"operation,omitempty"`

	// Params The parameters that address the operation, by name: `{"sender_id": "…"}` for an operation on `/v1/sms/senders/{sender_id}/requirements`. A parameter the operation takes in its query string is given the same way, so an operation addressed as `?subject_id=` carries `{"subject_id": "…"}`. Every parameter the call needs is here, whether its value came from the thing you were acting on or is fixed for this step, so you can make the call from this object alone. Present only when `kind` is `operation` and the operation names a subject. A request body, when the operation takes one, is described by the operation's own schema and never appears here.
	Params *map[string]string `json:"params,omitempty"`

	// Url A URL to open. Present only when `kind` is `external`, and only when the step has one. An external step whose `description` says to go and do something with no URL to open is normal.
	Url *string `json:"url,omitempty"`
}

NextAction defines model for NextAction.

type NotFound

type NotFound = Error

NotFound defines model for NotFound.

type Number added in v0.34.0

type Number struct {
	// AllocatedAt When this number was allocated to your workspace.
	AllocatedAt *time.Time `json:"allocated_at,omitempty"`

	// Capabilities Capabilities supported by this number.
	Capabilities *[]NumberCapability `json:"capabilities,omitempty"`
	CountryCode  *CountryCode        `json:"country_code,omitempty"`

	// Id Identifier of this allocated number. Pass it as `number_id` to read this number, or to release it when kind is dedicated.
	Id *AllocatedNumberID `json:"id,omitempty"`

	// Kind How this number is allocated. `dedicated` belongs to your workspace and is billed as a subscription. `shared` is provided through Bird-managed shared infrastructure and is not owned or billed as a workspace subscription.
	Kind *NumberKind `json:"kind,omitempty"`

	// Number Phone number in E.164 format.
	Number *string `json:"number,omitempty"`

	// NumberType Physical type of this phone number.
	NumberType *NumberType `json:"number_type,omitempty"`

	// Ownership Where this number stands with the ownership paperwork its country requires. `null` when the country requires none, which is the usual case: a number with no `ownership` object is usable as soon as it is allocated. Also `null` when that standing cannot be established right now; `status` still reads `pending_compliance` while the number is blocked, so re-read this field rather than caching its absence. We manage the paperwork for shared short codes, so this field is always `null` for them.
	Ownership *NumberOwnership `json:"ownership,omitempty"`

	// ReleasedAt When this number was released. `null` while it is still allocated to your workspace.
	ReleasedAt *time.Time `json:"released_at,omitempty"`

	// Status Whether this number can carry traffic.
	//
	// - `active` means this number is allocated to your workspace and usable.
	// - `pending_compliance` means this number is allocated to your workspace and billed,
	//   but it cannot carry traffic until the ownership paperwork its country requires is
	//   accepted. Read `ownership.next` for what advances it, and re-read later if
	//   `ownership` is momentarily `null`.
	// - `released` means this number is no longer allocated to your workspace.
	//
	// An allocated number is not always enough to send from it: some destination
	// countries also require an approved registration for the sender.
	Status *NumberStatus `json:"status,omitempty"`
}

Number defines model for Number.

type NumberCapability added in v0.34.0

type NumberCapability string

NumberCapability A capability supported by a phone number. New capabilities may be added over time, so treat unrecognized values as supported capabilities rather than errors.

const (
	NumberCapabilityMms   NumberCapability = "mms"
	NumberCapabilitySms   NumberCapability = "sms"
	NumberCapabilityVoice NumberCapability = "voice"
)

Defines values for NumberCapability.

func (NumberCapability) Valid added in v0.34.0

func (e NumberCapability) Valid() bool

Valid indicates whether the value is a known member of the NumberCapability enum.

type NumberKind added in v0.34.0

type NumberKind string

NumberKind How this number is allocated. `dedicated` belongs to your workspace and is billed as a subscription. `shared` is provided through Bird-managed shared infrastructure and is not owned or billed as a workspace subscription.

const (
	Dedicated NumberKind = "dedicated"
	Shared    NumberKind = "shared"
)

Defines values for NumberKind.

func (NumberKind) Valid added in v0.34.0

func (e NumberKind) Valid() bool

Valid indicates whether the value is a known member of the NumberKind enum.

type NumberList added in v0.34.0

type NumberList struct {
	Data []Number `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

NumberList defines model for NumberList.

type NumberOwnership added in v0.34.0

type NumberOwnership struct {
	// BlockedAt When the number stopped being able to carry traffic, and null while it can. Always null when `satisfied` is true, but null does not imply it: a number whose country began asking after you bought it is usable with its paperwork still outstanding. A number can also arrive blocked, and one that was usable can be blocked again if its approval is withdrawn.
	BlockedAt *time.Time `json:"blocked_at,omitempty"`

	// Next What you do about it, in the order to do it. Empty only when `satisfied` is true, so while anything is outstanding there is always at least one step. When what you already sent is being reviewed and nothing is needed from you, that step has kind `wait` and says so. Re-read it after each call rather than caching the first list you saw.
	Next *[]NextAction `json:"next,omitempty"`

	// Satisfied Whether the paperwork is accepted. Read `next` for what advances it while this is false. Whether sending is currently refused is reported by `blocked_at` instead: a number bought before its country asked for anything is unsatisfied and still usable until a review says otherwise.
	Satisfied *bool `json:"satisfied,omitempty"`
}

NumberOwnership Where this number stands with the ownership paperwork its country requires before it may carry traffic. Present only for a number whose country requires any, so its absence means no paperwork was ever asked for and this number is unconditionally usable. Absent as well when the requirement cannot be established right now, since reporting either answer would state something about your paperwork that has not been checked.

type NumberStatus added in v0.34.0

type NumberStatus string

NumberStatus Whether this number can carry traffic.

  • `active` means this number is allocated to your workspace and usable.
  • `pending_compliance` means this number is allocated to your workspace and billed, but it cannot carry traffic until the ownership paperwork its country requires is accepted. Read `ownership.next` for what advances it, and re-read later if `ownership` is momentarily `null`.
  • `released` means this number is no longer allocated to your workspace.

An allocated number is not always enough to send from it: some destination countries also require an approved registration for the sender.

const (
	NumberStatusActive            NumberStatus = "active"
	NumberStatusPendingCompliance NumberStatus = "pending_compliance"
	NumberStatusReleased          NumberStatus = "released"
)

Defines values for NumberStatus.

func (NumberStatus) Valid added in v0.34.0

func (e NumberStatus) Valid() bool

Valid indicates whether the value is a known member of the NumberStatus enum.

type NumberType added in v0.34.0

type NumberType string

NumberType Physical type of a phone number. New number types may be added over time, so treat unrecognized values as supported types rather than errors.

const (
	NumberTypeLocal         NumberType = "local"
	NumberTypeMobile        NumberType = "mobile"
	NumberTypeNational      NumberType = "national"
	NumberTypeShortCode     NumberType = "short_code"
	NumberTypeShortCodeFteu NumberType = "short_code_fteu"
	NumberTypeTollFree      NumberType = "toll_free"
)

Defines values for NumberType.

func (NumberType) Valid added in v0.34.0

func (e NumberType) Valid() bool

Valid indicates whether the value is a known member of the NumberType enum.

type NumbersDedicatedAllocationID added in v0.34.0

type NumbersDedicatedAllocationID = string

NumbersDedicatedAllocationID defines model for NumbersDedicatedAllocationID.

type NumbersOrder added in v0.34.0

type NumbersOrder struct {
	// CompletedAt When the purchase completed and the number became owned (status completed). `null` for orders still in progress or failed.
	CompletedAt *time.Time   `json:"completed_at,omitempty"`
	CountryCode *CountryCode `json:"country_code,omitempty"`
	CreatedAt   *time.Time   `json:"created_at,omitempty"`

	// FailureReason Human-readable reason the purchase failed. `null` unless status is failed. An order can fail some time after it was created, so `updated_at` tells you when the failure was recorded rather than when the order was placed.
	FailureReason *string `json:"failure_reason,omitempty"`

	// Id Identifier of this purchase order.
	Id *NumbersOrderID `json:"id,omitempty"`

	// Number The number being acquired, in E.164 format.
	Number *string `json:"number,omitempty"`

	// NumberId Identifier of the number this order produced, set when `status` is `completed`. Pass it as `number_id` to `GET /v1/numbers/{number_id}` or `DELETE /v1/numbers/{number_id}`. `null` until the order completes.
	NumberId *NumbersDedicatedAllocationID `json:"number_id,omitempty"`

	// NumberType Physical type of the number being acquired.
	NumberType *NumberType         `json:"number_type,omitempty"`
	Status     *NumbersOrderStatus `json:"status,omitempty"`
	UpdatedAt  *time.Time          `json:"updated_at,omitempty"`
}

NumbersOrder defines model for NumbersOrder.

type NumbersOrderCreate added in v0.34.0

type NumbersOrderCreate struct {
	// Number The number to acquire, in E.164 format, as returned by `GET /v1/numbers/available`.
	Number string `json:"number"`
}

NumbersOrderCreate defines model for NumbersOrderCreate.

type NumbersOrderID added in v0.34.0

type NumbersOrderID = string

NumbersOrderID defines model for NumbersOrderID.

type NumbersOrderList added in v0.34.0

type NumbersOrderList struct {
	Data []NumbersOrder `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

NumbersOrderList defines model for NumbersOrderList.

type NumbersOrderStatus added in v0.34.0

type NumbersOrderStatus string

NumbersOrderStatus Lifecycle state of a number purchase order:

- `charging`: Securing funds. - `ordering`: Placing the order with the carrier. - `pending`: The carrier accepted the order and is provisioning the number. - `completed`: Your workspace owns the number. - `failed`: The purchase did not complete.

A setup fee already charged is non-refundable. Contact support about a failed order.

const (
	NumbersOrderStatusCharging  NumbersOrderStatus = "charging"
	NumbersOrderStatusCompleted NumbersOrderStatus = "completed"
	NumbersOrderStatusFailed    NumbersOrderStatus = "failed"
	NumbersOrderStatusOrdering  NumbersOrderStatus = "ordering"
	NumbersOrderStatusPending   NumbersOrderStatus = "pending"
)

Defines values for NumbersOrderStatus.

func (NumbersOrderStatus) Valid added in v0.34.0

func (e NumbersOrderStatus) Valid() bool

Valid indicates whether the value is a known member of the NumbersOrderStatus enum.

type OrderDesc

type OrderDesc string

OrderDesc defines model for OrderDesc.

const (
	OrderDescAsc  OrderDesc = "asc"
	OrderDescDesc OrderDesc = "desc"
)

Defines values for OrderDesc.

func (OrderDesc) Valid

func (e OrderDesc) Valid() bool

Valid indicates whether the value is a known member of the OrderDesc enum.

type OrganizationID added in v0.37.0

type OrganizationID = string

OrganizationID defines model for OrganizationID.

type PaginationLimit

type PaginationLimit = int

PaginationLimit defines model for PaginationLimit.

type PayloadTooLarge added in v0.2.0

type PayloadTooLarge = Error

PayloadTooLarge defines model for PayloadTooLarge.

type PaymentRequired

type PaymentRequired = Error

PaymentRequired defines model for PaymentRequired.

type PhoneNumberLookup added in v0.31.0

type PhoneNumberLookup struct {
	// Classification The allocated service of the number's range. Absent unless you requested the `classification` property.
	Classification *LookupClassification `json:"classification,omitempty"`

	// CountryCode The ISO 3166-1 alpha-2 country of the number. Absent when the number belongs to no single country, as a non-geographic range does.
	CountryCode *CountryCode `json:"country_code,omitempty"`

	// Flags Notable characteristics of the number. Empty when none apply.
	Flags    *[]LookupFlag   `json:"flags,omitempty"`
	LineType *LookupLineType `json:"line_type,omitempty"`

	// NetworkInfo The network that serves the number today. Absent when no network could be identified.
	NetworkInfo *LookupNetworkInfo `json:"network_info,omitempty"`

	// OriginalNetworkInfo The network that issued the number's range. It differs from `network_info` when the number has been ported. Absent when the issuing network could not be identified.
	OriginalNetworkInfo *LookupNetworkInfo `json:"original_network_info,omitempty"`

	// PhoneNumber The number that was looked up, in E.164 format.
	PhoneNumber *string `json:"phone_number,omitempty"`

	// Porting The number's porting record. Absent unless you requested the `porting` property.
	Porting *LookupPorting `json:"porting,omitempty"`

	// Presence Whether the number is live on its network. Absent unless you requested the `presence` property.
	Presence *LookupPresence `json:"presence,omitempty"`

	// Roaming Whether the number is roaming. Absent unless you requested the `roaming` property.
	Roaming *LookupRoaming `json:"roaming,omitempty"`

	// Score The number's credibility score. Absent unless you requested the `score` property.
	Score *LookupScore `json:"score,omitempty"`

	// SimSwap When the number's SIM last changed. Absent unless you requested the `sim_swap` property.
	SimSwap *LookupSimSwap `json:"sim_swap,omitempty"`
}

PhoneNumberLookup Information about a phone number.

The number, its flags, and its line type are included in the base lookup and are always present. The country and two networks are present when identified. Each property you request through `type` is returned in a block with the same name and its own `status`. A property you did not request is absent. A property that could not be answered is present with only its `status`. Each requested property is billed only when its status is `ok`.

Fields with no value are omitted rather than returned as `null`.

type PhoneNumberLookupRequest added in v0.31.0

type PhoneNumberLookupRequest struct {
	// PhoneNumber The phone number to look up, in international format: the country calling code, then the national number. The leading `+` is optional, and `00` works in its place, so `+31612345678`, `31612345678` and `0031612345678` are all the same number. A number written for dialling inside one country, with no country code, is rejected rather than guessed at.
	PhoneNumber string `json:"phone_number"`

	// Type Properties to add to the base lookup. Omit this field or send an empty
	// array to request only the base lookup.
	//
	// Each delivered property is billed in addition to the base lookup. A
	// property that could not be answered is returned with its status and is
	// not billed.
	Type *[]LookupProperty `json:"type,omitempty"`
}

PhoneNumberLookupRequest defines model for PhoneNumberLookupRequest.

type PreconditionFailed

type PreconditionFailed = Error

PreconditionFailed defines model for PreconditionFailed.

type Preference added in v0.41.0

type Preference struct {
	Channel *PreferenceChannel `json:"channel,omitempty"`

	// ConsentedAt When the person consented, as evidenced by whoever asserted the grant. Null on statements that carry no consent evidence, including every opt-out.
	ConsentedAt *time.Time `json:"consented_at,omitempty"`

	// ContactId The contact whose handle matched when the statement was recorded. Null when no contact matched at that moment; it is not updated when contacts change later.
	ContactId *ContactID          `json:"contact_id,omitempty"`
	Coverage  *PreferenceCoverage `json:"coverage,omitempty"`
	CreatedAt *time.Time          `json:"created_at,omitempty"`

	// EffectiveAt When the statement was made, as reported by whoever made it. This is what orders one key's statements: a write dated before this moment is refused rather than applied.
	EffectiveAt *time.Time `json:"effective_at,omitempty"`

	// Handle Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
	Handle *string           `json:"handle,omitempty"`
	Id     PreferenceID      `json:"id"`
	Origin *PreferenceOrigin `json:"origin,omitempty"`

	// SenderScope The sender the statement is limited to, or null when it covers the whole channel. On SMS this is the originator the person replied to; on WhatsApp it identifies the business account that messaged them. Email preferences are always channel-wide, so it is always null there.
	SenderScope *string `json:"sender_scope,omitempty"`

	// Source Free-form note on where the statement came from, as supplied when it was recorded: a form name, an import batch, a campaign. Null when none was given.
	Source *string           `json:"source,omitempty"`
	Status *PreferenceStatus `json:"status,omitempty"`

	// TopicId The topic the statement is limited to, or null when it covers every topic. Part of the key that identifies a statement, alongside `sender_scope`.
	TopicId   *string    `json:"topic_id,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

Preference defines model for Preference.

type PreferenceChannel added in v0.41.0

type PreferenceChannel string

PreferenceChannel The channel a preference statement applies to. A preference addresses one channel: the handle that identifies the person differs per channel, so opting out of one channel says nothing about the others. New channels can be added over time, so a value outside this list can be returned.

const (
	PreferenceChannelEmail    PreferenceChannel = "email"
	PreferenceChannelSms      PreferenceChannel = "sms"
	PreferenceChannelWhatsapp PreferenceChannel = "whatsapp"
)

Defines values for PreferenceChannel.

func (PreferenceChannel) Valid added in v0.41.0

func (e PreferenceChannel) Valid() bool

Valid indicates whether the value is a known member of the PreferenceChannel enum.

type PreferenceCoverage added in v0.41.0

type PreferenceCoverage string

PreferenceCoverage How much traffic the statement covers. `non_transactional` covers marketing and other non-essential messages while transactional messages such as receipts and verification codes keep flowing; `all` covers every message including transactional ones.

const (
	All              PreferenceCoverage = "all"
	NonTransactional PreferenceCoverage = "non_transactional"
)

Defines values for PreferenceCoverage.

func (PreferenceCoverage) Valid added in v0.41.0

func (e PreferenceCoverage) Valid() bool

Valid indicates whether the value is a known member of the PreferenceCoverage enum.

type PreferenceCreate added in v0.41.0

type PreferenceCreate struct {
	// Channel The channel a preference statement applies to. A preference addresses one channel: the handle that identifies the person differs per channel, so opting out of one channel says nothing about the others. New channels can be added over time, so a value outside this list can be returned.
	Channel PreferenceChannel `json:"channel"`

	// ConsentedAt When the person consented, on a `granted` statement. Required evidence when granting over a stored opt-out: the grant applies only if this is later than the opt-out it reverses. May not be in the future.
	ConsentedAt *time.Time `json:"consented_at,omitempty"`

	// Coverage How much traffic the statement covers. Defaults to `non_transactional`, which keeps transactional messages such as receipts and verification codes flowing.
	Coverage *PreferenceCoverage `json:"coverage,omitempty"`

	// Handle Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
	Handle string `json:"handle"`

	// SenderScope Limit the statement to one sender instead of the whole channel. On SMS this is the originator; on WhatsApp it identifies the business account. Not supported on email, where preferences are always channel-wide.
	SenderScope *string `json:"sender_scope,omitempty"`

	// Source Free-form note on where the statement came from: a form name, an import batch, a campaign. Stored verbatim and returned on the preference.
	Source *string `json:"source,omitempty"`

	// Status What the statement says: `granted` records consent to receive messages, `revoked` records an opt-out. There is no third state: a person who never stated anything simply has no preference on record.
	Status PreferenceStatus `json:"status"`
}

PreferenceCreate defines model for PreferenceCreate.

type PreferenceDeletedEventType added in v0.41.0

type PreferenceDeletedEventType string

PreferenceDeletedEventType Always `preference.deleted` for this event.

const (
	PreferenceDeleted PreferenceDeletedEventType = "preference.deleted"
)

Defines values for PreferenceDeletedEventType.

func (PreferenceDeletedEventType) Valid added in v0.41.0

func (e PreferenceDeletedEventType) Valid() bool

Valid indicates whether the value is a known member of the PreferenceDeletedEventType enum.

type PreferenceGrantedEventType added in v0.41.0

type PreferenceGrantedEventType string

PreferenceGrantedEventType Always `preference.granted` for this event.

const (
	PreferenceGranted PreferenceGrantedEventType = "preference.granted"
)

Defines values for PreferenceGrantedEventType.

func (PreferenceGrantedEventType) Valid added in v0.41.0

func (e PreferenceGrantedEventType) Valid() bool

Valid indicates whether the value is a known member of the PreferenceGrantedEventType enum.

type PreferenceID added in v0.41.0

type PreferenceID = string

PreferenceID defines model for PreferenceID.

type PreferenceList added in v0.41.0

type PreferenceList struct {
	// Data Page of preferences, most recently created first.
	Data []Preference `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

PreferenceList defines model for PreferenceList.

type PreferenceOrigin added in v0.41.0

type PreferenceOrigin string

PreferenceOrigin How the statement was made. Statements the person made themselves (`unsubscribe_link`, `unsubscribe_event`, `keyword`, `preference_page`) carry more weight than ones asserted on their behalf (`api_key`, `user`, `import`): a person's own opt-out cannot be overridden or deleted through this API. New origins can be added over time, so a value outside this list can be returned.

const (
	PreferenceOriginApiKey           PreferenceOrigin = "api_key"
	PreferenceOriginImport           PreferenceOrigin = "import"
	PreferenceOriginKeyword          PreferenceOrigin = "keyword"
	PreferenceOriginPreferencePage   PreferenceOrigin = "preference_page"
	PreferenceOriginUnsubscribeEvent PreferenceOrigin = "unsubscribe_event"
	PreferenceOriginUnsubscribeLink  PreferenceOrigin = "unsubscribe_link"
	PreferenceOriginUser             PreferenceOrigin = "user"
)

Defines values for PreferenceOrigin.

func (PreferenceOrigin) Valid added in v0.41.0

func (e PreferenceOrigin) Valid() bool

Valid indicates whether the value is a known member of the PreferenceOrigin enum.

type PreferenceRevokedEventType added in v0.41.0

type PreferenceRevokedEventType string

PreferenceRevokedEventType Always `preference.revoked` for this event.

const (
	PreferenceRevoked PreferenceRevokedEventType = "preference.revoked"
)

Defines values for PreferenceRevokedEventType.

func (PreferenceRevokedEventType) Valid added in v0.41.0

func (e PreferenceRevokedEventType) Valid() bool

Valid indicates whether the value is a known member of the PreferenceRevokedEventType enum.

type PreferenceStatement added in v0.41.0

type PreferenceStatement struct {
	// Channel The channel a preference statement applies to. A preference addresses one channel: the handle that identifies the person differs per channel, so opting out of one channel says nothing about the others. New channels can be added over time, so a value outside this list can be returned.
	Channel PreferenceChannel `json:"channel"`

	// ConsentedAt When the person consented, on a `granted` statement. Required evidence when granting over a stored opt-out: the grant applies only if this is later than the opt-out it reverses. May not be in the future.
	ConsentedAt *time.Time `json:"consented_at,omitempty"`

	// Coverage How much traffic the statement covers. Defaults to `non_transactional`, which keeps transactional messages such as receipts and verification codes flowing.
	Coverage *PreferenceCoverage `json:"coverage,omitempty"`

	// SenderScope Limit the statement to one sender instead of the whole channel. On SMS this is the originator; on WhatsApp it identifies the business account. Not supported on email, where preferences are always channel-wide.
	SenderScope *string `json:"sender_scope,omitempty"`

	// Source Free-form note on where the statement came from: a form name, an import batch, a campaign. Stored verbatim and returned on the preference.
	Source *string `json:"source,omitempty"`

	// Status What the statement says: `granted` records consent to receive messages, `revoked` records an opt-out. There is no third state: a person who never stated anything simply has no preference on record.
	Status PreferenceStatus `json:"status"`
}

PreferenceStatement defines model for PreferenceStatement.

type PreferenceStatus added in v0.41.0

type PreferenceStatus string

PreferenceStatus What the statement says: `granted` records consent to receive messages, `revoked` records an opt-out. There is no third state: a person who never stated anything simply has no preference on record.

const (
	Granted PreferenceStatus = "granted"
	Revoked PreferenceStatus = "revoked"
)

Defines values for PreferenceStatus.

func (PreferenceStatus) Valid added in v0.41.0

func (e PreferenceStatus) Valid() bool

Valid indicates whether the value is a known member of the PreferenceStatus enum.

type PreferenceTransitionID added in v0.41.0

type PreferenceTransitionID = string

PreferenceTransitionID defines model for PreferenceTransitionID.

type PreferenceWriteResult added in v0.41.0

type PreferenceWriteResult struct {
	// Applied Whether the request took effect. False only when it was refused as out of order; the surviving, newer statement is returned in `preference`.
	Applied *bool `json:"applied,omitempty"`

	// Preference The key's surviving statement. Null after an applied delete, when the key is back to having no record.
	Preference *Preference `json:"preference,omitempty"`

	// TransitionId Identifies this write on the key's record, for applied and refused requests alike. Null when the write was a repeat of the current statement and recorded nothing new.
	TransitionId *PreferenceTransitionID `json:"transition_id,omitempty"`
}

PreferenceWriteResult The outcome of one preference write or delete. `applied: true` means the request took effect: either it changed the record, or an identical statement already had. `applied: false` means it was refused as older than the key's current statement; `preference` then carries the statement that survived, and `transition_id` identifies the refusal on the key's record.

type PublishRealtimeAppBatchJSONRequestBody added in v0.15.0

type PublishRealtimeAppBatchJSONRequestBody = RealtimeBatchPublish

PublishRealtimeAppBatchJSONRequestBody defines body for PublishRealtimeAppBatch for application/json ContentType.

type PublishRealtimeAppBatchParams added in v0.15.0

type PublishRealtimeAppBatchParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

PublishRealtimeAppBatchParams defines parameters for PublishRealtimeAppBatch.

type PublishRealtimeAppBatchResponse added in v0.15.0

type PublishRealtimeAppBatchResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *RealtimeBatchPublishResult
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParsePublishRealtimeAppBatchResponse added in v0.15.0

func ParsePublishRealtimeAppBatchResponse(rsp *http.Response) (*PublishRealtimeAppBatchResponse, error)

ParsePublishRealtimeAppBatchResponse parses an HTTP response from a PublishRealtimeAppBatchWithResponse call

func (PublishRealtimeAppBatchResponse) ContentType added in v0.15.0

func (r PublishRealtimeAppBatchResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (PublishRealtimeAppBatchResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (PublishRealtimeAppBatchResponse) StatusCode added in v0.15.0

func (r PublishRealtimeAppBatchResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type PublishRealtimeAppEventJSONRequestBody added in v0.15.0

type PublishRealtimeAppEventJSONRequestBody = RealtimePublish

PublishRealtimeAppEventJSONRequestBody defines body for PublishRealtimeAppEvent for application/json ContentType.

type PublishRealtimeAppEventParams added in v0.15.0

type PublishRealtimeAppEventParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

PublishRealtimeAppEventParams defines parameters for PublishRealtimeAppEvent.

type PublishRealtimeAppEventResponse added in v0.15.0

type PublishRealtimeAppEventResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *RealtimePublishResult
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParsePublishRealtimeAppEventResponse added in v0.15.0

func ParsePublishRealtimeAppEventResponse(rsp *http.Response) (*PublishRealtimeAppEventResponse, error)

ParsePublishRealtimeAppEventResponse parses an HTTP response from a PublishRealtimeAppEventWithResponse call

func (PublishRealtimeAppEventResponse) ContentType added in v0.15.0

func (r PublishRealtimeAppEventResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (PublishRealtimeAppEventResponse) Status added in v0.15.0

Status returns HTTPResponse.Status

func (PublishRealtimeAppEventResponse) StatusCode added in v0.15.0

func (r PublishRealtimeAppEventResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type RateLimited

type RateLimited = Error

RateLimited defines model for RateLimited.

type RealtimeApp added in v0.21.0

type RealtimeApp struct {
	// AppId The numeric Realtime app id. Use it together with a key and secret to initialize a Realtime client/server SDK. Immutable.
	AppId *int64 `json:"app_id,omitempty"`

	// AuthorizedConnections Require every connection to be authorized.
	AuthorizedConnections bool `json:"authorized_connections"`

	// ClientEvents Allow clients to trigger events directly (client events).
	ClientEvents bool `json:"client_events"`

	// ConnectionCountEvents Broadcast a connection-count event to a channel's subscribers whenever its connection count changes. Requires `connection_counting`.
	ConnectionCountEvents bool `json:"connection_count_events"`

	// ConnectionCounting Count the connections subscribed to each channel and expose the count on channel queries.
	ConnectionCounting bool          `json:"connection_counting"`
	CreatedAt          *time.Time    `json:"created_at,omitempty"`
	Id                 RealtimeAppID `json:"id"`

	// Name A label for the app, shown wherever it is listed.
	Name string `json:"name"`

	// Region The region this app runs in. Unlike other products, a Realtime app can be placed in a region other than the workspace's home region. Immutable after creation.
	Region Region `json:"region"`

	// Status Lifecycle state of the app. `active` apps serve connections; `suspended` apps are provisioned but reject connections.
	Status    *RealtimeAppStatus `json:"status,omitempty"`
	UpdatedAt *time.Time         `json:"updated_at,omitempty"`

	// WatchlistEvents Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
	WatchlistEvents bool `json:"watchlist_events"`
}

RealtimeApp defines model for RealtimeApp.

type RealtimeAppConfig added in v0.21.0

type RealtimeAppConfig struct {
	// AuthorizedConnections Require every connection to be authorized.
	AuthorizedConnections *bool `json:"authorized_connections,omitempty"`

	// ClientEvents Allow clients to trigger events directly (client events).
	ClientEvents *bool `json:"client_events,omitempty"`

	// ConnectionCountEvents Broadcast a connection-count event to a channel's subscribers whenever its connection count changes. Requires `connection_counting`.
	ConnectionCountEvents *bool `json:"connection_count_events,omitempty"`

	// ConnectionCounting Count the connections subscribed to each channel and expose the count on channel queries.
	ConnectionCounting *bool `json:"connection_counting,omitempty"`

	// WatchlistEvents Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
	WatchlistEvents *bool `json:"watchlist_events,omitempty"`
}

RealtimeAppConfig Realtime app configuration flags. TLS is always enforced (non-TLS client connections are rejected) and is not configurable.

type RealtimeAppCreate added in v0.21.0

type RealtimeAppCreate struct {
	// AuthorizedConnections Require every connection to be authorized.
	AuthorizedConnections *bool `json:"authorized_connections,omitempty"`

	// ClientEvents Allow clients to trigger events directly (client events).
	ClientEvents *bool `json:"client_events,omitempty"`

	// ConnectionCountEvents Broadcast a connection-count event to a channel's subscribers whenever its connection count changes. Requires `connection_counting`.
	ConnectionCountEvents *bool `json:"connection_count_events,omitempty"`

	// ConnectionCounting Count the connections subscribed to each channel and expose the count on channel queries.
	ConnectionCounting *bool `json:"connection_counting,omitempty"`

	// Name A label for the app, shown wherever it is listed.
	Name string `json:"name"`

	// Region The region this app runs in. Unlike other products, a Realtime app can be placed in a region other than the workspace's home region. Immutable after creation.
	Region Region `json:"region"`

	// WatchlistEvents Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
	WatchlistEvents *bool `json:"watchlist_events,omitempty"`
}

RealtimeAppCreate defines model for RealtimeAppCreate.

type RealtimeAppCreated added in v0.21.0

type RealtimeAppCreated struct {
	// AppId The numeric Realtime app id. Use it together with a key and secret to initialize a Realtime client/server SDK. Immutable.
	AppId *int64 `json:"app_id,omitempty"`

	// AuthorizedConnections Require every connection to be authorized.
	AuthorizedConnections bool `json:"authorized_connections"`

	// ClientEvents Allow clients to trigger events directly (client events).
	ClientEvents bool `json:"client_events"`

	// ConnectionCountEvents Broadcast a connection-count event to a channel's subscribers whenever its connection count changes. Requires `connection_counting`.
	ConnectionCountEvents bool `json:"connection_count_events"`

	// ConnectionCounting Count the connections subscribed to each channel and expose the count on channel queries.
	ConnectionCounting bool          `json:"connection_counting"`
	CreatedAt          *time.Time    `json:"created_at,omitempty"`
	Id                 RealtimeAppID `json:"id"`

	// Key The app's initial key, including its one-time secret. Present in this create response only; the secret is never returned again.
	Key *RealtimeAppKey `json:"key,omitempty"`

	// Name A label for the app, shown wherever it is listed.
	Name string `json:"name"`

	// Region The region this app runs in. Unlike other products, a Realtime app can be placed in a region other than the workspace's home region. Immutable after creation.
	Region Region `json:"region"`

	// Status Lifecycle state of the app. `active` apps serve connections; `suspended` apps are provisioned but reject connections.
	Status    *RealtimeAppCreatedStatus `json:"status,omitempty"`
	UpdatedAt *time.Time                `json:"updated_at,omitempty"`

	// WatchlistEvents Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
	WatchlistEvents bool `json:"watchlist_events"`
}

RealtimeAppCreated defines model for RealtimeAppCreated.

type RealtimeAppCreatedStatus added in v0.21.0

type RealtimeAppCreatedStatus string

RealtimeAppCreatedStatus Lifecycle state of the app. `active` apps serve connections; `suspended` apps are provisioned but reject connections.

const (
	RealtimeAppCreatedStatusActive    RealtimeAppCreatedStatus = "active"
	RealtimeAppCreatedStatusSuspended RealtimeAppCreatedStatus = "suspended"
)

Defines values for RealtimeAppCreatedStatus.

func (RealtimeAppCreatedStatus) Valid added in v0.21.0

func (e RealtimeAppCreatedStatus) Valid() bool

Valid indicates whether the value is a known member of the RealtimeAppCreatedStatus enum.

type RealtimeAppID added in v0.15.0

type RealtimeAppID = string

RealtimeAppID defines model for RealtimeAppID.

type RealtimeAppKey added in v0.21.0

type RealtimeAppKey struct {
	CreatedAt *time.Time       `json:"created_at,omitempty"`
	Id        RealtimeAppKeyID `json:"id"`

	// Key The public app key clients use to connect.
	Key *string `json:"key,omitempty"`

	// RevokedAt When the key was revoked, or `null` if still active.
	RevokedAt *time.Time `json:"revoked_at,omitempty"`

	// Secret The key secret, used for server-side request signing. Returned only when the key is created, and never shown again: store it securely. If lost, create a new key and revoke this one.
	Secret *string `json:"secret,omitempty" pii:"true"`
}

RealtimeAppKey defines model for RealtimeAppKey.

type RealtimeAppKeyID added in v0.21.0

type RealtimeAppKeyID = string

RealtimeAppKeyID defines model for RealtimeAppKeyID.

type RealtimeAppKeyList added in v0.21.0

type RealtimeAppKeyList struct {
	// Data The app's keys, oldest first. Revoked keys are excluded unless `include_revoked`=`true`.
	Data []RealtimeAppKey `json:"data"`
}

RealtimeAppKeyList defines model for RealtimeAppKeyList.

type RealtimeAppList added in v0.21.0

type RealtimeAppList struct {
	Data []RealtimeApp `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

RealtimeAppList defines model for RealtimeAppList.

type RealtimeAppSortField added in v0.24.1

type RealtimeAppSortField string

RealtimeAppSortField Field to sort Realtime apps by.

const (
	RealtimeAppSortFieldCreatedAt RealtimeAppSortField = "created_at"
	RealtimeAppSortFieldName      RealtimeAppSortField = "name"
)

Defines values for RealtimeAppSortField.

func (RealtimeAppSortField) Valid added in v0.24.1

func (e RealtimeAppSortField) Valid() bool

Valid indicates whether the value is a known member of the RealtimeAppSortField enum.

type RealtimeAppStatus added in v0.21.0

type RealtimeAppStatus string

RealtimeAppStatus Lifecycle state of the app. `active` apps serve connections; `suspended` apps are provisioned but reject connections.

const (
	RealtimeAppStatusActive    RealtimeAppStatus = "active"
	RealtimeAppStatusSuspended RealtimeAppStatus = "suspended"
)

Defines values for RealtimeAppStatus.

func (RealtimeAppStatus) Valid added in v0.21.0

func (e RealtimeAppStatus) Valid() bool

Valid indicates whether the value is a known member of the RealtimeAppStatus enum.

type RealtimeAppUpdate added in v0.21.0

type RealtimeAppUpdate struct {
	// AuthorizedConnections Require every connection to be authorized.
	AuthorizedConnections *bool `json:"authorized_connections,omitempty"`

	// ClientEvents Allow clients to trigger events directly (client events).
	ClientEvents *bool `json:"client_events,omitempty"`

	// ConnectionCountEvents Broadcast a connection-count event to a channel's subscribers whenever its connection count changes. Requires `connection_counting`.
	ConnectionCountEvents *bool `json:"connection_count_events,omitempty"`

	// ConnectionCounting Count the connections subscribed to each channel and expose the count on channel queries.
	ConnectionCounting *bool `json:"connection_counting,omitempty"`

	// Name A label for the app, shown wherever it is listed.
	Name *string `json:"name,omitempty"`

	// WatchlistEvents Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
	WatchlistEvents *bool `json:"watchlist_events,omitempty"`
}

RealtimeAppUpdate Mutable Realtime app fields. Omitted fields are left unchanged. Region is immutable and TLS is always enforced, so neither appears here.

type RealtimeBatchEvent added in v0.15.0

type RealtimeBatchEvent struct {
	// Channel A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with `private-` or `presence-` for authenticated channels, or `private-encrypted-` for channels whose payloads are end-to-end encrypted with a key only you hold.
	Channel RealtimeChannelName `json:"channel"`

	// Data Arbitrary JSON payload delivered as the event data: an object, array, or scalar. Cap: 10 KB serialized.
	Data *RealtimeEventData `json:"data,omitempty"`

	// Event The event name clients bind to. Application event names are free-form; the `bird:` and `bird_internal:` prefixes are reserved for the protocol and rejected.
	Event RealtimeEventName `json:"event"`

	// ExcludeConnectionId Exclude this connection from delivery, to avoid echoing a change back to the client that triggered it. The value is the client's connection id, assigned when its connection is established.
	ExcludeConnectionId *RealtimeExcludeConnectionId `json:"exclude_connection_id,omitempty"`

	// Include Attributes of this event's channel to return alongside the publish (same semantics and validation errors as on the channel endpoints). Requesting attributes counts as one additional message toward usage.
	Include *[]RealtimeChannelInclude `json:"include,omitempty"`
}

RealtimeBatchEvent A single event published to one channel as part of a batch.

type RealtimeBatchPublish added in v0.15.0

type RealtimeBatchPublish struct {
	// Events Up to 10 events per batch.
	Events []RealtimeBatchEvent `json:"events"`
}

RealtimeBatchPublish A batch of events, each delivered to a single channel, in one request.

type RealtimeBatchPublishResult added in v0.15.0

type RealtimeBatchPublishResult struct {
	// Data Per-event channel attributes at publish time, present only when at least one event asked for them via `include`. Positional: one item per event, in request order.
	Data *[]RealtimeBatchPublishResultItem `json:"data,omitempty"`
}

RealtimeBatchPublishResult The result of a Realtime batch publish. The events were accepted for delivery; delivery to connected clients is asynchronous.

type RealtimeBatchPublishResultItem added in v0.15.0

type RealtimeBatchPublishResultItem struct {
	// Channel A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with `private-` or `presence-` for authenticated channels, or `private-encrypted-` for channels whose payloads are end-to-end encrypted with a key only you hold.
	Channel RealtimeChannelName `json:"channel"`

	// ConnectionCount Connections currently subscribed to this channel (requires `include=connection_count` and the app's connection-counting flag). Channel-scoped: distinct from the app-wide peak connections metric.
	ConnectionCount *int64 `json:"connection_count,omitempty"`

	// MemberCount Distinct members (presence channels only; requires `include=member_count`).
	MemberCount *int64 `json:"member_count,omitempty"`
}

RealtimeBatchPublishResultItem defines model for RealtimeBatchPublishResultItem.

type RealtimeChannelCounts added in v0.15.0

type RealtimeChannelCounts struct {
	// ConnectionCount Connections currently subscribed to this channel (requires `include=connection_count` and the app's connection-counting flag). Channel-scoped: distinct from the app-wide peak connections metric.
	ConnectionCount *int64 `json:"connection_count,omitempty"`

	// MemberCount Distinct members (presence channels only; requires `include=member_count`).
	MemberCount *int64 `json:"member_count,omitempty"`
}

RealtimeChannelCounts Per-channel counts, present only when requested via `include` and applicable.

type RealtimeChannelInclude added in v0.15.0

type RealtimeChannelInclude string

RealtimeChannelInclude A per-channel attribute to include in the response. `member_count` is presence-channels only; `connection_count` requires the app's connection-counting flag.

const (
	ConnectionCount RealtimeChannelInclude = "connection_count"
	MemberCount     RealtimeChannelInclude = "member_count"
)

Defines values for RealtimeChannelInclude.

func (RealtimeChannelInclude) Valid added in v0.15.0

func (e RealtimeChannelInclude) Valid() bool

Valid indicates whether the value is a known member of the RealtimeChannelInclude enum.

type RealtimeChannelInfo added in v0.15.0

type RealtimeChannelInfo struct {
	// ConnectionCount Connections currently subscribed to this channel (requires `include=connection_count` and the app's connection-counting flag). Channel-scoped: distinct from the app-wide peak connections metric.
	ConnectionCount *int64 `json:"connection_count,omitempty"`

	// MemberCount Distinct members (presence channels only; requires `include=member_count`).
	MemberCount *int64 `json:"member_count,omitempty"`

	// Occupied Whether at least one client is subscribed.
	Occupied bool `json:"occupied"`
}

RealtimeChannelInfo defines model for RealtimeChannelInfo.

type RealtimeChannelListItem added in v0.15.0

type RealtimeChannelListItem struct {
	// ConnectionCount Connections currently subscribed to this channel (requires `include=connection_count` and the app's connection-counting flag). Channel-scoped: distinct from the app-wide peak connections metric.
	ConnectionCount *int64 `json:"connection_count,omitempty"`

	// MemberCount Distinct members (presence channels only; requires `include=member_count`).
	MemberCount *int64 `json:"member_count,omitempty"`

	// Name A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with `private-` or `presence-` for authenticated channels, or `private-encrypted-` for channels whose payloads are end-to-end encrypted with a key only you hold.
	Name RealtimeChannelName `json:"name"`
}

RealtimeChannelListItem defines model for RealtimeChannelListItem.

type RealtimeChannelMember added in v0.15.0

type RealtimeChannelMember struct {
	// MemberId An app-defined member ID for your application's end user, assigned when your auth server authorizes them. Use up to 128 URL-safe characters because member IDs appear directly in API request paths. The value can include `+ : @ . _ -`, but not `/ ? # %` or whitespace.
	MemberId RealtimeMemberID `json:"member_id"`
}

RealtimeChannelMember A member present on a presence channel.

type RealtimeChannelMembers added in v0.15.0

type RealtimeChannelMembers struct {
	Members []RealtimeChannelMember `json:"members"`
}

RealtimeChannelMembers The members present on a presence channel.

type RealtimeChannelName added in v0.15.0

type RealtimeChannelName = string

RealtimeChannelName A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with `private-` or `presence-` for authenticated channels, or `private-encrypted-` for channels whose payloads are end-to-end encrypted with a key only you hold.

type RealtimeChannelsList added in v0.15.0

type RealtimeChannelsList struct {
	// Data The occupied channels, sorted by name.
	Data []RealtimeChannelListItem `json:"data"`
}

RealtimeChannelsList The app's occupied channels. The Realtime service does not paginate this listing, so all occupied channels are returned in one response.

type RealtimeEventData added in v0.15.0

type RealtimeEventData = interface{}

RealtimeEventData Arbitrary JSON payload delivered as the event data: an object, array, or scalar. Cap: 10 KB serialized.

type RealtimeEventName added in v0.15.0

type RealtimeEventName = string

RealtimeEventName The event name clients bind to. Application event names are free-form; the `bird:` and `bird_internal:` prefixes are reserved for the protocol and rejected.

type RealtimeExcludeConnectionId added in v0.15.0

type RealtimeExcludeConnectionId = string

RealtimeExcludeConnectionId Exclude this connection from delivery, to avoid echoing a change back to the client that triggered it. The value is the client's connection id, assigned when its connection is established.

type RealtimeMemberID added in v0.15.0

type RealtimeMemberID = string

RealtimeMemberID An app-defined member ID for your application's end user, assigned when your auth server authorizes them. Use up to 128 URL-safe characters because member IDs appear directly in API request paths. The value can include `+ : @ . _ -`, but not `/ ? # %` or whitespace.

type RealtimeMemberPublish added in v0.21.0

type RealtimeMemberPublish struct {
	// Data Arbitrary JSON payload delivered as the event data: an object, array, or scalar. Cap: 10 KB serialized.
	Data *RealtimeEventData `json:"data,omitempty"`

	// Event The event name clients bind to. Application event names are free-form; the `bird:` and `bird_internal:` prefixes are reserved for the protocol and rejected.
	Event RealtimeEventName `json:"event"`
}

RealtimeMemberPublish An event addressed to one member rather than to a channel. Every connection that member currently holds receives it; if they hold none, the event is dropped.

type RealtimePublish added in v0.15.0

type RealtimePublish struct {
	// Channels The channels to deliver the event to (up to 100 per call). Prefix with `private-` or `presence-` for authenticated channels. A `private-encrypted-` channel must be the only channel in its publish: each encrypted channel has its own key, so a fan-out would hand the other channels unreadable ciphertext.
	Channels []RealtimeChannelName `json:"channels"`

	// Data Arbitrary JSON payload delivered as the event data: an object, array, or scalar. Cap: 10 KB serialized.
	Data *RealtimeEventData `json:"data,omitempty"`

	// Event The event name clients bind to. Application event names are free-form; the `bird:` and `bird_internal:` prefixes are reserved for the protocol and rejected.
	Event RealtimeEventName `json:"event"`

	// ExcludeConnectionId Exclude this connection from delivery, to avoid echoing a change back to the client that triggered it. The value is the client's connection id, assigned when its connection is established.
	ExcludeConnectionId *RealtimeExcludeConnectionId `json:"exclude_connection_id,omitempty"`

	// Include Per-channel attributes to return alongside the publish, reflecting each channel's state at publish time. `member_count` is available only for presence channels. `connection_count` requires the app's connection-counting flag. Requesting attributes counts as one additional message toward usage.
	Include *[]RealtimeChannelInclude `json:"include,omitempty"`
}

RealtimePublish A Realtime publish: delivers one event to one or more channels of the app. Listing several channels fans the event out to all of them (broadcast) in a single call.

type RealtimePublishResult added in v0.15.0

type RealtimePublishResult struct {
	// Data Per-channel attributes at publish time, present only when the request asked for them via `include`; one item per distinct target channel, sorted by name.
	Data *[]RealtimeChannelListItem `json:"data,omitempty"`
}

RealtimePublishResult The result of a Realtime publish. The event was accepted and fanned out to the requested channels; delivery to connected clients is asynchronous.

type RealtimeRegion added in v0.21.0

type RealtimeRegion struct {
	// Id Region identifier to pass as a Realtime app's region.
	Id Region `json:"id"`
}

RealtimeRegion defines model for RealtimeRegion.

type RealtimeRegionList added in v0.21.0

type RealtimeRegionList struct {
	// Data The regions a Realtime app can be created in.
	Data []RealtimeRegion `json:"data"`
}

RealtimeRegionList defines model for RealtimeRegionList.

type ReceiveRule added in v0.4.1

type ReceiveRule struct {
	// Action What the rule does when it matches. Block rules always win: over allow rules and over the reply admission on allowlist mailboxes.
	Action *ReceiveRuleAction `json:"action,omitempty"`

	// CreatedAt When the rule was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Entry The sender address or domain the rule matches. Domains also match their subdomains.
	Entry *string `json:"entry,omitempty"`

	// EntryType Whether the entry is a full address or a domain.
	EntryType *ReceiveRuleEntryType `json:"entry_type,omitempty"`
	Id        ReceiveRuleID         `json:"id"`
	MailboxId MailboxID             `json:"mailbox_id"`

	// Note Your own note about why the rule exists. `null` when unset.
	Note *string `json:"note,omitempty"`
}

ReceiveRule An allow or block entry on a mailbox, evaluated when inbound mail arrives. Matching is against the message's envelope sender; domain entries also match subdomains. A given entry can be allow or block, never both.

type ReceiveRuleAction added in v0.4.1

type ReceiveRuleAction string

ReceiveRuleAction What the rule does when it matches. Block rules always win: over allow rules and over the reply admission on allowlist mailboxes.

const (
	ReceiveRuleActionAllow ReceiveRuleAction = "allow"
	ReceiveRuleActionBlock ReceiveRuleAction = "block"
)

Defines values for ReceiveRuleAction.

func (ReceiveRuleAction) Valid added in v0.4.1

func (e ReceiveRuleAction) Valid() bool

Valid indicates whether the value is a known member of the ReceiveRuleAction enum.

type ReceiveRuleCreate added in v0.4.1

type ReceiveRuleCreate struct {
	// Action What the rule does when it matches. Block rules always win. To flip an entry's action, delete the existing rule and re-create it.
	Action ReceiveRuleCreateAction `json:"action"`

	// Entry The sender address (`alice@example.com`) or domain (`example.com`) to match. Domains also match their subdomains. Stored lowercase.
	Entry string `json:"entry"`

	// Note Your own note about why the rule exists.
	Note *string `json:"note,omitempty"`
}

ReceiveRuleCreate Parameters for adding a receive rule to a mailbox.

type ReceiveRuleCreateAction added in v0.4.1

type ReceiveRuleCreateAction string

ReceiveRuleCreateAction What the rule does when it matches. Block rules always win. To flip an entry's action, delete the existing rule and re-create it.

const (
	ReceiveRuleCreateActionAllow ReceiveRuleCreateAction = "allow"
	ReceiveRuleCreateActionBlock ReceiveRuleCreateAction = "block"
)

Defines values for ReceiveRuleCreateAction.

func (ReceiveRuleCreateAction) Valid added in v0.4.1

func (e ReceiveRuleCreateAction) Valid() bool

Valid indicates whether the value is a known member of the ReceiveRuleCreateAction enum.

type ReceiveRuleEntryType added in v0.4.1

type ReceiveRuleEntryType string

ReceiveRuleEntryType Whether the entry is a full address or a domain.

const (
	ReceiveRuleEntryTypeAddress ReceiveRuleEntryType = "address"
	ReceiveRuleEntryTypeDomain  ReceiveRuleEntryType = "domain"
)

Defines values for ReceiveRuleEntryType.

func (ReceiveRuleEntryType) Valid added in v0.4.1

func (e ReceiveRuleEntryType) Valid() bool

Valid indicates whether the value is a known member of the ReceiveRuleEntryType enum.

type ReceiveRuleID added in v0.4.1

type ReceiveRuleID = string

ReceiveRuleID defines model for ReceiveRuleID.

type ReceiveRuleList added in v0.4.1

type ReceiveRuleList struct {
	Data []ReceiveRule `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

ReceiveRuleList defines model for ReceiveRuleList.

type RecipientID

type RecipientID = string

RecipientID defines model for RecipientID.

type RecipientRole

type RecipientRole string

RecipientRole Envelope position of a recipient on an outbound email event.

const (
	Bcc RecipientRole = "bcc"
	Cc  RecipientRole = "cc"
	To  RecipientRole = "to"
)

Defines values for RecipientRole.

func (RecipientRole) Valid

func (e RecipientRole) Valid() bool

Valid indicates whether the value is a known member of the RecipientRole enum.

type Region added in v0.21.0

type Region string

Region Deployment region identifier.

const (
	Eu1 Region = "eu1"
	Us1 Region = "us1"
)

Defines values for Region.

func (Region) Valid added in v0.21.0

func (e Region) Valid() bool

Valid indicates whether the value is a known member of the Region enum.

type ReleaseWorkspaceNumberParams added in v0.34.0

type ReleaseWorkspaceNumberParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

ReleaseWorkspaceNumberParams defines parameters for ReleaseWorkspaceNumber.

type ReleaseWorkspaceNumberResponse added in v0.34.0

type ReleaseWorkspaceNumberResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseReleaseWorkspaceNumberResponse added in v0.34.0

func ParseReleaseWorkspaceNumberResponse(rsp *http.Response) (*ReleaseWorkspaceNumberResponse, error)

ParseReleaseWorkspaceNumberResponse parses an HTTP response from a ReleaseWorkspaceNumberWithResponse call

func (ReleaseWorkspaceNumberResponse) ContentType added in v0.34.0

func (r ReleaseWorkspaceNumberResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ReleaseWorkspaceNumberResponse) Status added in v0.34.0

Status returns HTTPResponse.Status

func (ReleaseWorkspaceNumberResponse) StatusCode added in v0.34.0

func (r ReleaseWorkspaceNumberResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ReplyEmailThreadMessageJSONRequestBody added in v0.12.0

type ReplyEmailThreadMessageJSONRequestBody = EmailThreadMessageReplyRequest

ReplyEmailThreadMessageJSONRequestBody defines body for ReplyEmailThreadMessage for application/json ContentType.

type ReplyEmailThreadMessageParams added in v0.12.0

type ReplyEmailThreadMessageParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

ReplyEmailThreadMessageParams defines parameters for ReplyEmailThreadMessage.

type ReplyEmailThreadMessageResponse added in v0.12.0

type ReplyEmailThreadMessageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON202      *EmailThreadMessage
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON402      *PaymentRequired
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseReplyEmailThreadMessageResponse added in v0.12.0

func ParseReplyEmailThreadMessageResponse(rsp *http.Response) (*ReplyEmailThreadMessageResponse, error)

ParseReplyEmailThreadMessageResponse parses an HTTP response from a ReplyEmailThreadMessageWithResponse call

func (ReplyEmailThreadMessageResponse) ContentType added in v0.12.0

func (r ReplyEmailThreadMessageResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ReplyEmailThreadMessageResponse) Status added in v0.12.0

Status returns HTTPResponse.Status

func (ReplyEmailThreadMessageResponse) StatusCode added in v0.12.0

func (r ReplyEmailThreadMessageResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type RestoreMailboxParams added in v0.12.0

type RestoreMailboxParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

RestoreMailboxParams defines parameters for RestoreMailbox.

type RestoreMailboxResponse added in v0.12.0

type RestoreMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Mailbox
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseRestoreMailboxResponse added in v0.12.0

func ParseRestoreMailboxResponse(rsp *http.Response) (*RestoreMailboxResponse, error)

ParseRestoreMailboxResponse parses an HTTP response from a RestoreMailboxWithResponse call

func (RestoreMailboxResponse) ContentType added in v0.12.0

func (r RestoreMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (RestoreMailboxResponse) Status added in v0.12.0

func (r RestoreMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (RestoreMailboxResponse) StatusCode added in v0.12.0

func (r RestoreMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ResumeMailboxParams added in v0.12.0

type ResumeMailboxParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

ResumeMailboxParams defines parameters for ResumeMailbox.

type ResumeMailboxResponse added in v0.12.0

type ResumeMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Mailbox
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseResumeMailboxResponse added in v0.12.0

func ParseResumeMailboxResponse(rsp *http.Response) (*ResumeMailboxResponse, error)

ParseResumeMailboxResponse parses an HTTP response from a ResumeMailboxWithResponse call

func (ResumeMailboxResponse) ContentType added in v0.12.0

func (r ResumeMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ResumeMailboxResponse) Status added in v0.12.0

func (r ResumeMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (ResumeMailboxResponse) StatusCode added in v0.12.0

func (r ResumeMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type SIPTrunkID added in v0.27.0

type SIPTrunkID = string

SIPTrunkID defines model for SIPTrunkID.

type SMSBatchSummary added in v0.3.0

type SMSBatchSummary struct {
	// AcceptedCount Number of messages accepted in the batch. Acceptance is all-or-nothing, so this equals the number of messages submitted.
	AcceptedCount int `json:"accepted_count"`
}

SMSBatchSummary Aggregate result for an SMS batch.

type SMSCarrierStatsPoint added in v0.33.0

type SMSCarrierStatsPoint struct {
	// Carrier The delivery carrier this row aggregates, as resolved for the destination handset.
	Carrier  *string           `json:"carrier,omitempty"`
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`
	Latency  *SMSLatencyStats  `json:"latency,omitempty"`

	// Trend Per-bucket lifecycle counts for this carrier, using `trend_grain`. Includes only buckets with activity. Present when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSCarrierStatsPoint Aggregate delivery and latency stats for a single delivery carrier over the requested period.

type SMSCategoryStatsPoint added in v0.33.0

type SMSCategoryStatsPoint struct {
	// Category The category this row aggregates, as set at send time. `transactional` is one-to-one messaging triggered by a user action; `marketing` is bulk sending. New categories may be added over time.
	Category *string           `json:"category,omitempty"`
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`
	Latency  *SMSLatencyStats  `json:"latency,omitempty"`

	// Trend Per-bucket lifecycle counts for this category, using `trend_grain`. Includes only buckets with activity. Present when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSCategoryStatsPoint Aggregate delivery and latency stats for a single message category over the requested period.

type SMSCountryStatsPoint added in v0.33.0

type SMSCountryStatsPoint struct {
	// Country The destination country this row aggregates, as an ISO 3166-1 alpha-2 code.
	Country  *string           `json:"country,omitempty"`
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`
	Latency  *SMSLatencyStats  `json:"latency,omitempty"`

	// Trend Per-bucket lifecycle counts for this country, using `trend_grain`. Includes only buckets with activity. Present when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSCountryStatsPoint Aggregate delivery and latency stats for a single destination country over the requested period.

type SMSDeliveryCounts added in v0.33.0

type SMSDeliveryCounts struct {
	// Accepted Distinct messages accepted for sending after admission checks.
	Accepted *int `json:"accepted,omitempty"`

	// Delivered Distinct messages the carrier confirmed as delivered to the handset.
	Delivered *int `json:"delivered,omitempty"`

	// Expired Distinct messages that could not be delivered within their validity window and expired.
	Expired *int `json:"expired,omitempty"`

	// Failed Distinct messages that failed during sending.
	Failed *int `json:"failed,omitempty"`

	// Rejected Distinct messages rejected before any send attempt, for example by sending policy or a message-generation failure.
	Rejected *int `json:"rejected,omitempty"`

	// Sent Distinct messages handed off to the carrier for delivery.
	Sent *int `json:"sent,omitempty"`

	// Undelivered Distinct messages the carrier reported as not delivered.
	Undelivered *int `json:"undelivered,omitempty"`
}

SMSDeliveryCounts SMS lifecycle counts for a time bucket. Counts use the message send time, so a message accepted on Monday and delivered on Tuesday counts in Monday's bucket. Rates are available only for whole periods and breakdowns.

type SMSDeliveryStats added in v0.33.0

type SMSDeliveryStats struct {
	// Accepted Distinct messages accepted for sending after admission checks. This is the denominator for `delivery_rate` and `failure_rate`.
	Accepted *int `json:"accepted,omitempty"`

	// Delivered Distinct messages the carrier confirmed as delivered to the handset.
	Delivered *int `json:"delivered,omitempty"`

	// DeliveryRate Share of accepted messages that were delivered, computed as `delivered / accepted`. Null when no messages were accepted in scope.
	DeliveryRate *float32 `json:"delivery_rate,omitempty"`

	// Expired Distinct messages that could not be delivered within their validity window and expired.
	Expired *int `json:"expired,omitempty"`

	// Failed Distinct messages that failed during sending.
	Failed *int `json:"failed,omitempty"`

	// FailureRate Share of accepted messages that ultimately failed, computed as `(undelivered + failed + expired) / accepted`. Null when no messages were accepted in scope.
	FailureRate *float32 `json:"failure_rate,omitempty"`

	// Rejected Distinct messages rejected before any send attempt, for example by sending policy or a message-generation failure.
	Rejected *int `json:"rejected,omitempty"`

	// Sent Distinct messages handed off to the carrier for delivery.
	Sent *int `json:"sent,omitempty"`

	// Undelivered Distinct messages the carrier reported as not delivered.
	Undelivered *int `json:"undelivered,omitempty"`
}

SMSDeliveryStats SMS lifecycle counts and rates for a whole period or breakdown. Counts use the message send time, so a later delivery stays attributed to the bucket in which the message was sent. Rates are null when their denominator is zero.

type SMSError added in v0.2.0

type SMSError struct {
	// CarrierErrorCode Raw provider-supplied error code, finer-grained than the `code` that normalizes it. Not a Bird-defined value, so quote it to support when asking why a message failed. Null when the provider sent none, including any failure decided before one was reached.
	CarrierErrorCode *string `json:"carrier_error_code,omitempty"`

	// Code Standardized failure reason:
	//
	// - `invalid_destination`: The number is unassigned, ported out, or malformed.
	// - `unreachable`: The handset is off or outside coverage.
	// - `blocked_by_carrier`: The carrier filtered the message.
	// - `blocked_by_recipient`: The recipient device blocked the sender.
	// - `landline_unreachable`: The destination is a landline that does not accept SMS.
	// - `content_rejected`: The carrier rejected the content.
	// - `sender_unregistered`: The sender is not registered for the destination.
	// - `recipient_opted_out`: The recipient is on a suppression list.
	// - `provider_unavailable`: The provider remained unavailable after retries.
	// - `insufficient_balance`: The workspace wallet could not fund the send.
	// - `unknown`: The failure could not be classified.
	//
	// This is an open enum. Accept unrecognized values.
	Code SMSErrorCode `json:"code"`

	// Description Human-readable explanation of the failure.
	Description string `json:"description"`

	// OccurredAt When the failure occurred.
	OccurredAt time.Time `json:"occurred_at"`
}

SMSError Failure detail for a message that could not be delivered or was rejected.

type SMSErrorCode added in v0.2.0

type SMSErrorCode string

SMSErrorCode Standardized failure reason:

- `invalid_destination`: The number is unassigned, ported out, or malformed. - `unreachable`: The handset is off or outside coverage. - `blocked_by_carrier`: The carrier filtered the message. - `blocked_by_recipient`: The recipient device blocked the sender. - `landline_unreachable`: The destination is a landline that does not accept SMS. - `content_rejected`: The carrier rejected the content. - `sender_unregistered`: The sender is not registered for the destination. - `recipient_opted_out`: The recipient is on a suppression list. - `provider_unavailable`: The provider remained unavailable after retries. - `insufficient_balance`: The workspace wallet could not fund the send. - `unknown`: The failure could not be classified.

This is an open enum. Accept unrecognized values.

const (
	SMSErrorCodeBlockedByCarrier    SMSErrorCode = "blocked_by_carrier"
	SMSErrorCodeBlockedByRecipient  SMSErrorCode = "blocked_by_recipient"
	SMSErrorCodeContentRejected     SMSErrorCode = "content_rejected"
	SMSErrorCodeInsufficientBalance SMSErrorCode = "insufficient_balance"
	SMSErrorCodeInvalidDestination  SMSErrorCode = "invalid_destination"
	SMSErrorCodeLandlineUnreachable SMSErrorCode = "landline_unreachable"
	SMSErrorCodeProviderUnavailable SMSErrorCode = "provider_unavailable"
	SMSErrorCodeRecipientOptedOut   SMSErrorCode = "recipient_opted_out"
	SMSErrorCodeSenderUnregistered  SMSErrorCode = "sender_unregistered"
	SMSErrorCodeUnknown             SMSErrorCode = "unknown"
	SMSErrorCodeUnreachable         SMSErrorCode = "unreachable"
)

Defines values for SMSErrorCode.

func (SMSErrorCode) Valid added in v0.2.0

func (e SMSErrorCode) Valid() bool

Valid indicates whether the value is a known member of the SMSErrorCode enum.

type SMSErrorCodeStatsPoint added in v0.33.0

type SMSErrorCodeStatsPoint struct {
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`

	// ErrorCode Standardized failure reason this row aggregates. Matches the `error_code` message-list filter.
	ErrorCode *SMSErrorCode    `json:"error_code,omitempty"`
	Latency   *SMSLatencyStats `json:"latency,omitempty"`

	// Trend Per-bucket lifecycle counts for this error code, using `trend_grain`. Includes only buckets with activity. Present when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSErrorCodeStatsPoint Delivery and latency statistics for one standardized failure reason over the requested period.

type SMSEvent added in v0.33.0

type SMSEvent struct {
	// Carrier Carrier that handled the message. Present on `sms.sent` and `sms.delivered` once identified, absent otherwise.
	Carrier *string `json:"carrier,omitempty"`

	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *SMSError `json:"error,omitempty"`

	// Id Unique identifier for this event, stable across repeated fetches of the message.
	Id *string `json:"id,omitempty"`

	// MccMnc Mobile country code and mobile network code of the carrier. Present on `sms.sent` and `sms.delivered` once identified, absent otherwise.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// OccurredAt When this event occurred.
	OccurredAt *time.Time `json:"occurred_at,omitempty"`

	// Type Lifecycle event type. The `sms.accepted` event means the API accepted the request. The `sms.sent` event means the message reached the carrier. The `sms.delivered` event confirms delivery. The `sms.undelivered`, `sms.failed`, and `sms.expired` events describe delivery failures. The `sms.rejected` event means the message was refused before carrier handoff. This is an open enum. Accept unrecognized values.
	Type *string `json:"type,omitempty"`
}

SMSEvent defines model for SMSEvent.

type SMSEventList added in v0.33.0

type SMSEventList struct {
	// Data Timeline events for this SMS message, in chronological order. The bounded timeline is returned in full and is not paginated.
	Data []SMSEvent `json:"data"`
}

SMSEventList defines model for SMSEventList.

type SMSInboundCountryStatsPoint added in v0.33.0

type SMSInboundCountryStatsPoint struct {
	// Country The country of the Bird number the messages arrived on, as an ISO 3166-1 alpha-2 code. This identifies where the message was received. It does not identify the sender's country.
	Country *string `json:"country,omitempty"`

	// Received Distinct messages received on numbers in this country during the period.
	Received *int `json:"received,omitempty"`
}

SMSInboundCountryStatsPoint Received-message volume for one country.

type SMSInboundNumberStatsPoint added in v0.33.0

type SMSInboundNumberStatsPoint struct {
	// Number The Bird number the messages arrived on, in E.164, or the short code they were sent to. This is the same value the message resource exposes as `to`.
	Number *string `json:"number,omitempty"`

	// Received Distinct messages received on this number during the period.
	Received *int `json:"received,omitempty"`
}

SMSInboundNumberStatsPoint Received-message volume for one of your numbers.

type SMSInboundOperatorStatsPoint added in v0.33.0

type SMSInboundOperatorStatsPoint struct {
	// MccMnc Mobile country code and mobile network code of the network the sending subscriber is on. The breakdown keys on this rather than on an operator name because the carrier reports a name only where a surcharge applies, which would leave most of the world in one unnamed bucket.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// Received Distinct messages received from senders on this operator during the period.
	Received *int `json:"received,omitempty"`
}

SMSInboundOperatorStatsPoint Received-message volume for one mobile operator.

type SMSInboundStatsByCountryResponse added in v0.33.0

type SMSInboundStatsByCountryResponse struct {
	// Data One row per country with activity in the period, most messages first, capped at the requested `limit`. A country with no messages in the period is absent rather than zero-filled, because unlike a time bucket it is not part of a continuous axis.
	Data *[]SMSInboundCountryStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct countries the messages arrived in with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSInboundStatsByCountryResponse Received-message volume broken down by country, ranked by volume.

type SMSInboundStatsByNumberResponse added in v0.33.0

type SMSInboundStatsByNumberResponse struct {
	// Data One row per number with activity in the period, most messages first, capped at the requested `limit`. A number with no messages in the period is absent rather than zero-filled, because unlike a time bucket it is not part of a continuous axis.
	Data *[]SMSInboundNumberStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct numbers with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSInboundStatsByNumberResponse Received-message volume broken down by number, ranked by volume.

type SMSInboundStatsByOperatorResponse added in v0.33.0

type SMSInboundStatsByOperatorResponse struct {
	// Data One row per operator with activity in the period, most messages first, capped at the requested `limit`. An operator with no messages in the period is absent rather than zero-filled, because unlike a time bucket it is not part of a continuous axis.
	Data *[]SMSInboundOperatorStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct sending operators with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSInboundStatsByOperatorResponse Received-message volume broken down by operator, ranked by volume.

type SMSInboundStatsComparison added in v0.33.0

type SMSInboundStatsComparison struct {
	Delta *SMSInboundStatsComparisonDelta `json:"delta,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Received Distinct messages received in the preceding period.
	Received *int `json:"received,omitempty"`
}

SMSInboundStatsComparison The received-message count for the equal-length, inclusive period ending immediately before the requested start, together with the change between the two periods. Present only when `compare=previous_period` is requested. The change is already computed, so a percentage difference needs no second request.

type SMSInboundStatsComparisonDelta added in v0.33.0

type SMSInboundStatsComparisonDelta struct {
	// ReceivedPctChange Relative change in received messages versus the previous period, as a signed fraction. Null when the previous period received none.
	ReceivedPctChange *float32 `json:"received_pct_change,omitempty"`
}

SMSInboundStatsComparisonDelta The change from the preceding period to the requested one. The `received_pct_change` field is a signed relative change, computed as `(current - previous) / previous`. A value of `0.5` means 50% higher, and `-0.2` means 20% lower. The field is null when the previous period received none.

type SMSInboundStatsPoint added in v0.33.0

type SMSInboundStatsPoint struct {
	// Bucket Start of the bucket this row covers, as a calendar day (YYYY-MM-DD) for the daily series or an hour boundary (RFC 3339) for the hourly one.
	Bucket *string `json:"bucket,omitempty"`

	// Received Distinct messages received in this bucket, counted by the time the carrier received them.
	Received *int `json:"received,omitempty"`
}

SMSInboundStatsPoint One time bucket of received-message counts, attributed by arrival time.

type SMSInboundStatsResponse added in v0.33.0

type SMSInboundStatsResponse struct {
	// Data One row per bucket (day or hour, per the grain) in the period, in chronological order. Buckets with no activity are included with a count of zero, so the series charts continuously without client-side gap handling.
	Data *[]SMSInboundStatsPoint `json:"data,omitempty"`

	// Period The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.
	Period SMSStatsSeriesPeriod `json:"period"`
}

SMSInboundStatsResponse Received-message time series. `period` echoes the range and bucket grain the server computed against; `data` is one row per bucket in chronological order.

type SMSInboundStatsSummaryResponse added in v0.33.0

type SMSInboundStatsSummaryResponse struct {
	Comparison *SMSInboundStatsComparison `json:"comparison,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Received Distinct messages received in the period, counted by the time the carrier received them.
	Received *int `json:"received,omitempty"`
}

SMSInboundStatsSummaryResponse Total received messages over the requested period.

type SMSKeywordOperation added in v0.33.0

type SMSKeywordOperation string

SMSKeywordOperation What Bird does when an inbound message matches the rule.

  • `stop` unsubscribes the sender from further messages.
  • `start` resubscribes them.
  • `help` replies with your support information.
  • `info` replies with your program information. It behaves exactly as `help` does and is separate so a country whose INFO answer must differ from its HELP answer can carry both. Where Bird ships no `info` rule for a country, INFO is one of that country's `help` keywords and answers with the `help` reply.
  • `confirm` marks a double opt-in reply. It sends nothing today, so answer it from your own handler.
  • `custom` replies with the text you configured and has no other effect.

Bird's built-in rules fix the operation for `stop`, `start` and `help`; you can change their reply but not what they do. The same holds for `info` in any country where Bird ships an `info` rule. This is an open enum. Accept unrecognized values.

const (
	SMSKeywordOperationConfirm SMSKeywordOperation = "confirm"
	SMSKeywordOperationCustom  SMSKeywordOperation = "custom"
	SMSKeywordOperationHelp    SMSKeywordOperation = "help"
	SMSKeywordOperationInfo    SMSKeywordOperation = "info"
	SMSKeywordOperationStart   SMSKeywordOperation = "start"
	SMSKeywordOperationStop    SMSKeywordOperation = "stop"
)

Defines values for SMSKeywordOperation.

func (SMSKeywordOperation) Valid added in v0.33.0

func (e SMSKeywordOperation) Valid() bool

Valid indicates whether the value is a known member of the SMSKeywordOperation enum.

type SMSKeywordRule added in v0.33.0

type SMSKeywordRule struct {
	// Country The country the rule applies in, as an ISO 3166-1 alpha-2 code. A rule for `NL` covers messages received on your Dutch numbers, and messages from a subscriber whose own number is Dutch whichever of your numbers they text. Rules for the country a message arrives in always outrank rules for the country its sender is in; within each, your rule wins over Bird's keywords for that country. `number` confines a rule to one number. Null means the rule applies worldwide, which is allowed for `custom` operations only.
	Country *string `json:"country,omitempty"`

	// CreatedAt When the rule was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// EffectiveKeywords Every keyword that matches this rule: Bird's keywords for the same operation, country and language, plus the ones you added. This is what an inbound message is compared against. Keywords Bird adds later join it without you changing anything.
	EffectiveKeywords *[]string `json:"effective_keywords,omitempty"`

	// Id Identifier of a keyword rule. An `sks_` id is one of Bird's defaults, which you can read but not change; an `skw_` id is a rule your workspace created.
	Id SMSKeywordRuleID `json:"id"`

	// Keywords The keywords this rule adds. For one of Bird's defaults this is the full set Bird ships. For a rule you created it is only what you added on top. It never restates or removes Bird's keywords, so `effective_keywords` is what actually matches.
	Keywords []string `json:"keywords"`

	// Language The language this rule covers, in countries where Bird ships keywords in more than one. Canada has separate English and French rules, so a Canadian rule names which one it replaces and the other keeps Bird's reply. Null in countries with a single set.
	Language *string `json:"language,omitempty"`

	// Mandatory Whether what this operation does is fixed. When true you can change the reply but not the behavior. An opt-out keyword always unsubscribes the sender, whichever rule matched it, because carriers and regulators require it.
	Mandatory *bool `json:"mandatory,omitempty"`

	// Number Narrows the rule to one of your numbers in E.164 format, instead of every number you hold in the country. Null means it applies to all of them.
	Number *string `json:"number,omitempty"`

	// Operation What Bird does when an inbound message matches the rule.
	//
	// - `stop` unsubscribes the sender from further messages.
	// - `start` resubscribes them.
	// - `help` replies with your support information.
	// - `info` replies with your program information. It behaves exactly as `help` does and is
	//   separate so a country whose INFO answer must differ from its HELP answer can carry both.
	//   Where Bird ships no `info` rule for a country, INFO is one of that country's `help`
	//   keywords and answers with the `help` reply.
	// - `confirm` marks a double opt-in reply. It sends nothing today, so answer it from your own
	//   handler.
	// - `custom` replies with the text you configured and has no other effect.
	//
	// Bird's built-in rules fix the operation for `stop`, `start` and `help`; you can change their
	// reply but not what they do. The same holds for `info` in any country where Bird ships an
	// `info` rule. This is an open enum. Accept unrecognized values.
	Operation SMSKeywordOperation `json:"operation"`

	// Reply The message sent back when one of the keywords matches, except on a `confirm` rule, which never sends one. Null when the auto-reply is switched off, which `reply_disabled_at` distinguishes from a rule that has not been given one.
	Reply *string `json:"reply,omitempty"`

	// ReplyDisabledAt When the auto-reply for this rule was switched off, or null if it is on. Switching it off records that you send this reply from your own system, which is what Bird points to if a carrier asks why no reply went out.
	ReplyDisabledAt *time.Time `json:"reply_disabled_at,omitempty"`

	// ReplySuffix Text appended to your reply that you cannot change: the rates and opt-out wording carriers require on a help response. Your reply is sent in front of it, and both count against the length a single message allows. Null when the operation carries none.
	ReplySuffix *string `json:"reply_suffix,omitempty"`

	// Scope Whether the rule is one of Bird's defaults (`system`) or one your workspace created (`workspace`). A `workspace` rule takes precedence over Bird's default for the same country, so it is how you replace a reply without losing the keywords Bird ships.
	Scope *SMSKeywordRuleScope `json:"scope,omitempty"`

	// UpdatedAt When the rule was last changed. On one of Bird's defaults this is when Bird last changed the keywords or the reply for that country.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

SMSKeywordRule defines model for SMSKeywordRule.

type SMSKeywordRuleCreate added in v0.33.0

type SMSKeywordRuleCreate struct {
	// ConfirmedSelfManaged Set this with `reply: null` to confirm you send this reply from your own system, which switches Bird's auto-reply off for the rule. Required to send no reply, and rejected when a reply is given, so the two can never disagree.
	ConfirmedSelfManaged *bool `json:"confirmed_self_managed,omitempty"`

	// Country The country this rule applies in, as an ISO 3166-1 alpha-2 code. It matches a message two ways: one received on any of your numbers in this country, and one sent by a subscriber whose own number is in it, wherever they text you. Rules for the country a message arrives in always outrank rules for the country its sender is in; within each, your rule wins over Bird's keywords for that country. To confine a rule to one of your numbers, set `number` instead. Required for `stop`, `start` and `help`, because those replace what Bird ships for one country and a worldwide rule would replace every country's. Omit it only for `custom`, which then applies everywhere you send. Derived from `number` when you supply an E.164 number and leave this out; a short code carries no country, so a rule for one must name it.
	Country nullable.Nullable[string] `json:"country,omitempty"`

	// Keywords Extra keywords to match, on top of the ones Bird already ships for this operation and country. Omit to keep Bird's keywords and change only the reply, including keywords Bird adds later. You cannot remove one of Bird's keywords, and a keyword Bird has bound to another operation cannot be reused here. Required for `custom`, which inherits none.
	Keywords *[]string `json:"keywords,omitempty"`

	// Language Which language this rule replaces, in countries where Bird ships keywords in more than one. Required there and rejected elsewhere. Listing the country's rules shows whether it applies and which languages are available.
	Language nullable.Nullable[string] `json:"language,omitempty"`

	// Number Narrows the rule to one number you hold, in E.164 format or as a short code. Omit to cover every number you hold in the country. The number must be one of yours and able to receive messages.
	Number nullable.Nullable[string] `json:"number,omitempty"`

	// Operation What Bird does when an inbound message matches the rule.
	//
	// - `stop` unsubscribes the sender from further messages.
	// - `start` resubscribes them.
	// - `help` replies with your support information.
	// - `info` replies with your program information. It behaves exactly as `help` does and is
	//   separate so a country whose INFO answer must differ from its HELP answer can carry both.
	//   Where Bird ships no `info` rule for a country, INFO is one of that country's `help`
	//   keywords and answers with the `help` reply.
	// - `confirm` marks a double opt-in reply. It sends nothing today, so answer it from your own
	//   handler.
	// - `custom` replies with the text you configured and has no other effect.
	//
	// Bird's built-in rules fix the operation for `stop`, `start` and `help`; you can change their
	// reply but not what they do. The same holds for `info` in any country where Bird ships an
	// `info` rule. This is an open enum. Accept unrecognized values.
	Operation SMSKeywordOperation `json:"operation"`

	// Reply The message to send back when a keyword matches, except on a `confirm` rule, which never sends one whatever this is set to. Set it to null together with `confirmed_self_managed` to send nothing at all.
	Reply nullable.Nullable[string] `json:"reply,omitempty"`
}

SMSKeywordRuleCreate defines model for SMSKeywordRuleCreate.

type SMSKeywordRuleID added in v0.33.0

type SMSKeywordRuleID = string

SMSKeywordRuleID Identifier of a keyword rule. An `sks_` id is one of Bird's defaults, which you can read but not change; an `skw_` id is a rule your workspace created.

type SMSKeywordRuleList added in v0.33.0

type SMSKeywordRuleList struct {
	// Data The keyword rules that apply to your workspace, Bird's defaults included. Ordered most specific first, so the first rule whose keywords match an inbound message is the one that runs. The set is small and returned in full; this list is not paginated.
	Data []SMSKeywordRule `json:"data"`
}

SMSKeywordRuleList defines model for SMSKeywordRuleList.

type SMSKeywordRuleScope added in v0.33.0

type SMSKeywordRuleScope string

SMSKeywordRuleScope Whether the rule is one of Bird's defaults (`system`) or one your workspace created (`workspace`). A `workspace` rule takes precedence over Bird's default for the same country, so it is how you replace a reply without losing the keywords Bird ships.

const (
	SMSKeywordRuleScopeSystem    SMSKeywordRuleScope = "system"
	SMSKeywordRuleScopeWorkspace SMSKeywordRuleScope = "workspace"
)

Defines values for SMSKeywordRuleScope.

func (SMSKeywordRuleScope) Valid added in v0.33.0

func (e SMSKeywordRuleScope) Valid() bool

Valid indicates whether the value is a known member of the SMSKeywordRuleScope enum.

type SMSKeywordRuleUpdate added in v0.33.0

type SMSKeywordRuleUpdate struct {
	// ConfirmedSelfManaged Set this with `reply: null` to confirm you send this reply from your own system. Required to switch the auto-reply off, and rejected when a reply is given.
	ConfirmedSelfManaged *bool `json:"confirmed_self_managed,omitempty"`

	// Keywords Replaces the extra keywords this rule matches, on top of the ones Bird ships. Send an empty array to keep Bird's keywords only. Omit to leave the current ones unchanged.
	Keywords *[]string `json:"keywords,omitempty"`

	// Reply Replaces the message sent back when a keyword matches, except on a `confirm` rule, which never sends one whatever this is set to. Set it to null together with `confirmed_self_managed` to switch the auto-reply off. Omit to leave it unchanged.
	Reply nullable.Nullable[string] `json:"reply,omitempty"`
}

SMSKeywordRuleUpdate Changes the reply and the added keywords. What a rule applies to (its operation, country, language and number) is fixed once created: those decide which inbound messages reach it, so changing one would make it a different rule. Delete it and create the one you want.

type SMSLatencyQuantiles added in v0.33.0

type SMSLatencyQuantiles struct {
	// P50Ms Median (50th percentile) latency in milliseconds. Null when no qualifying event contributed a measurement.
	P50Ms *int `json:"p50_ms,omitempty"`

	// P95Ms 95th percentile latency in milliseconds. Null when no qualifying event contributed a measurement.
	P95Ms *int `json:"p95_ms,omitempty"`

	// P99Ms 99th percentile latency in milliseconds. Null when no qualifying event contributed a measurement.
	P99Ms *int `json:"p99_ms,omitempty"`
}

SMSLatencyQuantiles Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family. All three are null when no qualifying event contributed a measurement.

type SMSLatencyStats added in v0.33.0

type SMSLatencyStats struct {
	// Delivery Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family. All three are null when no qualifying event contributed a measurement.
	Delivery *SMSLatencyQuantiles `json:"delivery,omitempty"`

	// Processing Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family. All three are null when no qualifying event contributed a measurement.
	Processing *SMSLatencyQuantiles `json:"processing,omitempty"`

	// Total Approximate p50, p95, and p99 latency percentiles in milliseconds for one latency family. All three are null when no qualifying event contributed a measurement.
	Total *SMSLatencyQuantiles `json:"total,omitempty"`
}

SMSLatencyStats Latency percentiles in milliseconds for the requested scope:

- `processing`: From acceptance to carrier handoff. - `delivery`: From carrier handoff to delivery confirmation. - `total`: From acceptance to delivery confirmation.

Each family is omitted when no qualifying event contributes a measurement. Individual percentiles can also be null.

type SMSMessage added in v0.3.0

type SMSMessage struct {
	// Carrier Carrier that handled the message. Absent until a delivery receipt identifies it, and on a received message the carrier reports it only where a carrier fee applies.
	Carrier *string `json:"carrier,omitempty"`

	// Category Content classification supplied on the send. Null for inbound messages.
	Category *SMSMessageCategory `json:"category,omitempty"`

	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// CreatedAt When the message was accepted (outbound) or received (inbound).
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// DeliveredAt When delivery was confirmed. Null until then.
	DeliveredAt *time.Time `json:"delivered_at,omitempty"`

	// Direction Whether the message was sent from a Bird sender (`outbound`) or received from a subscriber (`inbound`).
	Direction *SMSMessageDirection `json:"direction,omitempty"`

	// From Where the message came from. On an outbound message this is the sender you sent it from: an E.164 number, an alphanumeric sender ID, or a short code. On an inbound message, this is the phone number that sent it to you.
	From string       `json:"from"`
	Id   SMSMessageID `json:"id"`

	// LastError Failure detail for a message that could not be delivered or was rejected.
	LastError *SMSError `json:"last_error,omitempty"`

	// MccMnc Mobile country code and mobile network code of the carrier. Absent until the carrier is identified.
	MccMnc *string `json:"mcc_mnc,omitempty"`

	// Metadata Arbitrary JSON metadata stored on the message and echoed in webhook payloads.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Options Settings Bird applied to this message, with any option you omitted filled in with the default that was in force when you sent it. Absent on inbound messages, and on outbound messages sent before Bird began recording these settings.
	Options *SMSMessageEffectiveOptions `json:"options,omitempty"`

	// Segments Segment breakdown for the message body. Segment count drives billing.
	Segments SMSSegments `json:"segments"`

	// SentAt When the message was handed to the carrier. Null until then.
	SentAt *time.Time        `json:"sent_at,omitempty"`
	Status *SMSMessageStatus `json:"status,omitempty"`

	// Tags Structured `{name, value}` filter labels applied to this message.
	Tags *[]Tag `json:"tags,omitempty"`

	// Text The message body. Every message carries body text, attachments, or both, so this is absent only on a received message that carried attachments and no text. For a template send, this is the rendered text after parameter substitution. When `category` is `authentication` (a message carrying a one-time code), this is `**REDACTED**`: the code still reaches the recipient, but the API does not retain it for later reads.
	Text *string `json:"text,omitempty"`

	// To Where the message went. On an outbound message this is the recipient's phone number in E.164 format; on an inbound one it is your own number that received it.
	To string `json:"to"`

	// ValidityPeriod How long, in seconds, Bird keeps trying to deliver before the message transitions to `expired`.
	ValidityPeriod *int `json:"validity_period,omitempty"`
}

SMSMessage defines model for SMSMessage.

type SMSMessageBatchRequest added in v0.3.0

type SMSMessageBatchRequest = []SMSMessageSendRequest

SMSMessageBatchRequest Batch of SMS message send requests. All items are validated before any are queued.

type SMSMessageBatchResponse added in v0.3.0

type SMSMessageBatchResponse struct {
	// Data One entry per message in the batch, in submission order.
	Data []SMSMessage `json:"data"`

	// Summary Aggregate result for an SMS batch.
	Summary *SMSBatchSummary `json:"summary,omitempty"`
}

SMSMessageBatchResponse defines model for SMSMessageBatchResponse.

type SMSMessageCategory added in v0.3.0

type SMSMessageCategory string

SMSMessageCategory Content classification. Tells Bird and carriers why you're sending; per-country compliance rules (opt-out policy, quiet hours) key on it as they roll out.

const (
	SMSMessageCategoryAuthentication SMSMessageCategory = "authentication"
	SMSMessageCategoryMarketing      SMSMessageCategory = "marketing"
	SMSMessageCategoryService        SMSMessageCategory = "service"
	SMSMessageCategoryTransactional  SMSMessageCategory = "transactional"
)

Defines values for SMSMessageCategory.

func (SMSMessageCategory) Valid added in v0.3.0

func (e SMSMessageCategory) Valid() bool

Valid indicates whether the value is a known member of the SMSMessageCategory enum.

type SMSMessageDirection added in v0.3.0

type SMSMessageDirection string

SMSMessageDirection Whether the message was sent from a Bird sender (`outbound`) or received from a subscriber (`inbound`).

const (
	SMSMessageDirectionInbound  SMSMessageDirection = "inbound"
	SMSMessageDirectionOutbound SMSMessageDirection = "outbound"
)

Defines values for SMSMessageDirection.

func (SMSMessageDirection) Valid added in v0.3.0

func (e SMSMessageDirection) Valid() bool

Valid indicates whether the value is a known member of the SMSMessageDirection enum.

type SMSMessageEffectiveOptions added in v0.30.0

type SMSMessageEffectiveOptions struct {
	// SmartEncoding Whether Bird replaced characters outside the GSM-7 alphabet in this message's body with their closest equivalent before sending it. When `true`, `text` is the body as sent and `segments` describes that body.
	SmartEncoding bool `json:"smart_encoding"`
}

SMSMessageEffectiveOptions The settings Bird applied to this message. Every option is reported, whether you set it on the send or took the default that was in force at the time.

type SMSMessageID added in v0.2.0

type SMSMessageID = string

SMSMessageID defines model for SMSMessageID.

type SMSMessageList added in v0.3.0

type SMSMessageList struct {
	// Data Page of SMS messages, newest first.
	Data []SMSMessage `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

SMSMessageList defines model for SMSMessageList.

type SMSMessageSendRequest added in v0.3.0

type SMSMessageSendRequest struct {
	// AudienceId Preview feature: audience-targeted sends. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	AudienceId *string `json:"audience_id,omitempty"`

	// BroadcastId Preview feature: broadcast correlation. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	BroadcastId *string `json:"broadcast_id,omitempty"`

	// CampaignId Preview feature: campaign correlation for analytics. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	CampaignId *string `json:"campaign_id,omitempty"`

	// Category Content classification. Tells Bird and carriers why you're sending; per-country compliance rules (opt-out policy, quiet hours) key on it as they roll out. Required on a free-text send; omit it on a template send, where the category is derived from the template.
	Category *SMSMessageCategory `json:"category,omitempty"`

	// ContactId Preview feature: contact-targeted sends. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	ContactId *string `json:"contact_id,omitempty"`

	// From Sender to send from. Use an E.164 number such as `+15557654321`, or a short code of 5-6 digits. You can also use an alphanumeric sender ID of 1-11 letters, digits, spaces, dashes, or underscores. It must contain at least one letter, for example `MyBrand`. A numeric sender must be a number your workspace owns; an alphanumeric sender is accepted where the destination country permits one. Required on a free-text send: omitting it returns a `422` `SMSNoEligibleSender`. Not accepted alongside `template`, which selects its sender automatically.
	From *string `json:"from,omitempty"`

	// MediaUrls Preview feature: multimedia (MMS) attachments. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	MediaUrls *[]string `json:"media_urls,omitempty"`

	// MessagingProfileId Preview feature: sender selection from a messaging profile pool. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	MessagingProfileId *string `json:"messaging_profile_id,omitempty"`

	// Metadata Arbitrary JSON object stored on the message, returned on API reads, and echoed in webhook payloads. Maximum 2 KB serialized. Use metadata for per-send context like internal IDs and foreign keys. For low-cardinality filterable labels, use `tags` instead.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Options What Bird does to this message on its way out, such as `smart_encoding`. The message being relayed stays at the top level: its recipient, sender, content, and the delivery instructions the carrier acts on.
	Options *SMSSendOptions `json:"options,omitempty"`

	// Personalization Preview feature: per-recipient substitution for batch sends. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	Personalization *map[string]interface{} `json:"personalization,omitempty"`

	// ScheduledAt Preview feature: send-later scheduling. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	ScheduledAt *time.Time `json:"scheduled_at,omitempty"`

	// Tags Structured `{name, value}` labels for filtering and analytics. Tags become first-class query dimensions: filter the list endpoint by tag name, slice analytics by tag, and surface in webhook payloads. Maximum 20 tags per send. Use tags for low-cardinality dimensions (`category`, `experiment_variant`). For arbitrary structured context you do not need as a filter dimension, use `metadata` instead.
	Tags *[]Tag `json:"tags,omitempty"`

	// Template Send using a stored template instead of free text. Mutually exclusive with `text`; the message category is derived from the template, so `from`, `category`, and `media_urls` are not accepted alongside it.
	Template *SMSTemplateSend `json:"template,omitempty"`

	// Text Free-text message body. Required unless `template` is supplied (the two are mutually exclusive). At least 1 character, up to a 12-segment cap (roughly 1836 GSM-7 or 804 UCS-2 characters). Bird does not truncate; a body exceeding 12 segments is rejected with a 422. The cap applies to segments because GSM-7 and UCS-2 encodings differ in characters per segment.
	Text *string `json:"text,omitempty"`

	// To Recipient phone number in E.164 format (for example `+14155550100`). One recipient per message. The number is stored and returned in canonical E.164; a recipient that cannot be routed returns a `422` `SMSInvalidRecipient`.
	To string `json:"to"`

	// TopicId Preview feature: topic-gated sends. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	TopicId *string `json:"topic_id,omitempty"`

	// ValidityPeriod Preview feature: how long, in seconds (60-172800), Bird keeps trying to deliver before the message transitions to `expired`. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	ValidityPeriod *int `json:"validity_period,omitempty"`
	// contains filtered or unexported fields
}

SMSMessageSendRequest A message to send. Supply exactly one of `text` (free-text, which also requires `category`) or `template` (a stored template, whose category is derived). Supplying both, or neither, is rejected.

func (SMSMessageSendRequest) AsSMSMessageSendRequest0 added in v0.3.0

func (t SMSMessageSendRequest) AsSMSMessageSendRequest0() (SMSMessageSendRequest0, error)

AsSMSMessageSendRequest0 returns the union data inside the SMSMessageSendRequest as a SMSMessageSendRequest0

func (SMSMessageSendRequest) AsSMSMessageSendRequest1 added in v0.3.0

func (t SMSMessageSendRequest) AsSMSMessageSendRequest1() (SMSMessageSendRequest1, error)

AsSMSMessageSendRequest1 returns the union data inside the SMSMessageSendRequest as a SMSMessageSendRequest1

func (*SMSMessageSendRequest) FromSMSMessageSendRequest0 added in v0.3.0

func (t *SMSMessageSendRequest) FromSMSMessageSendRequest0(v SMSMessageSendRequest0) error

FromSMSMessageSendRequest0 overwrites any union data inside the SMSMessageSendRequest as the provided SMSMessageSendRequest0

func (*SMSMessageSendRequest) FromSMSMessageSendRequest1 added in v0.3.0

func (t *SMSMessageSendRequest) FromSMSMessageSendRequest1(v SMSMessageSendRequest1) error

FromSMSMessageSendRequest1 overwrites any union data inside the SMSMessageSendRequest as the provided SMSMessageSendRequest1

func (SMSMessageSendRequest) MarshalJSON added in v0.3.0

func (t SMSMessageSendRequest) MarshalJSON() ([]byte, error)

func (*SMSMessageSendRequest) MergeSMSMessageSendRequest0 added in v0.3.0

func (t *SMSMessageSendRequest) MergeSMSMessageSendRequest0(v SMSMessageSendRequest0) error

MergeSMSMessageSendRequest0 performs a merge with any union data inside the SMSMessageSendRequest, using the provided SMSMessageSendRequest0

func (*SMSMessageSendRequest) MergeSMSMessageSendRequest1 added in v0.3.0

func (t *SMSMessageSendRequest) MergeSMSMessageSendRequest1(v SMSMessageSendRequest1) error

MergeSMSMessageSendRequest1 performs a merge with any union data inside the SMSMessageSendRequest, using the provided SMSMessageSendRequest1

func (*SMSMessageSendRequest) UnmarshalJSON added in v0.3.0

func (t *SMSMessageSendRequest) UnmarshalJSON(b []byte) error

type SMSMessageSendRequest0 added in v0.3.0

type SMSMessageSendRequest0 = interface{}

SMSMessageSendRequest0 defines model for .

type SMSMessageSendRequest1 added in v0.3.0

type SMSMessageSendRequest1 = interface{}

SMSMessageSendRequest1 defines model for .

type SMSMessageStatus added in v0.3.0

type SMSMessageStatus string

SMSMessageStatus Delivery status:

- `scheduled`: Queued for a future send time. - `accepted`: Accepted and awaiting carrier handoff. - `sent`: Handed to the carrier and awaiting a delivery receipt. - `delivered`: Confirmed as delivered. - `undelivered`: Temporarily unreachable. - `failed`: Permanently failed. - `rejected`: Refused before carrier handoff. - `canceled`: Canceled before a scheduled send. - `expired`: Reached its validity limit without a final receipt. - `received`: Received as an inbound message.

const (
	SMSMessageStatusAccepted    SMSMessageStatus = "accepted"
	SMSMessageStatusCanceled    SMSMessageStatus = "canceled"
	SMSMessageStatusDelivered   SMSMessageStatus = "delivered"
	SMSMessageStatusExpired     SMSMessageStatus = "expired"
	SMSMessageStatusFailed      SMSMessageStatus = "failed"
	SMSMessageStatusReceived    SMSMessageStatus = "received"
	SMSMessageStatusRejected    SMSMessageStatus = "rejected"
	SMSMessageStatusScheduled   SMSMessageStatus = "scheduled"
	SMSMessageStatusSent        SMSMessageStatus = "sent"
	SMSMessageStatusUndelivered SMSMessageStatus = "undelivered"
)

Defines values for SMSMessageStatus.

func (SMSMessageStatus) Valid added in v0.3.0

func (e SMSMessageStatus) Valid() bool

Valid indicates whether the value is a known member of the SMSMessageStatus enum.

type SMSOriginatorStatsPoint added in v0.33.0

type SMSOriginatorStatsPoint struct {
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`
	Latency  *SMSLatencyStats  `json:"latency,omitempty"`

	// Originator Sender address this row aggregates, either an alphanumeric sender ID or a phone number. Matches the message `from` value.
	Originator *string `json:"originator,omitempty"`

	// Trend Per-bucket lifecycle counts for this originator, using `trend_grain`. Includes only buckets with activity. Present when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSOriginatorStatsPoint Aggregate delivery and latency stats for a single originator (the sender address messages were sent from) over the requested period.

type SMSReceivedEventType added in v0.28.1

type SMSReceivedEventType string

SMSReceivedEventType Always `sms.received` for this event.

const (
	SmsReceived SMSReceivedEventType = "sms.received"
)

Defines values for SMSReceivedEventType.

func (SMSReceivedEventType) Valid added in v0.28.1

func (e SMSReceivedEventType) Valid() bool

Valid indicates whether the value is a known member of the SMSReceivedEventType enum.

type SMSSegments added in v0.3.0

type SMSSegments struct {
	// Characters Character count of the body under the selected encoding.
	Characters *int `json:"characters,omitempty"`

	// Count Number of segments the body is split into. Each segment is a billable unit.
	Count *int `json:"count,omitempty"`

	// Encoding Encoding used for the body. The `GSM_7BIT` encoding fits 160 characters in one segment, or 153 per part in a multi-segment message. The `UCS2` encoding applies when the body contains a character outside the GSM 03.38 alphabet, including emoji, CJK, and some accented characters. It fits 70 characters in one segment, or 67 per part in a multi-segment message.
	Encoding *SMSSegmentsEncoding `json:"encoding,omitempty"`
}

SMSSegments Segment breakdown for the message body. Segment count drives billing.

type SMSSegmentsEncoding added in v0.3.0

type SMSSegmentsEncoding string

SMSSegmentsEncoding Encoding used for the body. The `GSM_7BIT` encoding fits 160 characters in one segment, or 153 per part in a multi-segment message. The `UCS2` encoding applies when the body contains a character outside the GSM 03.38 alphabet, including emoji, CJK, and some accented characters. It fits 70 characters in one segment, or 67 per part in a multi-segment message.

const (
	GSM7BIT SMSSegmentsEncoding = "GSM_7BIT"
	UCS2    SMSSegmentsEncoding = "UCS2"
)

Defines values for SMSSegmentsEncoding.

func (SMSSegmentsEncoding) Valid added in v0.3.0

func (e SMSSegmentsEncoding) Valid() bool

Valid indicates whether the value is a known member of the SMSSegmentsEncoding enum.

type SMSSendOptions added in v0.30.0

type SMSSendOptions struct {
	// MaxPricePerSegment Preview feature: per-segment price ceiling. Currently unavailable; supplying this field returns `422 SMSUnsupportedFeature`.
	MaxPricePerSegment *float32 `json:"max_price_per_segment,omitempty"`

	// SmartEncoding Replace characters outside the GSM-7 alphabet with their closest GSM-7 equivalent before sending: typically curly quotes, dashes, ellipses, fullwidth forms, and non-breaking spaces.
	//
	// One such character forces the whole body into `UCS2`, which more than halves the characters that fit in a segment, so replacing them often lowers the segment count and the cost.
	//
	// Disabled by default, because it alters the body you composed. The replacement is all-or-nothing: a body that still holds a character outside the alphabet afterwards, such as an emoji or a non-Latin script, is sent exactly as you supplied it. Read the message back to see what was applied: `text` is the body as sent.
	SmartEncoding *bool `json:"smart_encoding,omitempty"`

	// TrackClicks Preview feature: link click tracking. Defaults to `false`. Currently unavailable; setting this to `true` returns `422 SMSUnsupportedFeature`.
	TrackClicks *bool `json:"track_clicks,omitempty"`
}

SMSSendOptions Settings that change how Bird processes this message. Each option applies to this send only; omit one to use its default.

type SMSStatsByCarrierResponse added in v0.33.0

type SMSStatsByCarrierResponse struct {
	// Data Carrier breakdown rows, ranked by the `sort` metric (default `accepted`) descending. Empty when no messages were sent in the period.
	Data *[]SMSCarrierStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct carriers with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByCarrierResponse Per-carrier breakdown for the requested period, ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsByCategoryResponse added in v0.33.0

type SMSStatsByCategoryResponse struct {
	// Data Category breakdown rows, ranked by the `sort` metric (default `accepted`) descending. Empty when no messages were sent in the period.
	Data *[]SMSCategoryStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct categories with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByCategoryResponse Per-category breakdown for the requested period, ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsByCountryResponse added in v0.33.0

type SMSStatsByCountryResponse struct {
	// Data Country breakdown rows, ranked by the `sort` metric (default `accepted`) descending. Empty when no messages were sent in the period.
	Data *[]SMSCountryStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct destination countries with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByCountryResponse Per-country breakdown for the requested period, ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsByErrorCodeResponse added in v0.33.0

type SMSStatsByErrorCodeResponse struct {
	// Data Error-code breakdown rows, ranked by the `sort` metric (default `failed`) descending. Empty when no delivery failures occurred in the period.
	Data *[]SMSErrorCodeStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct error codes with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByErrorCodeResponse Per-error-code breakdown for the requested period, ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsByOriginatorResponse added in v0.33.0

type SMSStatsByOriginatorResponse struct {
	// Data Originator breakdown rows, ranked by the `sort` metric (default `accepted`) descending. Empty when no messages were sent in the period.
	Data *[]SMSOriginatorStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct originators with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByOriginatorResponse Per-originator breakdown for the requested period, ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsByStatusResponse added in v0.33.0

type SMSStatsByStatusResponse struct {
	// Data Status breakdown rows, one per lifecycle status with activity, ordered by count descending. Empty when no messages had activity in the period.
	Data *[]SMSStatusStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Number of distinct lifecycle statuses with activity in the period (at most seven). Equal to the number of rows returned, since this breakdown is never capped.
	Total *int `json:"total,omitempty"`
}

SMSStatsByStatusResponse Lifecycle-status breakdown for the requested period, ordered by message count descending. Statuses with no activity are omitted.

type SMSStatsByTagResponse added in v0.33.0

type SMSStatsByTagResponse struct {
	// Data Tag breakdown rows, ranked by the `sort` metric (default `accepted`) descending. Empty when no tagged messages were sent in the period.
	Data *[]SMSTagStatsPoint `json:"data,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`

	// Total Total number of distinct tags with activity in the period, regardless of `limit`. When it exceeds the number of rows returned, the ranking was capped; raise `limit` (up to 200) or narrow the window to see more.
	Total *int `json:"total,omitempty"`
}

SMSStatsByTagResponse Per-tag breakdown for the requested period, ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, max 200).

type SMSStatsComparison added in v0.33.0

type SMSStatsComparison struct {
	Delivery *SMSDeliveryStats        `json:"delivery,omitempty"`
	Delta    *SMSStatsComparisonDelta `json:"delta,omitempty"`
	Latency  *SMSLatencyStats         `json:"latency,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`
}

SMSStatsComparison The same statistics for the equal-length, inclusive period ending immediately before the requested start, together with the change between the two periods. Present only when `compare=previous_period` is requested. The change is already computed, so a percentage difference needs no second request.

type SMSStatsComparisonDelta added in v0.33.0

type SMSStatsComparisonDelta struct {
	// AcceptedPctChange Relative change in accepted messages (`delivery.accepted`) versus the previous period, as a signed fraction. Null when the previous period accepted none.
	AcceptedPctChange *float32 `json:"accepted_pct_change,omitempty"`

	// DeliveredPctChange Relative change in delivered messages (`delivery.delivered`) versus the previous period, as a signed fraction. Null when the previous period delivered none.
	DeliveredPctChange *float32 `json:"delivered_pct_change,omitempty"`

	// DeliveryRatePp Signed difference between this period's and the previous period's delivery rate, both fractions in [0,1] (multiply by 100 for percentage points). Null when either period's delivery rate is undefined.
	DeliveryRatePp *float32 `json:"delivery_rate_pp,omitempty"`

	// ExpiredPctChange Relative change in expired messages (`delivery.expired`) versus the previous period, as a signed fraction. Null when the previous period had none.
	ExpiredPctChange *float32 `json:"expired_pct_change,omitempty"`

	// FailedPctChange Relative change in failed messages (`delivery.failed`) versus the previous period, as a signed fraction. Null when the previous period had none.
	FailedPctChange *float32 `json:"failed_pct_change,omitempty"`

	// FailureRatePp Signed difference between the current and previous failure-rate fractions. Multiply by 100 for percentage points. The value can fall outside `[-1, 1]` because a message can contribute to more than one failure outcome and high-volume counts are approximate. Null when either rate is undefined.
	FailureRatePp *float32 `json:"failure_rate_pp,omitempty"`

	// RejectedPctChange Relative change in rejected messages (`delivery.rejected`) versus the previous period, as a signed fraction. Null when the previous period had none.
	RejectedPctChange *float32 `json:"rejected_pct_change,omitempty"`

	// SentPctChange Relative change in sent messages (`delivery.sent`) versus the previous period, as a signed fraction. Null when the previous period had none.
	SentPctChange *float32 `json:"sent_pct_change,omitempty"`

	// UndeliveredPctChange Relative change in undelivered messages (`delivery.undelivered`) versus the previous period, as a signed fraction. Null when the previous period had none.
	UndeliveredPctChange *float32 `json:"undelivered_pct_change,omitempty"`
}

SMSStatsComparisonDelta Changes from the previous period. A `*_pct_change` value is the signed relative change `(current - previous) / previous` and is null when the previous count is zero. A `*_rate_pp` value is the signed difference between rate fractions and is null when either rate is undefined.

type SMSStatsLifecycleSortMetric added in v0.33.0

type SMSStatsLifecycleSortMetric string

SMSStatsLifecycleSortMetric Metric to rank breakdown rows by, applied descending. Shared by the breakdowns whose rows carry lifecycle counts only, with no derived rates to sort on.

const (
	SMSStatsLifecycleSortMetricAccepted    SMSStatsLifecycleSortMetric = "accepted"
	SMSStatsLifecycleSortMetricDelivered   SMSStatsLifecycleSortMetric = "delivered"
	SMSStatsLifecycleSortMetricExpired     SMSStatsLifecycleSortMetric = "expired"
	SMSStatsLifecycleSortMetricFailed      SMSStatsLifecycleSortMetric = "failed"
	SMSStatsLifecycleSortMetricRejected    SMSStatsLifecycleSortMetric = "rejected"
	SMSStatsLifecycleSortMetricSent        SMSStatsLifecycleSortMetric = "sent"
	SMSStatsLifecycleSortMetricUndelivered SMSStatsLifecycleSortMetric = "undelivered"
)

Defines values for SMSStatsLifecycleSortMetric.

func (SMSStatsLifecycleSortMetric) Valid added in v0.33.0

Valid indicates whether the value is a known member of the SMSStatsLifecycleSortMetric enum.

type SMSStatsPoint added in v0.33.0

type SMSStatsPoint struct {
	// Bucket The day (YYYY-MM-DD) or hour (RFC 3339, on the hour) this point covers, matching the period's grain.
	Bucket   *string            `json:"bucket,omitempty"`
	Delivery *SMSDeliveryCounts `json:"delivery,omitempty"`
}

SMSStatsPoint SMS lifecycle counts for one time bucket (a calendar day or hour), bucketed by send time. Every count in a bucket describes the messages accepted in it, regardless of when their later events arrived. Per-bucket values include counts only. The summary and breakdown endpoints report rates and latency as whole-window aggregates.

type SMSStatsResponse added in v0.33.0

type SMSStatsResponse struct {
	// Data One row per day or hour in chronological order. Buckets with no activity contain zero counts.
	Data *[]SMSStatsPoint `json:"data,omitempty"`

	// Period The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.
	Period SMSStatsSeriesPeriod `json:"period"`
}

SMSStatsResponse Time-series stats payload. `period` echoes the range and bucket grain the server computed against; `data` is one row per bucket in chronological order.

type SMSStatsSeriesPeriod added in v0.33.0

type SMSStatsSeriesPeriod struct {
	// DataAsOf Latest time reflected in the statistics. More recent events might not be included yet. Null when the freshness boundary is unavailable.
	DataAsOf *time.Time `json:"data_as_of,omitempty"`

	// From Inclusive start of the window. A calendar day (YYYY-MM-DD) on the day grain, an RFC 3339 instant rounded to the hour on the hour grain.
	From *string `json:"from,omitempty"`

	// Grain The bucket grain of the series, either `day` or `hour`.
	Grain *StatsGrain `json:"grain,omitempty"`

	// To Inclusive end of the window. A calendar day (YYYY-MM-DD) on the day grain, an RFC 3339 instant rounded to the hour on the hour grain.
	To *string `json:"to,omitempty"`
}

SMSStatsSeriesPeriod The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.

type SMSStatsSortMetric added in v0.33.0

type SMSStatsSortMetric string

SMSStatsSortMetric Metric to rank breakdown rows by, applied descending. Shared by the volume breakdowns whose rows carry the full delivery and latency block (originators, countries, categories, carriers). Any lifecycle count or derived rate may be used; rows whose rate is undefined (zero denominator) sort last.

const (
	SMSStatsSortMetricAccepted     SMSStatsSortMetric = "accepted"
	SMSStatsSortMetricDelivered    SMSStatsSortMetric = "delivered"
	SMSStatsSortMetricDeliveryRate SMSStatsSortMetric = "delivery_rate"
	SMSStatsSortMetricExpired      SMSStatsSortMetric = "expired"
	SMSStatsSortMetricFailed       SMSStatsSortMetric = "failed"
	SMSStatsSortMetricFailureRate  SMSStatsSortMetric = "failure_rate"
	SMSStatsSortMetricRejected     SMSStatsSortMetric = "rejected"
	SMSStatsSortMetricSent         SMSStatsSortMetric = "sent"
	SMSStatsSortMetricUndelivered  SMSStatsSortMetric = "undelivered"
)

Defines values for SMSStatsSortMetric.

func (SMSStatsSortMetric) Valid added in v0.33.0

func (e SMSStatsSortMetric) Valid() bool

Valid indicates whether the value is a known member of the SMSStatsSortMetric enum.

type SMSStatsSummary added in v0.33.0

type SMSStatsSummary struct {
	Comparison *SMSStatsComparison `json:"comparison,omitempty"`
	Delivery   *SMSDeliveryStats   `json:"delivery,omitempty"`
	Latency    *SMSLatencyStats    `json:"latency,omitempty"`

	// Period The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.
	Period SMSStatsSummaryPeriod `json:"period"`
}

SMSStatsSummary Single-row aggregate across the full requested period, covering SMS lifecycle counts plus the derived delivery and failure rates, and latency percentiles. Use this endpoint for KPI tiles and reporting; the daily and hourly endpoints carry the same counts per bucket.

Every count is a sum of per-bucket counts across the window. Latency percentiles are computed across the whole period rather than summed per bucket. Rates are null when their denominator is zero.

type SMSStatsSummaryPeriod added in v0.33.0

type SMSStatsSummaryPeriod struct {
	// DataAsOf Latest time reflected in the statistics. More recent events might not be included yet. Null when the freshness boundary is unavailable.
	DataAsOf *time.Time `json:"data_as_of,omitempty"`

	// From Inclusive start of the window, as a calendar day (`YYYY-MM-DD`) or an RFC 3339 hour boundary.
	From *string `json:"from,omitempty"`

	// To Inclusive end of the window, as a calendar day (`YYYY-MM-DD`) or an RFC 3339 hour boundary.
	To *string `json:"to,omitempty"`
}

SMSStatsSummaryPeriod The window the server actually computed against. The summary serves two window grains: calendar days (bounds are YYYY-MM-DD) and hours (bounds are RFC 3339 instants on the hour). The grain of `from` and `to` mirrors the grain of the request's bounds.

type SMSStatusStatsPoint added in v0.33.0

type SMSStatusStatsPoint struct {
	// Count Distinct messages that reached this lifecycle status in the period, attributed to the message's send time rather than the event's own.
	Count *int `json:"count,omitempty"`

	// Status The lifecycle status this row counts. These are successive lifecycle stages. The `accepted` status was admitted for sending, `sent` was handed to the carrier, and `delivered` was confirmed by the carrier. The `undelivered`, `failed`, and `expired` statuses are failure outcomes. The `rejected` status was refused before a send attempt. Counted outcomes are a subset of the full message status vocabulary. The pre-send `scheduled`, cancellation `canceled`, and inbound-only `received` statuses are not send outcomes, so they never appear here.
	Status *SMSStatusStatsPointStatus `json:"status,omitempty"`
}

SMSStatusStatsPoint The number of messages that ended the requested period in a single lifecycle status. This transposes the lifecycle counts into one row per status, so it carries no rates or latency.

type SMSStatusStatsPointStatus added in v0.33.0

type SMSStatusStatsPointStatus string

SMSStatusStatsPointStatus The lifecycle status this row counts. These are successive lifecycle stages. The `accepted` status was admitted for sending, `sent` was handed to the carrier, and `delivered` was confirmed by the carrier. The `undelivered`, `failed`, and `expired` statuses are failure outcomes. The `rejected` status was refused before a send attempt. Counted outcomes are a subset of the full message status vocabulary. The pre-send `scheduled`, cancellation `canceled`, and inbound-only `received` statuses are not send outcomes, so they never appear here.

const (
	SMSStatusStatsPointStatusAccepted    SMSStatusStatsPointStatus = "accepted"
	SMSStatusStatsPointStatusDelivered   SMSStatusStatsPointStatus = "delivered"
	SMSStatusStatsPointStatusExpired     SMSStatusStatsPointStatus = "expired"
	SMSStatusStatsPointStatusFailed      SMSStatusStatsPointStatus = "failed"
	SMSStatusStatsPointStatusRejected    SMSStatusStatsPointStatus = "rejected"
	SMSStatusStatsPointStatusSent        SMSStatusStatsPointStatus = "sent"
	SMSStatusStatsPointStatusUndelivered SMSStatusStatsPointStatus = "undelivered"
)

Defines values for SMSStatusStatsPointStatus.

func (SMSStatusStatsPointStatus) Valid added in v0.33.0

func (e SMSStatusStatsPointStatus) Valid() bool

Valid indicates whether the value is a known member of the SMSStatusStatsPointStatus enum.

type SMSSuppression added in v0.33.0

type SMSSuppression struct {
	AppliesTo *SMSSuppressionCoverage `json:"applies_to,omitempty"`

	// Blocking Whether this is stopping messages right now. Always true in a list, which carries only the suppressions in force; false when you fetch one by ID that has since ended, which is also when `ended_at` is set.
	Blocking *bool `json:"blocking,omitempty"`

	// CreatedAt When we recorded it.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Destination The subscriber, in E.164 format.
	Destination string `json:"destination"`

	// EffectiveAt When the subscriber opted out, as reported by whoever reported it. This is what orders one subscriber's history, and it can be earlier than `created_at` when a message reached us late.
	EffectiveAt *time.Time `json:"effective_at,omitempty"`

	// EndedAt When this stopped applying. Null while it is still stopping messages.
	EndedAt *time.Time `json:"ended_at,omitempty"`

	// EndedEffectiveAt When the subscriber opted back in, as reported. Null while it is still stopping messages.
	EndedEffectiveAt *time.Time `json:"ended_effective_at,omitempty"`

	// EndedReason What ended it. Null while it is still stopping messages.
	EndedReason *SMSSuppressionEndReason `json:"ended_reason,omitempty"`
	Id          SMSSuppressionID         `json:"id"`

	// LastAssertedAt When we last recorded the subscriber opting out of this sender. Later than `created_at` when they texted a stop keyword again while already suppressed, which adds no new record but does earn another confirmation reply.
	LastAssertedAt *time.Time            `json:"last_asserted_at,omitempty"`
	Origin         *SMSSuppressionOrigin `json:"origin,omitempty"`

	// Originator The sender this stops. A suppression covers one sender, so your other senders still reach this subscriber. Opting out of one of your programs does not opt out of the others.
	Originator string                `json:"originator"`
	Reason     *SMSSuppressionReason `json:"reason,omitempty"`

	// SourceEndSmsId The inbound message the subscriber opted back in with, when there was one. Null while it is still stopping messages, and when something other than a start keyword ended it.
	SourceEndSmsId *SMSMessageID `json:"source_end_sms_id,omitempty"`

	// SourceSmsId The inbound message the subscriber opted out with, or the outbound message whose delivery report reported the opt-out. Null when neither applies.
	SourceSmsId *SMSMessageID `json:"source_sms_id,omitempty"`
}

SMSSuppression One period during which a sender's messages to a subscriber are stopped: when it started, what started it, and what ended it. A subscriber who opts out, opts back in, and opts out again has three of these on record rather than one current state, and each keeps its own dates once it ends. The list returns the periods in force; fetch one by ID to read an ended one.

type SMSSuppressionCoverage added in v0.33.0

type SMSSuppressionCoverage string

SMSSuppressionCoverage Message categories blocked for this sender and subscriber. `all` blocks every category, including authentication and transactional messages. `non_transactional` blocks marketing messages only. Responses currently use `all`. Treat unrecognized values as blocking every category.

const (
	SMSSuppressionCoverageAll              SMSSuppressionCoverage = "all"
	SMSSuppressionCoverageNonTransactional SMSSuppressionCoverage = "non_transactional"
)

Defines values for SMSSuppressionCoverage.

func (SMSSuppressionCoverage) Valid added in v0.33.0

func (e SMSSuppressionCoverage) Valid() bool

Valid indicates whether the value is a known member of the SMSSuppressionCoverage enum.

type SMSSuppressionCreate added in v0.33.0

type SMSSuppressionCreate struct {
	// Destination The subscriber to stop messaging, in E.164 format.
	Destination string `json:"destination"`

	// Originator The sender to stop. Your other senders keep reaching this subscriber, so stopping every one of them means one call per sender.
	Originator string `json:"originator"`
}

SMSSuppressionCreate Stops one sender's messages to one subscriber. Both ends are required, because a suppression covers a sender-and-subscriber pair rather than a subscriber alone.

type SMSSuppressionCreatedEventType added in v0.38.0

type SMSSuppressionCreatedEventType string

SMSSuppressionCreatedEventType Always `sms_suppression.created` for this event.

const (
	SmsSuppressionCreated SMSSuppressionCreatedEventType = "sms_suppression.created"
)

Defines values for SMSSuppressionCreatedEventType.

func (SMSSuppressionCreatedEventType) Valid added in v0.38.0

Valid indicates whether the value is a known member of the SMSSuppressionCreatedEventType enum.

type SMSSuppressionEndReason added in v0.33.0

type SMSSuppressionEndReason string

SMSSuppressionEndReason What ended it:

- `keyword_start`: the subscriber texting a start keyword to the same sender. - `api_key`: an API call. - `user`: someone acting in the dashboard. - `carrier_cleared`: the carrier reporting its own opt-out cleared.

This list grows over time, so treat an unknown value as informational rather than rejecting the record.

const (
	SMSSuppressionEndReasonApiKey         SMSSuppressionEndReason = "api_key"
	SMSSuppressionEndReasonCarrierCleared SMSSuppressionEndReason = "carrier_cleared"
	SMSSuppressionEndReasonKeywordStart   SMSSuppressionEndReason = "keyword_start"
	SMSSuppressionEndReasonUser           SMSSuppressionEndReason = "user"
)

Defines values for SMSSuppressionEndReason.

func (SMSSuppressionEndReason) Valid added in v0.33.0

func (e SMSSuppressionEndReason) Valid() bool

Valid indicates whether the value is a known member of the SMSSuppressionEndReason enum.

type SMSSuppressionID added in v0.33.0

type SMSSuppressionID = string

SMSSuppressionID defines model for SMSSuppressionID.

type SMSSuppressionList added in v0.33.0

type SMSSuppressionList struct {
	// Data Page of suppressions, most recent opt-out first.
	Data []SMSSuppression `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

SMSSuppressionList defines model for SMSSuppressionList.

type SMSSuppressionOrigin added in v0.33.0

type SMSSuppressionOrigin string

SMSSuppressionOrigin How the opt-out reached us:

- `keyword`: an inbound message from the subscriber. - `dlr_event`: a carrier delivery report. - `api_key`: an API call. - `user`: someone acting in the dashboard.

Kept beside the reason because one reason can arrive by more than one route.

This list grows over time, so treat an unknown value as informational rather than rejecting the record.

const (
	SMSSuppressionOriginApiKey   SMSSuppressionOrigin = "api_key"
	SMSSuppressionOriginDlrEvent SMSSuppressionOrigin = "dlr_event"
	SMSSuppressionOriginKeyword  SMSSuppressionOrigin = "keyword"
	SMSSuppressionOriginUser     SMSSuppressionOrigin = "user"
)

Defines values for SMSSuppressionOrigin.

func (SMSSuppressionOrigin) Valid added in v0.33.0

func (e SMSSuppressionOrigin) Valid() bool

Valid indicates whether the value is a known member of the SMSSuppressionOrigin enum.

type SMSSuppressionReason added in v0.33.0

type SMSSuppressionReason string

SMSSuppressionReason Reason this sender cannot message the subscriber:

- `keyword_stop`: The subscriber sent a stop keyword. A start keyword clears it. - `carrier_opted_out`: The carrier reported the opt-out. - `manual`: Your workspace added the suppression through the API or dashboard.

This is an open enum. Accept unrecognized values.

const (
	SMSSuppressionReasonCarrierOptedOut SMSSuppressionReason = "carrier_opted_out"
	SMSSuppressionReasonKeywordStop     SMSSuppressionReason = "keyword_stop"
	SMSSuppressionReasonManual          SMSSuppressionReason = "manual"
)

Defines values for SMSSuppressionReason.

func (SMSSuppressionReason) Valid added in v0.33.0

func (e SMSSuppressionReason) Valid() bool

Valid indicates whether the value is a known member of the SMSSuppressionReason enum.

type SMSSuppressionReasonFilter added in v0.33.0

type SMSSuppressionReasonFilter string

SMSSuppressionReasonFilter defines model for SMSSuppressionReasonFilter.

const (
	CarrierOptedOut SMSSuppressionReasonFilter = "carrier_opted_out"
	KeywordStop     SMSSuppressionReasonFilter = "keyword_stop"
	Manual          SMSSuppressionReasonFilter = "manual"
)

Defines values for SMSSuppressionReasonFilter.

func (SMSSuppressionReasonFilter) Valid added in v0.33.0

func (e SMSSuppressionReasonFilter) Valid() bool

Valid indicates whether the value is a known member of the SMSSuppressionReasonFilter enum.

type SMSTagStatsPoint added in v0.33.0

type SMSTagStatsPoint struct {
	Delivery *SMSDeliveryStats `json:"delivery,omitempty"`
	Latency  *SMSLatencyStats  `json:"latency,omitempty"`

	// Tag The tag this row aggregates, in `name:value` form. Each distinct name-and-value pair is its own row, and a message carrying several tags is counted once under each of them, so rows do not sum to the period total.
	Tag *string `json:"tag,omitempty"`

	// Trend Per-bucket lifecycle-count series for this tag over the window, bucketed by `trend_grain`. Sparse, so only buckets with activity are present rather than zero-filled, unlike the daily and hourly series. Present only when `include_trend=true`.
	Trend *[]SMSStatsPoint `json:"trend,omitempty"`
}

SMSTagStatsPoint Aggregate delivery and latency stats for a single tag (`name:value`) over the requested period.

type SMSTemplate added in v0.3.0

type SMSTemplate struct {
	// AvailableLanguages The languages a send can resolve right now, as BCP-47 tags. The set may shrink for reasons other than editing, so read it rather than assuming it matches what you last saw.
	AvailableLanguages *[]LanguageTag `json:"available_languages,omitempty"`

	// Body The template body in its default language, shown for preview. Variable placeholders appear inline (for example `{{ code }}`). Name a `language` on the send to have another one served.
	Body *string `json:"body,omitempty"`

	// Category Content classification applied to messages sent from this template.
	Category *SMSMessageCategory `json:"category,omitempty"`

	// CreatedAt When the template was created. Null for a built-in `system` template, which Bird ships rather than stores.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// DefaultLanguage The language a send uses when it names none, and the last resort when `on_missing_language` is `fallback` and the language asked for is not available.
	DefaultLanguage *LanguageTag `json:"default_language,omitempty"`

	// Description What the template is for. Null when unset.
	Description *string `json:"description,omitempty"`

	// DraftVersionId The current editable draft version, or null for a built-in `system` template, which has no draft.
	DraftVersionId *SMSTemplateVersionID `json:"draft_version_id,omitempty"`
	Id             SMSTemplateID         `json:"id"`

	// LanguageSourceRequired Whether a send has to name a language. When true, a send that names none is rejected instead of being served the default language.
	LanguageSourceRequired *bool `json:"language_source_required,omitempty"`

	// Languages Where each of the template's languages stands, keyed by BCP-47 language tag. Content is not here: `body` previews the default language, and a send resolves the one it needs.
	Languages *map[string]SMSTemplateLanguageState `json:"languages,omitempty"`

	// LastSubmittedAt When this template was last submitted. Null for a built-in `system` template, which is already available to send.
	LastSubmittedAt *time.Time `json:"last_submitted_at,omitempty"`

	// LiveVersionId The version a send resolves to, or null for a built-in `system` template, which Bird ships ready to send rather than versioning.
	LiveVersionId *SMSTemplateVersionID `json:"live_version_id,omitempty"`

	// Name The template's display name, shown wherever the template is listed. Nothing resolves through it, so it is safe to show wherever a human reads the template.
	Name *string `json:"name,omitempty"`

	// OnMissingLanguage What a send does when it asks for a language this template does not carry. Defaults to `fallback` on SMS.
	OnMissingLanguage *TemplateOnMissingLanguage `json:"on_missing_language,omitempty"`

	// PublishedVersionId Deprecated: use `live_version_id` instead, which carries the same value.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	PublishedVersionId *SMSTemplateVersionID `json:"published_version_id,omitempty"`

	// Revision The draft's revision counter. Null for a built-in `system` template, which is unversioned.
	Revision *int `json:"revision,omitempty"`

	// Scope Whether the template is one of our built-in templates (`system`) or one your workspace created (`workspace`). Every SMS template is `system`.
	Scope *TemplateScope `json:"scope,omitempty"`

	// Slug The template's permanent handle. Pass it (or the id) as the template reference when sending. Handles beginning with `bird_` are reserved for our built-in templates.
	Slug *TemplateSlug `json:"slug,omitempty"`

	// Status Where the template stands as a whole. The same five states on every channel.
	//
	// - `draft`: nothing has ever gone live.
	// - `pending`: nothing is live and at least one language is in review.
	// - `active`: at least one language is live, so something can be sent.
	// - `rejected`: it was reviewed and every language was refused.
	// - `inactive`: nothing is live and nothing is in review, so content was withdrawn or was blocked before anything went live.
	//
	// This summary answers whether the template is usable at all. A template with
	// one language live is `active` even while another is still drafted or refused.
	// Read `languages` to determine the state of each language and its reason.
	//
	// Which of the five a template can reach follows its channel's review model. A
	// channel whose content a third party reviews reaches all five; one whose
	// content goes live on publish moves between `draft`, `active` and `inactive`.
	//
	// Open enum: treat a value you do not recognize as a new one rather than as
	// an error.
	Status *TemplateStatus `json:"status,omitempty"`

	// UpdatedAt When the template was last modified. Null for a built-in `system` template, which Bird ships rather than stores.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Variables The typed slots this template fills in from the values you supply in `parameters` when sending. Every language of a template declares the same slots, so this list holds for whichever one a send resolves to.
	Variables *[]TemplateVariable `json:"variables,omitempty"`
}

SMSTemplate A message template: one identity holding a copy of the message per language, resolved to one at send. It declares the variable slots a send fills in, so the parts that change travel with the request and the wording does not.

type SMSTemplateID added in v0.3.0

type SMSTemplateID = string

SMSTemplateID defines model for SMSTemplateID.

type SMSTemplateLanguageState added in v0.32.0

type SMSTemplateLanguageState struct {
	// Status Status of one template language on channels without third-party review.
	//
	// - `draft`: it has never been published.
	// - `live`: it is available to sends.
	// - `superseded`: a later version replaced it.
	//
	// Treat an unknown value as not sendable.
	Status *TemplateLanguageStatus `json:"status,omitempty"`
}

SMSTemplateLanguageState One language's state on a template: whether it is live for sends. Content is not here; the template carries the body of its default language, and a send resolves the rest.

type SMSTemplateList added in v0.3.0

type SMSTemplateList struct {
	// Data The templates available to your workspace. The catalog is returned in full and is not paginated.
	Data []SMSTemplate `json:"data"`
}

SMSTemplateList defines model for SMSTemplateList.

type SMSTemplateSend added in v0.3.0

type SMSTemplateSend struct {
	Id *SMSTemplateID `json:"id,omitempty"`

	// Language Which of the template's languages to send. Omit it to send the template's default language, unless the template sets `language_source_required`, in which case a send naming no language is rejected. When the template does not carry the language you ask for, its own `on_missing_language` setting decides whether the closest available language is sent instead or the send is rejected.
	Language *LanguageTag `json:"language,omitempty"`

	// Name Deprecated: use `slug` instead. Resolved as a slug first, and only if that finds nothing, matched against the template's display name.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	Name *string `json:"name,omitempty"`

	// Parameters Values for the template's variables, keyed by variable name. The accepted keys and their formats are fixed per template (the template's `variables` on the templates endpoint). A missing required variable, an undeclared key, a value that does not match its variable's format, or a serialized payload over 16 KB each return a `422`.
	Parameters *map[string]interface{} `json:"parameters,omitempty"`

	// Slug The template to send, by its slug handle (for example `bird_otp_verification`). Browse the available templates and their variables with the templates endpoint.
	Slug *TemplateSlug `json:"slug,omitempty"`
	// contains filtered or unexported fields
}

SMSTemplateSend A send-by-template reference. Identify the template by its `id` or its `slug` (supply exactly one), optionally name a language, and pass its variable values in `parameters`.

func (SMSTemplateSend) AsSMSTemplateSend0 added in v0.3.0

func (t SMSTemplateSend) AsSMSTemplateSend0() (SMSTemplateSend0, error)

AsSMSTemplateSend0 returns the union data inside the SMSTemplateSend as a SMSTemplateSend0

func (SMSTemplateSend) AsSMSTemplateSend1 added in v0.3.0

func (t SMSTemplateSend) AsSMSTemplateSend1() (SMSTemplateSend1, error)

AsSMSTemplateSend1 returns the union data inside the SMSTemplateSend as a SMSTemplateSend1

func (SMSTemplateSend) AsSMSTemplateSend2 added in v0.32.0

func (t SMSTemplateSend) AsSMSTemplateSend2() (SMSTemplateSend2, error)

AsSMSTemplateSend2 returns the union data inside the SMSTemplateSend as a SMSTemplateSend2

func (*SMSTemplateSend) FromSMSTemplateSend0 added in v0.3.0

func (t *SMSTemplateSend) FromSMSTemplateSend0(v SMSTemplateSend0) error

FromSMSTemplateSend0 overwrites any union data inside the SMSTemplateSend as the provided SMSTemplateSend0

func (*SMSTemplateSend) FromSMSTemplateSend1 added in v0.3.0

func (t *SMSTemplateSend) FromSMSTemplateSend1(v SMSTemplateSend1) error

FromSMSTemplateSend1 overwrites any union data inside the SMSTemplateSend as the provided SMSTemplateSend1

func (*SMSTemplateSend) FromSMSTemplateSend2 added in v0.32.0

func (t *SMSTemplateSend) FromSMSTemplateSend2(v SMSTemplateSend2) error

FromSMSTemplateSend2 overwrites any union data inside the SMSTemplateSend as the provided SMSTemplateSend2

func (SMSTemplateSend) MarshalJSON added in v0.3.0

func (t SMSTemplateSend) MarshalJSON() ([]byte, error)

func (*SMSTemplateSend) MergeSMSTemplateSend0 added in v0.3.0

func (t *SMSTemplateSend) MergeSMSTemplateSend0(v SMSTemplateSend0) error

MergeSMSTemplateSend0 performs a merge with any union data inside the SMSTemplateSend, using the provided SMSTemplateSend0

func (*SMSTemplateSend) MergeSMSTemplateSend1 added in v0.3.0

func (t *SMSTemplateSend) MergeSMSTemplateSend1(v SMSTemplateSend1) error

MergeSMSTemplateSend1 performs a merge with any union data inside the SMSTemplateSend, using the provided SMSTemplateSend1

func (*SMSTemplateSend) MergeSMSTemplateSend2 added in v0.32.0

func (t *SMSTemplateSend) MergeSMSTemplateSend2(v SMSTemplateSend2) error

MergeSMSTemplateSend2 performs a merge with any union data inside the SMSTemplateSend, using the provided SMSTemplateSend2

func (*SMSTemplateSend) UnmarshalJSON added in v0.3.0

func (t *SMSTemplateSend) UnmarshalJSON(b []byte) error

type SMSTemplateSend0 added in v0.3.0

type SMSTemplateSend0 = interface{}

SMSTemplateSend0 defines model for .

type SMSTemplateSend1 added in v0.3.0

type SMSTemplateSend1 = interface{}

SMSTemplateSend1 defines model for .

type SMSTemplateSend2 added in v0.32.0

type SMSTemplateSend2 = interface{}

SMSTemplateSend2 defines model for .

type SMSTemplateVersionID added in v0.3.0

type SMSTemplateVersionID = string

SMSTemplateVersionID defines model for SMSTemplateVersionID.

type SendRealtimeAppMemberEventJSONRequestBody added in v0.21.0

type SendRealtimeAppMemberEventJSONRequestBody = RealtimeMemberPublish

SendRealtimeAppMemberEventJSONRequestBody defines body for SendRealtimeAppMemberEvent for application/json ContentType.

type SendRealtimeAppMemberEventParams added in v0.21.0

type SendRealtimeAppMemberEventParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

SendRealtimeAppMemberEventParams defines parameters for SendRealtimeAppMemberEvent.

type SendRealtimeAppMemberEventResponse added in v0.21.0

type SendRealtimeAppMemberEventResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseSendRealtimeAppMemberEventResponse added in v0.21.0

func ParseSendRealtimeAppMemberEventResponse(rsp *http.Response) (*SendRealtimeAppMemberEventResponse, error)

ParseSendRealtimeAppMemberEventResponse parses an HTTP response from a SendRealtimeAppMemberEventWithResponse call

func (SendRealtimeAppMemberEventResponse) ContentType added in v0.21.0

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (SendRealtimeAppMemberEventResponse) Status added in v0.21.0

Status returns HTTPResponse.Status

func (SendRealtimeAppMemberEventResponse) StatusCode added in v0.21.0

func (r SendRealtimeAppMemberEventResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ServiceUnavailable

type ServiceUnavailable = Error

ServiceUnavailable defines model for ServiceUnavailable.

type ShareDomainDnsRequest added in v0.7.4

type ShareDomainDnsRequest struct {
	// Emails Email recipients for the domain's current DNS records. The first address is the direct recipient and the rest are copied on the same email; duplicates are ignored. Any invalid address fails the whole request with `422`.
	Emails []openapi_types.Email `json:"emails"`
}

ShareDomainDnsRequest defines model for ShareDomainDnsRequest.

type StartingAfter

type StartingAfter = string

StartingAfter defines model for StartingAfter.

type StatsComparePeriod added in v0.33.0

type StatsComparePeriod string

StatsComparePeriod Set to `previous_period` to also return the same figures for the immediately preceding window of equal length, plus the change between the two, so you can show "+X% vs last period" without a second request.

const (
	StatsComparePeriodPreviousPeriod StatsComparePeriod = "previous_period"
)

Defines values for StatsComparePeriod.

func (StatsComparePeriod) Valid added in v0.33.0

func (e StatsComparePeriod) Valid() bool

Valid indicates whether the value is a known member of the StatsComparePeriod enum.

type StatsGrain added in v0.14.0

type StatsGrain string

StatsGrain The bucket grain of the series, either `day` or `hour`.

const (
	StatsGrainDay  StatsGrain = "day"
	StatsGrainHour StatsGrain = "hour"
)

Defines values for StatsGrain.

func (StatsGrain) Valid added in v0.14.0

func (e StatsGrain) Valid() bool

Valid indicates whether the value is a known member of the StatsGrain enum.

type StatsTimezone added in v0.10.0

type StatsTimezone = string

StatsTimezone defines model for StatsTimezone.

type StatsTrendGrain added in v0.16.0

type StatsTrendGrain string

StatsTrendGrain Bucket grain for a stats trend series.

const (
	Daily  StatsTrendGrain = "daily"
	Hourly StatsTrendGrain = "hourly"
)

Defines values for StatsTrendGrain.

func (StatsTrendGrain) Valid added in v0.16.0

func (e StatsTrendGrain) Valid() bool

Valid indicates whether the value is a known member of the StatsTrendGrain enum.

type Suppression

type Suppression struct {
	// AppliesTo Which sends the suppression blocks.
	//
	// - `all`: blocks every message category, including transactional.
	// - `non_transactional`: blocks marketing but allows transactional messages.
	//   A recipient who complained can therefore still receive
	//   mail such as password resets.
	// - `category`: scopes the block to a preference category and blocks every
	//   category until one is set.
	//
	// This list grows over time, and any value other than `non_transactional`
	// blocks every category, so treat an unknown value as blocking the send.
	AppliesTo string `json:"applies_to"`

	// CreatedAt When the address was suppressed.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Email The suppressed address, stored lowercase.
	Email openapi_types.Email `json:"email"`
	Id    SuppressionID       `json:"id"`

	// Origin How the suppression came to exist:
	//
	// - `bounce_event`: Created automatically from a hard bounce.
	// - `complaint_event`: Created from a spam complaint.
	// - `api_key`: Added through the API with an API key.
	// - `user`: Added by a user in the dashboard.
	//
	// This list grows over time. Treat unknown values as informational rather than rejecting the record.
	Origin string `json:"origin"`

	// Reason Why the address is suppressed:
	//
	// - `hard_bounce`: A delivery permanently failed.
	// - `complaint`: The recipient reported a message as spam.
	// - `manual`: Added through the API or dashboard.
	//
	// An address can hold one record per reason. This list grows over time. Treat unknown values as informational rather than rejecting the record.
	Reason string           `json:"reason"`
	Scope  SuppressionScope `json:"scope"`

	// SourceEmailId ID of the email that triggered suppression. Null for manual additions.
	SourceEmailId *EmailID `json:"source_email_id,omitempty"`

	// SourceRecipientId ID of the recipient event that triggered suppression. Null for manual additions.
	SourceRecipientId *RecipientID `json:"source_recipient_id,omitempty"`
}

Suppression defines model for Suppression.

type SuppressionCreate

type SuppressionCreate struct {
	// Email The address to stop sending to. Normalized before storage and matching: lowercased and trimmed of surrounding whitespace.
	Email openapi_types.Email `json:"email"`
}

SuppressionCreate defines model for SuppressionCreate.

type SuppressionID

type SuppressionID = string

SuppressionID defines model for SuppressionID.

type SuppressionList

type SuppressionList struct {
	// Data Page of suppression records.
	Data []Suppression `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

SuppressionList defines model for SuppressionList.

type SuppressionScope

type SuppressionScope struct {
	// Id Public ID or alias of the scoped resource. For workspace scope, this is the workspace ID.
	Id string `json:"id"`

	// Type How widely the email suppression applies. Responses currently use `workspace`, which blocks the address for every email sent by the workspace. WhatsApp suppressions use a separate list.
	Type SuppressionScopeType `json:"type"`
}

SuppressionScope defines model for SuppressionScope.

type SuppressionScopeType

type SuppressionScopeType string

SuppressionScopeType How widely the email suppression applies. Responses currently use `workspace`, which blocks the address for every email sent by the workspace. WhatsApp suppressions use a separate list.

const (
	SuppressionScopeTypeAudience  SuppressionScopeType = "audience"
	SuppressionScopeTypeCategory  SuppressionScopeType = "category"
	SuppressionScopeTypeContact   SuppressionScopeType = "contact"
	SuppressionScopeTypeDomain    SuppressionScopeType = "domain"
	SuppressionScopeTypeTopic     SuppressionScopeType = "topic"
	SuppressionScopeTypeWorkspace SuppressionScopeType = "workspace"
)

Defines values for SuppressionScopeType.

func (SuppressionScopeType) Valid

func (e SuppressionScopeType) Valid() bool

Valid indicates whether the value is a known member of the SuppressionScopeType enum.

type Tag added in v0.3.0

type Tag struct {
	// Name Tag name. ASCII letters, digits, underscore, and hyphen only. Case-sensitive. Maximum 32 characters.
	Name string `json:"name"`

	// Value Tag value. ASCII letters, digits, underscore, and hyphen only. Case-sensitive. Maximum 64 characters.
	Value string `json:"value"`
}

Tag Structured key/value label attached to a message or a call. Use tags for low-cardinality filtering dimensions (category, experiment ID, template ID); they surface in the list filter of whatever carries them.

On a message they also surface in the event log and in webhook payloads, and a message can carry `metadata` beside them for arbitrary per-send context that does not need to be filterable. A call has none of those three: its tags are set on the wire when the call is placed, and the call record is the one place you read them back.

Whatever carries the tags defines how many it may have. Tag names are unique: a send that repeats one is rejected, and on a call the first instance of a name wins.

type TagFilter added in v0.40.0

type TagFilter = []string

TagFilter defines model for TagFilter.

type TemplateLanguageStatus added in v0.32.0

type TemplateLanguageStatus string

TemplateLanguageStatus Status of one template language on channels without third-party review.

- `draft`: it has never been published. - `live`: it is available to sends. - `superseded`: a later version replaced it.

Treat an unknown value as not sendable.

const (
	TemplateLanguageStatusDraft      TemplateLanguageStatus = "draft"
	TemplateLanguageStatusLive       TemplateLanguageStatus = "live"
	TemplateLanguageStatusSuperseded TemplateLanguageStatus = "superseded"
)

Defines values for TemplateLanguageStatus.

func (TemplateLanguageStatus) Valid added in v0.32.0

func (e TemplateLanguageStatus) Valid() bool

Valid indicates whether the value is a known member of the TemplateLanguageStatus enum.

type TemplateOnMissingLanguage added in v0.32.0

type TemplateOnMissingLanguage string

TemplateOnMissingLanguage What a send or a preview does when it asks for a language the template cannot serve.

`fallback` serves the closest match instead. It tries a broader form of the same language first, so a request for `pt-BR` can be served by a stocked `pt`, and then the template's default language. A send never fails because a language is missing.

`fail` rejects the send rather than serving a different language, for content where sending the wrong language is worse than not sending at all. It matches the requested tag or a broader form of it and refuses a sibling variant, so `pt-BR` is never served by `pt-PT`. A send that names no language still uses the default language.

The default is per channel and stated on each channel's own field, because what a wrong-language send costs differs. Where every language is separately reviewed and separately priced, falling back silently would send content the recipient did not expect at a rate the sender did not choose.

const (
	TemplateOnMissingLanguageFail     TemplateOnMissingLanguage = "fail"
	TemplateOnMissingLanguageFallback TemplateOnMissingLanguage = "fallback"
)

Defines values for TemplateOnMissingLanguage.

func (TemplateOnMissingLanguage) Valid added in v0.32.0

func (e TemplateOnMissingLanguage) Valid() bool

Valid indicates whether the value is a known member of the TemplateOnMissingLanguage enum.

type TemplateScope added in v0.3.0

type TemplateScope string

TemplateScope Whether the template is one of our built-in templates (`system`) or one your workspace created (`workspace`). Every SMS template is `system`.

const (
	TemplateScopeSystem    TemplateScope = "system"
	TemplateScopeWorkspace TemplateScope = "workspace"
)

Defines values for TemplateScope.

func (TemplateScope) Valid added in v0.3.0

func (e TemplateScope) Valid() bool

Valid indicates whether the value is a known member of the TemplateScope enum.

type TemplateSlug added in v0.16.0

type TemplateSlug = string

TemplateSlug A template's slug: what you send it by, for example `welcome-email`. You choose it when you create the template, and it cannot be changed afterwards. It can contain lowercase letters, numbers, hyphens, and underscores, has to start and end with a letter or a number, and can be up to 63 characters long.

type TemplateStatus added in v0.32.0

type TemplateStatus string

TemplateStatus Where the template stands as a whole. The same five states on every channel.

- `draft`: nothing has ever gone live. - `pending`: nothing is live and at least one language is in review. - `active`: at least one language is live, so something can be sent. - `rejected`: it was reviewed and every language was refused. - `inactive`: nothing is live and nothing is in review, so content was withdrawn or was blocked before anything went live.

This summary answers whether the template is usable at all. A template with one language live is `active` even while another is still drafted or refused. Read `languages` to determine the state of each language and its reason.

Which of the five a template can reach follows its channel's review model. A channel whose content a third party reviews reaches all five; one whose content goes live on publish moves between `draft`, `active` and `inactive`.

Open enum: treat a value you do not recognize as a new one rather than as an error.

const (
	TemplateStatusActive   TemplateStatus = "active"
	TemplateStatusDraft    TemplateStatus = "draft"
	TemplateStatusInactive TemplateStatus = "inactive"
	TemplateStatusPending  TemplateStatus = "pending"
	TemplateStatusRejected TemplateStatus = "rejected"
)

Defines values for TemplateStatus.

func (TemplateStatus) Valid added in v0.32.0

func (e TemplateStatus) Valid() bool

Valid indicates whether the value is a known member of the TemplateStatus enum.

type TemplateVariable added in v0.3.0

type TemplateVariable struct {
	// Constraint A plain-language description of what values this variable accepts.
	Constraint *string `json:"constraint,omitempty"`

	// Key The key this slot is filled by. On email and SMS it is the key you set in the send's `parameters` object. On WhatsApp it is the `name` you repeat on the matching parameter inside `components`, or, for a template whose placeholders are positional, the position itself as `1`, `2` and so on.
	Key *string `json:"key,omitempty"`

	// Required Whether the send must supply this variable. Omitting a required value returns `422` on email, SMS, and WhatsApp sends.
	Required *bool `json:"required,omitempty"`

	// Sensitive Whether this slot's value is kept out of durable storage. A sensitive slot's rendered value never appears in message content read back through the API: a stand-in placeholder is stored instead.
	Sensitive *bool `json:"sensitive,omitempty"`

	// Type The value type this slot accepts. SMS templates use the typed slots (`code`, `amount` and the rest), each of which rejects a value that does not match its `constraint`. Email and WhatsApp templates use `text`, which accepts any value. Open enum: treat an unrecognized value as a future type rather than an error.
	Type *string `json:"type,omitempty"`
}

TemplateVariable A single variable slot a template fills in from the values supplied when sending. The same shape on email, SMS and WhatsApp, so reading what a template needs works the same way whichever channel you are sending on.

type ThreadID added in v0.4.1

type ThreadID = string

ThreadID defines model for ThreadID.

type Timestamps

type Timestamps struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

Timestamps defines model for Timestamps.

type TooEarly

type TooEarly = Error

TooEarly defines model for TooEarly.

type UnarchiveContactPropertyParams added in v0.4.0

type UnarchiveContactPropertyParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UnarchiveContactPropertyParams defines parameters for UnarchiveContactProperty.

type UnarchiveContactPropertyResponse added in v0.4.0

type UnarchiveContactPropertyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactProperty
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUnarchiveContactPropertyResponse added in v0.4.0

func ParseUnarchiveContactPropertyResponse(rsp *http.Response) (*UnarchiveContactPropertyResponse, error)

ParseUnarchiveContactPropertyResponse parses an HTTP response from a UnarchiveContactPropertyWithResponse call

func (UnarchiveContactPropertyResponse) ContentType added in v0.4.0

func (r UnarchiveContactPropertyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UnarchiveContactPropertyResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (UnarchiveContactPropertyResponse) StatusCode added in v0.4.0

func (r UnarchiveContactPropertyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UnassignAudienceContactParams added in v0.4.0

type UnassignAudienceContactParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UnassignAudienceContactParams defines parameters for UnassignAudienceContact.

type UnassignAudienceContactResponse added in v0.4.0

type UnassignAudienceContactResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUnassignAudienceContactResponse added in v0.4.0

func ParseUnassignAudienceContactResponse(rsp *http.Response) (*UnassignAudienceContactResponse, error)

ParseUnassignAudienceContactResponse parses an HTTP response from a UnassignAudienceContactWithResponse call

func (UnassignAudienceContactResponse) ContentType added in v0.4.0

func (r UnassignAudienceContactResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UnassignAudienceContactResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (UnassignAudienceContactResponse) StatusCode added in v0.4.0

func (r UnassignAudienceContactResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UnassignAudienceContactsJSONRequestBody added in v0.4.0

type UnassignAudienceContactsJSONRequestBody = AudienceContactsRemoveRequest

UnassignAudienceContactsJSONRequestBody defines body for UnassignAudienceContacts for application/json ContentType.

type UnassignAudienceContactsParams added in v0.4.0

type UnassignAudienceContactsParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UnassignAudienceContactsParams defines parameters for UnassignAudienceContacts.

type UnassignAudienceContactsResponse added in v0.4.0

type UnassignAudienceContactsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUnassignAudienceContactsResponse added in v0.4.0

func ParseUnassignAudienceContactsResponse(rsp *http.Response) (*UnassignAudienceContactsResponse, error)

ParseUnassignAudienceContactsResponse parses an HTTP response from a UnassignAudienceContactsWithResponse call

func (UnassignAudienceContactsResponse) ContentType added in v0.4.0

func (r UnassignAudienceContactsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UnassignAudienceContactsResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (UnassignAudienceContactsResponse) StatusCode added in v0.4.0

func (r UnassignAudienceContactsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Unauthorized

type Unauthorized = Error

Unauthorized defines model for Unauthorized.

type UnderscoreListEnvelope

type UnderscoreListEnvelope struct {
	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

UnderscoreListEnvelope defines model for _ListEnvelope.

type UnderscoreListEnvelopeWithTotal

type UnderscoreListEnvelopeWithTotal struct {
	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

UnderscoreListEnvelopeWithTotal defines model for _ListEnvelopeWithTotal.

type Unprocessable

type Unprocessable = Error

Unprocessable defines model for Unprocessable.

type UpdateAudienceJSONRequestBody added in v0.4.0

type UpdateAudienceJSONRequestBody = AudienceUpdateRequest

UpdateAudienceJSONRequestBody defines body for UpdateAudience for application/json ContentType.

type UpdateAudienceParams added in v0.4.0

type UpdateAudienceParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateAudienceParams defines parameters for UpdateAudience.

type UpdateAudienceResponse added in v0.4.0

type UpdateAudienceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Audience
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateAudienceResponse added in v0.4.0

func ParseUpdateAudienceResponse(rsp *http.Response) (*UpdateAudienceResponse, error)

ParseUpdateAudienceResponse parses an HTTP response from a UpdateAudienceWithResponse call

func (UpdateAudienceResponse) ContentType added in v0.4.0

func (r UpdateAudienceResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateAudienceResponse) Status added in v0.4.0

func (r UpdateAudienceResponse) Status() string

Status returns HTTPResponse.Status

func (UpdateAudienceResponse) StatusCode added in v0.4.0

func (r UpdateAudienceResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateContactJSONRequestBody added in v0.4.0

type UpdateContactJSONRequestBody = ContactUpdateRequest

UpdateContactJSONRequestBody defines body for UpdateContact for application/json ContentType.

type UpdateContactParams added in v0.4.0

type UpdateContactParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateContactParams defines parameters for UpdateContact.

type UpdateContactPropertyJSONRequestBody added in v0.4.0

type UpdateContactPropertyJSONRequestBody = ContactPropertyUpdateRequest

UpdateContactPropertyJSONRequestBody defines body for UpdateContactProperty for application/json ContentType.

type UpdateContactPropertyParams added in v0.4.0

type UpdateContactPropertyParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateContactPropertyParams defines parameters for UpdateContactProperty.

type UpdateContactPropertyResponse added in v0.4.0

type UpdateContactPropertyResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ContactProperty
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateContactPropertyResponse added in v0.4.0

func ParseUpdateContactPropertyResponse(rsp *http.Response) (*UpdateContactPropertyResponse, error)

ParseUpdateContactPropertyResponse parses an HTTP response from a UpdateContactPropertyWithResponse call

func (UpdateContactPropertyResponse) ContentType added in v0.4.0

func (r UpdateContactPropertyResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateContactPropertyResponse) Status added in v0.4.0

Status returns HTTPResponse.Status

func (UpdateContactPropertyResponse) StatusCode added in v0.4.0

func (r UpdateContactPropertyResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateContactResponse added in v0.4.0

type UpdateContactResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Contact
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateContactResponse added in v0.4.0

func ParseUpdateContactResponse(rsp *http.Response) (*UpdateContactResponse, error)

ParseUpdateContactResponse parses an HTTP response from a UpdateContactWithResponse call

func (UpdateContactResponse) ContentType added in v0.4.0

func (r UpdateContactResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateContactResponse) Status added in v0.4.0

func (r UpdateContactResponse) Status() string

Status returns HTTPResponse.Status

func (UpdateContactResponse) StatusCode added in v0.4.0

func (r UpdateContactResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateDomainJSONRequestBody added in v0.8.0

type UpdateDomainJSONRequestBody = DomainUpdate

UpdateDomainJSONRequestBody defines body for UpdateDomain for application/json ContentType.

type UpdateDomainParams added in v0.8.0

type UpdateDomainParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateDomainParams defines parameters for UpdateDomain.

type UpdateDomainResponse added in v0.8.0

type UpdateDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Domain
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateDomainResponse added in v0.8.0

func ParseUpdateDomainResponse(rsp *http.Response) (*UpdateDomainResponse, error)

ParseUpdateDomainResponse parses an HTTP response from a UpdateDomainWithResponse call

func (UpdateDomainResponse) ContentType added in v0.8.0

func (r UpdateDomainResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateDomainResponse) Status added in v0.8.0

func (r UpdateDomainResponse) Status() string

Status returns HTTPResponse.Status

func (UpdateDomainResponse) StatusCode added in v0.8.0

func (r UpdateDomainResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateEmailThreadJSONRequestBody added in v0.12.0

type UpdateEmailThreadJSONRequestBody = EmailThreadUpdateRequest

UpdateEmailThreadJSONRequestBody defines body for UpdateEmailThread for application/json ContentType.

type UpdateEmailThreadParams added in v0.12.0

type UpdateEmailThreadParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateEmailThreadParams defines parameters for UpdateEmailThread.

type UpdateEmailThreadResponse added in v0.12.0

type UpdateEmailThreadResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EmailThread
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON410      *Gone
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateEmailThreadResponse added in v0.12.0

func ParseUpdateEmailThreadResponse(rsp *http.Response) (*UpdateEmailThreadResponse, error)

ParseUpdateEmailThreadResponse parses an HTTP response from a UpdateEmailThreadWithResponse call

func (UpdateEmailThreadResponse) ContentType added in v0.12.0

func (r UpdateEmailThreadResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateEmailThreadResponse) Status added in v0.12.0

func (r UpdateEmailThreadResponse) Status() string

Status returns HTTPResponse.Status

func (UpdateEmailThreadResponse) StatusCode added in v0.12.0

func (r UpdateEmailThreadResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateMailboxJSONRequestBody added in v0.12.0

type UpdateMailboxJSONRequestBody = MailboxUpdate

UpdateMailboxJSONRequestBody defines body for UpdateMailbox for application/json ContentType.

type UpdateMailboxParams added in v0.12.0

type UpdateMailboxParams struct {
	// Confirm Set to `true` when lowering `retention_tier` would delete remembered messages older than the new cutoff. The request is rejected without it in that case.
	Confirm *bool `form:"confirm,omitempty" json:"confirm,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateMailboxParams defines parameters for UpdateMailbox.

type UpdateMailboxResponse added in v0.12.0

type UpdateMailboxResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Mailbox
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateMailboxResponse added in v0.12.0

func ParseUpdateMailboxResponse(rsp *http.Response) (*UpdateMailboxResponse, error)

ParseUpdateMailboxResponse parses an HTTP response from a UpdateMailboxWithResponse call

func (UpdateMailboxResponse) ContentType added in v0.12.0

func (r UpdateMailboxResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateMailboxResponse) Status added in v0.12.0

func (r UpdateMailboxResponse) Status() string

Status returns HTTPResponse.Status

func (UpdateMailboxResponse) StatusCode added in v0.12.0

func (r UpdateMailboxResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type UpdateSMSKeywordRuleJSONRequestBody added in v0.33.0

type UpdateSMSKeywordRuleJSONRequestBody = SMSKeywordRuleUpdate

UpdateSMSKeywordRuleJSONRequestBody defines body for UpdateSMSKeywordRule for application/json ContentType.

type UpdateSMSKeywordRuleParams added in v0.33.0

type UpdateSMSKeywordRuleParams struct {
	// XWorkspaceId Workspace context for the request. Required for dashboard authentication; API-key requests derive the workspace from the key.
	XWorkspaceId *XWorkspaceId `json:"X-Workspace-Id,omitempty"`

	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

UpdateSMSKeywordRuleParams defines parameters for UpdateSMSKeywordRule.

type UpdateSMSKeywordRuleResponse added in v0.33.0

type UpdateSMSKeywordRuleResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *SMSKeywordRule
	JSON400      *BadRequest
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON409      *Conflict
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseUpdateSMSKeywordRuleResponse added in v0.33.0

func ParseUpdateSMSKeywordRuleResponse(rsp *http.Response) (*UpdateSMSKeywordRuleResponse, error)

ParseUpdateSMSKeywordRuleResponse parses an HTTP response from a UpdateSMSKeywordRuleWithResponse call

func (UpdateSMSKeywordRuleResponse) ContentType added in v0.33.0

func (r UpdateSMSKeywordRuleResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (UpdateSMSKeywordRuleResponse) Status added in v0.33.0

Status returns HTTPResponse.Status

func (UpdateSMSKeywordRuleResponse) StatusCode added in v0.33.0

func (r UpdateSMSKeywordRuleResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Verification added in v0.3.0

type Verification struct {
	// Channels The channels this verification uses to deliver the passcode, in attempt order: the first entry is tried first and later entries are fallbacks. An email recipient is verified over email; a phone recipient is verified over the phone channels enabled for its destination country, in the order that country's configuration sets.
	Channels  *[]VerificationChannelEntry `json:"channels,omitempty"`
	CreatedAt *time.Time                  `json:"created_at,omitempty"`

	// ExpiresAt When the verification expires if no correct passcode is submitted first. After this time its status reports `expired`.
	ExpiresAt *time.Time     `json:"expires_at,omitempty"`
	Id        VerificationID `json:"id"`

	// LastChannel The channel the most recent passcode was sent on, or `null` before the first send. Open enum; new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	LastChannel *string `json:"last_channel,omitempty"`

	// Metadata The key/value pairs attached when the verification was created.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Reason Why the verification reached its final state, or `null` while `pending` and once `verified`. See the enum for the values it can take.
	Reason *VerificationTerminalReason `json:"reason,omitempty"`

	// Status The verification's current state:
	//
	// - `pending`: Awaiting a correct passcode.
	// - `verified`: A correct passcode was submitted.
	// - `failed`: The verification cannot be completed. Either too many
	//   incorrect passcodes were submitted, or no planned channel could
	//   deliver one. Read `reason` to tell those apart.
	// - `expired`: The validity window elapsed before a correct passcode.
	// - `canceled`: The verification was canceled before completion.
	// - `blocked`: A fraud or abuse control stopped the verification.
	Status *VerificationStatus `json:"status,omitempty"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To        VerificationTo `json:"to"`
	UpdatedAt *time.Time     `json:"updated_at,omitempty"`

	// VerifiedAt When the verification was completed, or `null` if it is not yet verified.
	VerifiedAt *time.Time `json:"verified_at,omitempty"`
}

Verification defines model for Verification.

type VerificationAttemptFailureReason added in v0.14.0

type VerificationAttemptFailureReason string

VerificationAttemptFailureReason Why a passcode send did not deliver:

  • `carrier_rejected`: The SMS carrier rejected the send.
  • `hard_bounce`: The email permanently bounced.
  • `soft_bounce`: The email temporarily bounced, such as when a mailbox is full.
  • `undelivered`: The channel reported a generic delivery failure.
  • `channel_unavailable`: The channel could not be used, so the verification moved to the next channel.
  • `channel_disabled`: Sending on the channel is temporarily disabled, so the verification moved to the next channel.
  • `delivery_timeout`: No delivery confirmation arrived before the channel's timeout, so the verification moved to the next channel.
  • `not_billable`: The send could not be charged, so it was never handed to the channel. Usually the workspace balance is too low to cover it. Topping up the balance is what clears this.

New reasons may be added over time. Treat unrecognized values as reasons added later rather than errors.

const (
	VerificationAttemptFailureReasonCarrierRejected    VerificationAttemptFailureReason = "carrier_rejected"
	VerificationAttemptFailureReasonChannelDisabled    VerificationAttemptFailureReason = "channel_disabled"
	VerificationAttemptFailureReasonChannelUnavailable VerificationAttemptFailureReason = "channel_unavailable"
	VerificationAttemptFailureReasonDeliveryTimeout    VerificationAttemptFailureReason = "delivery_timeout"
	VerificationAttemptFailureReasonHardBounce         VerificationAttemptFailureReason = "hard_bounce"
	VerificationAttemptFailureReasonNotBillable        VerificationAttemptFailureReason = "not_billable"
	VerificationAttemptFailureReasonSoftBounce         VerificationAttemptFailureReason = "soft_bounce"
	VerificationAttemptFailureReasonUndelivered        VerificationAttemptFailureReason = "undelivered"
)

Defines values for VerificationAttemptFailureReason.

func (VerificationAttemptFailureReason) Valid added in v0.20.0

Valid indicates whether the value is a known member of the VerificationAttemptFailureReason enum.

type VerificationChannel added in v0.3.0

type VerificationChannel string

VerificationChannel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.

const (
	VerificationChannelEmail    VerificationChannel = "email"
	VerificationChannelSms      VerificationChannel = "sms"
	VerificationChannelTelegram VerificationChannel = "telegram"
	VerificationChannelWhatsapp VerificationChannel = "whatsapp"
)

Defines values for VerificationChannel.

func (VerificationChannel) Valid added in v0.20.0

func (e VerificationChannel) Valid() bool

Valid indicates whether the value is a known member of the VerificationChannel enum.

type VerificationChannelEntry added in v0.3.0

type VerificationChannelEntry struct {
	// Channel The channel a passcode is delivered over. Open enum: new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
	Channel VerificationChannel `json:"channel"`
}

VerificationChannelEntry defines model for VerificationChannelEntry.

type VerificationCheckRequest added in v0.3.0

type VerificationCheckRequest struct {
	// Code The passcode the recipient received. Passcodes are numeric; submit the digits exactly as delivered. An incorrect value is a normal `200` outcome with `success: false`. It does not return an error.
	Code string `json:"code"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To VerificationTo `json:"to"`
}

VerificationCheckRequest defines model for VerificationCheckRequest.

type VerificationCheckResult added in v0.3.0

type VerificationCheckResult struct {
	// AttemptsRemaining The number of check attempts left while the verification is still pending, or `null` once it has reached a final state.
	AttemptsRemaining *int `json:"attempts_remaining,omitempty"`

	// Reason Why the check did not succeed:
	//
	// - `incorrect_code`: The passcode was wrong and attempts remain.
	// - `expired`: The validity window elapsed.
	// - `attempts_exhausted`: Too many incorrect attempts were submitted.
	//
	// `null` when `success` is `true`. Treat unrecognized values as reasons added
	// later.
	Reason *string `json:"reason,omitempty"`

	// Success Whether the submitted passcode verified this verification. `true` means the passcode was correct and the verification is now complete; `false` means it did not verify, and `reason` says why. A verification that has already reached a final state is no longer checkable and returns `404`.
	Success      *bool        `json:"success,omitempty"`
	Verification Verification `json:"verification"`
}

VerificationCheckResult defines model for VerificationCheckResult.

type VerificationCreateRequest added in v0.3.0

type VerificationCreateRequest struct {
	// Metadata Optional key/value pairs to attach to the verification, for example a correlation id. Returned on the verification.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Options Per-request overrides applied to this verification only.
	Options *VerificationOptions `json:"options,omitempty"`

	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To VerificationTo `json:"to"`
}

VerificationCreateRequest defines model for VerificationCreateRequest.

type VerificationID added in v0.3.0

type VerificationID = string

VerificationID defines model for VerificationID.

type VerificationNextChannelRequest added in v0.27.0

type VerificationNextChannelRequest struct {
	// To The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.
	To VerificationTo `json:"to"`
}

VerificationNextChannelRequest defines model for VerificationNextChannelRequest.

type VerificationOptions added in v0.3.0

type VerificationOptions struct {
	// Channels Reorder or narrow the delivery channels for this request. List channel names in the order to try them; a channel you omit is not used for this request, and a channel not already enabled for the recipient is ignored. A list that leaves no usable channel fails the request with `422`. Omit the field to use the configured order.
	Channels *[]VerificationChannel `json:"channels,omitempty"`

	// CodeLength Passcode length for this verification. Omit to use the configured length.
	CodeLength *int `json:"code_length,omitempty"`
}

VerificationOptions Per-request overrides applied to this verification only.

type VerificationStatus added in v0.3.0

type VerificationStatus string

VerificationStatus The verification's current state:

  • `pending`: Awaiting a correct passcode.
  • `verified`: A correct passcode was submitted.
  • `failed`: The verification cannot be completed. Either too many incorrect passcodes were submitted, or no planned channel could deliver one. Read `reason` to tell those apart.
  • `expired`: The validity window elapsed before a correct passcode.
  • `canceled`: The verification was canceled before completion.
  • `blocked`: A fraud or abuse control stopped the verification.
const (
	VerificationStatusBlocked  VerificationStatus = "blocked"
	VerificationStatusCanceled VerificationStatus = "canceled"
	VerificationStatusExpired  VerificationStatus = "expired"
	VerificationStatusFailed   VerificationStatus = "failed"
	VerificationStatusPending  VerificationStatus = "pending"
	VerificationStatusVerified VerificationStatus = "verified"
)

Defines values for VerificationStatus.

func (VerificationStatus) Valid added in v0.3.0

func (e VerificationStatus) Valid() bool

Valid indicates whether the value is a known member of the VerificationStatus enum.

type VerificationTerminalReason added in v0.14.0

type VerificationTerminalReason string

VerificationTerminalReason Why a verification session reached its final state without succeeding: `attempts_exhausted` (too many incorrect passcodes), `ttl_elapsed` (the time window elapsed before a correct passcode), or `undeliverable` (no planned channel could deliver a passcode, so the recipient never had one to submit). Open enum: new reasons may be added over time, so treat any unrecognized value as a future reason rather than an error.

const (
	VerificationTerminalReasonAttemptsExhausted VerificationTerminalReason = "attempts_exhausted"
	VerificationTerminalReasonTtlElapsed        VerificationTerminalReason = "ttl_elapsed"
	VerificationTerminalReasonUndeliverable     VerificationTerminalReason = "undeliverable"
)

Defines values for VerificationTerminalReason.

func (VerificationTerminalReason) Valid added in v0.20.0

func (e VerificationTerminalReason) Valid() bool

Valid indicates whether the value is a known member of the VerificationTerminalReason enum.

type VerificationTo added in v0.3.0

type VerificationTo struct {
	// Email The recipient's email address. Case does not matter; the address is lowercased before use.
	Email *openapi_types.Email `json:"email,omitempty"`

	// PhoneNumber The recipient's phone number in E.164 format, with the leading `+` and country code (for example `+15551234567`). A number in any other format is rejected as an invalid recipient (`422`).
	PhoneNumber *string `json:"phone_number,omitempty"`
}

VerificationTo The recipient to verify. Provide an `email`, a `phone_number`, or both; at least one is required. The addresses also identify the verification: a check must supply exactly the set used on the create call, so a verification created with both addresses is not found by either one alone.

type VerifyDomainParams added in v0.8.0

type VerifyDomainParams struct {
	// IdempotencyKey Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).
	//
	// Two distinct 409 errors signal misuse:
	//
	// - `request_in_progress` (E01004): The same key is currently being
	//   processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
	// - `idempotency_key_reuse` (E01005): The same key has already completed
	//   against a different request body or method. Generate a new key.
	//
	// Recommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).
	IdempotencyKey *IdempotencyKey `json:"Idempotency-Key,omitempty"`
}

VerifyDomainParams defines parameters for VerifyDomain.

type VerifyDomainResponse added in v0.8.0

type VerifyDomainResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Domain
	JSON401      *Unauthorized
	JSON403      *Forbidden
	JSON404      *NotFound
	JSON422      *Unprocessable
	JSON429      *RateLimited
	JSON500      *InternalError
}

func ParseVerifyDomainResponse added in v0.8.0

func ParseVerifyDomainResponse(rsp *http.Response) (*VerifyDomainResponse, error)

ParseVerifyDomainResponse parses an HTTP response from a VerifyDomainWithResponse call

func (VerifyDomainResponse) ContentType added in v0.8.0

func (r VerifyDomainResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (VerifyDomainResponse) Status added in v0.8.0

func (r VerifyDomainResponse) Status() string

Status returns HTTPResponse.Status

func (VerifyDomainResponse) StatusCode added in v0.8.0

func (r VerifyDomainResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type VerifyVerificationFailedEventType added in v0.36.0

type VerifyVerificationFailedEventType string

VerifyVerificationFailedEventType Always `verify.verification.failed` for this event.

const (
	VerifyVerificationFailed VerifyVerificationFailedEventType = "verify.verification.failed"
)

Defines values for VerifyVerificationFailedEventType.

func (VerifyVerificationFailedEventType) Valid added in v0.36.0

Valid indicates whether the value is a known member of the VerifyVerificationFailedEventType enum.

type VoiceCall added in v0.27.0

type VoiceCall struct {
	// Actor Who placed the call: the API key whose credentials it used, the integration acting for the workspace, or the user who placed it from a browser or the CLI. Absent when the call was admitted only by its source IP address, or when no actor was recorded.
	Actor *Actor `json:"actor,omitempty"`

	// AnsweredAt When the call was answered (`200` OK received). `null` for unanswered calls.
	AnsweredAt *time.Time `json:"answered_at,omitempty"`

	// BillableMs Billable duration in milliseconds, measured from answer to call end. Zero for unanswered calls, and `null` while the call is still in progress.
	BillableMs *int `json:"billable_ms,omitempty"`

	// Cost What was charged for a call, split into the components that make it up.
	Cost      *VoiceCallCost      `json:"cost,omitempty"`
	Direction *VoiceCallDirection `json:"direction,omitempty"`

	// DurationMs Total call duration in milliseconds, measured from the first INVITE to the BYE or final response. `null` while the call is still in progress and has no final duration yet.
	DurationMs *int `json:"duration_ms,omitempty"`

	// EndedAt When the call ended (BYE or final non-2xx response). `null` for calls that ended abnormally without a recorded end event.
	EndedAt *time.Time `json:"ended_at,omitempty"`

	// From Calling party number in E.164 format.
	From         *string            `json:"from,omitempty"`
	Id           VoiceCallID        `json:"id"`
	MediaQuality *VoiceMediaQuality `json:"media_quality,omitempty"`

	// PddMs Post-dial delay in milliseconds: how long the caller heard nothing between dialing and the phone starting to ring at the other end. High values are what callers experience as the call `not going through`. Absent when the call never rang, either because it failed first or because the carrier answered it immediately.
	PddMs *int `json:"pdd_ms,omitempty"`

	// RejectionReason Why we refused the call before dialing a carrier. Absent when the call connected or failed at the carrier; see `sip_response_code` for the carrier response.
	RejectionReason *VoiceCallRejectionReason `json:"rejection_reason,omitempty"`

	// SessionId Session identifier shared across all legs of a multi-party or transferred call. Use this to correlate related call records. `null` when session correlation is not available for the call.
	SessionId *VoiceSessionID `json:"session_id,omitempty"`

	// SipResponseCode Final SIP response code received from the carrier. `null` when no SIP response was received, for example on timeout or DNS failure.
	SipResponseCode *int `json:"sip_response_code,omitempty"`

	// SipTrunkId Identifier of the SIP trunk that originated this call. `null` when no trunk is associated.
	SipTrunkId *SIPTrunkID `json:"sip_trunk_id,omitempty"`

	// StartedAt When the call was initiated.
	StartedAt *time.Time       `json:"started_at,omitempty"`
	Status    *VoiceCallStatus `json:"status,omitempty"`

	// Tags Your own `{name, value}` labels for this call, taken from the `X-Bird-Call-Tag` headers on the INVITE that placed it. Set them to organise calls by a dimension of your own (campaign, queue, agent, cost centre), then filter this list by them with `tag`. Read-only here: a call is labelled when it is placed, and never afterwards. What is here may be less than what was sent, and the call still goes through either way: a tag whose name or value breaks the rules below is dropped, anything past the first five is ignored, and a name sent more than once keeps its first value. Absent when the call carried none, and on calls recorded before this field existed.
	Tags *[]Tag `json:"tags,omitempty"`

	// To Called party number in E.164 format.
	To          *string     `json:"to,omitempty"`
	WorkspaceId WorkspaceID `json:"workspace_id"`
}

VoiceCall defines model for VoiceCall.

type VoiceCallCost added in v0.34.0

type VoiceCallCost struct {
	// Amount Total charged, as a decimal string: the sum of the components below. Net of tax, which applies to your wallet balance rather than to an individual charge.
	Amount *string `json:"amount,omitempty"`

	// CallHandlingAmount What we charged for handling the call itself, as a decimal string. A call is charged for handling once, however many legs it has, so only one leg's record carries it. `null` until this component is priced.
	CallHandlingAmount *string `json:"call_handling_amount,omitempty"`

	// CurrencyCode ISO 4217 three-letter currency code.
	CurrencyCode CurrencyCode `json:"currency_code"`

	// InboundAmount What we charged to receive the call from the originating network, as a decimal string. Only a call that arrived at your number can carry it. `null` until this component is priced.
	InboundAmount *string `json:"inbound_amount,omitempty"`

	// OutboundAmount What we charged to carry the call to the destination network, as a decimal string. `null` until this component is priced.
	OutboundAmount *string `json:"outbound_amount,omitempty"`
}

VoiceCallCost What was charged for a call, split into the components that make it up.

type VoiceCallDirection added in v0.9.2

type VoiceCallDirection string

VoiceCallDirection Whether the call originated from your PBX (outbound) or arrived from a remote party (inbound).

const (
	VoiceCallDirectionInbound  VoiceCallDirection = "inbound"
	VoiceCallDirectionOutbound VoiceCallDirection = "outbound"
)

Defines values for VoiceCallDirection.

func (VoiceCallDirection) Valid added in v0.9.2

func (e VoiceCallDirection) Valid() bool

Valid indicates whether the value is a known member of the VoiceCallDirection enum.

type VoiceCallID added in v0.9.2

type VoiceCallID = string

VoiceCallID defines model for VoiceCallID.

type VoiceCallList added in v0.27.0

type VoiceCallList struct {
	Data []VoiceCall `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

VoiceCallList defines model for VoiceCallList.

type VoiceCallRejectionReason added in v0.27.0

type VoiceCallRejectionReason string

VoiceCallRejectionReason Why we refused the call before dialing a carrier. Every refusal is signalled to your PBX as `503`, so `sip_response_code` alone cannot tell these causes apart. This field is where the cause lives.

Most of them you can fix yourself:

  • `source_not_allowed`: The call came from an IP address that is not in the trunk's allowed-address list. Add the address your PBX sends from.
  • `caller_id_not_verified`: The number in the `From` header is not a verified caller ID for this workspace. Verify it, or present a number you have already verified.
  • `destination_not_enabled`: You have not turned on calling to this destination country. Enable it in your voice destination settings.
  • `insufficient_balance`: Your wallet did not cover the call. Top up, or turn on automatic top-ups.
  • `daily_spend_exceeded`: The call would have passed your organization's daily voice spend limit. The limit resets at the start of the next UTC day.
  • `concurrent_calls_exceeded`: You already have as many calls in progress as your account allows. Wait for one to end, or ask support to raise the limit.
  • `calls_per_second_exceeded`: You placed calls faster than your account allows. Slow the rate you dial at, then retry.

For all other reasons, contact support and provide the call `id`:

  • `routing_not_configured`: No dial plan is attached to this trunk yet. Expected on a new trunk.
  • `no_route_found`: A dial plan is attached, but no rule in it covers this destination.
  • `destination_blocked`: The destination is blocked by our routing configuration.
  • `call_not_permitted`: The call could not be priced for your account.
const (
	VoiceCallRejectionReasonCallNotPermitted        VoiceCallRejectionReason = "call_not_permitted"
	VoiceCallRejectionReasonCallerIDNotVerified     VoiceCallRejectionReason = "caller_id_not_verified"
	VoiceCallRejectionReasonCallsPerSecondExceeded  VoiceCallRejectionReason = "calls_per_second_exceeded"
	VoiceCallRejectionReasonConcurrentCallsExceeded VoiceCallRejectionReason = "concurrent_calls_exceeded"
	VoiceCallRejectionReasonDailySpendExceeded      VoiceCallRejectionReason = "daily_spend_exceeded"
	VoiceCallRejectionReasonDestinationBlocked      VoiceCallRejectionReason = "destination_blocked"
	VoiceCallRejectionReasonDestinationNotEnabled   VoiceCallRejectionReason = "destination_not_enabled"
	VoiceCallRejectionReasonInsufficientBalance     VoiceCallRejectionReason = "insufficient_balance"
	VoiceCallRejectionReasonNoRouteFound            VoiceCallRejectionReason = "no_route_found"
	VoiceCallRejectionReasonRoutingNotConfigured    VoiceCallRejectionReason = "routing_not_configured"
	VoiceCallRejectionReasonSourceNotAllowed        VoiceCallRejectionReason = "source_not_allowed"
)

Defines values for VoiceCallRejectionReason.

func (VoiceCallRejectionReason) Valid added in v0.27.0

func (e VoiceCallRejectionReason) Valid() bool

Valid indicates whether the value is a known member of the VoiceCallRejectionReason enum.

type VoiceCallStatus added in v0.9.2

type VoiceCallStatus string

VoiceCallStatus Call status.

A call that has ended carries one of:

  • `answered` means it connected and the far end picked up.
  • `no_answer` means nobody picked up before the call timed out.
  • `rejected` means it was refused rather than attempted. Either we turned it away before dialing a carrier, in which case `rejection_reason` names the check it failed where there was one, or the far end declined it.
  • `failed` means it was attempted and did not work, and `sip_response_code` is what came back.
  • `unknown` means the outcome could not be determined. Contact support with the call `id` if you see one.

An active call carries `ringing` before it is picked up and `in_progress` afterward. The call list's `status` filter takes any mix of the two sets.

`busy` and `canceled` are reserved for incoming calls delivered to your own numbers: `busy` for a called party that rejected the call as busy, `canceled` for a caller who hung up before it was picked up. Neither is emitted yet and both outcomes are reported as `failed` today.

const (
	VoiceCallStatusAnswered   VoiceCallStatus = "answered"
	VoiceCallStatusBusy       VoiceCallStatus = "busy"
	VoiceCallStatusCanceled   VoiceCallStatus = "canceled"
	VoiceCallStatusFailed     VoiceCallStatus = "failed"
	VoiceCallStatusInProgress VoiceCallStatus = "in_progress"
	VoiceCallStatusNoAnswer   VoiceCallStatus = "no_answer"
	VoiceCallStatusRejected   VoiceCallStatus = "rejected"
	VoiceCallStatusRinging    VoiceCallStatus = "ringing"
	VoiceCallStatusUnknown    VoiceCallStatus = "unknown"
)

Defines values for VoiceCallStatus.

func (VoiceCallStatus) Valid added in v0.9.2

func (e VoiceCallStatus) Valid() bool

Valid indicates whether the value is a known member of the VoiceCallStatus enum.

type VoiceMediaQuality added in v0.27.0

type VoiceMediaQuality struct {
	// JitterMs Variation in the arrival time of the audio packets, in milliseconds. Audio arriving unevenly is heard as choppiness even when no packets are lost at all.
	JitterMs *int `json:"jitter_ms,omitempty"`

	// Mos Mean opinion score, the single number for how the call sounded, from 1 (unintelligible) to 5 (as good as being in the same room). Anything at or above 4.0 is what most people would call a clear line, and below 3.5 is where callers start asking each other to repeat themselves. The three other fields are the impairments that move it.
	Mos *float32 `json:"mos,omitempty"`

	// PacketLossPct Percentage of audio packets that never arrived. Heard as brief gaps or clipped words, and the impairment that degrades a call fastest.
	PacketLossPct *float32 `json:"packet_loss_pct,omitempty"`

	// RoundTripTimeMs Round-trip time between the two ends, in milliseconds. It does not distort the audio. Above roughly 300 ms, the two parties start talking over each other.
	RoundTripTimeMs *int `json:"round_trip_time_ms,omitempty"`
}

VoiceMediaQuality defines model for VoiceMediaQuality.

type VoiceSessionID added in v0.9.2

type VoiceSessionID = string

VoiceSessionID defines model for VoiceSessionID.

type WebhookAttempt

type WebhookAttempt struct {
	// AttemptedAt When this attempt was made. Attempts are listed newest first by this timestamp, and the list's `before`/`after` parameters bound it.
	AttemptedAt *time.Time `json:"attempted_at,omitempty"`

	// EventId Bird's source event ID, stable across retries of the same event. Null only for older attempts recorded before event IDs were available.
	EventId *WebhookEventID `json:"event_id,omitempty"`

	// EventType Webhook event type. This is an open enum, so accept unrecognized values in deliveries. Subscribing to a type outside the event catalog returns a `422`.
	EventType WebhookEventType `json:"event_type"`

	// Id Identifier of this individual delivery attempt. Each retry is a separate attempt with its own id; use `event_id` to group the attempts for one event.
	Id *string `json:"id,omitempty"`

	// ResponseBody Response body your endpoint returned, which may be truncated. Omitted when no body was returned.
	ResponseBody *string `json:"response_body,omitempty"`

	// ResponseDurationMs Round-trip duration in milliseconds.
	ResponseDurationMs int `json:"response_duration_ms"`

	// ResponseStatusCode HTTP status returned by the receiver. Null when no response was received (timeout, connection error, DNS failure).
	ResponseStatusCode *int `json:"response_status_code"`

	// Status Outcome of this attempt.
	//
	// - `delivered`: your endpoint accepted it with a `2xx` response.
	// - `pending`: the attempt is still in flight.
	// - `failed`: it returned a non-`2xx` response or no response at all. A `failed`
	//   attempt is not final for the event: automatic retries appear as further
	//   attempts with the same `event_id`.
	Status WebhookAttemptStatus `json:"status"`

	// Url URL the request was sent to: the endpoint's `url` at the time of the attempt, which can differ from the current configuration after an update.
	Url string `json:"url"`
}

WebhookAttempt defines model for WebhookAttempt.

type WebhookAttemptList

type WebhookAttemptList struct {
	// Data Delivery attempts, newest first.
	Data []WebhookAttempt `json:"data"`
}

WebhookAttemptList defines model for WebhookAttemptList.

type WebhookAttemptStatus

type WebhookAttemptStatus string

WebhookAttemptStatus Outcome of this attempt.

  • `delivered`: your endpoint accepted it with a `2xx` response.
  • `pending`: the attempt is still in flight.
  • `failed`: it returned a non-`2xx` response or no response at all. A `failed` attempt is not final for the event: automatic retries appear as further attempts with the same `event_id`.
const (
	WebhookAttemptStatusDelivered WebhookAttemptStatus = "delivered"
	WebhookAttemptStatusFailed    WebhookAttemptStatus = "failed"
	WebhookAttemptStatusPending   WebhookAttemptStatus = "pending"
)

Defines values for WebhookAttemptStatus.

func (WebhookAttemptStatus) Valid

func (e WebhookAttemptStatus) Valid() bool

Valid indicates whether the value is a known member of the WebhookAttemptStatus enum.

type WebhookEndpoint

type WebhookEndpoint struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Description Human-readable label for the endpoint.
	Description *string `json:"description,omitempty"`

	// Events Event types this endpoint is subscribed to; only matching events are delivered. Change the set with [Update a webhook endpoint](/docs/api/reference/update-webhook).
	Events []WebhookEventType `json:"events"`
	Id     WebhookEndpointID  `json:"id"`

	// Status Delivery state of the endpoint.
	//
	// - `active`: The initial state; events are being delivered normally.
	// - `degraded`: Recent deliveries are failing. We keep delivering and retrying,
	//   and the endpoint returns to `active` automatically once deliveries succeed
	//   again.
	// - `paused`: All delivery is stopped, either because an update set `status` to
	//   `paused` or automatically after sustained delivery failures. A paused endpoint
	//   never resumes on its own: re-enable it with
	//   [Update a webhook endpoint](/docs/api/reference/update-webhook), then recover
	//   the missed events with
	//   [Replay missed events](/docs/api/reference/create-webhook-replay).
	Status    *WebhookEndpointStatus `json:"status,omitempty"`
	UpdatedAt *time.Time             `json:"updated_at,omitempty"`

	// Url HTTPS URL where the API delivers events for this endpoint.
	Url string `json:"url"`
}

WebhookEndpoint defines model for WebhookEndpoint.

type WebhookEndpointCreate

type WebhookEndpointCreate struct {
	// Description Human-readable label for this endpoint, up to 256 characters.
	Description *string `json:"description,omitempty"`

	// Events Event types to subscribe to; the endpoint receives only matching events. Types outside the event catalog return a `422`, and an endpoint holds at most 100 entries.
	Events []WebhookEventType `json:"events"`

	// Url HTTPS URL to deliver events to, at most 2048 characters. The host must be publicly reachable: URLs on private, loopback, or link-local addresses are rejected with a `422`.
	Url string `json:"url"`
}

WebhookEndpointCreate defines model for WebhookEndpointCreate.

type WebhookEndpointCreated

type WebhookEndpointCreated struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Description Human-readable label for the endpoint.
	Description *string `json:"description,omitempty"`

	// Events Event types this endpoint is subscribed to; only matching events are delivered. Change the set with [Update a webhook endpoint](/docs/api/reference/update-webhook).
	Events []WebhookEventType `json:"events"`
	Id     WebhookEndpointID  `json:"id"`

	// Secret Signing secret for this endpoint (`whsec_` prefix), used to verify every delivery signature. Present in this response only: store it immediately, it cannot be retrieved again. If you lose it, mint a new one with [Rotate webhook signing secret](/docs/api/reference/rotate-webhook-secret).
	Secret string `json:"secret" pii:"true"`

	// Status Delivery state of the endpoint.
	//
	// - `active`: The initial state; events are being delivered normally.
	// - `degraded`: Recent deliveries are failing. We keep delivering and retrying,
	//   and the endpoint returns to `active` automatically once deliveries succeed
	//   again.
	// - `paused`: All delivery is stopped, either because an update set `status` to
	//   `paused` or automatically after sustained delivery failures. A paused endpoint
	//   never resumes on its own: re-enable it with
	//   [Update a webhook endpoint](/docs/api/reference/update-webhook), then recover
	//   the missed events with
	//   [Replay missed events](/docs/api/reference/create-webhook-replay).
	Status    *WebhookEndpointCreatedStatus `json:"status,omitempty"`
	UpdatedAt *time.Time                    `json:"updated_at,omitempty"`

	// Url HTTPS URL where the API delivers events for this endpoint.
	Url string `json:"url"`
}

WebhookEndpointCreated defines model for WebhookEndpointCreated.

type WebhookEndpointCreatedStatus

type WebhookEndpointCreatedStatus string

WebhookEndpointCreatedStatus Delivery state of the endpoint.

  • `active`: The initial state; events are being delivered normally.
  • `degraded`: Recent deliveries are failing. We keep delivering and retrying, and the endpoint returns to `active` automatically once deliveries succeed again.
  • `paused`: All delivery is stopped, either because an update set `status` to `paused` or automatically after sustained delivery failures. A paused endpoint never resumes on its own: re-enable it with [Update a webhook endpoint](/docs/api/reference/update-webhook), then recover the missed events with [Replay missed events](/docs/api/reference/create-webhook-replay).
const (
	WebhookEndpointCreatedStatusActive   WebhookEndpointCreatedStatus = "active"
	WebhookEndpointCreatedStatusDegraded WebhookEndpointCreatedStatus = "degraded"
	WebhookEndpointCreatedStatusPaused   WebhookEndpointCreatedStatus = "paused"
)

Defines values for WebhookEndpointCreatedStatus.

func (WebhookEndpointCreatedStatus) Valid

Valid indicates whether the value is a known member of the WebhookEndpointCreatedStatus enum.

type WebhookEndpointID

type WebhookEndpointID = string

WebhookEndpointID defines model for WebhookEndpointID.

type WebhookEndpointList

type WebhookEndpointList struct {
	Data []WebhookEndpoint `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`

	// Total Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise `null`.
	Total *int64 `json:"total,omitempty"`
}

WebhookEndpointList defines model for WebhookEndpointList.

type WebhookEndpointStatus

type WebhookEndpointStatus string

WebhookEndpointStatus Delivery state of the endpoint.

  • `active`: The initial state; events are being delivered normally.
  • `degraded`: Recent deliveries are failing. We keep delivering and retrying, and the endpoint returns to `active` automatically once deliveries succeed again.
  • `paused`: All delivery is stopped, either because an update set `status` to `paused` or automatically after sustained delivery failures. A paused endpoint never resumes on its own: re-enable it with [Update a webhook endpoint](/docs/api/reference/update-webhook), then recover the missed events with [Replay missed events](/docs/api/reference/create-webhook-replay).
const (
	WebhookEndpointStatusActive   WebhookEndpointStatus = "active"
	WebhookEndpointStatusDegraded WebhookEndpointStatus = "degraded"
	WebhookEndpointStatusPaused   WebhookEndpointStatus = "paused"
)

Defines values for WebhookEndpointStatus.

func (WebhookEndpointStatus) Valid

func (e WebhookEndpointStatus) Valid() bool

Valid indicates whether the value is a known member of the WebhookEndpointStatus enum.

type WebhookEndpointUpdate

type WebhookEndpointUpdate struct {
	// Description Human-readable label for this endpoint, up to 256 characters.
	Description *string `json:"description,omitempty"`

	// Events Replaces all event subscriptions with this list. Omit to keep the current set. Types outside the event catalog return a `422`.
	Events *[]WebhookEventType `json:"events,omitempty"`

	// Status `paused` stops all deliveries; `active` re-enables a paused endpoint. Omit to leave the status unchanged. Events that fire while paused are not delivered; after re-enabling, recover them with [Replay missed events](/docs/api/reference/create-webhook-replay). A `degraded` endpoint cannot be reset through this field: it returns to `active` automatically once deliveries succeed again.
	Status *WebhookEndpointUpdateStatus `json:"status,omitempty"`

	// Url Replacement delivery URL. Same rules as at creation: HTTPS, at most 2048 characters, and the host must be publicly reachable (private, loopback, and link-local addresses return a `422`). Omit to keep the current URL.
	Url *string `json:"url,omitempty"`
}

WebhookEndpointUpdate defines model for WebhookEndpointUpdate.

type WebhookEndpointUpdateStatus

type WebhookEndpointUpdateStatus string

WebhookEndpointUpdateStatus `paused` stops all deliveries; `active` re-enables a paused endpoint. Omit to leave the status unchanged. Events that fire while paused are not delivered; after re-enabling, recover them with [Replay missed events](/docs/api/reference/create-webhook-replay). A `degraded` endpoint cannot be reset through this field: it returns to `active` automatically once deliveries succeed again.

const (
	WebhookEndpointUpdateStatusActive WebhookEndpointUpdateStatus = "active"
	WebhookEndpointUpdateStatusPaused WebhookEndpointUpdateStatus = "paused"
)

Defines values for WebhookEndpointUpdateStatus.

func (WebhookEndpointUpdateStatus) Valid

Valid indicates whether the value is a known member of the WebhookEndpointUpdateStatus enum.

type WebhookEvent

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

WebhookEvent Webhook delivery body. `type` identifies the event variant, `timestamp` is when the event occurred, and `data` contains the event-specific payload. See the [webhooks guide](/docs/guides/webhooks) for signature verification.

func (WebhookEvent) AsEventDomainFailed

func (t WebhookEvent) AsEventDomainFailed() (EventDomainFailed, error)

AsEventDomainFailed returns the union data inside the WebhookEvent as a EventDomainFailed

func (WebhookEvent) AsEventDomainVerified

func (t WebhookEvent) AsEventDomainVerified() (EventDomainVerified, error)

AsEventDomainVerified returns the union data inside the WebhookEvent as a EventDomainVerified

func (WebhookEvent) AsEventEmailAccepted

func (t WebhookEvent) AsEventEmailAccepted() (EventEmailAccepted, error)

AsEventEmailAccepted returns the union data inside the WebhookEvent as a EventEmailAccepted

func (WebhookEvent) AsEventEmailBounced

func (t WebhookEvent) AsEventEmailBounced() (EventEmailBounced, error)

AsEventEmailBounced returns the union data inside the WebhookEvent as a EventEmailBounced

func (WebhookEvent) AsEventEmailCanceled added in v0.2.2

func (t WebhookEvent) AsEventEmailCanceled() (EventEmailCanceled, error)

AsEventEmailCanceled returns the union data inside the WebhookEvent as a EventEmailCanceled

func (WebhookEvent) AsEventEmailClicked

func (t WebhookEvent) AsEventEmailClicked() (EventEmailClicked, error)

AsEventEmailClicked returns the union data inside the WebhookEvent as a EventEmailClicked

func (WebhookEvent) AsEventEmailComplained

func (t WebhookEvent) AsEventEmailComplained() (EventEmailComplained, error)

AsEventEmailComplained returns the union data inside the WebhookEvent as a EventEmailComplained

func (WebhookEvent) AsEventEmailDeferred

func (t WebhookEvent) AsEventEmailDeferred() (EventEmailDeferred, error)

AsEventEmailDeferred returns the union data inside the WebhookEvent as a EventEmailDeferred

func (WebhookEvent) AsEventEmailDelivered

func (t WebhookEvent) AsEventEmailDelivered() (EventEmailDelivered, error)

AsEventEmailDelivered returns the union data inside the WebhookEvent as a EventEmailDelivered

func (WebhookEvent) AsEventEmailListUnsubscribed

func (t WebhookEvent) AsEventEmailListUnsubscribed() (EventEmailListUnsubscribed, error)

AsEventEmailListUnsubscribed returns the union data inside the WebhookEvent as a EventEmailListUnsubscribed

func (WebhookEvent) AsEventEmailMailboxMessageDelivered added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxMessageDelivered() (EventEmailMailboxMessageDelivered, error)

AsEventEmailMailboxMessageDelivered returns the union data inside the WebhookEvent as a EventEmailMailboxMessageDelivered

func (WebhookEvent) AsEventEmailMailboxMessageFailed added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxMessageFailed() (EventEmailMailboxMessageFailed, error)

AsEventEmailMailboxMessageFailed returns the union data inside the WebhookEvent as a EventEmailMailboxMessageFailed

func (WebhookEvent) AsEventEmailMailboxMessageReceived added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxMessageReceived() (EventEmailMailboxMessageReceived, error)

AsEventEmailMailboxMessageReceived returns the union data inside the WebhookEvent as a EventEmailMailboxMessageReceived

func (WebhookEvent) AsEventEmailMailboxMessageSent added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxMessageSent() (EventEmailMailboxMessageSent, error)

AsEventEmailMailboxMessageSent returns the union data inside the WebhookEvent as a EventEmailMailboxMessageSent

func (WebhookEvent) AsEventEmailMailboxSuspended added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxSuspended() (EventEmailMailboxSuspended, error)

AsEventEmailMailboxSuspended returns the union data inside the WebhookEvent as a EventEmailMailboxSuspended

func (WebhookEvent) AsEventEmailMailboxThreadCreated added in v0.4.1

func (t WebhookEvent) AsEventEmailMailboxThreadCreated() (EventEmailMailboxThreadCreated, error)

AsEventEmailMailboxThreadCreated returns the union data inside the WebhookEvent as a EventEmailMailboxThreadCreated

func (WebhookEvent) AsEventEmailOpened

func (t WebhookEvent) AsEventEmailOpened() (EventEmailOpened, error)

AsEventEmailOpened returns the union data inside the WebhookEvent as a EventEmailOpened

func (WebhookEvent) AsEventEmailOutOfBandBounce

func (t WebhookEvent) AsEventEmailOutOfBandBounce() (EventEmailOutOfBandBounce, error)

AsEventEmailOutOfBandBounce returns the union data inside the WebhookEvent as a EventEmailOutOfBandBounce

func (WebhookEvent) AsEventEmailProcessed

func (t WebhookEvent) AsEventEmailProcessed() (EventEmailProcessed, error)

AsEventEmailProcessed returns the union data inside the WebhookEvent as a EventEmailProcessed

func (WebhookEvent) AsEventEmailReceived

func (t WebhookEvent) AsEventEmailReceived() (EventEmailReceived, error)

AsEventEmailReceived returns the union data inside the WebhookEvent as a EventEmailReceived

func (WebhookEvent) AsEventEmailRejected

func (t WebhookEvent) AsEventEmailRejected() (EventEmailRejected, error)

AsEventEmailRejected returns the union data inside the WebhookEvent as a EventEmailRejected

func (WebhookEvent) AsEventEmailScheduled added in v0.2.2

func (t WebhookEvent) AsEventEmailScheduled() (EventEmailScheduled, error)

AsEventEmailScheduled returns the union data inside the WebhookEvent as a EventEmailScheduled

func (WebhookEvent) AsEventEmailSuppressionCreated

func (t WebhookEvent) AsEventEmailSuppressionCreated() (EventEmailSuppressionCreated, error)

AsEventEmailSuppressionCreated returns the union data inside the WebhookEvent as a EventEmailSuppressionCreated

func (WebhookEvent) AsEventEmailUnsubscribed

func (t WebhookEvent) AsEventEmailUnsubscribed() (EventEmailUnsubscribed, error)

AsEventEmailUnsubscribed returns the union data inside the WebhookEvent as a EventEmailUnsubscribed

func (WebhookEvent) AsEventPreferenceDeleted added in v0.41.0

func (t WebhookEvent) AsEventPreferenceDeleted() (EventPreferenceDeleted, error)

AsEventPreferenceDeleted returns the union data inside the WebhookEvent as a EventPreferenceDeleted

func (WebhookEvent) AsEventPreferenceGranted added in v0.41.0

func (t WebhookEvent) AsEventPreferenceGranted() (EventPreferenceGranted, error)

AsEventPreferenceGranted returns the union data inside the WebhookEvent as a EventPreferenceGranted

func (WebhookEvent) AsEventPreferenceRevoked added in v0.41.0

func (t WebhookEvent) AsEventPreferenceRevoked() (EventPreferenceRevoked, error)

AsEventPreferenceRevoked returns the union data inside the WebhookEvent as a EventPreferenceRevoked

func (WebhookEvent) AsEventSMSAccepted added in v0.2.0

func (t WebhookEvent) AsEventSMSAccepted() (EventSMSAccepted, error)

AsEventSMSAccepted returns the union data inside the WebhookEvent as a EventSMSAccepted

func (WebhookEvent) AsEventSMSDelivered added in v0.2.0

func (t WebhookEvent) AsEventSMSDelivered() (EventSMSDelivered, error)

AsEventSMSDelivered returns the union data inside the WebhookEvent as a EventSMSDelivered

func (WebhookEvent) AsEventSMSExpired added in v0.2.0

func (t WebhookEvent) AsEventSMSExpired() (EventSMSExpired, error)

AsEventSMSExpired returns the union data inside the WebhookEvent as a EventSMSExpired

func (WebhookEvent) AsEventSMSFailed added in v0.2.0

func (t WebhookEvent) AsEventSMSFailed() (EventSMSFailed, error)

AsEventSMSFailed returns the union data inside the WebhookEvent as a EventSMSFailed

func (WebhookEvent) AsEventSMSReceived added in v0.28.1

func (t WebhookEvent) AsEventSMSReceived() (EventSMSReceived, error)

AsEventSMSReceived returns the union data inside the WebhookEvent as a EventSMSReceived

func (WebhookEvent) AsEventSMSRejected added in v0.2.0

func (t WebhookEvent) AsEventSMSRejected() (EventSMSRejected, error)

AsEventSMSRejected returns the union data inside the WebhookEvent as a EventSMSRejected

func (WebhookEvent) AsEventSMSSent added in v0.2.0

func (t WebhookEvent) AsEventSMSSent() (EventSMSSent, error)

AsEventSMSSent returns the union data inside the WebhookEvent as a EventSMSSent

func (WebhookEvent) AsEventSMSSuppressionCreated added in v0.38.0

func (t WebhookEvent) AsEventSMSSuppressionCreated() (EventSMSSuppressionCreated, error)

AsEventSMSSuppressionCreated returns the union data inside the WebhookEvent as a EventSMSSuppressionCreated

func (WebhookEvent) AsEventSMSUndelivered added in v0.2.0

func (t WebhookEvent) AsEventSMSUndelivered() (EventSMSUndelivered, error)

AsEventSMSUndelivered returns the union data inside the WebhookEvent as a EventSMSUndelivered

func (WebhookEvent) AsEventVerifyAttemptDelivered added in v0.14.0

func (t WebhookEvent) AsEventVerifyAttemptDelivered() (EventVerifyAttemptDelivered, error)

AsEventVerifyAttemptDelivered returns the union data inside the WebhookEvent as a EventVerifyAttemptDelivered

func (WebhookEvent) AsEventVerifyAttemptSent added in v0.14.0

func (t WebhookEvent) AsEventVerifyAttemptSent() (EventVerifyAttemptSent, error)

AsEventVerifyAttemptSent returns the union data inside the WebhookEvent as a EventVerifyAttemptSent

func (WebhookEvent) AsEventVerifyAttemptUndelivered added in v0.14.0

func (t WebhookEvent) AsEventVerifyAttemptUndelivered() (EventVerifyAttemptUndelivered, error)

AsEventVerifyAttemptUndelivered returns the union data inside the WebhookEvent as a EventVerifyAttemptUndelivered

func (WebhookEvent) AsEventVerifyVerificationCreated added in v0.14.0

func (t WebhookEvent) AsEventVerifyVerificationCreated() (EventVerifyVerificationCreated, error)

AsEventVerifyVerificationCreated returns the union data inside the WebhookEvent as a EventVerifyVerificationCreated

func (WebhookEvent) AsEventVerifyVerificationFailed added in v0.36.0

func (t WebhookEvent) AsEventVerifyVerificationFailed() (EventVerifyVerificationFailed, error)

AsEventVerifyVerificationFailed returns the union data inside the WebhookEvent as a EventVerifyVerificationFailed

func (WebhookEvent) AsEventVerifyVerificationVerified added in v0.14.0

func (t WebhookEvent) AsEventVerifyVerificationVerified() (EventVerifyVerificationVerified, error)

AsEventVerifyVerificationVerified returns the union data inside the WebhookEvent as a EventVerifyVerificationVerified

func (WebhookEvent) AsEventVoiceCallAnswered added in v0.9.2

func (t WebhookEvent) AsEventVoiceCallAnswered() (EventVoiceCallAnswered, error)

AsEventVoiceCallAnswered returns the union data inside the WebhookEvent as a EventVoiceCallAnswered

func (WebhookEvent) AsEventVoiceCallEnded added in v0.9.2

func (t WebhookEvent) AsEventVoiceCallEnded() (EventVoiceCallEnded, error)

AsEventVoiceCallEnded returns the union data inside the WebhookEvent as a EventVoiceCallEnded

func (WebhookEvent) AsEventVoiceCallInitiated added in v0.9.2

func (t WebhookEvent) AsEventVoiceCallInitiated() (EventVoiceCallInitiated, error)

AsEventVoiceCallInitiated returns the union data inside the WebhookEvent as a EventVoiceCallInitiated

func (WebhookEvent) AsEventWhatsAppAccepted added in v0.8.1

func (t WebhookEvent) AsEventWhatsAppAccepted() (EventWhatsAppAccepted, error)

AsEventWhatsAppAccepted returns the union data inside the WebhookEvent as a EventWhatsAppAccepted

func (WebhookEvent) AsEventWhatsAppDelivered added in v0.8.1

func (t WebhookEvent) AsEventWhatsAppDelivered() (EventWhatsAppDelivered, error)

AsEventWhatsAppDelivered returns the union data inside the WebhookEvent as a EventWhatsAppDelivered

func (WebhookEvent) AsEventWhatsAppFailed added in v0.8.1

func (t WebhookEvent) AsEventWhatsAppFailed() (EventWhatsAppFailed, error)

AsEventWhatsAppFailed returns the union data inside the WebhookEvent as a EventWhatsAppFailed

func (WebhookEvent) AsEventWhatsAppRead added in v0.8.1

func (t WebhookEvent) AsEventWhatsAppRead() (EventWhatsAppRead, error)

AsEventWhatsAppRead returns the union data inside the WebhookEvent as a EventWhatsAppRead

func (WebhookEvent) AsEventWhatsAppReceived added in v0.33.0

func (t WebhookEvent) AsEventWhatsAppReceived() (EventWhatsAppReceived, error)

AsEventWhatsAppReceived returns the union data inside the WebhookEvent as a EventWhatsAppReceived

func (WebhookEvent) AsEventWhatsAppRejected added in v0.10.1

func (t WebhookEvent) AsEventWhatsAppRejected() (EventWhatsAppRejected, error)

AsEventWhatsAppRejected returns the union data inside the WebhookEvent as a EventWhatsAppRejected

func (WebhookEvent) AsEventWhatsAppSent added in v0.8.1

func (t WebhookEvent) AsEventWhatsAppSent() (EventWhatsAppSent, error)

AsEventWhatsAppSent returns the union data inside the WebhookEvent as a EventWhatsAppSent

func (WebhookEvent) AsEventWhatsAppSuppressionCreated added in v0.41.0

func (t WebhookEvent) AsEventWhatsAppSuppressionCreated() (EventWhatsAppSuppressionCreated, error)

AsEventWhatsAppSuppressionCreated returns the union data inside the WebhookEvent as a EventWhatsAppSuppressionCreated

func (WebhookEvent) Discriminator

func (t WebhookEvent) Discriminator() (string, error)

func (*WebhookEvent) FromEventDomainFailed

func (t *WebhookEvent) FromEventDomainFailed(v EventDomainFailed) error

FromEventDomainFailed overwrites any union data inside the WebhookEvent as the provided EventDomainFailed

func (*WebhookEvent) FromEventDomainVerified

func (t *WebhookEvent) FromEventDomainVerified(v EventDomainVerified) error

FromEventDomainVerified overwrites any union data inside the WebhookEvent as the provided EventDomainVerified

func (*WebhookEvent) FromEventEmailAccepted

func (t *WebhookEvent) FromEventEmailAccepted(v EventEmailAccepted) error

FromEventEmailAccepted overwrites any union data inside the WebhookEvent as the provided EventEmailAccepted

func (*WebhookEvent) FromEventEmailBounced

func (t *WebhookEvent) FromEventEmailBounced(v EventEmailBounced) error

FromEventEmailBounced overwrites any union data inside the WebhookEvent as the provided EventEmailBounced

func (*WebhookEvent) FromEventEmailCanceled added in v0.2.2

func (t *WebhookEvent) FromEventEmailCanceled(v EventEmailCanceled) error

FromEventEmailCanceled overwrites any union data inside the WebhookEvent as the provided EventEmailCanceled

func (*WebhookEvent) FromEventEmailClicked

func (t *WebhookEvent) FromEventEmailClicked(v EventEmailClicked) error

FromEventEmailClicked overwrites any union data inside the WebhookEvent as the provided EventEmailClicked

func (*WebhookEvent) FromEventEmailComplained

func (t *WebhookEvent) FromEventEmailComplained(v EventEmailComplained) error

FromEventEmailComplained overwrites any union data inside the WebhookEvent as the provided EventEmailComplained

func (*WebhookEvent) FromEventEmailDeferred

func (t *WebhookEvent) FromEventEmailDeferred(v EventEmailDeferred) error

FromEventEmailDeferred overwrites any union data inside the WebhookEvent as the provided EventEmailDeferred

func (*WebhookEvent) FromEventEmailDelivered

func (t *WebhookEvent) FromEventEmailDelivered(v EventEmailDelivered) error

FromEventEmailDelivered overwrites any union data inside the WebhookEvent as the provided EventEmailDelivered

func (*WebhookEvent) FromEventEmailListUnsubscribed

func (t *WebhookEvent) FromEventEmailListUnsubscribed(v EventEmailListUnsubscribed) error

FromEventEmailListUnsubscribed overwrites any union data inside the WebhookEvent as the provided EventEmailListUnsubscribed

func (*WebhookEvent) FromEventEmailMailboxMessageDelivered added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxMessageDelivered(v EventEmailMailboxMessageDelivered) error

FromEventEmailMailboxMessageDelivered overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxMessageDelivered

func (*WebhookEvent) FromEventEmailMailboxMessageFailed added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxMessageFailed(v EventEmailMailboxMessageFailed) error

FromEventEmailMailboxMessageFailed overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxMessageFailed

func (*WebhookEvent) FromEventEmailMailboxMessageReceived added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxMessageReceived(v EventEmailMailboxMessageReceived) error

FromEventEmailMailboxMessageReceived overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxMessageReceived

func (*WebhookEvent) FromEventEmailMailboxMessageSent added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxMessageSent(v EventEmailMailboxMessageSent) error

FromEventEmailMailboxMessageSent overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxMessageSent

func (*WebhookEvent) FromEventEmailMailboxSuspended added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxSuspended(v EventEmailMailboxSuspended) error

FromEventEmailMailboxSuspended overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxSuspended

func (*WebhookEvent) FromEventEmailMailboxThreadCreated added in v0.4.1

func (t *WebhookEvent) FromEventEmailMailboxThreadCreated(v EventEmailMailboxThreadCreated) error

FromEventEmailMailboxThreadCreated overwrites any union data inside the WebhookEvent as the provided EventEmailMailboxThreadCreated

func (*WebhookEvent) FromEventEmailOpened

func (t *WebhookEvent) FromEventEmailOpened(v EventEmailOpened) error

FromEventEmailOpened overwrites any union data inside the WebhookEvent as the provided EventEmailOpened

func (*WebhookEvent) FromEventEmailOutOfBandBounce

func (t *WebhookEvent) FromEventEmailOutOfBandBounce(v EventEmailOutOfBandBounce) error

FromEventEmailOutOfBandBounce overwrites any union data inside the WebhookEvent as the provided EventEmailOutOfBandBounce

func (*WebhookEvent) FromEventEmailProcessed

func (t *WebhookEvent) FromEventEmailProcessed(v EventEmailProcessed) error

FromEventEmailProcessed overwrites any union data inside the WebhookEvent as the provided EventEmailProcessed

func (*WebhookEvent) FromEventEmailReceived

func (t *WebhookEvent) FromEventEmailReceived(v EventEmailReceived) error

FromEventEmailReceived overwrites any union data inside the WebhookEvent as the provided EventEmailReceived

func (*WebhookEvent) FromEventEmailRejected

func (t *WebhookEvent) FromEventEmailRejected(v EventEmailRejected) error

FromEventEmailRejected overwrites any union data inside the WebhookEvent as the provided EventEmailRejected

func (*WebhookEvent) FromEventEmailScheduled added in v0.2.2

func (t *WebhookEvent) FromEventEmailScheduled(v EventEmailScheduled) error

FromEventEmailScheduled overwrites any union data inside the WebhookEvent as the provided EventEmailScheduled

func (*WebhookEvent) FromEventEmailSuppressionCreated

func (t *WebhookEvent) FromEventEmailSuppressionCreated(v EventEmailSuppressionCreated) error

FromEventEmailSuppressionCreated overwrites any union data inside the WebhookEvent as the provided EventEmailSuppressionCreated

func (*WebhookEvent) FromEventEmailUnsubscribed

func (t *WebhookEvent) FromEventEmailUnsubscribed(v EventEmailUnsubscribed) error

FromEventEmailUnsubscribed overwrites any union data inside the WebhookEvent as the provided EventEmailUnsubscribed

func (*WebhookEvent) FromEventPreferenceDeleted added in v0.41.0

func (t *WebhookEvent) FromEventPreferenceDeleted(v EventPreferenceDeleted) error

FromEventPreferenceDeleted overwrites any union data inside the WebhookEvent as the provided EventPreferenceDeleted

func (*WebhookEvent) FromEventPreferenceGranted added in v0.41.0

func (t *WebhookEvent) FromEventPreferenceGranted(v EventPreferenceGranted) error

FromEventPreferenceGranted overwrites any union data inside the WebhookEvent as the provided EventPreferenceGranted

func (*WebhookEvent) FromEventPreferenceRevoked added in v0.41.0

func (t *WebhookEvent) FromEventPreferenceRevoked(v EventPreferenceRevoked) error

FromEventPreferenceRevoked overwrites any union data inside the WebhookEvent as the provided EventPreferenceRevoked

func (*WebhookEvent) FromEventSMSAccepted added in v0.2.0

func (t *WebhookEvent) FromEventSMSAccepted(v EventSMSAccepted) error

FromEventSMSAccepted overwrites any union data inside the WebhookEvent as the provided EventSMSAccepted

func (*WebhookEvent) FromEventSMSDelivered added in v0.2.0

func (t *WebhookEvent) FromEventSMSDelivered(v EventSMSDelivered) error

FromEventSMSDelivered overwrites any union data inside the WebhookEvent as the provided EventSMSDelivered

func (*WebhookEvent) FromEventSMSExpired added in v0.2.0

func (t *WebhookEvent) FromEventSMSExpired(v EventSMSExpired) error

FromEventSMSExpired overwrites any union data inside the WebhookEvent as the provided EventSMSExpired

func (*WebhookEvent) FromEventSMSFailed added in v0.2.0

func (t *WebhookEvent) FromEventSMSFailed(v EventSMSFailed) error

FromEventSMSFailed overwrites any union data inside the WebhookEvent as the provided EventSMSFailed

func (*WebhookEvent) FromEventSMSReceived added in v0.28.1

func (t *WebhookEvent) FromEventSMSReceived(v EventSMSReceived) error

FromEventSMSReceived overwrites any union data inside the WebhookEvent as the provided EventSMSReceived

func (*WebhookEvent) FromEventSMSRejected added in v0.2.0

func (t *WebhookEvent) FromEventSMSRejected(v EventSMSRejected) error

FromEventSMSRejected overwrites any union data inside the WebhookEvent as the provided EventSMSRejected

func (*WebhookEvent) FromEventSMSSent added in v0.2.0

func (t *WebhookEvent) FromEventSMSSent(v EventSMSSent) error

FromEventSMSSent overwrites any union data inside the WebhookEvent as the provided EventSMSSent

func (*WebhookEvent) FromEventSMSSuppressionCreated added in v0.38.0

func (t *WebhookEvent) FromEventSMSSuppressionCreated(v EventSMSSuppressionCreated) error

FromEventSMSSuppressionCreated overwrites any union data inside the WebhookEvent as the provided EventSMSSuppressionCreated

func (*WebhookEvent) FromEventSMSUndelivered added in v0.2.0

func (t *WebhookEvent) FromEventSMSUndelivered(v EventSMSUndelivered) error

FromEventSMSUndelivered overwrites any union data inside the WebhookEvent as the provided EventSMSUndelivered

func (*WebhookEvent) FromEventVerifyAttemptDelivered added in v0.14.0

func (t *WebhookEvent) FromEventVerifyAttemptDelivered(v EventVerifyAttemptDelivered) error

FromEventVerifyAttemptDelivered overwrites any union data inside the WebhookEvent as the provided EventVerifyAttemptDelivered

func (*WebhookEvent) FromEventVerifyAttemptSent added in v0.14.0

func (t *WebhookEvent) FromEventVerifyAttemptSent(v EventVerifyAttemptSent) error

FromEventVerifyAttemptSent overwrites any union data inside the WebhookEvent as the provided EventVerifyAttemptSent

func (*WebhookEvent) FromEventVerifyAttemptUndelivered added in v0.14.0

func (t *WebhookEvent) FromEventVerifyAttemptUndelivered(v EventVerifyAttemptUndelivered) error

FromEventVerifyAttemptUndelivered overwrites any union data inside the WebhookEvent as the provided EventVerifyAttemptUndelivered

func (*WebhookEvent) FromEventVerifyVerificationCreated added in v0.14.0

func (t *WebhookEvent) FromEventVerifyVerificationCreated(v EventVerifyVerificationCreated) error

FromEventVerifyVerificationCreated overwrites any union data inside the WebhookEvent as the provided EventVerifyVerificationCreated

func (*WebhookEvent) FromEventVerifyVerificationFailed added in v0.36.0

func (t *WebhookEvent) FromEventVerifyVerificationFailed(v EventVerifyVerificationFailed) error

FromEventVerifyVerificationFailed overwrites any union data inside the WebhookEvent as the provided EventVerifyVerificationFailed

func (*WebhookEvent) FromEventVerifyVerificationVerified added in v0.14.0

func (t *WebhookEvent) FromEventVerifyVerificationVerified(v EventVerifyVerificationVerified) error

FromEventVerifyVerificationVerified overwrites any union data inside the WebhookEvent as the provided EventVerifyVerificationVerified

func (*WebhookEvent) FromEventVoiceCallAnswered added in v0.9.2

func (t *WebhookEvent) FromEventVoiceCallAnswered(v EventVoiceCallAnswered) error

FromEventVoiceCallAnswered overwrites any union data inside the WebhookEvent as the provided EventVoiceCallAnswered

func (*WebhookEvent) FromEventVoiceCallEnded added in v0.9.2

func (t *WebhookEvent) FromEventVoiceCallEnded(v EventVoiceCallEnded) error

FromEventVoiceCallEnded overwrites any union data inside the WebhookEvent as the provided EventVoiceCallEnded

func (*WebhookEvent) FromEventVoiceCallInitiated added in v0.9.2

func (t *WebhookEvent) FromEventVoiceCallInitiated(v EventVoiceCallInitiated) error

FromEventVoiceCallInitiated overwrites any union data inside the WebhookEvent as the provided EventVoiceCallInitiated

func (*WebhookEvent) FromEventWhatsAppAccepted added in v0.8.1

func (t *WebhookEvent) FromEventWhatsAppAccepted(v EventWhatsAppAccepted) error

FromEventWhatsAppAccepted overwrites any union data inside the WebhookEvent as the provided EventWhatsAppAccepted

func (*WebhookEvent) FromEventWhatsAppDelivered added in v0.8.1

func (t *WebhookEvent) FromEventWhatsAppDelivered(v EventWhatsAppDelivered) error

FromEventWhatsAppDelivered overwrites any union data inside the WebhookEvent as the provided EventWhatsAppDelivered

func (*WebhookEvent) FromEventWhatsAppFailed added in v0.8.1

func (t *WebhookEvent) FromEventWhatsAppFailed(v EventWhatsAppFailed) error

FromEventWhatsAppFailed overwrites any union data inside the WebhookEvent as the provided EventWhatsAppFailed

func (*WebhookEvent) FromEventWhatsAppRead added in v0.8.1

func (t *WebhookEvent) FromEventWhatsAppRead(v EventWhatsAppRead) error

FromEventWhatsAppRead overwrites any union data inside the WebhookEvent as the provided EventWhatsAppRead

func (*WebhookEvent) FromEventWhatsAppReceived added in v0.33.0

func (t *WebhookEvent) FromEventWhatsAppReceived(v EventWhatsAppReceived) error

FromEventWhatsAppReceived overwrites any union data inside the WebhookEvent as the provided EventWhatsAppReceived

func (*WebhookEvent) FromEventWhatsAppRejected added in v0.10.1

func (t *WebhookEvent) FromEventWhatsAppRejected(v EventWhatsAppRejected) error

FromEventWhatsAppRejected overwrites any union data inside the WebhookEvent as the provided EventWhatsAppRejected

func (*WebhookEvent) FromEventWhatsAppSent added in v0.8.1

func (t *WebhookEvent) FromEventWhatsAppSent(v EventWhatsAppSent) error

FromEventWhatsAppSent overwrites any union data inside the WebhookEvent as the provided EventWhatsAppSent

func (*WebhookEvent) FromEventWhatsAppSuppressionCreated added in v0.41.0

func (t *WebhookEvent) FromEventWhatsAppSuppressionCreated(v EventWhatsAppSuppressionCreated) error

FromEventWhatsAppSuppressionCreated overwrites any union data inside the WebhookEvent as the provided EventWhatsAppSuppressionCreated

func (WebhookEvent) MarshalJSON

func (t WebhookEvent) MarshalJSON() ([]byte, error)

func (*WebhookEvent) MergeEventDomainFailed

func (t *WebhookEvent) MergeEventDomainFailed(v EventDomainFailed) error

MergeEventDomainFailed performs a merge with any union data inside the WebhookEvent, using the provided EventDomainFailed

func (*WebhookEvent) MergeEventDomainVerified

func (t *WebhookEvent) MergeEventDomainVerified(v EventDomainVerified) error

MergeEventDomainVerified performs a merge with any union data inside the WebhookEvent, using the provided EventDomainVerified

func (*WebhookEvent) MergeEventEmailAccepted

func (t *WebhookEvent) MergeEventEmailAccepted(v EventEmailAccepted) error

MergeEventEmailAccepted performs a merge with any union data inside the WebhookEvent, using the provided EventEmailAccepted

func (*WebhookEvent) MergeEventEmailBounced

func (t *WebhookEvent) MergeEventEmailBounced(v EventEmailBounced) error

MergeEventEmailBounced performs a merge with any union data inside the WebhookEvent, using the provided EventEmailBounced

func (*WebhookEvent) MergeEventEmailCanceled added in v0.2.2

func (t *WebhookEvent) MergeEventEmailCanceled(v EventEmailCanceled) error

MergeEventEmailCanceled performs a merge with any union data inside the WebhookEvent, using the provided EventEmailCanceled

func (*WebhookEvent) MergeEventEmailClicked

func (t *WebhookEvent) MergeEventEmailClicked(v EventEmailClicked) error

MergeEventEmailClicked performs a merge with any union data inside the WebhookEvent, using the provided EventEmailClicked

func (*WebhookEvent) MergeEventEmailComplained

func (t *WebhookEvent) MergeEventEmailComplained(v EventEmailComplained) error

MergeEventEmailComplained performs a merge with any union data inside the WebhookEvent, using the provided EventEmailComplained

func (*WebhookEvent) MergeEventEmailDeferred

func (t *WebhookEvent) MergeEventEmailDeferred(v EventEmailDeferred) error

MergeEventEmailDeferred performs a merge with any union data inside the WebhookEvent, using the provided EventEmailDeferred

func (*WebhookEvent) MergeEventEmailDelivered

func (t *WebhookEvent) MergeEventEmailDelivered(v EventEmailDelivered) error

MergeEventEmailDelivered performs a merge with any union data inside the WebhookEvent, using the provided EventEmailDelivered

func (*WebhookEvent) MergeEventEmailListUnsubscribed

func (t *WebhookEvent) MergeEventEmailListUnsubscribed(v EventEmailListUnsubscribed) error

MergeEventEmailListUnsubscribed performs a merge with any union data inside the WebhookEvent, using the provided EventEmailListUnsubscribed

func (*WebhookEvent) MergeEventEmailMailboxMessageDelivered added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxMessageDelivered(v EventEmailMailboxMessageDelivered) error

MergeEventEmailMailboxMessageDelivered performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxMessageDelivered

func (*WebhookEvent) MergeEventEmailMailboxMessageFailed added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxMessageFailed(v EventEmailMailboxMessageFailed) error

MergeEventEmailMailboxMessageFailed performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxMessageFailed

func (*WebhookEvent) MergeEventEmailMailboxMessageReceived added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxMessageReceived(v EventEmailMailboxMessageReceived) error

MergeEventEmailMailboxMessageReceived performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxMessageReceived

func (*WebhookEvent) MergeEventEmailMailboxMessageSent added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxMessageSent(v EventEmailMailboxMessageSent) error

MergeEventEmailMailboxMessageSent performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxMessageSent

func (*WebhookEvent) MergeEventEmailMailboxSuspended added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxSuspended(v EventEmailMailboxSuspended) error

MergeEventEmailMailboxSuspended performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxSuspended

func (*WebhookEvent) MergeEventEmailMailboxThreadCreated added in v0.4.1

func (t *WebhookEvent) MergeEventEmailMailboxThreadCreated(v EventEmailMailboxThreadCreated) error

MergeEventEmailMailboxThreadCreated performs a merge with any union data inside the WebhookEvent, using the provided EventEmailMailboxThreadCreated

func (*WebhookEvent) MergeEventEmailOpened

func (t *WebhookEvent) MergeEventEmailOpened(v EventEmailOpened) error

MergeEventEmailOpened performs a merge with any union data inside the WebhookEvent, using the provided EventEmailOpened

func (*WebhookEvent) MergeEventEmailOutOfBandBounce

func (t *WebhookEvent) MergeEventEmailOutOfBandBounce(v EventEmailOutOfBandBounce) error

MergeEventEmailOutOfBandBounce performs a merge with any union data inside the WebhookEvent, using the provided EventEmailOutOfBandBounce

func (*WebhookEvent) MergeEventEmailProcessed

func (t *WebhookEvent) MergeEventEmailProcessed(v EventEmailProcessed) error

MergeEventEmailProcessed performs a merge with any union data inside the WebhookEvent, using the provided EventEmailProcessed

func (*WebhookEvent) MergeEventEmailReceived

func (t *WebhookEvent) MergeEventEmailReceived(v EventEmailReceived) error

MergeEventEmailReceived performs a merge with any union data inside the WebhookEvent, using the provided EventEmailReceived

func (*WebhookEvent) MergeEventEmailRejected

func (t *WebhookEvent) MergeEventEmailRejected(v EventEmailRejected) error

MergeEventEmailRejected performs a merge with any union data inside the WebhookEvent, using the provided EventEmailRejected

func (*WebhookEvent) MergeEventEmailScheduled added in v0.2.2

func (t *WebhookEvent) MergeEventEmailScheduled(v EventEmailScheduled) error

MergeEventEmailScheduled performs a merge with any union data inside the WebhookEvent, using the provided EventEmailScheduled

func (*WebhookEvent) MergeEventEmailSuppressionCreated

func (t *WebhookEvent) MergeEventEmailSuppressionCreated(v EventEmailSuppressionCreated) error

MergeEventEmailSuppressionCreated performs a merge with any union data inside the WebhookEvent, using the provided EventEmailSuppressionCreated

func (*WebhookEvent) MergeEventEmailUnsubscribed

func (t *WebhookEvent) MergeEventEmailUnsubscribed(v EventEmailUnsubscribed) error

MergeEventEmailUnsubscribed performs a merge with any union data inside the WebhookEvent, using the provided EventEmailUnsubscribed

func (*WebhookEvent) MergeEventPreferenceDeleted added in v0.41.0

func (t *WebhookEvent) MergeEventPreferenceDeleted(v EventPreferenceDeleted) error

MergeEventPreferenceDeleted performs a merge with any union data inside the WebhookEvent, using the provided EventPreferenceDeleted

func (*WebhookEvent) MergeEventPreferenceGranted added in v0.41.0

func (t *WebhookEvent) MergeEventPreferenceGranted(v EventPreferenceGranted) error

MergeEventPreferenceGranted performs a merge with any union data inside the WebhookEvent, using the provided EventPreferenceGranted

func (*WebhookEvent) MergeEventPreferenceRevoked added in v0.41.0

func (t *WebhookEvent) MergeEventPreferenceRevoked(v EventPreferenceRevoked) error

MergeEventPreferenceRevoked performs a merge with any union data inside the WebhookEvent, using the provided EventPreferenceRevoked

func (*WebhookEvent) MergeEventSMSAccepted added in v0.2.0

func (t *WebhookEvent) MergeEventSMSAccepted(v EventSMSAccepted) error

MergeEventSMSAccepted performs a merge with any union data inside the WebhookEvent, using the provided EventSMSAccepted

func (*WebhookEvent) MergeEventSMSDelivered added in v0.2.0

func (t *WebhookEvent) MergeEventSMSDelivered(v EventSMSDelivered) error

MergeEventSMSDelivered performs a merge with any union data inside the WebhookEvent, using the provided EventSMSDelivered

func (*WebhookEvent) MergeEventSMSExpired added in v0.2.0

func (t *WebhookEvent) MergeEventSMSExpired(v EventSMSExpired) error

MergeEventSMSExpired performs a merge with any union data inside the WebhookEvent, using the provided EventSMSExpired

func (*WebhookEvent) MergeEventSMSFailed added in v0.2.0

func (t *WebhookEvent) MergeEventSMSFailed(v EventSMSFailed) error

MergeEventSMSFailed performs a merge with any union data inside the WebhookEvent, using the provided EventSMSFailed

func (*WebhookEvent) MergeEventSMSReceived added in v0.28.1

func (t *WebhookEvent) MergeEventSMSReceived(v EventSMSReceived) error

MergeEventSMSReceived performs a merge with any union data inside the WebhookEvent, using the provided EventSMSReceived

func (*WebhookEvent) MergeEventSMSRejected added in v0.2.0

func (t *WebhookEvent) MergeEventSMSRejected(v EventSMSRejected) error

MergeEventSMSRejected performs a merge with any union data inside the WebhookEvent, using the provided EventSMSRejected

func (*WebhookEvent) MergeEventSMSSent added in v0.2.0

func (t *WebhookEvent) MergeEventSMSSent(v EventSMSSent) error

MergeEventSMSSent performs a merge with any union data inside the WebhookEvent, using the provided EventSMSSent

func (*WebhookEvent) MergeEventSMSSuppressionCreated added in v0.38.0

func (t *WebhookEvent) MergeEventSMSSuppressionCreated(v EventSMSSuppressionCreated) error

MergeEventSMSSuppressionCreated performs a merge with any union data inside the WebhookEvent, using the provided EventSMSSuppressionCreated

func (*WebhookEvent) MergeEventSMSUndelivered added in v0.2.0

func (t *WebhookEvent) MergeEventSMSUndelivered(v EventSMSUndelivered) error

MergeEventSMSUndelivered performs a merge with any union data inside the WebhookEvent, using the provided EventSMSUndelivered

func (*WebhookEvent) MergeEventVerifyAttemptDelivered added in v0.14.0

func (t *WebhookEvent) MergeEventVerifyAttemptDelivered(v EventVerifyAttemptDelivered) error

MergeEventVerifyAttemptDelivered performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyAttemptDelivered

func (*WebhookEvent) MergeEventVerifyAttemptSent added in v0.14.0

func (t *WebhookEvent) MergeEventVerifyAttemptSent(v EventVerifyAttemptSent) error

MergeEventVerifyAttemptSent performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyAttemptSent

func (*WebhookEvent) MergeEventVerifyAttemptUndelivered added in v0.14.0

func (t *WebhookEvent) MergeEventVerifyAttemptUndelivered(v EventVerifyAttemptUndelivered) error

MergeEventVerifyAttemptUndelivered performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyAttemptUndelivered

func (*WebhookEvent) MergeEventVerifyVerificationCreated added in v0.14.0

func (t *WebhookEvent) MergeEventVerifyVerificationCreated(v EventVerifyVerificationCreated) error

MergeEventVerifyVerificationCreated performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyVerificationCreated

func (*WebhookEvent) MergeEventVerifyVerificationFailed added in v0.36.0

func (t *WebhookEvent) MergeEventVerifyVerificationFailed(v EventVerifyVerificationFailed) error

MergeEventVerifyVerificationFailed performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyVerificationFailed

func (*WebhookEvent) MergeEventVerifyVerificationVerified added in v0.14.0

func (t *WebhookEvent) MergeEventVerifyVerificationVerified(v EventVerifyVerificationVerified) error

MergeEventVerifyVerificationVerified performs a merge with any union data inside the WebhookEvent, using the provided EventVerifyVerificationVerified

func (*WebhookEvent) MergeEventVoiceCallAnswered added in v0.9.2

func (t *WebhookEvent) MergeEventVoiceCallAnswered(v EventVoiceCallAnswered) error

MergeEventVoiceCallAnswered performs a merge with any union data inside the WebhookEvent, using the provided EventVoiceCallAnswered

func (*WebhookEvent) MergeEventVoiceCallEnded added in v0.9.2

func (t *WebhookEvent) MergeEventVoiceCallEnded(v EventVoiceCallEnded) error

MergeEventVoiceCallEnded performs a merge with any union data inside the WebhookEvent, using the provided EventVoiceCallEnded

func (*WebhookEvent) MergeEventVoiceCallInitiated added in v0.9.2

func (t *WebhookEvent) MergeEventVoiceCallInitiated(v EventVoiceCallInitiated) error

MergeEventVoiceCallInitiated performs a merge with any union data inside the WebhookEvent, using the provided EventVoiceCallInitiated

func (*WebhookEvent) MergeEventWhatsAppAccepted added in v0.8.1

func (t *WebhookEvent) MergeEventWhatsAppAccepted(v EventWhatsAppAccepted) error

MergeEventWhatsAppAccepted performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppAccepted

func (*WebhookEvent) MergeEventWhatsAppDelivered added in v0.8.1

func (t *WebhookEvent) MergeEventWhatsAppDelivered(v EventWhatsAppDelivered) error

MergeEventWhatsAppDelivered performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppDelivered

func (*WebhookEvent) MergeEventWhatsAppFailed added in v0.8.1

func (t *WebhookEvent) MergeEventWhatsAppFailed(v EventWhatsAppFailed) error

MergeEventWhatsAppFailed performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppFailed

func (*WebhookEvent) MergeEventWhatsAppRead added in v0.8.1

func (t *WebhookEvent) MergeEventWhatsAppRead(v EventWhatsAppRead) error

MergeEventWhatsAppRead performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppRead

func (*WebhookEvent) MergeEventWhatsAppReceived added in v0.33.0

func (t *WebhookEvent) MergeEventWhatsAppReceived(v EventWhatsAppReceived) error

MergeEventWhatsAppReceived performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppReceived

func (*WebhookEvent) MergeEventWhatsAppRejected added in v0.10.1

func (t *WebhookEvent) MergeEventWhatsAppRejected(v EventWhatsAppRejected) error

MergeEventWhatsAppRejected performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppRejected

func (*WebhookEvent) MergeEventWhatsAppSent added in v0.8.1

func (t *WebhookEvent) MergeEventWhatsAppSent(v EventWhatsAppSent) error

MergeEventWhatsAppSent performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppSent

func (*WebhookEvent) MergeEventWhatsAppSuppressionCreated added in v0.41.0

func (t *WebhookEvent) MergeEventWhatsAppSuppressionCreated(v EventWhatsAppSuppressionCreated) error

MergeEventWhatsAppSuppressionCreated performs a merge with any union data inside the WebhookEvent, using the provided EventWhatsAppSuppressionCreated

func (*WebhookEvent) UnmarshalJSON

func (t *WebhookEvent) UnmarshalJSON(b []byte) error

func (WebhookEvent) ValueByDiscriminator

func (t WebhookEvent) ValueByDiscriminator() (interface{}, error)

type WebhookEventID added in v0.2.0

type WebhookEventID = string

WebhookEventID defines model for WebhookEventID.

type WebhookEventType

type WebhookEventType string

WebhookEventType Webhook event type. This is an open enum, so accept unrecognized values in deliveries. Subscribing to a type outside the event catalog returns a `422`.

const (
	EventTypeDomainFailed                 WebhookEventType = "domain.failed"
	EventTypeDomainVerified               WebhookEventType = "domain.verified"
	EventTypeEmailAccepted                WebhookEventType = "email.accepted"
	EventTypeEmailBounced                 WebhookEventType = "email.bounced"
	EventTypeEmailCanceled                WebhookEventType = "email.canceled"
	EventTypeEmailClicked                 WebhookEventType = "email.clicked"
	EventTypeEmailComplained              WebhookEventType = "email.complained"
	EventTypeEmailDeferred                WebhookEventType = "email.deferred"
	EventTypeEmailDelivered               WebhookEventType = "email.delivered"
	EventTypeEmailListUnsubscribed        WebhookEventType = "email.list_unsubscribed"
	EventTypeEmailMailboxMessageDelivered WebhookEventType = "email_mailbox.message_delivered"
	EventTypeEmailMailboxMessageFailed    WebhookEventType = "email_mailbox.message_failed"
	EventTypeEmailMailboxMessageReceived  WebhookEventType = "email_mailbox.message_received"
	EventTypeEmailMailboxMessageSent      WebhookEventType = "email_mailbox.message_sent"
	EventTypeEmailMailboxSuspended        WebhookEventType = "email_mailbox.suspended"
	EventTypeEmailMailboxThreadCreated    WebhookEventType = "email_mailbox.thread_created"
	EventTypeEmailOpened                  WebhookEventType = "email.opened"
	EventTypeEmailOutOfBandBounce         WebhookEventType = "email.out_of_band_bounce"
	EventTypeEmailProcessed               WebhookEventType = "email.processed"
	EventTypeEmailReceived                WebhookEventType = "email.received"
	EventTypeEmailRejected                WebhookEventType = "email.rejected"
	EventTypeEmailScheduled               WebhookEventType = "email.scheduled"
	EventTypeEmailSuppressionCreated      WebhookEventType = "email_suppression.created"
	EventTypeEmailUnsubscribed            WebhookEventType = "email.unsubscribed"
	EventTypePreferenceDeleted            WebhookEventType = "preference.deleted"
	EventTypePreferenceGranted            WebhookEventType = "preference.granted"
	EventTypePreferenceRevoked            WebhookEventType = "preference.revoked"
	EventTypeSmsAccepted                  WebhookEventType = "sms.accepted"
	EventTypeSmsDelivered                 WebhookEventType = "sms.delivered"
	EventTypeSmsExpired                   WebhookEventType = "sms.expired"
	EventTypeSmsFailed                    WebhookEventType = "sms.failed"
	EventTypeSmsReceived                  WebhookEventType = "sms.received"
	EventTypeSmsRejected                  WebhookEventType = "sms.rejected"
	EventTypeSmsSent                      WebhookEventType = "sms.sent"
	EventTypeSmsSuppressionCreated        WebhookEventType = "sms_suppression.created"
	EventTypeSmsUndelivered               WebhookEventType = "sms.undelivered"
	EventTypeVerifyAttemptDelivered       WebhookEventType = "verify.attempt.delivered"
	EventTypeVerifyAttemptSent            WebhookEventType = "verify.attempt.sent"
	EventTypeVerifyAttemptUndelivered     WebhookEventType = "verify.attempt.undelivered"
	EventTypeVerifyVerificationCreated    WebhookEventType = "verify.verification.created"
	EventTypeVerifyVerificationFailed     WebhookEventType = "verify.verification.failed"
	EventTypeVerifyVerificationVerified   WebhookEventType = "verify.verification.verified"
	EventTypeVoiceCallAnswered            WebhookEventType = "voice_call.answered"
	EventTypeVoiceCallEnded               WebhookEventType = "voice_call.ended"
	EventTypeVoiceCallInitiated           WebhookEventType = "voice_call.initiated"
	EventTypeWhatsappAccepted             WebhookEventType = "whatsapp.accepted"
	EventTypeWhatsappDelivered            WebhookEventType = "whatsapp.delivered"
	EventTypeWhatsappFailed               WebhookEventType = "whatsapp.failed"
	EventTypeWhatsappRead                 WebhookEventType = "whatsapp.read"
	EventTypeWhatsappReceived             WebhookEventType = "whatsapp.received"
	EventTypeWhatsappRejected             WebhookEventType = "whatsapp.rejected"
	EventTypeWhatsappSent                 WebhookEventType = "whatsapp.sent"
	EventTypeWhatsappSuppressionCreated   WebhookEventType = "whatsapp_suppression.created"
)

Defines values for WebhookEventType.

func (WebhookEventType) Valid

func (e WebhookEventType) Valid() bool

Valid indicates whether the value is a known member of the WebhookEventType enum.

type WebhookReplayRequest

type WebhookReplayRequest struct {
	// Since Replay events that occurred at or after this timestamp. Defaults to 24 hours before the request when omitted.
	Since *time.Time `json:"since,omitempty"`

	// Until Replay events that occurred before or at this timestamp. Omit to bound the window only by `since`.
	Until *time.Time `json:"until,omitempty"`
}

WebhookReplayRequest defines model for WebhookReplayRequest.

type WebhookRotateSecretResponse

type WebhookRotateSecretResponse struct {
	// Secret The new signing secret (`whsec_` prefix). Shown only in this response: store it immediately, it cannot be retrieved again. Deliveries are signed with both this and the previous secret for 24 hours after rotation, then the previous secret stops signing.
	Secret string `json:"secret" pii:"true"`
}

WebhookRotateSecretResponse defines model for WebhookRotateSecretResponse.

type WebhookTestRequest

type WebhookTestRequest struct {
	// EventType Event type to simulate. Any type from the event catalog is accepted, whether or not the endpoint subscribes to it; an unknown type returns a `422`. When omitted, the endpoint's first subscribed event type is used.
	EventType *string `json:"event_type,omitempty"`
}

WebhookTestRequest defines model for WebhookTestRequest.

type WebhookTestResponse

type WebhookTestResponse struct {
	// Error A short explanation of why the event could not be delivered. Present only when your endpoint could not be reached.
	Error *string `json:"error,omitempty"`

	// EventPayload Webhook delivery body. `type` identifies the event variant, `timestamp` is when the event occurred, and `data` contains the event-specific payload. See the [webhooks guide](/docs/guides/webhooks) for signature verification.
	EventPayload *WebhookEvent `json:"event_payload,omitempty"`

	// ResponseBody Response body returned by your endpoint, truncated to the first 1024 bytes. Omitted when your endpoint returned no body or could not be reached.
	ResponseBody *string `json:"response_body,omitempty"`

	// ResponseDurationMs Round-trip delivery latency in milliseconds.
	ResponseDurationMs int `json:"response_duration_ms"`

	// ResponseStatusCode HTTP status returned by your endpoint. Null when no response was received (timeout, connection error, DNS failure).
	ResponseStatusCode *int `json:"response_status_code"`

	// Status Whether your endpoint accepted the test event. `delivered` means it returned a `2xx` status; `failed` means it returned a non-`2xx` status or could not be reached (see `error` for the latter).
	Status WebhookTestResponseStatus `json:"status"`
}

WebhookTestResponse defines model for WebhookTestResponse.

type WebhookTestResponseStatus

type WebhookTestResponseStatus string

WebhookTestResponseStatus Whether your endpoint accepted the test event. `delivered` means it returned a `2xx` status; `failed` means it returned a non-`2xx` status or could not be reached (see `error` for the latter).

const (
	WebhookTestResponseStatusDelivered WebhookTestResponseStatus = "delivered"
	WebhookTestResponseStatusFailed    WebhookTestResponseStatus = "failed"
)

Defines values for WebhookTestResponseStatus.

func (WebhookTestResponseStatus) Valid

func (e WebhookTestResponseStatus) Valid() bool

Valid indicates whether the value is a known member of the WebhookTestResponseStatus enum.

type WhatsAppAddress added in v0.8.1

type WhatsAppAddress struct {
	// Bsuid Business-scoped user ID, Meta's identifier for the WhatsApp user. Present only on the WhatsApp-user side of the message.
	Bsuid *string `json:"bsuid,omitempty"`

	// PhoneNumber Phone number in E.164 format, when known.
	PhoneNumber *string `json:"phone_number,omitempty"`
}

WhatsAppAddress Sender or recipient of a WhatsApp message: a phone number, a business-scoped user ID, or both.

type WhatsAppAudio added in v0.33.0

type WhatsAppAudio struct {
	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`

	// Voice Whether this is a voice note rather than an attached audio file. A voice note auto-downloads in the WhatsApp client and can be transcribed for the recipient.
	Voice *bool `json:"voice,omitempty"`
}

WhatsAppAudio defines model for WhatsAppAudio.

type WhatsAppAudioSend added in v0.33.0

type WhatsAppAudioSend struct {
	// Url Public `https` URL of the audio file. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. AAC, AMR, MP3, M4A and OGG (OPUS codec, mono) are supported, up to 16 MB.
	Url string `json:"url"`

	// Voice Whether to send this as a voice note rather than a basic audio message. A voice note auto-downloads, shows the sender's profile picture, and can be transcribed for the recipient. It requires an `.ogg` file encoded with the OPUS codec; any other format makes transcription fail. Leave it false for an ordinary audio attachment.
	Voice *bool `json:"voice,omitempty"`
}

WhatsAppAudioSend Free-form audio to send, either as a voice note or as a basic audio file. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppDocument added in v0.33.0

type WhatsAppDocument struct {
	// Caption Text shown beneath the document. Absent when the sender wrote none.
	Caption *string `json:"caption,omitempty"`

	// Filename The sender's own name for the file.
	Filename *string `json:"filename,omitempty"`

	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`
}

WhatsAppDocument defines model for WhatsAppDocument.

type WhatsAppDocumentSend added in v0.33.0

type WhatsAppDocumentSend struct {
	// Caption Text shown beneath the document.
	Caption *string `json:"caption,omitempty"`

	// Filename Name the recipient sees, including the extension. WhatsApp derives one from the URL when you omit it.
	Filename *string `json:"filename,omitempty"`

	// Url Public `https` URL of the document. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. Up to 100 MB. PDF, Word, Excel, PowerPoint and plain text render reliably in the WhatsApp client; other file types are transmitted but WhatsApp does not support them.
	Url string `json:"url"`
}

WhatsAppDocumentSend A free-form document to send, with an optional caption and filename. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppError added in v0.4.0

type WhatsAppError struct {
	// Code Standardized failure reason:
	//
	// - `insufficient_balance`: The workspace wallet could not fund the send.
	// - `price_not_found`: No price was configured for the destination and template.
	// - `internal_error`: An unexpected service failure occurred.
	// - `undeliverable`: The recipient could not be reached.
	// - `service_window_expired`: The 24-hour service window closed; send a template.
	// - `rate_limited`: The send was throttled.
	// - `recipient_suppressed`: The recipient is on the workspace suppression list.
	// - `media_rejected`: WhatsApp could not fetch the media URL, or refused the file it found there; `description` carries its reason.
	//
	// This is an open enum. Accept unrecognized values.
	Code WhatsAppErrorCode `json:"code"`

	// Description Human-readable explanation of the failure.
	Description *string `json:"description,omitempty"`

	// MetaErrorCode Raw error code from the WhatsApp Cloud API, when available, for low-level debugging.
	MetaErrorCode *string `json:"meta_error_code,omitempty"`

	// OccurredAt When the failure occurred.
	OccurredAt *time.Time `json:"occurred_at,omitempty"`
}

WhatsAppError Failure detail for a message that could not be delivered or was rejected.

type WhatsAppErrorCode added in v0.4.0

type WhatsAppErrorCode string

WhatsAppErrorCode Standardized failure reason:

- `insufficient_balance`: The workspace wallet could not fund the send. - `price_not_found`: No price was configured for the destination and template. - `internal_error`: An unexpected service failure occurred. - `undeliverable`: The recipient could not be reached. - `service_window_expired`: The 24-hour service window closed; send a template. - `rate_limited`: The send was throttled. - `recipient_suppressed`: The recipient is on the workspace suppression list. - `media_rejected`: WhatsApp could not fetch the media URL, or refused the file it found there; `description` carries its reason.

This is an open enum. Accept unrecognized values.

const (
	WhatsAppErrorCodeInsufficientBalance  WhatsAppErrorCode = "insufficient_balance"
	WhatsAppErrorCodeInternalError        WhatsAppErrorCode = "internal_error"
	WhatsAppErrorCodeMediaRejected        WhatsAppErrorCode = "media_rejected"
	WhatsAppErrorCodePriceNotFound        WhatsAppErrorCode = "price_not_found"
	WhatsAppErrorCodeRateLimited          WhatsAppErrorCode = "rate_limited"
	WhatsAppErrorCodeRecipientSuppressed  WhatsAppErrorCode = "recipient_suppressed"
	WhatsAppErrorCodeServiceWindowExpired WhatsAppErrorCode = "service_window_expired"
	WhatsAppErrorCodeUndeliverable        WhatsAppErrorCode = "undeliverable"
)

Defines values for WhatsAppErrorCode.

func (WhatsAppErrorCode) Valid added in v0.20.0

func (e WhatsAppErrorCode) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppErrorCode enum.

type WhatsAppEvent added in v0.4.0

type WhatsAppEvent struct {
	// Error Failure detail for a message that could not be delivered or was rejected.
	Error *WhatsAppError  `json:"error,omitempty"`
	Id    WhatsAppEventID `json:"id"`

	// OccurredAt When this event occurred.
	OccurredAt *time.Time `json:"occurred_at,omitempty"`

	// Type Message timeline event type:
	//
	// - `whatsapp.accepted`: The API accepted the request.
	// - `whatsapp.sent`: The message reached the WhatsApp network.
	// - `whatsapp.delivered`: Delivery to the recipient's device was confirmed.
	// - `whatsapp.read`: The recipient opened the message.
	// - `whatsapp.failed`: Delivery failed permanently.
	// - `whatsapp.rejected`: The message was refused before sending and not charged.
	// - `whatsapp.received`: An inbound message arrived from the contact.
	//
	// This is an open enum. Accept unrecognized values.
	Type WhatsAppEventType `json:"type"`
}

WhatsAppEvent defines model for WhatsAppEvent.

type WhatsAppEventID added in v0.4.0

type WhatsAppEventID = string

WhatsAppEventID defines model for WhatsAppEventID.

type WhatsAppEventList added in v0.4.0

type WhatsAppEventList struct {
	// Data Timeline events for this WhatsApp message, in chronological order. The timeline is bounded and returned in full; this list is not paginated.
	Data []WhatsAppEvent `json:"data"`
}

WhatsAppEventList defines model for WhatsAppEventList.

type WhatsAppEventType added in v0.32.0

type WhatsAppEventType string

WhatsAppEventType Message timeline event type:

- `whatsapp.accepted`: The API accepted the request. - `whatsapp.sent`: The message reached the WhatsApp network. - `whatsapp.delivered`: Delivery to the recipient's device was confirmed. - `whatsapp.read`: The recipient opened the message. - `whatsapp.failed`: Delivery failed permanently. - `whatsapp.rejected`: The message was refused before sending and not charged. - `whatsapp.received`: An inbound message arrived from the contact.

This is an open enum. Accept unrecognized values.

const (
	WhatsAppEventTypeWhatsappAccepted  WhatsAppEventType = "whatsapp.accepted"
	WhatsAppEventTypeWhatsappDelivered WhatsAppEventType = "whatsapp.delivered"
	WhatsAppEventTypeWhatsappFailed    WhatsAppEventType = "whatsapp.failed"
	WhatsAppEventTypeWhatsappRead      WhatsAppEventType = "whatsapp.read"
	WhatsAppEventTypeWhatsappReceived  WhatsAppEventType = "whatsapp.received"
	WhatsAppEventTypeWhatsappRejected  WhatsAppEventType = "whatsapp.rejected"
	WhatsAppEventTypeWhatsappSent      WhatsAppEventType = "whatsapp.sent"
)

Defines values for WhatsAppEventType.

func (WhatsAppEventType) Valid added in v0.32.0

func (e WhatsAppEventType) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppEventType enum.

type WhatsAppFileID added in v0.33.0

type WhatsAppFileID = string

WhatsAppFileID defines model for WhatsAppFileID.

type WhatsAppImage added in v0.33.0

type WhatsAppImage struct {
	// Caption Text shown beneath the image. Absent when the sender wrote none.
	Caption *string `json:"caption,omitempty"`

	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`
}

WhatsAppImage defines model for WhatsAppImage.

type WhatsAppImageSend added in v0.33.0

type WhatsAppImageSend struct {
	// Caption Text shown beneath the image.
	Caption *string `json:"caption,omitempty"`

	// Url Public `https` URL of the image. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. JPEG and PNG only, up to 5 MB.
	Url string `json:"url"`
}

WhatsAppImageSend A free-form image to send, with an optional caption. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppLocation added in v0.33.0

type WhatsAppLocation struct {
	// Address Street address of the place. Shown only when `name` is also set.
	Address *string `json:"address,omitempty"`

	// Latitude Latitude in decimal degrees.
	Latitude *float64 `json:"latitude,omitempty"`

	// Longitude Longitude in decimal degrees.
	Longitude *float64 `json:"longitude,omitempty"`

	// Name Name of the place. Absent when the sender shared a plain pin.
	Name *string `json:"name,omitempty"`

	// Url Link to the place, which WhatsApp includes mainly for business locations. Present on an inbound message when the sender's client supplied one, and absent on a message you sent, since sending a location does not support this field.
	Url *string `json:"url,omitempty"`
}

WhatsAppLocation Location content of a WhatsApp message: a point on the map the recipient can open in their maps app.

type WhatsAppLocationSend added in v0.33.0

type WhatsAppLocationSend struct {
	// Address Street address of the place. Shown only when `name` is also set.
	Address *string `json:"address,omitempty"`

	// Latitude Latitude in decimal degrees.
	Latitude float64 `json:"latitude"`

	// Longitude Longitude in decimal degrees.
	Longitude float64 `json:"longitude"`

	// Name Name of the place, shown above the address.
	Name *string `json:"name,omitempty"`
}

WhatsAppLocationSend A free-form location to send: a point on the map the recipient can open in their maps app. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppMedia added in v0.33.0

type WhatsAppMedia struct {
	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`
}

WhatsAppMedia Fields shared by every media content object on a WhatsApp message.

type WhatsAppMessage added in v0.4.0

type WhatsAppMessage struct {
	// Audio Audio the message carried.
	Audio *WhatsAppAudio `json:"audio,omitempty"`

	// Cost What was charged for a message, split into the components that make it up. `null` until at least one component has been priced.
	Cost *MessageCost `json:"cost,omitempty"`

	// CreatedAt When the message was accepted for delivery.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// DeliveredAt When delivery was confirmed. Null until then.
	DeliveredAt *time.Time `json:"delivered_at,omitempty"`

	// Direction Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).
	Direction *WhatsAppMessageDirection `json:"direction,omitempty"`

	// Document Document the message carried.
	Document *WhatsAppDocument `json:"document,omitempty"`

	// From Sender of the message. On outbound messages, the business number it was sent from; on inbound, the WhatsApp contact.
	From *WhatsAppAddress  `json:"from,omitempty"`
	Id   WhatsAppMessageID `json:"id"`

	// Image Image the message carried.
	Image *WhatsAppImage `json:"image,omitempty"`

	// LastError Failure detail for a message that could not be delivered or was rejected.
	LastError *WhatsAppError `json:"last_error,omitempty"`

	// Location Location the message carried.
	Location *WhatsAppLocation `json:"location,omitempty"`

	// Metadata Arbitrary JSON metadata stored on the message.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// ReadAt When the message was read by the recipient. Null until then.
	ReadAt *time.Time `json:"read_at,omitempty"`

	// SentAt When the message was handed to the WhatsApp network. Null until then.
	SentAt *time.Time             `json:"sent_at,omitempty"`
	Status *WhatsAppMessageStatus `json:"status,omitempty"`

	// Sticker Sticker the message carried.
	Sticker *WhatsAppSticker `json:"sticker,omitempty"`

	// Tags Structured `{name, value}` filter labels applied to this message.
	Tags *[]Tag `json:"tags,omitempty"`

	// Template The template the message was sent from. For authentication templates the filled-in values are not returned.
	Template *WhatsAppMessageTemplate `json:"template,omitempty"`

	// Text Text the message carried.
	Text *WhatsAppText `json:"text,omitempty"`

	// To Recipient of the message. On outbound messages, the WhatsApp contact; on inbound, the business number.
	To *WhatsAppAddress `json:"to,omitempty"`

	// Unsupported Set when the contact sent content we do not model, naming the WhatsApp content type so the message is not silently empty. Inbound only.
	Unsupported *WhatsAppUnsupported `json:"unsupported,omitempty"`

	// Video Video the message carried.
	Video *WhatsAppVideo `json:"video,omitempty"`
}

WhatsAppMessage defines model for WhatsAppMessage.

type WhatsAppMessageDirection added in v0.4.0

type WhatsAppMessageDirection string

WhatsAppMessageDirection Whether the message was sent by the business (`outbound`) or received from the contact (`inbound`).

const (
	Inbound  WhatsAppMessageDirection = "inbound"
	Outbound WhatsAppMessageDirection = "outbound"
)

Defines values for WhatsAppMessageDirection.

func (WhatsAppMessageDirection) Valid added in v0.4.0

func (e WhatsAppMessageDirection) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppMessageDirection enum.

type WhatsAppMessageID added in v0.4.0

type WhatsAppMessageID = string

WhatsAppMessageID defines model for WhatsAppMessageID.

type WhatsAppMessageList added in v0.4.0

type WhatsAppMessageList struct {
	// Data Page of WhatsApp messages, newest first.
	Data []WhatsAppMessage `json:"data"`

	// NextCursor Cursor for the next page. Pass back as `starting_after` to advance forward. `null` when no next page exists.
	NextCursor *string `json:"next_cursor"`

	// PrevCursor Cursor for the previous page. Pass back as `ending_before` to step backward. `null` when no previous page exists.
	PrevCursor *string `json:"prev_cursor"`

	// RefreshCursor Refresh anchor, the first row of this response. Pass back as `ending_before` to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-`null` whenever `data` is non-empty; `null` only on an empty page. Distinct from `prev_cursor`.
	RefreshCursor *string `json:"refresh_cursor"`
}

WhatsAppMessageList defines model for WhatsAppMessageList.

type WhatsAppMessageSendRequest added in v0.9.0

type WhatsAppMessageSendRequest struct {
	// Audio Free-form audio to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Audio *WhatsAppAudioSend `json:"audio,omitempty"`

	// Document A free-form document to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Document *WhatsAppDocumentSend `json:"document,omitempty"`

	// From The business phone number to send from, in E.164 format. Omit it for a Bird-managed template, which selects its own number from its category: setting it there returns a `422` `WhatsAppSenderNotAllowed`. Every other send, whether free-form content of any kind or a template your workspace authored, requires it, and the number must be one this workspace owns. Omitting it returns a `422` `WhatsAppSenderRequired`, and naming a number this workspace cannot send from returns a `422` `WhatsAppSenderNotFound`. Naming a number this workspace owns but that sits on a different WhatsApp Business Account than an authored template returns a `422` `WhatsAppSenderWABAMismatch`. A number this workspace holds but has not finished connecting returns a `422` `WhatsAppSenderNotConnected`.
	From *string `json:"from,omitempty"`

	// Image A free-form image to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Image *WhatsAppImageSend `json:"image,omitempty"`

	// Location A free-form location to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Location *WhatsAppLocationSend `json:"location,omitempty"`

	// Metadata Arbitrary JSON object stored on the message and returned on API reads. Maximum 2 KB serialized. Use metadata for per-send context like internal IDs and foreign keys. For low-cardinality filterable labels, use `tags` instead.
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Sticker A free-form sticker to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Sticker *WhatsAppStickerSend `json:"sticker,omitempty"`

	// Tags Structured `{name, value}` labels for filtering. Tags become first-class query dimensions: filter the list endpoint by tag name. Maximum 20 tags per send. Use tags for low-cardinality dimensions (`category`, `experiment_variant`). For arbitrary structured context you do not need as a filter dimension, use `metadata` instead.
	Tags *[]Tag `json:"tags,omitempty"`

	// Template The template to send. A Bird-managed template selects the sender number from the template's category, so `from` must be omitted. A template is the only content deliverable outside a customer service window.
	Template *WhatsAppTemplateSend `json:"template,omitempty"`

	// Text Free-form text to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Text *WhatsAppTextSend `json:"text,omitempty"`

	// To The message recipient: a phone number in E.164 format (for example `+31612345678`), or the recipient's business-scoped user ID (for example `US.13491208655302741918`), which addresses a WhatsApp user whose phone number you do not have. A value that is neither returns a `422` `WhatsAppInvalidRecipient`. One-time-passcode templates require a phone number and return a `422` `WhatsAppRecipientNotSupportedForTemplate` when sent to a business-scoped user ID.
	To string `json:"to"`

	// Video A free-form video to send instead of a template. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. We do not track the window, so a send outside one is accepted and then fails, with `service_window_expired` on the message's `last_error`.
	Video *WhatsAppVideoSend `json:"video,omitempty"`
}

WhatsAppMessageSendRequest A WhatsApp message to send. Carry exactly one kind of content: a request with none returns a `422` `WhatsAppContentRequired`, and one carrying more than one returns a `422` `WhatsAppContentAmbiguous`. The schema does not express that constraint, because which combinations are available depends on the content types your workspace can send.

type WhatsAppMessageStatus added in v0.4.0

type WhatsAppMessageStatus string

WhatsAppMessageStatus Delivery status:

- `accepted`: Accepted and queued for sending. - `sent`: Handed to the WhatsApp network. - `delivered`: Confirmed as delivered to the recipient's device. - `failed`: Permanently failed. - `rejected`: Refused before sending and not charged. - `received`: Received as an inbound message. - `scheduled`: Reserved and not returned. - `canceled`: Reserved and not returned.

Read receipts appear in `read_at` and `whatsapp.read` events.

const (
	Accepted  WhatsAppMessageStatus = "accepted"
	Canceled  WhatsAppMessageStatus = "canceled"
	Delivered WhatsAppMessageStatus = "delivered"
	Failed    WhatsAppMessageStatus = "failed"
	Received  WhatsAppMessageStatus = "received"
	Rejected  WhatsAppMessageStatus = "rejected"
	Scheduled WhatsAppMessageStatus = "scheduled"
	Sent      WhatsAppMessageStatus = "sent"
)

Defines values for WhatsAppMessageStatus.

func (WhatsAppMessageStatus) Valid added in v0.4.0

func (e WhatsAppMessageStatus) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppMessageStatus enum.

type WhatsAppMessageTemplate added in v0.4.0

type WhatsAppMessageTemplate struct {
	// Category Content classification applied to messages sent from this template.
	Category *WhatsAppTemplateCategory `json:"category,omitempty"`

	// Components The values that filled the template's placeholders. Empty for an authentication template, whose content is never returned.
	Components *[]WhatsAppMessageTemplateComponent `json:"components,omitempty"`

	// Language The canonical BCP-47 tag of the template variant that was sent.
	Language *LanguageTag `json:"language,omitempty"`

	// Slug The template's stable handle (for example `bird_otp`).
	Slug *TemplateSlug `json:"slug,omitempty"`
}

WhatsAppMessageTemplate The template a message was sent from. On reads `slug`, `language`, `category`, and `components` are always present; `components` is an empty array for an authentication template (the filled-in values, for example a verification code, are never returned).

type WhatsAppMessageTemplateCard added in v0.28.0

type WhatsAppMessageTemplateCard struct {
	// Components The values that fill this card's blocks.
	Components []WhatsAppMessageTemplateCardComponent `json:"components"`
}

WhatsAppMessageTemplateCard The values that fill one card of a carousel. Cards fill in the order the template was approved with, so send one entry per card and keep them in that order.

type WhatsAppMessageTemplateCardComponent added in v0.28.0

type WhatsAppMessageTemplateCardComponent struct {
	// Parameters The values that fill this part's placeholders, in placeholder order.
	Parameters *[]WhatsAppMessageTemplateComponentParameter `json:"parameters,omitempty"`

	// Type Which part of the card this fills in.
	//
	// - `header`: the card's image or video.
	// - `body`: its text.
	// - `button`: a button's variable.
	Type string `json:"type"`
}

WhatsAppMessageTemplateCardComponent The values that fill one block of one carousel card.

type WhatsAppMessageTemplateComponent added in v0.4.0

type WhatsAppMessageTemplateComponent struct {
	// Cards The values that fill each card of a carousel. Send it only on a `carousel` part. A carousel sends exactly the number of cards its template was approved with, so every card needs an entry.
	Cards *[]WhatsAppMessageTemplateCard `json:"cards,omitempty"`

	// Parameters The values that fill this part's placeholders. A positional template takes them in `{{n}}` placeholder order; a template with named parameters requires each parameter's `name` to match one the template declares, and order then carries no meaning. Send it on every part except `carousel`, which carries its values on `cards`.
	Parameters *[]WhatsAppMessageTemplateComponentParameter `json:"parameters,omitempty"`

	// Type Which part of the template this fills in.
	//
	// - `body`: the main text.
	// - `button`: a button's variable.
	// - `header`: the header's text, media or location.
	// - `carousel`: the cards.
	Type string `json:"type"`
}

WhatsAppMessageTemplateComponent defines model for WhatsAppMessageTemplateComponent.

type WhatsAppMessageTemplateComponentParameter added in v0.4.0

type WhatsAppMessageTemplateComponentParameter struct {
	// Location The point on the map a location header opens. Send it on a `location` parameter.
	Location *WhatsAppLocationSend `json:"location,omitempty"`

	// Name Required when the template declares named parameters: the placeholder this value fills (for example `first_name`), matching exactly one of the names the template declares. Name every parameter in that case; order does not matter once names are supplied. Omit this field for a positional template, which takes its values in `{{n}}` order instead. Sending the wrong set of names, or leaving one out that the template requires, returns a `422` `WhatsAppTemplateParameterMismatch`.
	Name *string `json:"name,omitempty"`

	// Text The value substituted into the placeholder, as a plain string. Send it on a `text` parameter.
	Text *string `json:"text,omitempty"`

	// Type The kind of value this parameter carries, which decides which of the fields below to send.
	Type WhatsAppTemplateParameterType `json:"type"`

	// Url Public `https` URL of the file a media header shows. Send it on an `image`, `video`, `gif` or `document` parameter. WhatsApp fetches it at send time, so it must still be reachable then, the same way a free-form media message's `url` must.
	Url *string `json:"url,omitempty"`
}

WhatsAppMessageTemplateComponentParameter defines model for WhatsAppMessageTemplateComponentParameter.

type WhatsAppReceivedEventType added in v0.33.0

type WhatsAppReceivedEventType string

WhatsAppReceivedEventType Event type.

const (
	WhatsappReceived WhatsAppReceivedEventType = "whatsapp.received"
)

Defines values for WhatsAppReceivedEventType.

func (WhatsAppReceivedEventType) Valid added in v0.33.0

func (e WhatsAppReceivedEventType) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppReceivedEventType enum.

type WhatsAppSticker added in v0.33.0

type WhatsAppSticker struct {
	// Animated Whether the sticker is animated. Absent on an outbound message.
	Animated *bool `json:"animated,omitempty"`

	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`
}

WhatsAppSticker defines model for WhatsAppSticker.

type WhatsAppStickerSend added in v0.33.0

type WhatsAppStickerSend struct {
	// Url Public `https` URL of the sticker. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. WebP only: up to 100 KB for a static sticker and 500 KB for an animated one. A sticker carries no caption.
	Url string `json:"url"`
}

WhatsAppStickerSend A free-form sticker to send. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppSuppressionCreatedEventType added in v0.41.0

type WhatsAppSuppressionCreatedEventType string

WhatsAppSuppressionCreatedEventType Always `whatsapp_suppression.created` for this event.

const (
	WhatsappSuppressionCreated WhatsAppSuppressionCreatedEventType = "whatsapp_suppression.created"
)

Defines values for WhatsAppSuppressionCreatedEventType.

func (WhatsAppSuppressionCreatedEventType) Valid added in v0.41.0

Valid indicates whether the value is a known member of the WhatsAppSuppressionCreatedEventType enum.

type WhatsAppSuppressionID added in v0.41.0

type WhatsAppSuppressionID = string

WhatsAppSuppressionID defines model for WhatsAppSuppressionID.

type WhatsAppTemplateCategory added in v0.4.0

type WhatsAppTemplateCategory string

WhatsAppTemplateCategory Meta's content classification for a template.

- `authentication`: delivers one-time passcodes. - `utility`: delivers transaction-triggered updates (receipts, order status). - `marketing`: carries promotional content.

The category determines the sender number and price. This is an open enum. Accept unrecognized values.

const (
	WhatsAppTemplateCategoryAuthentication WhatsAppTemplateCategory = "authentication"
	WhatsAppTemplateCategoryMarketing      WhatsAppTemplateCategory = "marketing"
	WhatsAppTemplateCategoryUtility        WhatsAppTemplateCategory = "utility"
)

Defines values for WhatsAppTemplateCategory.

func (WhatsAppTemplateCategory) Valid added in v0.20.0

func (e WhatsAppTemplateCategory) Valid() bool

Valid indicates whether the value is a known member of the WhatsAppTemplateCategory enum.

type WhatsAppTemplateID added in v0.10.0

type WhatsAppTemplateID = string

WhatsAppTemplateID defines model for WhatsAppTemplateID.

type WhatsAppTemplateParameterType added in v0.4.0

type WhatsAppTemplateParameterType string

WhatsAppTemplateParameterType The kind of value a template parameter carries, which follows the block it fills. The `text` type is a plain string substituted into a placeholder. This includes a coupon button's code, which the recipient copies from the button. The `image`, `video`, `gif`, and `document` types carry a media header's file in `url`. Each matches its header's `format`. The `location` type fills a location header and carries a point on the map. Open enum: more kinds may be added over time.

const (
	WhatsAppTemplateParameterTypeDocument WhatsAppTemplateParameterType = "document"
	WhatsAppTemplateParameterTypeGif      WhatsAppTemplateParameterType = "gif"
	WhatsAppTemplateParameterTypeImage    WhatsAppTemplateParameterType = "image"
	WhatsAppTemplateParameterTypeLocation WhatsAppTemplateParameterType = "location"
	WhatsAppTemplateParameterTypeText     WhatsAppTemplateParameterType = "text"
	WhatsAppTemplateParameterTypeVideo    WhatsAppTemplateParameterType = "video"
)

Defines values for WhatsAppTemplateParameterType.

func (WhatsAppTemplateParameterType) Valid added in v0.20.0

Valid indicates whether the value is a known member of the WhatsAppTemplateParameterType enum.

type WhatsAppTemplateSend added in v0.9.0

type WhatsAppTemplateSend struct {
	// Components The values that fill the template's placeholders: one entry per content block that has placeholders, each carrying its `parameters`. A positional template takes its parameters in `{{n}}` order; a template with named parameters requires each parameter's `name` to match one the template declares. Either way, sending parameters that do not match what the template declares returns a `422` `WhatsAppTemplateParameterMismatch`.
	Components *[]WhatsAppMessageTemplateComponent `json:"components,omitempty"`
	Id         *WhatsAppTemplateID                 `json:"id,omitempty"`

	// Language Which of the template's languages to send, as a BCP-47 tag (for example `en` or `pt-BR`); Meta's underscore form (`pt_BR`) is accepted and normalized. Omit it to send the template's default language, unless the template sets `language_source_required`, in which case a send naming no language is rejected. When the template does not carry the language you ask for, its own `on_missing_language` setting decides whether the closest available language is sent instead or the send is rejected. The accepted message echoes the canonical BCP-47 form of the language it resolved to.
	Language *LanguageTag `json:"language,omitempty"`

	// Slug The template to send, by its slug handle (for example `bird_otp`).
	Slug *TemplateSlug `json:"slug,omitempty"`
	// contains filtered or unexported fields
}

WhatsAppTemplateSend A send-by-template reference. Identify the template by its `id` or its `slug` (supply exactly one), optionally name a language, and fill its placeholders through `components`.

func (WhatsAppTemplateSend) AsWhatsAppTemplateSend0 added in v0.23.0

func (t WhatsAppTemplateSend) AsWhatsAppTemplateSend0() (WhatsAppTemplateSend0, error)

AsWhatsAppTemplateSend0 returns the union data inside the WhatsAppTemplateSend as a WhatsAppTemplateSend0

func (WhatsAppTemplateSend) AsWhatsAppTemplateSend1 added in v0.23.0

func (t WhatsAppTemplateSend) AsWhatsAppTemplateSend1() (WhatsAppTemplateSend1, error)

AsWhatsAppTemplateSend1 returns the union data inside the WhatsAppTemplateSend as a WhatsAppTemplateSend1

func (*WhatsAppTemplateSend) FromWhatsAppTemplateSend0 added in v0.23.0

func (t *WhatsAppTemplateSend) FromWhatsAppTemplateSend0(v WhatsAppTemplateSend0) error

FromWhatsAppTemplateSend0 overwrites any union data inside the WhatsAppTemplateSend as the provided WhatsAppTemplateSend0

func (*WhatsAppTemplateSend) FromWhatsAppTemplateSend1 added in v0.23.0

func (t *WhatsAppTemplateSend) FromWhatsAppTemplateSend1(v WhatsAppTemplateSend1) error

FromWhatsAppTemplateSend1 overwrites any union data inside the WhatsAppTemplateSend as the provided WhatsAppTemplateSend1

func (WhatsAppTemplateSend) MarshalJSON added in v0.23.0

func (t WhatsAppTemplateSend) MarshalJSON() ([]byte, error)

func (*WhatsAppTemplateSend) MergeWhatsAppTemplateSend0 added in v0.23.0

func (t *WhatsAppTemplateSend) MergeWhatsAppTemplateSend0(v WhatsAppTemplateSend0) error

MergeWhatsAppTemplateSend0 performs a merge with any union data inside the WhatsAppTemplateSend, using the provided WhatsAppTemplateSend0

func (*WhatsAppTemplateSend) MergeWhatsAppTemplateSend1 added in v0.23.0

func (t *WhatsAppTemplateSend) MergeWhatsAppTemplateSend1(v WhatsAppTemplateSend1) error

MergeWhatsAppTemplateSend1 performs a merge with any union data inside the WhatsAppTemplateSend, using the provided WhatsAppTemplateSend1

func (*WhatsAppTemplateSend) UnmarshalJSON added in v0.23.0

func (t *WhatsAppTemplateSend) UnmarshalJSON(b []byte) error

type WhatsAppTemplateSend0 added in v0.23.0

type WhatsAppTemplateSend0 = interface{}

WhatsAppTemplateSend0 defines model for .

type WhatsAppTemplateSend1 added in v0.23.0

type WhatsAppTemplateSend1 = interface{}

WhatsAppTemplateSend1 defines model for .

type WhatsAppText added in v0.33.0

type WhatsAppText struct {
	// Body The message text.
	Body string `json:"body"`
}

WhatsAppText Text content of a WhatsApp message.

type WhatsAppTextSend added in v0.33.0

type WhatsAppTextSend struct {
	// Body The message text. The WhatsApp client turns any URL it contains into a clickable link.
	Body string `json:"body"`

	// PreviewUrl Whether the WhatsApp client renders a preview of the first URL in `body`. A URL must begin with `http://` or `https://`, only the first one is previewed, and the client falls back to a plain link when it cannot fetch a preview. Not returned when the message is read back, because WhatsApp does not report whether a preview rendered.
	PreviewUrl *bool `json:"preview_url,omitempty"`
}

WhatsAppTextSend Free-form text to send. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type WhatsAppUnsupported added in v0.33.0

type WhatsAppUnsupported struct {
	// Type The WhatsApp content type we did not model. `unsupported` is not a placeholder here: WhatsApp reports its own `unsupported` type for a message its own clients cannot render, and that arrives as this value. Open enum: WhatsApp adds content types over time, so treat an unrecognized value as a future type rather than an error.
	Type string `json:"type"`
}

WhatsAppUnsupported A message whose content we do not model, named so it is visible in the message log rather than arriving empty. Inbound only.

type WhatsAppVideo added in v0.33.0

type WhatsAppVideo struct {
	// Caption Text shown beneath the video. Absent when the sender wrote none.
	Caption *string `json:"caption,omitempty"`

	// Id ID of the stored file, to pass as `media_id` when fetching it. Absent on an outbound message, whose file we never stored.
	Id *WhatsAppFileID `json:"id,omitempty"`

	// MimeType Media type WhatsApp reported for the file, for example `image/jpeg`. Absent on outbound messages.
	MimeType *string `json:"mime_type,omitempty"`

	// Url Where to fetch the media. On an inbound message this is a Bird URL you fetch with your API key; it is absent when the file could not be retrieved from WhatsApp. It stays populated after the stored bytes expire, and the link returns `410` from then on. On an outbound message it is the URL the sender supplied, whose availability is the sender's to guarantee.
	Url *string `json:"url,omitempty"`
}

WhatsAppVideo defines model for WhatsAppVideo.

type WhatsAppVideoSend added in v0.33.0

type WhatsAppVideoSend struct {
	// Caption Text shown beneath the video.
	Caption *string `json:"caption,omitempty"`

	// Url Public `https` URL of the video. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. MP4 with H.264 video and AAC audio, up to 16 MB.
	Url string `json:"url"`
}

WhatsAppVideoSend A free-form video to send, with an optional caption. Deliverable only inside an open 24-hour customer service window; outside one, send a template instead.

type Workspace added in v0.9.3

type Workspace struct {
	CreatedAt *time.Time  `json:"created_at,omitempty"`
	Id        WorkspaceID `json:"id"`

	// LogoUrl HTTPS URL to the current workspace logo. `null` when unset.
	LogoUrl            *string                     `json:"logo_url,omitempty"`
	Name               string                      `json:"name"`
	NotificationEmails WorkspaceNotificationEmails `json:"notification_emails"`
	OrganizationId     OrganizationID              `json:"organization_id"`
	UpdatedAt          *time.Time                  `json:"updated_at,omitempty"`
}

Workspace defines model for Workspace.

type WorkspaceID

type WorkspaceID = string

WorkspaceID defines model for WorkspaceID.

type WorkspaceNotificationEmails added in v0.37.0

type WorkspaceNotificationEmails struct {
	// Operational Addresses for operational notifications about this workspace (sending domain authentication failures, webhook endpoint degradation). When empty, these notifications go to the organization owners. Maximum 10 addresses.
	Operational *[]openapi_types.Email `json:"operational,omitempty"`
}

WorkspaceNotificationEmails defines model for WorkspaceNotificationEmails.

type XWorkspaceId added in v0.3.0

type XWorkspaceId = string

XWorkspaceId defines model for XWorkspaceId.

Jump to

Keyboard shortcuts

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