Documentation
¶
Index ¶
- func Bool(value bool) param.Field[bool]
- func DefaultClientOptions() []option.RequestOption
- func F[T any](value T) param.Field[T]
- func FileParam(reader io.Reader, filename string, contentType string) param.Field[io.Reader]
- func Float(value float64) param.Field[float64]
- func Int(value int64) param.Field[int64]
- func Null[T any]() param.Field[T]
- func Raw[T any](value any) param.Field[T]
- func String(value string) param.Field[string]
- type Address
- type AddressDeleteResponse
- type AddressDeleteResponseData
- type AddressGetResponse
- type AddressListResponse
- type AddressNewParams
- type AddressNewResponse
- type AddressService
- func (r *AddressService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *AddressDeleteResponse, err error)
- func (r *AddressService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *AddressGetResponse, err error)
- func (r *AddressService) List(ctx context.Context, opts ...option.RequestOption) (res *AddressListResponse, err error)
- func (r *AddressService) New(ctx context.Context, body AddressNewParams, opts ...option.RequestOption) (res *AddressNewResponse, err error)
- type App
- type AppDeleteResponse
- type AppDeleteResponseData
- type AppGetResponse
- type AppListResponse
- type AppNewParams
- type AppNewResponse
- type AppNewResponseData
- type AppService
- func (r *AppService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *AppDeleteResponse, err error)
- func (r *AppService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *AppGetResponse, err error)
- func (r *AppService) List(ctx context.Context, opts ...option.RequestOption) (res *AppListResponse, err error)
- func (r *AppService) New(ctx context.Context, body AppNewParams, opts ...option.RequestOption) (res *AppNewResponse, err error)
- type Card
- type CardCollectResponse
- type CardCollectResponseData
- type CardDeleteResponse
- type CardDeleteResponseData
- type CardExpiration
- type CardGetResponse
- type CardListResponse
- type CardNewParams
- type CardNewResponse
- type CardService
- func (r *CardService) Collect(ctx context.Context, opts ...option.RequestOption) (res *CardCollectResponse, err error)
- func (r *CardService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *CardDeleteResponse, err error)
- func (r *CardService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *CardGetResponse, err error)
- func (r *CardService) List(ctx context.Context, opts ...option.RequestOption) (res *CardListResponse, err error)
- func (r *CardService) New(ctx context.Context, body CardNewParams, opts ...option.RequestOption) (res *CardNewResponse, err error)
- type Cart
- type CartAmount
- type CartClearResponse
- type CartClearResponseData
- type CartConvertResponse
- type CartGetResponse
- type CartItem
- type CartService
- func (r *CartService) Clear(ctx context.Context, opts ...option.RequestOption) (res *CartClearResponse, err error)
- func (r *CartService) Convert(ctx context.Context, opts ...option.RequestOption) (res *CartConvertResponse, err error)
- func (r *CartService) Get(ctx context.Context, opts ...option.RequestOption) (res *CartGetResponse, err error)
- func (r *CartService) SetAddress(ctx context.Context, body CartSetAddressParams, opts ...option.RequestOption) (res *CartSetAddressResponse, err error)
- func (r *CartService) SetCard(ctx context.Context, body CartSetCardParams, opts ...option.RequestOption) (res *CartSetCardResponse, err error)
- func (r *CartService) SetItem(ctx context.Context, body CartSetItemParams, opts ...option.RequestOption) (res *CartSetItemResponse, err error)
- type CartSetAddressParams
- type CartSetAddressResponse
- type CartSetAddressResponseData
- type CartSetCardParams
- type CartSetCardResponse
- type CartSetCardResponseData
- type CartSetItemParams
- type CartSetItemResponse
- type CartShipping
- type Client
- func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, ...) error
- func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Put(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- type EmailNewParams
- type EmailNewResponse
- type EmailNewResponseData
- type EmailService
- type Error
- type Order
- type OrderAmount
- type OrderGetResponse
- type OrderItem
- type OrderListResponse
- type OrderNewParams
- type OrderNewResponse
- type OrderService
- func (r *OrderService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *OrderGetResponse, err error)
- func (r *OrderService) List(ctx context.Context, opts ...option.RequestOption) (res *OrderListResponse, err error)
- func (r *OrderService) New(ctx context.Context, body OrderNewParams, opts ...option.RequestOption) (res *OrderNewResponse, err error)
- type OrderShipping
- type OrderTracking
- type OrderTrackingStatus
- type Product
- type ProductGetResponse
- type ProductListResponse
- type ProductService
- type ProductSubscription
- type ProductTags
- type ProductVariant
- type ProductVariantTags
- type Profile
- type ProfileMeResponse
- type ProfileService
- type ProfileUpdateParams
- type ProfileUpdateResponse
- type ProfileUser
- type Region
- type Subscription
- type SubscriptionDeleteResponse
- type SubscriptionDeleteResponseData
- type SubscriptionGetResponse
- type SubscriptionListResponse
- type SubscriptionNewParams
- type SubscriptionNewResponse
- type SubscriptionNewResponseData
- type SubscriptionParam
- type SubscriptionSchedule
- type SubscriptionScheduleFixed
- type SubscriptionScheduleFixedParam
- type SubscriptionScheduleFixedType
- type SubscriptionScheduleParam
- type SubscriptionScheduleType
- type SubscriptionScheduleUnion
- type SubscriptionScheduleUnionParam
- type SubscriptionScheduleWeekly
- type SubscriptionScheduleWeeklyParam
- type SubscriptionScheduleWeeklyType
- type SubscriptionService
- func (r *SubscriptionService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *SubscriptionDeleteResponse, err error)
- func (r *SubscriptionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *SubscriptionGetResponse, err error)
- func (r *SubscriptionService) List(ctx context.Context, opts ...option.RequestOption) (res *SubscriptionListResponse, err error)
- func (r *SubscriptionService) New(ctx context.Context, body SubscriptionNewParams, opts ...option.RequestOption) (res *SubscriptionNewResponse, err error)
- func (r *SubscriptionService) Update(ctx context.Context, id string, body SubscriptionUpdateParams, ...) (res *SubscriptionUpdateResponse, err error)
- type SubscriptionUpdateParams
- type SubscriptionUpdateParamsSchedule
- type SubscriptionUpdateParamsScheduleFixed
- type SubscriptionUpdateParamsScheduleFixedType
- type SubscriptionUpdateParamsScheduleType
- type SubscriptionUpdateParamsScheduleUnion
- type SubscriptionUpdateParamsScheduleWeekly
- type SubscriptionUpdateParamsScheduleWeeklyType
- type SubscriptionUpdateResponse
- type Token
- type TokenDeleteResponse
- type TokenDeleteResponseData
- type TokenGetResponse
- type TokenListResponse
- type TokenNewResponse
- type TokenNewResponseData
- type TokenService
- func (r *TokenService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *TokenDeleteResponse, err error)
- func (r *TokenService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *TokenGetResponse, err error)
- func (r *TokenService) List(ctx context.Context, opts ...option.RequestOption) (res *TokenListResponse, err error)
- func (r *TokenService) New(ctx context.Context, opts ...option.RequestOption) (res *TokenNewResponse, err error)
- type ViewInitResponse
- type ViewInitResponseData
- type ViewService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultClientOptions ¶ added in v1.7.0
func DefaultClientOptions() []option.RequestOption
DefaultClientOptions read from the environment (TERMINAL_BEARER_TOKEN, TERMINAL_BASE_URL). This should be used to initialize new clients.
func F ¶
F is a param field helper used to initialize a param.Field generic struct. This helps specify null, zero values, and overrides, as well as normal values. You can read more about this in our README.
func Int ¶
Int is a param field helper which helps specify integers. This is particularly helpful when specifying integer constants for fields.
func Raw ¶
Raw is a param field helper for specifying values for fields when the type you are looking to send is different from the type that is specified in the SDK. For example, if the type of the field is an integer, but you want to send a float, you could do that by setting the corresponding field with Raw[int](0.5).
Types ¶
type Address ¶
type Address struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// City of the address.
City string `json:"city,required"`
// ISO 3166-1 alpha-2 country code of the address.
Country string `json:"country,required"`
// Date the address was created.
Created string `json:"created,required"`
// The recipient's name.
Name string `json:"name,required"`
// Street of the address.
Street1 string `json:"street1,required"`
// Zip code of the address.
Zip string `json:"zip,required"`
// Phone number of the recipient.
Phone string `json:"phone"`
// Province or state of the address.
Province string `json:"province"`
// Apartment, suite, etc. of the address.
Street2 string `json:"street2"`
JSON addressJSON `json:"-"`
}
Physical address associated with a Terminal shop user.
func (*Address) UnmarshalJSON ¶
type AddressDeleteResponse ¶
type AddressDeleteResponse struct {
Data AddressDeleteResponseData `json:"data,required"`
JSON addressDeleteResponseJSON `json:"-"`
}
func (*AddressDeleteResponse) UnmarshalJSON ¶
func (r *AddressDeleteResponse) UnmarshalJSON(data []byte) (err error)
type AddressDeleteResponseData ¶
type AddressDeleteResponseData string
const (
AddressDeleteResponseDataOk AddressDeleteResponseData = "ok"
)
func (AddressDeleteResponseData) IsKnown ¶
func (r AddressDeleteResponseData) IsKnown() bool
type AddressGetResponse ¶
type AddressGetResponse struct {
// Physical address associated with a Terminal shop user.
Data Address `json:"data,required"`
JSON addressGetResponseJSON `json:"-"`
}
func (*AddressGetResponse) UnmarshalJSON ¶
func (r *AddressGetResponse) UnmarshalJSON(data []byte) (err error)
type AddressListResponse ¶
type AddressListResponse struct {
// Shipping addresses.
Data []Address `json:"data,required"`
JSON addressListResponseJSON `json:"-"`
}
func (*AddressListResponse) UnmarshalJSON ¶
func (r *AddressListResponse) UnmarshalJSON(data []byte) (err error)
type AddressNewParams ¶
type AddressNewParams struct {
// City of the address.
City param.Field[string] `json:"city,required"`
// ISO 3166-1 alpha-2 country code of the address.
Country param.Field[string] `json:"country,required"`
// The recipient's name.
Name param.Field[string] `json:"name,required"`
// Street of the address.
Street1 param.Field[string] `json:"street1,required"`
// Zip code of the address.
Zip param.Field[string] `json:"zip,required"`
// Phone number of the recipient.
Phone param.Field[string] `json:"phone"`
// Province or state of the address.
Province param.Field[string] `json:"province"`
// Apartment, suite, etc. of the address.
Street2 param.Field[string] `json:"street2"`
}
func (AddressNewParams) MarshalJSON ¶
func (r AddressNewParams) MarshalJSON() (data []byte, err error)
type AddressNewResponse ¶
type AddressNewResponse struct {
// Shipping address ID.
Data string `json:"data,required"`
JSON addressNewResponseJSON `json:"-"`
}
func (*AddressNewResponse) UnmarshalJSON ¶
func (r *AddressNewResponse) UnmarshalJSON(data []byte) (err error)
type AddressService ¶
type AddressService struct {
Options []option.RequestOption
}
AddressService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAddressService method instead.
func NewAddressService ¶
func NewAddressService(opts ...option.RequestOption) (r *AddressService)
NewAddressService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*AddressService) Delete ¶
func (r *AddressService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *AddressDeleteResponse, err error)
Delete a shipping address from the current user.
func (*AddressService) Get ¶
func (r *AddressService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *AddressGetResponse, err error)
Get the shipping address with the given ID.
func (*AddressService) List ¶
func (r *AddressService) List(ctx context.Context, opts ...option.RequestOption) (res *AddressListResponse, err error)
Get the shipping addresses associated with the current user.
func (*AddressService) New ¶
func (r *AddressService) New(ctx context.Context, body AddressNewParams, opts ...option.RequestOption) (res *AddressNewResponse, err error)
Create and add a shipping address to the current user.
type App ¶
type App struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Name of the app.
Name string `json:"name,required"`
// Redirect URI of the app.
RedirectUri string `json:"redirectURI,required"`
// OAuth 2.0 client secret of the app (obfuscated).
Secret string `json:"secret,required"`
JSON appJSON `json:"-"`
}
A Terminal App used for configuring an OAuth 2.0 client.
func (*App) UnmarshalJSON ¶
type AppDeleteResponse ¶
type AppDeleteResponse struct {
Data AppDeleteResponseData `json:"data,required"`
JSON appDeleteResponseJSON `json:"-"`
}
func (*AppDeleteResponse) UnmarshalJSON ¶
func (r *AppDeleteResponse) UnmarshalJSON(data []byte) (err error)
type AppDeleteResponseData ¶
type AppDeleteResponseData string
const (
AppDeleteResponseDataOk AppDeleteResponseData = "ok"
)
func (AppDeleteResponseData) IsKnown ¶
func (r AppDeleteResponseData) IsKnown() bool
type AppGetResponse ¶
type AppGetResponse struct {
// A Terminal App used for configuring an OAuth 2.0 client.
Data App `json:"data,required"`
JSON appGetResponseJSON `json:"-"`
}
func (*AppGetResponse) UnmarshalJSON ¶
func (r *AppGetResponse) UnmarshalJSON(data []byte) (err error)
type AppListResponse ¶
type AppListResponse struct {
// List of apps.
Data []App `json:"data,required"`
JSON appListResponseJSON `json:"-"`
}
func (*AppListResponse) UnmarshalJSON ¶
func (r *AppListResponse) UnmarshalJSON(data []byte) (err error)
type AppNewParams ¶
type AppNewParams struct {
Name param.Field[string] `json:"name,required"`
RedirectUri param.Field[string] `json:"redirectURI,required"`
}
func (AppNewParams) MarshalJSON ¶
func (r AppNewParams) MarshalJSON() (data []byte, err error)
type AppNewResponse ¶
type AppNewResponse struct {
Data AppNewResponseData `json:"data,required"`
JSON appNewResponseJSON `json:"-"`
}
func (*AppNewResponse) UnmarshalJSON ¶
func (r *AppNewResponse) UnmarshalJSON(data []byte) (err error)
type AppNewResponseData ¶
type AppNewResponseData struct {
// OAuth 2.0 client ID.
ID string `json:"id,required"`
// OAuth 2.0 client secret.
Secret string `json:"secret,required"`
JSON appNewResponseDataJSON `json:"-"`
}
func (*AppNewResponseData) UnmarshalJSON ¶
func (r *AppNewResponseData) UnmarshalJSON(data []byte) (err error)
type AppService ¶
type AppService struct {
Options []option.RequestOption
}
AppService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAppService method instead.
func NewAppService ¶
func NewAppService(opts ...option.RequestOption) (r *AppService)
NewAppService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*AppService) Delete ¶
func (r *AppService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *AppDeleteResponse, err error)
Delete the app with the given ID.
func (*AppService) Get ¶
func (r *AppService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *AppGetResponse, err error)
Get the app with the given ID.
func (*AppService) List ¶
func (r *AppService) List(ctx context.Context, opts ...option.RequestOption) (res *AppListResponse, err error)
List the current user's registered apps.
func (*AppService) New ¶
func (r *AppService) New(ctx context.Context, body AppNewParams, opts ...option.RequestOption) (res *AppNewResponse, err error)
Create an app.
type Card ¶
type Card struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Brand of the card.
Brand string `json:"brand,required"`
// Date the card was created.
Created string `json:"created,required"`
// Expiration of the card.
Expiration CardExpiration `json:"expiration,required"`
// Last four digits of the card.
Last4 string `json:"last4,required"`
JSON cardJSON `json:"-"`
}
Credit card used for payments in the Terminal shop.
func (*Card) UnmarshalJSON ¶
type CardCollectResponse ¶
type CardCollectResponse struct {
// URL for collecting card information.
Data CardCollectResponseData `json:"data,required"`
JSON cardCollectResponseJSON `json:"-"`
}
func (*CardCollectResponse) UnmarshalJSON ¶
func (r *CardCollectResponse) UnmarshalJSON(data []byte) (err error)
type CardCollectResponseData ¶
type CardCollectResponseData struct {
// Temporary URL that allows a user to enter credit card details over https at
// terminal.shop.
URL string `json:"url,required" format:"uri"`
JSON cardCollectResponseDataJSON `json:"-"`
}
URL for collecting card information.
func (*CardCollectResponseData) UnmarshalJSON ¶
func (r *CardCollectResponseData) UnmarshalJSON(data []byte) (err error)
type CardDeleteResponse ¶
type CardDeleteResponse struct {
Data CardDeleteResponseData `json:"data,required"`
JSON cardDeleteResponseJSON `json:"-"`
}
func (*CardDeleteResponse) UnmarshalJSON ¶
func (r *CardDeleteResponse) UnmarshalJSON(data []byte) (err error)
type CardDeleteResponseData ¶
type CardDeleteResponseData string
const (
CardDeleteResponseDataOk CardDeleteResponseData = "ok"
)
func (CardDeleteResponseData) IsKnown ¶
func (r CardDeleteResponseData) IsKnown() bool
type CardExpiration ¶
type CardExpiration struct {
// Expiration month of the card.
Month int64 `json:"month,required"`
// Expiration year of the card.
Year int64 `json:"year,required"`
JSON cardExpirationJSON `json:"-"`
}
Expiration of the card.
func (*CardExpiration) UnmarshalJSON ¶
func (r *CardExpiration) UnmarshalJSON(data []byte) (err error)
type CardGetResponse ¶
type CardGetResponse struct {
// Credit card used for payments in the Terminal shop.
Data Card `json:"data,required"`
JSON cardGetResponseJSON `json:"-"`
}
func (*CardGetResponse) UnmarshalJSON ¶
func (r *CardGetResponse) UnmarshalJSON(data []byte) (err error)
type CardListResponse ¶
type CardListResponse struct {
// List of cards associated with the user.
Data []Card `json:"data,required"`
JSON cardListResponseJSON `json:"-"`
}
func (*CardListResponse) UnmarshalJSON ¶
func (r *CardListResponse) UnmarshalJSON(data []byte) (err error)
type CardNewParams ¶
type CardNewParams struct {
// Stripe card token. Learn how to
// [create one here](https://docs.stripe.com/api/tokens/create_card).
Token param.Field[string] `json:"token,required"`
}
func (CardNewParams) MarshalJSON ¶
func (r CardNewParams) MarshalJSON() (data []byte, err error)
type CardNewResponse ¶
type CardNewResponse struct {
// ID of the card.
Data string `json:"data,required"`
JSON cardNewResponseJSON `json:"-"`
}
func (*CardNewResponse) UnmarshalJSON ¶
func (r *CardNewResponse) UnmarshalJSON(data []byte) (err error)
type CardService ¶
type CardService struct {
Options []option.RequestOption
}
CardService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewCardService method instead.
func NewCardService ¶
func NewCardService(opts ...option.RequestOption) (r *CardService)
NewCardService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*CardService) Collect ¶
func (r *CardService) Collect(ctx context.Context, opts ...option.RequestOption) (res *CardCollectResponse, err error)
Create a temporary URL for collecting credit card information for the current user.
func (*CardService) Delete ¶
func (r *CardService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *CardDeleteResponse, err error)
Delete a credit card associated with the current user.
func (*CardService) Get ¶
func (r *CardService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *CardGetResponse, err error)
Get a credit card by ID associated with the current user.
func (*CardService) List ¶
func (r *CardService) List(ctx context.Context, opts ...option.RequestOption) (res *CardListResponse, err error)
List the credit cards associated with the current user.
func (*CardService) New ¶
func (r *CardService) New(ctx context.Context, body CardNewParams, opts ...option.RequestOption) (res *CardNewResponse, err error)
Attach a credit card (tokenized via Stripe) to the current user.
type Cart ¶
type Cart struct {
// The subtotal and shipping amounts for the current user's cart.
Amount CartAmount `json:"amount,required"`
// An array of items in the current user's cart.
Items []CartItem `json:"items,required"`
// The subtotal of all items in the current user's cart, in cents (USD).
Subtotal int64 `json:"subtotal,required"`
// ID of the shipping address selected on the current user's cart.
AddressID string `json:"addressID"`
// ID of the card selected on the current user's cart.
CardID string `json:"cardID"`
// Shipping information for the current user's cart.
Shipping CartShipping `json:"shipping"`
JSON cartJSON `json:"-"`
}
The current Terminal shop user's cart.
func (*Cart) UnmarshalJSON ¶
type CartAmount ¶
type CartAmount struct {
// Subtotal of the current user's cart, in cents (USD).
Subtotal int64 `json:"subtotal,required"`
// Shipping amount of the current user's cart, in cents (USD).
Shipping int64 `json:"shipping"`
// Total amount after any discounts, in cents (USD).
Total int64 `json:"total"`
JSON cartAmountJSON `json:"-"`
}
The subtotal and shipping amounts for the current user's cart.
func (*CartAmount) UnmarshalJSON ¶
func (r *CartAmount) UnmarshalJSON(data []byte) (err error)
type CartClearResponse ¶ added in v1.2.0
type CartClearResponse struct {
Data CartClearResponseData `json:"data,required"`
JSON cartClearResponseJSON `json:"-"`
}
func (*CartClearResponse) UnmarshalJSON ¶ added in v1.2.0
func (r *CartClearResponse) UnmarshalJSON(data []byte) (err error)
type CartClearResponseData ¶ added in v1.2.0
type CartClearResponseData string
const (
CartClearResponseDataOk CartClearResponseData = "ok"
)
func (CartClearResponseData) IsKnown ¶ added in v1.2.0
func (r CartClearResponseData) IsKnown() bool
type CartConvertResponse ¶
type CartConvertResponse struct {
// An order from the Terminal shop.
Data Order `json:"data,required"`
JSON cartConvertResponseJSON `json:"-"`
}
func (*CartConvertResponse) UnmarshalJSON ¶
func (r *CartConvertResponse) UnmarshalJSON(data []byte) (err error)
type CartGetResponse ¶
type CartGetResponse struct {
// The current Terminal shop user's cart.
Data Cart `json:"data,required"`
JSON cartGetResponseJSON `json:"-"`
}
func (*CartGetResponse) UnmarshalJSON ¶
func (r *CartGetResponse) UnmarshalJSON(data []byte) (err error)
type CartItem ¶
type CartItem struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// ID of the product variant for this item in the current user's cart.
ProductVariantID string `json:"productVariantID,required"`
// Quantity of the item in the current user's cart.
Quantity int64 `json:"quantity,required"`
// Subtotal of the item in the current user's cart, in cents (USD).
Subtotal int64 `json:"subtotal,required"`
JSON cartItemJSON `json:"-"`
}
An item in the current Terminal shop user's cart.
func (*CartItem) UnmarshalJSON ¶
type CartService ¶
type CartService struct {
Options []option.RequestOption
}
CartService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewCartService method instead.
func NewCartService ¶
func NewCartService(opts ...option.RequestOption) (r *CartService)
NewCartService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*CartService) Clear ¶ added in v1.2.0
func (r *CartService) Clear(ctx context.Context, opts ...option.RequestOption) (res *CartClearResponse, err error)
Clear the current user's cart.
func (*CartService) Convert ¶
func (r *CartService) Convert(ctx context.Context, opts ...option.RequestOption) (res *CartConvertResponse, err error)
Convert the current user's cart to an order.
func (*CartService) Get ¶
func (r *CartService) Get(ctx context.Context, opts ...option.RequestOption) (res *CartGetResponse, err error)
Get the current user's cart.
func (*CartService) SetAddress ¶
func (r *CartService) SetAddress(ctx context.Context, body CartSetAddressParams, opts ...option.RequestOption) (res *CartSetAddressResponse, err error)
Set the shipping address for the current user's cart.
func (*CartService) SetCard ¶
func (r *CartService) SetCard(ctx context.Context, body CartSetCardParams, opts ...option.RequestOption) (res *CartSetCardResponse, err error)
Set the credit card for the current user's cart.
func (*CartService) SetItem ¶
func (r *CartService) SetItem(ctx context.Context, body CartSetItemParams, opts ...option.RequestOption) (res *CartSetItemResponse, err error)
Add an item to the current user's cart.
type CartSetAddressParams ¶
type CartSetAddressParams struct {
// ID of the shipping address to set for the current user's cart.
AddressID param.Field[string] `json:"addressID,required"`
}
func (CartSetAddressParams) MarshalJSON ¶
func (r CartSetAddressParams) MarshalJSON() (data []byte, err error)
type CartSetAddressResponse ¶
type CartSetAddressResponse struct {
Data CartSetAddressResponseData `json:"data,required"`
JSON cartSetAddressResponseJSON `json:"-"`
}
func (*CartSetAddressResponse) UnmarshalJSON ¶
func (r *CartSetAddressResponse) UnmarshalJSON(data []byte) (err error)
type CartSetAddressResponseData ¶
type CartSetAddressResponseData string
const (
CartSetAddressResponseDataOk CartSetAddressResponseData = "ok"
)
func (CartSetAddressResponseData) IsKnown ¶
func (r CartSetAddressResponseData) IsKnown() bool
type CartSetCardParams ¶
type CartSetCardParams struct {
// ID of the credit card to set for the current user's cart.
CardID param.Field[string] `json:"cardID,required"`
}
func (CartSetCardParams) MarshalJSON ¶
func (r CartSetCardParams) MarshalJSON() (data []byte, err error)
type CartSetCardResponse ¶
type CartSetCardResponse struct {
Data CartSetCardResponseData `json:"data,required"`
JSON cartSetCardResponseJSON `json:"-"`
}
func (*CartSetCardResponse) UnmarshalJSON ¶
func (r *CartSetCardResponse) UnmarshalJSON(data []byte) (err error)
type CartSetCardResponseData ¶
type CartSetCardResponseData string
const (
CartSetCardResponseDataOk CartSetCardResponseData = "ok"
)
func (CartSetCardResponseData) IsKnown ¶
func (r CartSetCardResponseData) IsKnown() bool
type CartSetItemParams ¶
type CartSetItemParams struct {
// ID of the product variant to add to the cart.
ProductVariantID param.Field[string] `json:"productVariantID,required"`
// Quantity of the item to add to the cart.
Quantity param.Field[int64] `json:"quantity,required"`
}
func (CartSetItemParams) MarshalJSON ¶
func (r CartSetItemParams) MarshalJSON() (data []byte, err error)
type CartSetItemResponse ¶
type CartSetItemResponse struct {
// The current Terminal shop user's cart.
Data Cart `json:"data,required"`
JSON cartSetItemResponseJSON `json:"-"`
}
func (*CartSetItemResponse) UnmarshalJSON ¶
func (r *CartSetItemResponse) UnmarshalJSON(data []byte) (err error)
type CartShipping ¶
type CartShipping struct {
// Shipping service name.
Service string `json:"service"`
// Shipping timeframe provided by the shipping carrier.
Timeframe string `json:"timeframe"`
JSON cartShippingJSON `json:"-"`
}
Shipping information for the current user's cart.
func (*CartShipping) UnmarshalJSON ¶
func (r *CartShipping) UnmarshalJSON(data []byte) (err error)
type Client ¶
type Client struct {
Options []option.RequestOption
Product *ProductService
Profile *ProfileService
Address *AddressService
Card *CardService
Cart *CartService
Order *OrderService
Subscription *SubscriptionService
Token *TokenService
App *AppService
Email *EmailService
View *ViewService
}
Client creates a struct with services and top level methods that help with interacting with the terminal API. You should not instantiate this client directly, and instead use the NewClient method instead.
func NewClient ¶
func NewClient(opts ...option.RequestOption) (r *Client)
NewClient generates a new client with the default option read from the environment (TERMINAL_BEARER_TOKEN, TERMINAL_BASE_URL). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.
func (*Client) Delete ¶
func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Execute ¶
func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned [url.Values] will be used as query strings to the url.
If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
- A pointer to a *http.Response is populated by the raw response.
- A pointer to a byte array will be populated with the contents of the request body.
- A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
- A nil value will not read the response body.
For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.
func (*Client) Get ¶
func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Patch ¶
func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Post ¶
func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Post makes a POST request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
type EmailNewParams ¶
type EmailNewParams struct {
// Email address to subscribe to Terminal updates with.
Email param.Field[string] `json:"email,required" format:"email"`
}
func (EmailNewParams) MarshalJSON ¶
func (r EmailNewParams) MarshalJSON() (data []byte, err error)
type EmailNewResponse ¶
type EmailNewResponse struct {
Data EmailNewResponseData `json:"data,required"`
JSON emailNewResponseJSON `json:"-"`
}
func (*EmailNewResponse) UnmarshalJSON ¶
func (r *EmailNewResponse) UnmarshalJSON(data []byte) (err error)
type EmailNewResponseData ¶
type EmailNewResponseData string
const (
EmailNewResponseDataOk EmailNewResponseData = "ok"
)
func (EmailNewResponseData) IsKnown ¶
func (r EmailNewResponseData) IsKnown() bool
type EmailService ¶
type EmailService struct {
Options []option.RequestOption
}
EmailService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewEmailService method instead.
func NewEmailService ¶
func NewEmailService(opts ...option.RequestOption) (r *EmailService)
NewEmailService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*EmailService) New ¶
func (r *EmailService) New(ctx context.Context, body EmailNewParams, opts ...option.RequestOption) (res *EmailNewResponse, err error)
Subscribe to email updates from Terminal.
type Order ¶
type Order struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// The subtotal and shipping amounts of the order.
Amount OrderAmount `json:"amount,required"`
// Date the order was created.
Created string `json:"created,required"`
// Items in the order.
Items []OrderItem `json:"items,required"`
// Shipping address of the order.
Shipping OrderShipping `json:"shipping,required"`
// Tracking information of the order.
Tracking OrderTracking `json:"tracking,required"`
// Zero-based index of the order for this user only.
Index int64 `json:"index"`
JSON orderJSON `json:"-"`
}
An order from the Terminal shop.
func (*Order) UnmarshalJSON ¶
type OrderAmount ¶
type OrderAmount struct {
// Shipping amount of the order, in cents (USD).
Shipping int64 `json:"shipping,required"`
// Subtotal amount of the order, in cents (USD).
Subtotal int64 `json:"subtotal,required"`
JSON orderAmountJSON `json:"-"`
}
The subtotal and shipping amounts of the order.
func (*OrderAmount) UnmarshalJSON ¶
func (r *OrderAmount) UnmarshalJSON(data []byte) (err error)
type OrderGetResponse ¶
type OrderGetResponse struct {
// An order from the Terminal shop.
Data Order `json:"data,required"`
JSON orderGetResponseJSON `json:"-"`
}
func (*OrderGetResponse) UnmarshalJSON ¶
func (r *OrderGetResponse) UnmarshalJSON(data []byte) (err error)
type OrderItem ¶
type OrderItem struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Amount of the item in the order, in cents (USD).
Amount int64 `json:"amount,required"`
// Quantity of the item in the order.
Quantity int64 `json:"quantity,required"`
// Description of the item in the order.
Description string `json:"description"`
// ID of the product variant of the item in the order.
ProductVariantID string `json:"productVariantID"`
JSON orderItemJSON `json:"-"`
}
func (*OrderItem) UnmarshalJSON ¶
type OrderListResponse ¶
type OrderListResponse struct {
// List of orders.
Data []Order `json:"data,required"`
JSON orderListResponseJSON `json:"-"`
}
func (*OrderListResponse) UnmarshalJSON ¶
func (r *OrderListResponse) UnmarshalJSON(data []byte) (err error)
type OrderNewParams ¶
type OrderNewParams struct {
// Shipping address ID.
AddressID param.Field[string] `json:"addressID,required"`
// Card ID.
CardID param.Field[string] `json:"cardID,required"`
// Product variants to include in the order, along with their quantities.
Variants param.Field[map[string]int64] `json:"variants,required"`
}
func (OrderNewParams) MarshalJSON ¶
func (r OrderNewParams) MarshalJSON() (data []byte, err error)
type OrderNewResponse ¶
type OrderNewResponse struct {
// Order ID.
Data string `json:"data,required"`
JSON orderNewResponseJSON `json:"-"`
}
func (*OrderNewResponse) UnmarshalJSON ¶
func (r *OrderNewResponse) UnmarshalJSON(data []byte) (err error)
type OrderService ¶
type OrderService struct {
Options []option.RequestOption
}
OrderService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewOrderService method instead.
func NewOrderService ¶
func NewOrderService(opts ...option.RequestOption) (r *OrderService)
NewOrderService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*OrderService) Get ¶
func (r *OrderService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *OrderGetResponse, err error)
Get the order with the given ID.
func (*OrderService) List ¶
func (r *OrderService) List(ctx context.Context, opts ...option.RequestOption) (res *OrderListResponse, err error)
List the orders associated with the current user.
func (*OrderService) New ¶
func (r *OrderService) New(ctx context.Context, body OrderNewParams, opts ...option.RequestOption) (res *OrderNewResponse, err error)
Create an order without a cart. The order will be placed immediately.
type OrderShipping ¶
type OrderShipping struct {
// City of the address.
City string `json:"city,required"`
// ISO 3166-1 alpha-2 country code of the address.
Country string `json:"country,required"`
// The recipient's name.
Name string `json:"name,required"`
// Street of the address.
Street1 string `json:"street1,required"`
// Zip code of the address.
Zip string `json:"zip,required"`
// Phone number of the recipient.
Phone string `json:"phone"`
// Province or state of the address.
Province string `json:"province"`
// Apartment, suite, etc. of the address.
Street2 string `json:"street2"`
JSON orderShippingJSON `json:"-"`
}
Shipping address of the order.
func (*OrderShipping) UnmarshalJSON ¶
func (r *OrderShipping) UnmarshalJSON(data []byte) (err error)
type OrderTracking ¶
type OrderTracking struct {
// Tracking number of the order.
Number string `json:"number"`
// Shipping service of the order.
Service string `json:"service"`
// Current tracking status of the shipment.
Status OrderTrackingStatus `json:"status"`
// Additional details about the tracking status.
StatusDetails string `json:"statusDetails"`
// When the tracking status was last updated.
StatusUpdatedAt string `json:"statusUpdatedAt"`
// Tracking URL of the order.
URL string `json:"url"`
JSON orderTrackingJSON `json:"-"`
}
Tracking information of the order.
func (*OrderTracking) UnmarshalJSON ¶
func (r *OrderTracking) UnmarshalJSON(data []byte) (err error)
type OrderTrackingStatus ¶ added in v1.12.0
type OrderTrackingStatus string
Current tracking status of the shipment.
const ( OrderTrackingStatusPreTransit OrderTrackingStatus = "PRE_TRANSIT" OrderTrackingStatusTransit OrderTrackingStatus = "TRANSIT" OrderTrackingStatusDelivered OrderTrackingStatus = "DELIVERED" OrderTrackingStatusReturned OrderTrackingStatus = "RETURNED" OrderTrackingStatusFailure OrderTrackingStatus = "FAILURE" OrderTrackingStatusUnknown OrderTrackingStatus = "UNKNOWN" )
func (OrderTrackingStatus) IsKnown ¶ added in v1.12.0
func (r OrderTrackingStatus) IsKnown() bool
type Product ¶
type Product struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Description of the product.
Description string `json:"description,required"`
// Name of the product.
Name string `json:"name,required"`
// List of variants of the product.
Variants []ProductVariant `json:"variants,required"`
// Order of the product used when displaying a sorted list of products.
Order int64 `json:"order"`
// Whether the product must be or can be subscribed to.
Subscription ProductSubscription `json:"subscription"`
// Tags for the product.
Tags ProductTags `json:"tags"`
// Timestamp when the product was hidden from public view.
TimeHidden string `json:"timeHidden"`
JSON productJSON `json:"-"`
}
Product sold in the Terminal shop.
func (*Product) UnmarshalJSON ¶
type ProductGetResponse ¶
type ProductGetResponse struct {
// Product sold in the Terminal shop.
Data Product `json:"data,required"`
JSON productGetResponseJSON `json:"-"`
}
func (*ProductGetResponse) UnmarshalJSON ¶
func (r *ProductGetResponse) UnmarshalJSON(data []byte) (err error)
type ProductListResponse ¶
type ProductListResponse struct {
// A list of products.
Data []Product `json:"data,required"`
JSON productListResponseJSON `json:"-"`
}
func (*ProductListResponse) UnmarshalJSON ¶
func (r *ProductListResponse) UnmarshalJSON(data []byte) (err error)
type ProductService ¶
type ProductService struct {
Options []option.RequestOption
}
ProductService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProductService method instead.
func NewProductService ¶
func NewProductService(opts ...option.RequestOption) (r *ProductService)
NewProductService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*ProductService) Get ¶
func (r *ProductService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *ProductGetResponse, err error)
Get a product by ID from the Terminal shop.
func (*ProductService) List ¶
func (r *ProductService) List(ctx context.Context, opts ...option.RequestOption) (res *ProductListResponse, err error)
List all products for sale in the Terminal shop.
type ProductSubscription ¶
type ProductSubscription string
Whether the product must be or can be subscribed to.
const ( ProductSubscriptionAllowed ProductSubscription = "allowed" ProductSubscriptionRequired ProductSubscription = "required" )
func (ProductSubscription) IsKnown ¶
func (r ProductSubscription) IsKnown() bool
type ProductTags ¶
type ProductTags struct {
App string `json:"app"`
Color string `json:"color"`
Featured bool `json:"featured"`
MarketEu bool `json:"market_eu"`
MarketGlobal bool `json:"market_global"`
MarketNa bool `json:"market_na"`
JSON productTagsJSON `json:"-"`
}
Tags for the product.
func (*ProductTags) UnmarshalJSON ¶
func (r *ProductTags) UnmarshalJSON(data []byte) (err error)
type ProductVariant ¶
type ProductVariant struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Name of the product variant.
Name string `json:"name,required"`
// Price of the product variant in cents (USD).
Price int64 `json:"price,required"`
// Tags for the product variant.
Tags ProductVariantTags `json:"tags"`
JSON productVariantJSON `json:"-"`
}
Variant of a product in the Terminal shop.
func (*ProductVariant) UnmarshalJSON ¶
func (r *ProductVariant) UnmarshalJSON(data []byte) (err error)
type ProductVariantTags ¶ added in v1.12.0
type ProductVariantTags struct {
App string `json:"app"`
MarketEu bool `json:"market_eu"`
MarketGlobal bool `json:"market_global"`
MarketNa bool `json:"market_na"`
JSON productVariantTagsJSON `json:"-"`
}
Tags for the product variant.
func (*ProductVariantTags) UnmarshalJSON ¶ added in v1.12.0
func (r *ProductVariantTags) UnmarshalJSON(data []byte) (err error)
type Profile ¶
type Profile struct {
// A Terminal shop user. (We have users, btw.)
User ProfileUser `json:"user,required"`
JSON profileJSON `json:"-"`
}
A Terminal shop user's profile. (We have users, btw.)
func (*Profile) UnmarshalJSON ¶
type ProfileMeResponse ¶
type ProfileMeResponse struct {
// A Terminal shop user's profile. (We have users, btw.)
Data Profile `json:"data,required"`
JSON profileMeResponseJSON `json:"-"`
}
func (*ProfileMeResponse) UnmarshalJSON ¶
func (r *ProfileMeResponse) UnmarshalJSON(data []byte) (err error)
type ProfileService ¶
type ProfileService struct {
Options []option.RequestOption
}
ProfileService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProfileService method instead.
func NewProfileService ¶
func NewProfileService(opts ...option.RequestOption) (r *ProfileService)
NewProfileService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*ProfileService) Me ¶
func (r *ProfileService) Me(ctx context.Context, opts ...option.RequestOption) (res *ProfileMeResponse, err error)
Get the current user's profile.
func (*ProfileService) Update ¶
func (r *ProfileService) Update(ctx context.Context, body ProfileUpdateParams, opts ...option.RequestOption) (res *ProfileUpdateResponse, err error)
Update the current user's profile.
type ProfileUpdateParams ¶
type ProfileUpdateParams struct {
Email param.Field[string] `json:"email,required" format:"email"`
Name param.Field[string] `json:"name,required"`
}
func (ProfileUpdateParams) MarshalJSON ¶
func (r ProfileUpdateParams) MarshalJSON() (data []byte, err error)
type ProfileUpdateResponse ¶
type ProfileUpdateResponse struct {
// A Terminal shop user's profile. (We have users, btw.)
Data Profile `json:"data,required"`
JSON profileUpdateResponseJSON `json:"-"`
}
func (*ProfileUpdateResponse) UnmarshalJSON ¶
func (r *ProfileUpdateResponse) UnmarshalJSON(data []byte) (err error)
type ProfileUser ¶
type ProfileUser struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Email address of the user.
Email string `json:"email,required,nullable"`
// The user's fingerprint, derived from their public SSH key.
Fingerprint string `json:"fingerprint,required,nullable"`
// Name of the user.
Name string `json:"name,required,nullable"`
// Stripe customer ID of the user.
StripeCustomerID string `json:"stripeCustomerID,required"`
JSON profileUserJSON `json:"-"`
}
A Terminal shop user. (We have users, btw.)
func (*ProfileUser) UnmarshalJSON ¶
func (r *ProfileUser) UnmarshalJSON(data []byte) (err error)
type Subscription ¶
type Subscription struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// ID of the shipping address used for the subscription.
AddressID string `json:"addressID,required"`
// ID of the card used for the subscription.
CardID string `json:"cardID,required"`
// Date the subscription was created.
Created string `json:"created,required"`
// Price of the subscription in cents (USD).
Price int64 `json:"price,required"`
// ID of the product variant being subscribed to.
ProductVariantID string `json:"productVariantID,required"`
// Quantity of the subscription.
Quantity int64 `json:"quantity,required"`
// Next shipment and billing date for the subscription.
Next string `json:"next"`
// Schedule of the subscription.
Schedule SubscriptionSchedule `json:"schedule"`
JSON subscriptionJSON `json:"-"`
}
Subscription to a Terminal shop product.
func (*Subscription) UnmarshalJSON ¶
func (r *Subscription) UnmarshalJSON(data []byte) (err error)
type SubscriptionDeleteResponse ¶
type SubscriptionDeleteResponse struct {
Data SubscriptionDeleteResponseData `json:"data,required"`
JSON subscriptionDeleteResponseJSON `json:"-"`
}
func (*SubscriptionDeleteResponse) UnmarshalJSON ¶
func (r *SubscriptionDeleteResponse) UnmarshalJSON(data []byte) (err error)
type SubscriptionDeleteResponseData ¶
type SubscriptionDeleteResponseData string
const (
SubscriptionDeleteResponseDataOk SubscriptionDeleteResponseData = "ok"
)
func (SubscriptionDeleteResponseData) IsKnown ¶
func (r SubscriptionDeleteResponseData) IsKnown() bool
type SubscriptionGetResponse ¶
type SubscriptionGetResponse struct {
// Subscription to a Terminal shop product.
Data Subscription `json:"data,required"`
JSON subscriptionGetResponseJSON `json:"-"`
}
func (*SubscriptionGetResponse) UnmarshalJSON ¶
func (r *SubscriptionGetResponse) UnmarshalJSON(data []byte) (err error)
type SubscriptionListResponse ¶
type SubscriptionListResponse struct {
// List of subscriptions.
Data []Subscription `json:"data,required"`
JSON subscriptionListResponseJSON `json:"-"`
}
func (*SubscriptionListResponse) UnmarshalJSON ¶
func (r *SubscriptionListResponse) UnmarshalJSON(data []byte) (err error)
type SubscriptionNewParams ¶
type SubscriptionNewParams struct {
// Subscription to a Terminal shop product.
Subscription SubscriptionParam `json:"subscription"`
}
func (SubscriptionNewParams) MarshalJSON ¶
func (r SubscriptionNewParams) MarshalJSON() (data []byte, err error)
type SubscriptionNewResponse ¶
type SubscriptionNewResponse struct {
Data SubscriptionNewResponseData `json:"data,required"`
JSON subscriptionNewResponseJSON `json:"-"`
}
func (*SubscriptionNewResponse) UnmarshalJSON ¶
func (r *SubscriptionNewResponse) UnmarshalJSON(data []byte) (err error)
type SubscriptionNewResponseData ¶
type SubscriptionNewResponseData string
const (
SubscriptionNewResponseDataOk SubscriptionNewResponseData = "ok"
)
func (SubscriptionNewResponseData) IsKnown ¶
func (r SubscriptionNewResponseData) IsKnown() bool
type SubscriptionParam ¶
type SubscriptionParam struct {
// Unique object identifier. The format and length of IDs may change over time.
ID param.Field[string] `json:"id,required"`
// ID of the shipping address used for the subscription.
AddressID param.Field[string] `json:"addressID,required"`
// ID of the card used for the subscription.
CardID param.Field[string] `json:"cardID,required"`
// Date the subscription was created.
Created param.Field[string] `json:"created,required"`
// Price of the subscription in cents (USD).
Price param.Field[int64] `json:"price,required"`
// ID of the product variant being subscribed to.
ProductVariantID param.Field[string] `json:"productVariantID,required"`
// Quantity of the subscription.
Quantity param.Field[int64] `json:"quantity,required"`
// Next shipment and billing date for the subscription.
Next param.Field[string] `json:"next"`
// Schedule of the subscription.
Schedule param.Field[SubscriptionScheduleUnionParam] `json:"schedule"`
}
Subscription to a Terminal shop product.
func (SubscriptionParam) MarshalJSON ¶
func (r SubscriptionParam) MarshalJSON() (data []byte, err error)
type SubscriptionSchedule ¶
type SubscriptionSchedule struct {
Type SubscriptionScheduleType `json:"type,required"`
Interval int64 `json:"interval"`
JSON subscriptionScheduleJSON `json:"-"`
// contains filtered or unexported fields
}
Schedule of the subscription.
func (SubscriptionSchedule) AsUnion ¶
func (r SubscriptionSchedule) AsUnion() SubscriptionScheduleUnion
AsUnion returns a SubscriptionScheduleUnion interface which you can cast to the specific types for more type safety.
Possible runtime types of the union are SubscriptionScheduleFixed, SubscriptionScheduleWeekly.
func (*SubscriptionSchedule) UnmarshalJSON ¶
func (r *SubscriptionSchedule) UnmarshalJSON(data []byte) (err error)
type SubscriptionScheduleFixed ¶
type SubscriptionScheduleFixed struct {
Type SubscriptionScheduleFixedType `json:"type,required"`
JSON subscriptionScheduleFixedJSON `json:"-"`
}
func (*SubscriptionScheduleFixed) UnmarshalJSON ¶
func (r *SubscriptionScheduleFixed) UnmarshalJSON(data []byte) (err error)
type SubscriptionScheduleFixedParam ¶
type SubscriptionScheduleFixedParam struct {
Type param.Field[SubscriptionScheduleFixedType] `json:"type,required"`
}
func (SubscriptionScheduleFixedParam) MarshalJSON ¶
func (r SubscriptionScheduleFixedParam) MarshalJSON() (data []byte, err error)
type SubscriptionScheduleFixedType ¶
type SubscriptionScheduleFixedType string
const (
SubscriptionScheduleFixedTypeFixed SubscriptionScheduleFixedType = "fixed"
)
func (SubscriptionScheduleFixedType) IsKnown ¶
func (r SubscriptionScheduleFixedType) IsKnown() bool
type SubscriptionScheduleParam ¶
type SubscriptionScheduleParam struct {
Type param.Field[SubscriptionScheduleType] `json:"type,required"`
Interval param.Field[int64] `json:"interval"`
}
Schedule of the subscription.
func (SubscriptionScheduleParam) MarshalJSON ¶
func (r SubscriptionScheduleParam) MarshalJSON() (data []byte, err error)
type SubscriptionScheduleType ¶
type SubscriptionScheduleType string
const ( SubscriptionScheduleTypeFixed SubscriptionScheduleType = "fixed" SubscriptionScheduleTypeWeekly SubscriptionScheduleType = "weekly" )
func (SubscriptionScheduleType) IsKnown ¶
func (r SubscriptionScheduleType) IsKnown() bool
type SubscriptionScheduleUnion ¶
type SubscriptionScheduleUnion interface {
// contains filtered or unexported methods
}
Schedule of the subscription.
Union satisfied by SubscriptionScheduleFixed or SubscriptionScheduleWeekly.
type SubscriptionScheduleUnionParam ¶
type SubscriptionScheduleUnionParam interface {
// contains filtered or unexported methods
}
Schedule of the subscription.
Satisfied by SubscriptionScheduleFixedParam, SubscriptionScheduleWeeklyParam, SubscriptionScheduleParam.
type SubscriptionScheduleWeekly ¶
type SubscriptionScheduleWeekly struct {
Interval int64 `json:"interval,required"`
Type SubscriptionScheduleWeeklyType `json:"type,required"`
JSON subscriptionScheduleWeeklyJSON `json:"-"`
}
func (*SubscriptionScheduleWeekly) UnmarshalJSON ¶
func (r *SubscriptionScheduleWeekly) UnmarshalJSON(data []byte) (err error)
type SubscriptionScheduleWeeklyParam ¶
type SubscriptionScheduleWeeklyParam struct {
Interval param.Field[int64] `json:"interval,required"`
Type param.Field[SubscriptionScheduleWeeklyType] `json:"type,required"`
}
func (SubscriptionScheduleWeeklyParam) MarshalJSON ¶
func (r SubscriptionScheduleWeeklyParam) MarshalJSON() (data []byte, err error)
type SubscriptionScheduleWeeklyType ¶
type SubscriptionScheduleWeeklyType string
const (
SubscriptionScheduleWeeklyTypeWeekly SubscriptionScheduleWeeklyType = "weekly"
)
func (SubscriptionScheduleWeeklyType) IsKnown ¶
func (r SubscriptionScheduleWeeklyType) IsKnown() bool
type SubscriptionService ¶
type SubscriptionService struct {
Options []option.RequestOption
}
SubscriptionService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSubscriptionService method instead.
func NewSubscriptionService ¶
func NewSubscriptionService(opts ...option.RequestOption) (r *SubscriptionService)
NewSubscriptionService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*SubscriptionService) Delete ¶
func (r *SubscriptionService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *SubscriptionDeleteResponse, err error)
Cancel a subscription for the current user.
func (*SubscriptionService) Get ¶
func (r *SubscriptionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *SubscriptionGetResponse, err error)
Get the subscription with the given ID.
func (*SubscriptionService) List ¶
func (r *SubscriptionService) List(ctx context.Context, opts ...option.RequestOption) (res *SubscriptionListResponse, err error)
List the subscriptions associated with the current user.
func (*SubscriptionService) New ¶
func (r *SubscriptionService) New(ctx context.Context, body SubscriptionNewParams, opts ...option.RequestOption) (res *SubscriptionNewResponse, err error)
Create a subscription for the current user.
func (*SubscriptionService) Update ¶ added in v1.10.0
func (r *SubscriptionService) Update(ctx context.Context, id string, body SubscriptionUpdateParams, opts ...option.RequestOption) (res *SubscriptionUpdateResponse, err error)
Update card, address, or interval for an existing subscription.
type SubscriptionUpdateParams ¶ added in v1.10.0
type SubscriptionUpdateParams struct {
// New shipping address ID for the subscription.
AddressID param.Field[string] `json:"addressID"`
// New payment method ID for the subscription.
CardID param.Field[string] `json:"cardID"`
// New schedule for the subscription.
Schedule param.Field[SubscriptionUpdateParamsScheduleUnion] `json:"schedule"`
}
func (SubscriptionUpdateParams) MarshalJSON ¶ added in v1.10.0
func (r SubscriptionUpdateParams) MarshalJSON() (data []byte, err error)
type SubscriptionUpdateParamsSchedule ¶ added in v1.10.0
type SubscriptionUpdateParamsSchedule struct {
Type param.Field[SubscriptionUpdateParamsScheduleType] `json:"type,required"`
Interval param.Field[int64] `json:"interval"`
}
New schedule for the subscription.
func (SubscriptionUpdateParamsSchedule) MarshalJSON ¶ added in v1.10.0
func (r SubscriptionUpdateParamsSchedule) MarshalJSON() (data []byte, err error)
type SubscriptionUpdateParamsScheduleFixed ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleFixed struct {
Type param.Field[SubscriptionUpdateParamsScheduleFixedType] `json:"type,required"`
}
func (SubscriptionUpdateParamsScheduleFixed) MarshalJSON ¶ added in v1.10.0
func (r SubscriptionUpdateParamsScheduleFixed) MarshalJSON() (data []byte, err error)
type SubscriptionUpdateParamsScheduleFixedType ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleFixedType string
const (
SubscriptionUpdateParamsScheduleFixedTypeFixed SubscriptionUpdateParamsScheduleFixedType = "fixed"
)
func (SubscriptionUpdateParamsScheduleFixedType) IsKnown ¶ added in v1.10.0
func (r SubscriptionUpdateParamsScheduleFixedType) IsKnown() bool
type SubscriptionUpdateParamsScheduleType ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleType string
const ( SubscriptionUpdateParamsScheduleTypeFixed SubscriptionUpdateParamsScheduleType = "fixed" SubscriptionUpdateParamsScheduleTypeWeekly SubscriptionUpdateParamsScheduleType = "weekly" )
func (SubscriptionUpdateParamsScheduleType) IsKnown ¶ added in v1.10.0
func (r SubscriptionUpdateParamsScheduleType) IsKnown() bool
type SubscriptionUpdateParamsScheduleUnion ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleUnion interface {
// contains filtered or unexported methods
}
New schedule for the subscription.
Satisfied by SubscriptionUpdateParamsScheduleFixed, SubscriptionUpdateParamsScheduleWeekly, SubscriptionUpdateParamsSchedule.
type SubscriptionUpdateParamsScheduleWeekly ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleWeekly struct {
Interval param.Field[int64] `json:"interval,required"`
Type param.Field[SubscriptionUpdateParamsScheduleWeeklyType] `json:"type,required"`
}
func (SubscriptionUpdateParamsScheduleWeekly) MarshalJSON ¶ added in v1.10.0
func (r SubscriptionUpdateParamsScheduleWeekly) MarshalJSON() (data []byte, err error)
type SubscriptionUpdateParamsScheduleWeeklyType ¶ added in v1.10.0
type SubscriptionUpdateParamsScheduleWeeklyType string
const (
SubscriptionUpdateParamsScheduleWeeklyTypeWeekly SubscriptionUpdateParamsScheduleWeeklyType = "weekly"
)
func (SubscriptionUpdateParamsScheduleWeeklyType) IsKnown ¶ added in v1.10.0
func (r SubscriptionUpdateParamsScheduleWeeklyType) IsKnown() bool
type SubscriptionUpdateResponse ¶ added in v1.10.0
type SubscriptionUpdateResponse struct {
// Subscription to a Terminal shop product.
Data Subscription `json:"data,required"`
JSON subscriptionUpdateResponseJSON `json:"-"`
}
func (*SubscriptionUpdateResponse) UnmarshalJSON ¶ added in v1.10.0
func (r *SubscriptionUpdateResponse) UnmarshalJSON(data []byte) (err error)
type Token ¶
type Token struct {
// Unique object identifier. The format and length of IDs may change over time.
ID string `json:"id,required"`
// Personal access token (obfuscated).
Token string `json:"token,required"`
// The created time for the token.
Created string `json:"created,required"`
JSON tokenJSON `json:"-"`
}
A personal access token used to access the Terminal API. If you leak this, expect large sums of coffee to be ordered on your credit card.
func (*Token) UnmarshalJSON ¶
type TokenDeleteResponse ¶
type TokenDeleteResponse struct {
Data TokenDeleteResponseData `json:"data,required"`
JSON tokenDeleteResponseJSON `json:"-"`
}
func (*TokenDeleteResponse) UnmarshalJSON ¶
func (r *TokenDeleteResponse) UnmarshalJSON(data []byte) (err error)
type TokenDeleteResponseData ¶
type TokenDeleteResponseData string
const (
TokenDeleteResponseDataOk TokenDeleteResponseData = "ok"
)
func (TokenDeleteResponseData) IsKnown ¶
func (r TokenDeleteResponseData) IsKnown() bool
type TokenGetResponse ¶
type TokenGetResponse struct {
// A personal access token used to access the Terminal API. If you leak this,
// expect large sums of coffee to be ordered on your credit card.
Data Token `json:"data,required"`
JSON tokenGetResponseJSON `json:"-"`
}
func (*TokenGetResponse) UnmarshalJSON ¶
func (r *TokenGetResponse) UnmarshalJSON(data []byte) (err error)
type TokenListResponse ¶
type TokenListResponse struct {
// List of personal access tokens.
Data []Token `json:"data,required"`
JSON tokenListResponseJSON `json:"-"`
}
func (*TokenListResponse) UnmarshalJSON ¶
func (r *TokenListResponse) UnmarshalJSON(data []byte) (err error)
type TokenNewResponse ¶
type TokenNewResponse struct {
Data TokenNewResponseData `json:"data,required"`
JSON tokenNewResponseJSON `json:"-"`
}
func (*TokenNewResponse) UnmarshalJSON ¶
func (r *TokenNewResponse) UnmarshalJSON(data []byte) (err error)
type TokenNewResponseData ¶
type TokenNewResponseData struct {
// Personal token ID.
ID string `json:"id,required"`
// Personal access token. Include this in the Authorization header
// (`Bearer <token>`) when accessing the Terminal API.
Token string `json:"token,required"`
JSON tokenNewResponseDataJSON `json:"-"`
}
func (*TokenNewResponseData) UnmarshalJSON ¶
func (r *TokenNewResponseData) UnmarshalJSON(data []byte) (err error)
type TokenService ¶
type TokenService struct {
Options []option.RequestOption
}
TokenService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTokenService method instead.
func NewTokenService ¶
func NewTokenService(opts ...option.RequestOption) (r *TokenService)
NewTokenService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*TokenService) Delete ¶
func (r *TokenService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *TokenDeleteResponse, err error)
Delete the personal access token with the given ID.
func (*TokenService) Get ¶
func (r *TokenService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *TokenGetResponse, err error)
Get the personal access token with the given ID.
func (*TokenService) List ¶
func (r *TokenService) List(ctx context.Context, opts ...option.RequestOption) (res *TokenListResponse, err error)
List the current user's personal access tokens.
func (*TokenService) New ¶
func (r *TokenService) New(ctx context.Context, opts ...option.RequestOption) (res *TokenNewResponse, err error)
Create a personal access token.
type ViewInitResponse ¶
type ViewInitResponse struct {
// Initial app data.
Data ViewInitResponseData `json:"data,required"`
JSON viewInitResponseJSON `json:"-"`
}
func (*ViewInitResponse) UnmarshalJSON ¶
func (r *ViewInitResponse) UnmarshalJSON(data []byte) (err error)
type ViewInitResponseData ¶
type ViewInitResponseData struct {
Addresses []Address `json:"addresses,required"`
Apps []App `json:"apps,required"`
Cards []Card `json:"cards,required"`
// The current Terminal shop user's cart.
Cart Cart `json:"cart,required"`
Orders []Order `json:"orders,required"`
Products []Product `json:"products,required"`
// A Terminal shop user's profile. (We have users, btw.)
Profile Profile `json:"profile,required"`
// A Terminal shop user's region.
Region Region `json:"region,required"`
Subscriptions []Subscription `json:"subscriptions,required"`
Tokens []Token `json:"tokens,required"`
JSON viewInitResponseDataJSON `json:"-"`
}
Initial app data.
func (*ViewInitResponseData) UnmarshalJSON ¶
func (r *ViewInitResponseData) UnmarshalJSON(data []byte) (err error)
type ViewService ¶
type ViewService struct {
Options []option.RequestOption
}
ViewService contains methods and other services that help with interacting with the terminal API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewViewService method instead.
func NewViewService ¶
func NewViewService(opts ...option.RequestOption) (r *ViewService)
NewViewService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*ViewService) Init ¶
func (r *ViewService) Init(ctx context.Context, opts ...option.RequestOption) (res *ViewInitResponse, err error)
Get initial app data, including user, products, cart, addresses, cards, subscriptions, and orders.