diff --git a/attempts/client.go b/attempts/client.go
index b13cd62..603e155 100644
--- a/attempts/client.go
+++ b/attempts/client.go
@@ -15,30 +15,25 @@ import (
url "net/url"
)
-type Client interface {
- GetAttempts(ctx context.Context, request *hookdeckgosdk.GetAttemptsRequest) (*hookdeckgosdk.EventAttemptPaginatedResult, error)
- GetAttempt(ctx context.Context, id string) (*hookdeckgosdk.EventAttempt, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetAttempts(ctx context.Context, request *hookdeckgosdk.GetAttemptsRequest) (*hookdeckgosdk.EventAttemptPaginatedResult, error) {
+func (c *Client) GetAttempts(ctx context.Context, request *hookdeckgosdk.GetAttemptsRequest) (*hookdeckgosdk.EventAttemptPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -80,14 +75,14 @@ func (c *client) GetAttempts(ctx context.Context, request *hookdeckgosdk.GetAtte
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -111,7 +106,7 @@ func (c *client) GetAttempts(ctx context.Context, request *hookdeckgosdk.GetAtte
return response, nil
}
-func (c *client) GetAttempt(ctx context.Context, id string) (*hookdeckgosdk.EventAttempt, error) {
+func (c *Client) GetAttempt(ctx context.Context, id string) (*hookdeckgosdk.EventAttempt, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -130,7 +125,7 @@ func (c *client) GetAttempt(ctx context.Context, id string) (*hookdeckgosdk.Even
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/bookmarks.go b/bookmarks.go
index e9dc240..439e52b 100644
--- a/bookmarks.go
+++ b/bookmarks.go
@@ -3,6 +3,7 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
@@ -14,7 +15,7 @@ type CreateBookmarkRequest struct {
// Descriptive name of the bookmark `<= 255 characters`
Label string `json:"label"`
// A unique, human-friendly name for the bookmark `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
}
type GetBookmarksRequest struct {
@@ -33,16 +34,16 @@ type GetBookmarksRequest struct {
type TriggerBookmarkRequest struct {
// Bookmark target
- Target *TriggerBookmarkRequestTarget `json:"target,omitempty"`
+ Target *core.Optional[TriggerBookmarkRequestTarget] `json:"target,omitempty"`
}
type UpdateBookmarkRequest struct {
// ID of the event data to bookmark `<= 255 characters`
- EventDataId *string `json:"event_data_id,omitempty"`
+ EventDataId *core.Optional[string] `json:"event_data_id,omitempty"`
// ID of the associated connection `<= 255 characters`
- WebhookId *string `json:"webhook_id,omitempty"`
+ WebhookId *core.Optional[string] `json:"webhook_id,omitempty"`
// Descriptive name of the bookmark `<= 255 characters`
- Label *string `json:"label,omitempty"`
+ Label *core.Optional[string] `json:"label,omitempty"`
// A unique, human-friendly name for the bookmark `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
}
diff --git a/bookmarks/client.go b/bookmarks/client.go
index b9fa6b7..bed24ce 100644
--- a/bookmarks/client.go
+++ b/bookmarks/client.go
@@ -16,34 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetBookmarks(ctx context.Context, request *hookdeckgosdk.GetBookmarksRequest) (*hookdeckgosdk.BookmarkPaginatedResult, error)
- CreateBookmark(ctx context.Context, request *hookdeckgosdk.CreateBookmarkRequest) (*hookdeckgosdk.Bookmark, error)
- GetBookmark(ctx context.Context, id string) (*hookdeckgosdk.Bookmark, error)
- UpdateBookmark(ctx context.Context, id string, request *hookdeckgosdk.UpdateBookmarkRequest) (*hookdeckgosdk.Bookmark, error)
- DeleteBookmark(ctx context.Context, id string) (*hookdeckgosdk.DeletedBookmarkResponse, error)
- TriggerBookmark(ctx context.Context, id string, request *hookdeckgosdk.TriggerBookmarkRequest) (hookdeckgosdk.EventArray, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetBookmarks(ctx context.Context, request *hookdeckgosdk.GetBookmarksRequest) (*hookdeckgosdk.BookmarkPaginatedResult, error) {
+func (c *Client) GetBookmarks(ctx context.Context, request *hookdeckgosdk.GetBookmarksRequest) (*hookdeckgosdk.BookmarkPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -100,14 +91,14 @@ func (c *client) GetBookmarks(ctx context.Context, request *hookdeckgosdk.GetBoo
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -131,7 +122,7 @@ func (c *client) GetBookmarks(ctx context.Context, request *hookdeckgosdk.GetBoo
return response, nil
}
-func (c *client) CreateBookmark(ctx context.Context, request *hookdeckgosdk.CreateBookmarkRequest) (*hookdeckgosdk.Bookmark, error) {
+func (c *Client) CreateBookmark(ctx context.Context, request *hookdeckgosdk.CreateBookmarkRequest) (*hookdeckgosdk.Bookmark, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -150,14 +141,14 @@ func (c *client) CreateBookmark(ctx context.Context, request *hookdeckgosdk.Crea
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -181,7 +172,7 @@ func (c *client) CreateBookmark(ctx context.Context, request *hookdeckgosdk.Crea
return response, nil
}
-func (c *client) GetBookmark(ctx context.Context, id string) (*hookdeckgosdk.Bookmark, error) {
+func (c *Client) GetBookmark(ctx context.Context, id string) (*hookdeckgosdk.Bookmark, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -200,7 +191,7 @@ func (c *client) GetBookmark(ctx context.Context, id string) (*hookdeckgosdk.Boo
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -224,7 +215,7 @@ func (c *client) GetBookmark(ctx context.Context, id string) (*hookdeckgosdk.Boo
return response, nil
}
-func (c *client) UpdateBookmark(ctx context.Context, id string, request *hookdeckgosdk.UpdateBookmarkRequest) (*hookdeckgosdk.Bookmark, error) {
+func (c *Client) UpdateBookmark(ctx context.Context, id string, request *hookdeckgosdk.UpdateBookmarkRequest) (*hookdeckgosdk.Bookmark, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -243,21 +234,21 @@ func (c *client) UpdateBookmark(ctx context.Context, id string, request *hookdec
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -281,7 +272,7 @@ func (c *client) UpdateBookmark(ctx context.Context, id string, request *hookdec
return response, nil
}
-func (c *client) DeleteBookmark(ctx context.Context, id string) (*hookdeckgosdk.DeletedBookmarkResponse, error) {
+func (c *Client) DeleteBookmark(ctx context.Context, id string) (*hookdeckgosdk.DeletedBookmarkResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -300,7 +291,7 @@ func (c *client) DeleteBookmark(ctx context.Context, id string) (*hookdeckgosdk.
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -324,7 +315,7 @@ func (c *client) DeleteBookmark(ctx context.Context, id string) (*hookdeckgosdk.
return response, nil
}
-func (c *client) TriggerBookmark(ctx context.Context, id string, request *hookdeckgosdk.TriggerBookmarkRequest) (hookdeckgosdk.EventArray, error) {
+func (c *Client) TriggerBookmark(ctx context.Context, id string, request *hookdeckgosdk.TriggerBookmarkRequest) (hookdeckgosdk.EventArray, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -343,21 +334,21 @@ func (c *client) TriggerBookmark(ctx context.Context, id string, request *hookde
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/bulk_retry_events.go b/bulk_retry_events.go
index ab1f2bc..2bd51bd 100644
--- a/bulk_retry_events.go
+++ b/bulk_retry_events.go
@@ -3,12 +3,13 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
type CreateEventBulkRetryRequest struct {
// Filter properties for the events to be included in the bulk retry
- Query *CreateEventBulkRetryRequestQuery `json:"query,omitempty"`
+ Query *core.Optional[CreateEventBulkRetryRequestQuery] `json:"query,omitempty"`
}
type GetEventBulkRetriesRequest struct {
diff --git a/bulk_retry_ignored_events.go b/bulk_retry_ignored_events.go
index 7e9ff13..0457fca 100644
--- a/bulk_retry_ignored_events.go
+++ b/bulk_retry_ignored_events.go
@@ -3,12 +3,13 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
type CreateIgnoredEventBulkRetryRequest struct {
// Filter by the bulk retry ignored event query object
- Query *CreateIgnoredEventBulkRetryRequestQuery `json:"query,omitempty"`
+ Query *core.Optional[CreateIgnoredEventBulkRetryRequestQuery] `json:"query,omitempty"`
}
type GetIgnoredEventBulkRetriesRequest struct {
diff --git a/bulk_retry_requests.go b/bulk_retry_requests.go
index 882dfad..49be027 100644
--- a/bulk_retry_requests.go
+++ b/bulk_retry_requests.go
@@ -3,12 +3,13 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
type CreateRequestBulkRetryRequest struct {
// Filter properties for the events to be included in the bulk retry, use query parameters of [Requests](#requests)
- Query *CreateRequestBulkRetryRequestQuery `json:"query,omitempty"`
+ Query *core.Optional[CreateRequestBulkRetryRequestQuery] `json:"query,omitempty"`
}
type GetRequestBulkRetriesRequest struct {
diff --git a/bulkretryevents/client.go b/bulkretryevents/client.go
index fa75d4a..1ec9556 100644
--- a/bulkretryevents/client.go
+++ b/bulkretryevents/client.go
@@ -16,33 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error)
- CreateEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error)
- GenerateEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateEventBulkRetryPlanResponse, error)
- GetEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
- CancelEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
+func (c *Client) GetEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -99,14 +91,14 @@ func (c *client) GetEventBulkRetries(ctx context.Context, request *hookdeckgosdk
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -130,7 +122,7 @@ func (c *client) GetEventBulkRetries(ctx context.Context, request *hookdeckgosdk
return response, nil
}
-func (c *client) CreateEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CreateEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -149,14 +141,14 @@ func (c *client) CreateEventBulkRetry(ctx context.Context, request *hookdeckgosd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -180,7 +172,7 @@ func (c *client) CreateEventBulkRetry(ctx context.Context, request *hookdeckgosd
return response, nil
}
-func (c *client) GenerateEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateEventBulkRetryPlanResponse, error) {
+func (c *Client) GenerateEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateEventBulkRetryPlanResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -199,14 +191,14 @@ func (c *client) GenerateEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -230,7 +222,7 @@ func (c *client) GenerateEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk
return response, nil
}
-func (c *client) GetEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) GetEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -249,7 +241,7 @@ func (c *client) GetEventBulkRetry(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -273,7 +265,7 @@ func (c *client) GetEventBulkRetry(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) CancelEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CancelEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -292,7 +284,7 @@ func (c *client) CancelEventBulkRetry(ctx context.Context, id string) (*hookdeck
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/bulkretryignoredevents/client.go b/bulkretryignoredevents/client.go
index 972133c..ab888b6 100644
--- a/bulkretryignoredevents/client.go
+++ b/bulkretryignoredevents/client.go
@@ -16,33 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetIgnoredEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetIgnoredEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error)
- CreateIgnoredEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateIgnoredEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error)
- GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateIgnoredEventBulkRetryPlanResponse, error)
- GetIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
- CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetIgnoredEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetIgnoredEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
+func (c *Client) GetIgnoredEventBulkRetries(ctx context.Context, request *hookdeckgosdk.GetIgnoredEventBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -99,14 +91,14 @@ func (c *client) GetIgnoredEventBulkRetries(ctx context.Context, request *hookde
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -130,7 +122,7 @@ func (c *client) GetIgnoredEventBulkRetries(ctx context.Context, request *hookde
return response, nil
}
-func (c *client) CreateIgnoredEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateIgnoredEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CreateIgnoredEventBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateIgnoredEventBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -149,14 +141,14 @@ func (c *client) CreateIgnoredEventBulkRetry(ctx context.Context, request *hookd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -180,7 +172,7 @@ func (c *client) CreateIgnoredEventBulkRetry(ctx context.Context, request *hookd
return response, nil
}
-func (c *client) GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateIgnoredEventBulkRetryPlanResponse, error) {
+func (c *Client) GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateIgnoredEventBulkRetryPlanResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -199,14 +191,14 @@ func (c *client) GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*hookde
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -230,7 +222,7 @@ func (c *client) GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*hookde
return response, nil
}
-func (c *client) GetIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) GetIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -249,7 +241,7 @@ func (c *client) GetIgnoredEventBulkRetry(ctx context.Context, id string) (*hook
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -273,7 +265,7 @@ func (c *client) GetIgnoredEventBulkRetry(ctx context.Context, id string) (*hook
return response, nil
}
-func (c *client) CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -292,7 +284,7 @@ func (c *client) CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*h
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/bulkretryrequests/client.go b/bulkretryrequests/client.go
index 805125e..2171ad5 100644
--- a/bulkretryrequests/client.go
+++ b/bulkretryrequests/client.go
@@ -16,33 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetRequestBulkRetries(ctx context.Context, request *hookdeckgosdk.GetRequestBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error)
- CreateRequestBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateRequestBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error)
- GenerateRequestBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateRequestBulkRetryPlanResponse, error)
- GetRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
- CancelRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetRequestBulkRetries(ctx context.Context, request *hookdeckgosdk.GetRequestBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
+func (c *Client) GetRequestBulkRetries(ctx context.Context, request *hookdeckgosdk.GetRequestBulkRetriesRequest) (*hookdeckgosdk.BatchOperationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -99,14 +91,14 @@ func (c *client) GetRequestBulkRetries(ctx context.Context, request *hookdeckgos
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -130,7 +122,7 @@ func (c *client) GetRequestBulkRetries(ctx context.Context, request *hookdeckgos
return response, nil
}
-func (c *client) CreateRequestBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateRequestBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CreateRequestBulkRetry(ctx context.Context, request *hookdeckgosdk.CreateRequestBulkRetryRequest) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -149,14 +141,14 @@ func (c *client) CreateRequestBulkRetry(ctx context.Context, request *hookdeckgo
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -180,7 +172,7 @@ func (c *client) CreateRequestBulkRetry(ctx context.Context, request *hookdeckgo
return response, nil
}
-func (c *client) GenerateRequestBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateRequestBulkRetryPlanResponse, error) {
+func (c *Client) GenerateRequestBulkRetryPlan(ctx context.Context) (*hookdeckgosdk.GenerateRequestBulkRetryPlanResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -199,14 +191,14 @@ func (c *client) GenerateRequestBulkRetryPlan(ctx context.Context) (*hookdeckgos
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -230,7 +222,7 @@ func (c *client) GenerateRequestBulkRetryPlan(ctx context.Context) (*hookdeckgos
return response, nil
}
-func (c *client) GetRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) GetRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -249,7 +241,7 @@ func (c *client) GetRequestBulkRetry(ctx context.Context, id string) (*hookdeckg
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -273,7 +265,7 @@ func (c *client) GetRequestBulkRetry(ctx context.Context, id string) (*hookdeckg
return response, nil
}
-func (c *client) CancelRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
+func (c *Client) CancelRequestBulkRetry(ctx context.Context, id string) (*hookdeckgosdk.BatchOperation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -292,7 +284,7 @@ func (c *client) CancelRequestBulkRetry(ctx context.Context, id string) (*hookde
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/client/client.go b/client/client.go
index 065a7d2..b4d6481 100644
--- a/client/client.go
+++ b/client/client.go
@@ -22,128 +22,51 @@ import (
http "net/http"
)
-type Client interface {
- IssueTriggers() issuetriggers.Client
- Attempts() attempts.Client
- Bookmarks() bookmarks.Client
- Destinations() destinations.Client
- BulkRetryEvents() bulkretryevents.Client
- Events() events.Client
- BulkRetryIgnoredEvents() bulkretryignoredevents.Client
- Integrations() integrations.Client
- Issues() issues.Client
- Requests() requests.Client
- BulkRetryRequests() bulkretryrequests.Client
- Sources() sources.Client
- Notifications() notifications.Client
- Transformations() transformations.Client
- Connections() connections.Client
-}
-
-func NewClient(opts ...core.ClientOption) Client {
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+
+ IssueTriggers *issuetriggers.Client
+ Attempts *attempts.Client
+ Bookmarks *bookmarks.Client
+ Destinations *destinations.Client
+ BulkRetryEvents *bulkretryevents.Client
+ Events *events.Client
+ BulkRetryIgnoredEvents *bulkretryignoredevents.Client
+ Integrations *integrations.Client
+ Issues *issues.Client
+ Requests *requests.Client
+ BulkRetryRequests *bulkretryrequests.Client
+ Sources *sources.Client
+ Notifications *notifications.Client
+ Transformations *transformations.Client
+ Connections *connections.Client
+}
+
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
- baseURL: options.BaseURL,
- httpClient: options.HTTPClient,
- header: options.ToHeader(),
- issueTriggersClient: issuetriggers.NewClient(opts...),
- attemptsClient: attempts.NewClient(opts...),
- bookmarksClient: bookmarks.NewClient(opts...),
- destinationsClient: destinations.NewClient(opts...),
- bulkRetryEventsClient: bulkretryevents.NewClient(opts...),
- eventsClient: events.NewClient(opts...),
- bulkRetryIgnoredEventsClient: bulkretryignoredevents.NewClient(opts...),
- integrationsClient: integrations.NewClient(opts...),
- issuesClient: issues.NewClient(opts...),
- requestsClient: requests.NewClient(opts...),
- bulkRetryRequestsClient: bulkretryrequests.NewClient(opts...),
- sourcesClient: sources.NewClient(opts...),
- notificationsClient: notifications.NewClient(opts...),
- transformationsClient: transformations.NewClient(opts...),
- connectionsClient: connections.NewClient(opts...),
+ return &Client{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ IssueTriggers: issuetriggers.NewClient(opts...),
+ Attempts: attempts.NewClient(opts...),
+ Bookmarks: bookmarks.NewClient(opts...),
+ Destinations: destinations.NewClient(opts...),
+ BulkRetryEvents: bulkretryevents.NewClient(opts...),
+ Events: events.NewClient(opts...),
+ BulkRetryIgnoredEvents: bulkretryignoredevents.NewClient(opts...),
+ Integrations: integrations.NewClient(opts...),
+ Issues: issues.NewClient(opts...),
+ Requests: requests.NewClient(opts...),
+ BulkRetryRequests: bulkretryrequests.NewClient(opts...),
+ Sources: sources.NewClient(opts...),
+ Notifications: notifications.NewClient(opts...),
+ Transformations: transformations.NewClient(opts...),
+ Connections: connections.NewClient(opts...),
}
}
-
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
- issueTriggersClient issuetriggers.Client
- attemptsClient attempts.Client
- bookmarksClient bookmarks.Client
- destinationsClient destinations.Client
- bulkRetryEventsClient bulkretryevents.Client
- eventsClient events.Client
- bulkRetryIgnoredEventsClient bulkretryignoredevents.Client
- integrationsClient integrations.Client
- issuesClient issues.Client
- requestsClient requests.Client
- bulkRetryRequestsClient bulkretryrequests.Client
- sourcesClient sources.Client
- notificationsClient notifications.Client
- transformationsClient transformations.Client
- connectionsClient connections.Client
-}
-
-func (c *client) IssueTriggers() issuetriggers.Client {
- return c.issueTriggersClient
-}
-
-func (c *client) Attempts() attempts.Client {
- return c.attemptsClient
-}
-
-func (c *client) Bookmarks() bookmarks.Client {
- return c.bookmarksClient
-}
-
-func (c *client) Destinations() destinations.Client {
- return c.destinationsClient
-}
-
-func (c *client) BulkRetryEvents() bulkretryevents.Client {
- return c.bulkRetryEventsClient
-}
-
-func (c *client) Events() events.Client {
- return c.eventsClient
-}
-
-func (c *client) BulkRetryIgnoredEvents() bulkretryignoredevents.Client {
- return c.bulkRetryIgnoredEventsClient
-}
-
-func (c *client) Integrations() integrations.Client {
- return c.integrationsClient
-}
-
-func (c *client) Issues() issues.Client {
- return c.issuesClient
-}
-
-func (c *client) Requests() requests.Client {
- return c.requestsClient
-}
-
-func (c *client) BulkRetryRequests() bulkretryrequests.Client {
- return c.bulkRetryRequestsClient
-}
-
-func (c *client) Sources() sources.Client {
- return c.sourcesClient
-}
-
-func (c *client) Notifications() notifications.Client {
- return c.notificationsClient
-}
-
-func (c *client) Transformations() transformations.Client {
- return c.transformationsClient
-}
-
-func (c *client) Connections() connections.Client {
- return c.connectionsClient
-}
diff --git a/client/client_test.go b/client/client_test.go
index cf80533..4a3ba01 100644
--- a/client/client_test.go
+++ b/client/client_test.go
@@ -11,16 +11,16 @@ import (
func TestNewClient(t *testing.T) {
t.Run("default", func(t *testing.T) {
c := NewClient()
- assert.Empty(t, c.(*client).baseURL)
- assert.Equal(t, http.DefaultClient, c.(*client).httpClient)
+ assert.Empty(t, c.baseURL)
+ assert.Equal(t, http.DefaultClient, c.httpClient)
})
t.Run("base url", func(t *testing.T) {
c := NewClient(
ClientWithBaseURL("test.co"),
)
- assert.Equal(t, "test.co", c.(*client).baseURL)
- assert.Equal(t, http.DefaultClient, c.(*client).httpClient)
+ assert.Equal(t, "test.co", c.baseURL)
+ assert.Equal(t, http.DefaultClient, c.httpClient)
})
t.Run("http client", func(t *testing.T) {
@@ -30,8 +30,8 @@ func TestNewClient(t *testing.T) {
c := NewClient(
ClientWithHTTPClient(httpClient),
)
- assert.Empty(t, c.(*client).baseURL)
- assert.Equal(t, httpClient, c.(*client).httpClient)
+ assert.Empty(t, c.baseURL)
+ assert.Equal(t, httpClient, c.httpClient)
})
t.Run("http header", func(t *testing.T) {
@@ -40,8 +40,8 @@ func TestNewClient(t *testing.T) {
c := NewClient(
ClientWithHTTPHeader(header),
)
- assert.Empty(t, c.(*client).baseURL)
- assert.Equal(t, http.DefaultClient, c.(*client).httpClient)
- assert.Equal(t, "test", c.(*client).header.Get("X-API-Tenancy"))
+ assert.Empty(t, c.baseURL)
+ assert.Equal(t, http.DefaultClient, c.httpClient)
+ assert.Equal(t, "test", c.header.Get("X-API-Tenancy"))
})
}
diff --git a/connections.go b/connections.go
index fd1a26d..26e38db 100644
--- a/connections.go
+++ b/connections.go
@@ -3,23 +3,24 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
type CreateConnectionRequest struct {
// A unique name of the connection for the source
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// Description for the connection
- Description *string `json:"description,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
// ID of a destination to bind to the connection
- DestinationId *string `json:"destination_id,omitempty"`
+ DestinationId *core.Optional[string] `json:"destination_id,omitempty"`
// ID of a source to bind to the connection
- SourceId *string `json:"source_id,omitempty"`
+ SourceId *core.Optional[string] `json:"source_id,omitempty"`
// Destination input object
- Destination *CreateConnectionRequestDestination `json:"destination,omitempty"`
+ Destination *core.Optional[CreateConnectionRequestDestination] `json:"destination,omitempty"`
// Source input object
- Source *CreateConnectionRequestSource `json:"source,omitempty"`
- Rules []*Rule `json:"rules,omitempty"`
+ Source *core.Optional[CreateConnectionRequestSource] `json:"source,omitempty"`
+ Rules []*Rule `json:"rules,omitempty"`
}
type GetConnectionsRequest struct {
@@ -40,24 +41,24 @@ type GetConnectionsRequest struct {
type UpdateConnectionRequest struct {
// `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// Description for the connection
- Description *string `json:"description,omitempty"`
- Rules []*Rule `json:"rules,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
+ Rules []*Rule `json:"rules,omitempty"`
}
type UpsertConnectionRequest struct {
// A unique name of the connection for the source
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// Description for the connection
- Description *string `json:"description,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
// ID of a destination to bind to the connection
- DestinationId *string `json:"destination_id,omitempty"`
+ DestinationId *core.Optional[string] `json:"destination_id,omitempty"`
// ID of a source to bind to the connection
- SourceId *string `json:"source_id,omitempty"`
+ SourceId *core.Optional[string] `json:"source_id,omitempty"`
// Destination input object
- Destination *UpsertConnectionRequestDestination `json:"destination,omitempty"`
+ Destination *core.Optional[UpsertConnectionRequestDestination] `json:"destination,omitempty"`
// Source input object
- Source *UpsertConnectionRequestSource `json:"source,omitempty"`
- Rules []*Rule `json:"rules,omitempty"`
+ Source *core.Optional[UpsertConnectionRequestSource] `json:"source,omitempty"`
+ Rules []*Rule `json:"rules,omitempty"`
}
diff --git a/connections/client.go b/connections/client.go
index 7694113..be0cfed 100644
--- a/connections/client.go
+++ b/connections/client.go
@@ -16,38 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetConnections(ctx context.Context, request *hookdeckgosdk.GetConnectionsRequest) (*hookdeckgosdk.ConnectionPaginatedResult, error)
- CreateConnection(ctx context.Context, request *hookdeckgosdk.CreateConnectionRequest) (*hookdeckgosdk.Connection, error)
- UpsertConnection(ctx context.Context, request *hookdeckgosdk.UpsertConnectionRequest) (*hookdeckgosdk.Connection, error)
- GetConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error)
- UpdateConnection(ctx context.Context, id string, request *hookdeckgosdk.UpdateConnectionRequest) (*hookdeckgosdk.Connection, error)
- DeleteConnection(ctx context.Context, id string) (*hookdeckgosdk.DeleteConnectionResponse, error)
- ArchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error)
- UnarchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error)
- PauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error)
- UnpauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetConnections(ctx context.Context, request *hookdeckgosdk.GetConnectionsRequest) (*hookdeckgosdk.ConnectionPaginatedResult, error) {
+func (c *Client) GetConnections(ctx context.Context, request *hookdeckgosdk.GetConnectionsRequest) (*hookdeckgosdk.ConnectionPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -110,14 +97,14 @@ func (c *client) GetConnections(ctx context.Context, request *hookdeckgosdk.GetC
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -141,7 +128,7 @@ func (c *client) GetConnections(ctx context.Context, request *hookdeckgosdk.GetC
return response, nil
}
-func (c *client) CreateConnection(ctx context.Context, request *hookdeckgosdk.CreateConnectionRequest) (*hookdeckgosdk.Connection, error) {
+func (c *Client) CreateConnection(ctx context.Context, request *hookdeckgosdk.CreateConnectionRequest) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -160,14 +147,14 @@ func (c *client) CreateConnection(ctx context.Context, request *hookdeckgosdk.Cr
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -191,7 +178,7 @@ func (c *client) CreateConnection(ctx context.Context, request *hookdeckgosdk.Cr
return response, nil
}
-func (c *client) UpsertConnection(ctx context.Context, request *hookdeckgosdk.UpsertConnectionRequest) (*hookdeckgosdk.Connection, error) {
+func (c *Client) UpsertConnection(ctx context.Context, request *hookdeckgosdk.UpsertConnectionRequest) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -210,14 +197,14 @@ func (c *client) UpsertConnection(ctx context.Context, request *hookdeckgosdk.Up
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -241,7 +228,7 @@ func (c *client) UpsertConnection(ctx context.Context, request *hookdeckgosdk.Up
return response, nil
}
-func (c *client) GetConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
+func (c *Client) GetConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -260,7 +247,7 @@ func (c *client) GetConnection(ctx context.Context, id string) (*hookdeckgosdk.C
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -284,7 +271,7 @@ func (c *client) GetConnection(ctx context.Context, id string) (*hookdeckgosdk.C
return response, nil
}
-func (c *client) UpdateConnection(ctx context.Context, id string, request *hookdeckgosdk.UpdateConnectionRequest) (*hookdeckgosdk.Connection, error) {
+func (c *Client) UpdateConnection(ctx context.Context, id string, request *hookdeckgosdk.UpdateConnectionRequest) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -303,21 +290,21 @@ func (c *client) UpdateConnection(ctx context.Context, id string, request *hookd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -341,7 +328,7 @@ func (c *client) UpdateConnection(ctx context.Context, id string, request *hookd
return response, nil
}
-func (c *client) DeleteConnection(ctx context.Context, id string) (*hookdeckgosdk.DeleteConnectionResponse, error) {
+func (c *Client) DeleteConnection(ctx context.Context, id string) (*hookdeckgosdk.DeleteConnectionResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -360,7 +347,7 @@ func (c *client) DeleteConnection(ctx context.Context, id string) (*hookdeckgosd
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -384,7 +371,7 @@ func (c *client) DeleteConnection(ctx context.Context, id string) (*hookdeckgosd
return response, nil
}
-func (c *client) ArchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
+func (c *Client) ArchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -403,7 +390,7 @@ func (c *client) ArchiveConnection(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -427,7 +414,7 @@ func (c *client) ArchiveConnection(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) UnarchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
+func (c *Client) UnarchiveConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -446,7 +433,7 @@ func (c *client) UnarchiveConnection(ctx context.Context, id string) (*hookdeckg
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -470,7 +457,7 @@ func (c *client) UnarchiveConnection(ctx context.Context, id string) (*hookdeckg
return response, nil
}
-func (c *client) PauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
+func (c *Client) PauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -489,7 +476,7 @@ func (c *client) PauseConnection(ctx context.Context, id string) (*hookdeckgosdk
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -513,7 +500,7 @@ func (c *client) PauseConnection(ctx context.Context, id string) (*hookdeckgosdk
return response, nil
}
-func (c *client) UnpauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
+func (c *Client) UnpauseConnection(ctx context.Context, id string) (*hookdeckgosdk.Connection, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -532,7 +519,7 @@ func (c *client) UnpauseConnection(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/core/client_option.go b/core/client_option.go
index f022715..d8fa079 100644
--- a/core/client_option.go
+++ b/core/client_option.go
@@ -43,6 +43,6 @@ func (c *ClientOptions) cloneHeader() http.Header {
headers := c.HTTPHeader.Clone()
headers.Set("X-Fern-Language", "Go")
headers.Set("X-Fern-SDK-Name", "github.com/hookdeck/hookdeck-go-sdk")
- headers.Set("X-Fern-SDK-Version", "0.0.27")
+ headers.Set("X-Fern-SDK-Version", "0.0.28")
return headers
}
diff --git a/core/optional.go b/core/optional.go
new file mode 100644
index 0000000..85ab541
--- /dev/null
+++ b/core/optional.go
@@ -0,0 +1,36 @@
+package core
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+// Optional is a wrapper used to distinguish zero values from
+// null or omitted fields.
+//
+// To instantiate an Optional, use the `Optional()` and `Null()`
+// helpers exported from the root package.
+type Optional[T any] struct {
+ Value T
+ Null bool
+}
+
+func (o *Optional[T]) String() string {
+ if o == nil {
+ return ""
+ }
+ if s, ok := any(o.Value).(fmt.Stringer); ok {
+ return s.String()
+ }
+ return fmt.Sprintf("%#v", o.Value)
+}
+
+func (o *Optional[T]) MarshalJSON() ([]byte, error) {
+ if o == nil {
+ return nil, nil
+ }
+ if o.Null {
+ return []byte("null"), nil
+ }
+ return json.Marshal(&o.Value)
+}
diff --git a/core/optional_test.go b/core/optional_test.go
new file mode 100644
index 0000000..453e01a
--- /dev/null
+++ b/core/optional_test.go
@@ -0,0 +1,131 @@
+package core
+
+import (
+ "encoding/json"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+type OptionalRequest struct {
+ Id string `json:"id"`
+ Filter *Optional[string] `json:"filter,omitempty"`
+ Reference *Optional[Reference] `json:"reference,omitempty"`
+}
+
+type Reference struct {
+ Id string `json:"id"`
+ Tags []string `json:"tags"`
+}
+
+func (r *Reference) MarshalJSON() ([]byte, error) {
+ type embed Reference
+ var marshaler = struct {
+ embed
+ Extra string `json:"extra"`
+ }{
+ embed: embed(*r),
+ Extra: "metadata",
+ }
+ return json.Marshal(marshaler)
+}
+
+func TestOptional(t *testing.T) {
+ tests := []struct {
+ desc string
+ giveOptional *Optional[any]
+ wantBytes []byte
+ }{
+ {
+ desc: "primitive",
+ giveOptional: &Optional[any]{
+ Value: "foo",
+ },
+ wantBytes: []byte(`"foo"`),
+ },
+ {
+ desc: "null primitive",
+ giveOptional: &Optional[any]{
+ Null: true,
+ },
+ wantBytes: []byte("null"),
+ },
+ {
+ desc: "object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ Filter: &Optional[string]{
+ Value: "foo",
+ },
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz","filter":"foo"}`),
+ },
+ {
+ desc: "null object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ Filter: &Optional[string]{
+ Null: true,
+ },
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz","filter":null}`),
+ },
+ {
+ desc: "empty object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz"}`),
+ },
+ {
+ desc: "nested object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ Reference: &Optional[Reference]{
+ Value: Reference{
+ Id: "abc",
+ Tags: []string{"one", "two", "three"},
+ },
+ },
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz","reference":{"id":"abc","tags":["one","two","three"],"extra":"metadata"}}`),
+ },
+ {
+ desc: "null nested object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ Reference: &Optional[Reference]{
+ Null: true,
+ },
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz","reference":null}`),
+ },
+ {
+ desc: "empty nested object",
+ giveOptional: &Optional[any]{
+ Value: &OptionalRequest{
+ Id: "xyz",
+ },
+ },
+ wantBytes: []byte(`{"id":"xyz"}`),
+ },
+ }
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ bytes, err := json.Marshal(test.giveOptional)
+ require.NoError(t, err)
+ assert.Equal(t, test.wantBytes, bytes)
+ })
+ }
+}
diff --git a/destinations.go b/destinations.go
index 38567b4..3049e3a 100644
--- a/destinations.go
+++ b/destinations.go
@@ -3,6 +3,7 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
@@ -10,18 +11,18 @@ type CreateDestinationRequest struct {
// Name for the destination `<= 155 characters`
Name string `json:"name"`
// Description for the destination
- Description *string `json:"description,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
// Endpoint of the destination
- Url *string `json:"url,omitempty"`
+ Url *core.Optional[string] `json:"url,omitempty"`
// Path for the CLI destination
- CliPath *string `json:"cli_path,omitempty"`
+ CliPath *core.Optional[string] `json:"cli_path,omitempty"`
// Period to rate limit attempts
- RateLimitPeriod *CreateDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ RateLimitPeriod *core.Optional[CreateDestinationRequestRateLimitPeriod] `json:"rate_limit_period,omitempty"`
// Limit event attempts to receive per period
- RateLimit *int `json:"rate_limit,omitempty"`
- HttpMethod *DestinationHttpMethod `json:"http_method,omitempty"`
- AuthMethod *DestinationAuthMethodConfig `json:"auth_method,omitempty"`
- PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+ RateLimit *core.Optional[int] `json:"rate_limit,omitempty"`
+ HttpMethod *core.Optional[DestinationHttpMethod] `json:"http_method,omitempty"`
+ AuthMethod *core.Optional[DestinationAuthMethodConfig] `json:"auth_method,omitempty"`
+ PathForwardingDisabled *core.Optional[bool] `json:"path_forwarding_disabled,omitempty"`
}
type GetDestinationsRequest struct {
@@ -40,36 +41,36 @@ type GetDestinationsRequest struct {
type UpdateDestinationRequest struct {
// Name for the destination `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// Description for the destination
- Description *string `json:"description,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
// Endpoint of the destination
- Url *string `json:"url,omitempty"`
+ Url *core.Optional[string] `json:"url,omitempty"`
// Path for the CLI destination
- CliPath *string `json:"cli_path,omitempty"`
+ CliPath *core.Optional[string] `json:"cli_path,omitempty"`
// Period to rate limit attempts
- RateLimitPeriod *UpdateDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ RateLimitPeriod *core.Optional[UpdateDestinationRequestRateLimitPeriod] `json:"rate_limit_period,omitempty"`
// Limit event attempts to receive per period
- RateLimit *int `json:"rate_limit,omitempty"`
- HttpMethod *DestinationHttpMethod `json:"http_method,omitempty"`
- AuthMethod *DestinationAuthMethodConfig `json:"auth_method,omitempty"`
- PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+ RateLimit *core.Optional[int] `json:"rate_limit,omitempty"`
+ HttpMethod *core.Optional[DestinationHttpMethod] `json:"http_method,omitempty"`
+ AuthMethod *core.Optional[DestinationAuthMethodConfig] `json:"auth_method,omitempty"`
+ PathForwardingDisabled *core.Optional[bool] `json:"path_forwarding_disabled,omitempty"`
}
type UpsertDestinationRequest struct {
// Name for the destination `<= 155 characters`
Name string `json:"name"`
// Description for the destination
- Description *string `json:"description,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
// Endpoint of the destination
- Url *string `json:"url,omitempty"`
+ Url *core.Optional[string] `json:"url,omitempty"`
// Path for the CLI destination
- CliPath *string `json:"cli_path,omitempty"`
+ CliPath *core.Optional[string] `json:"cli_path,omitempty"`
// Period to rate limit attempts
- RateLimitPeriod *UpsertDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ RateLimitPeriod *core.Optional[UpsertDestinationRequestRateLimitPeriod] `json:"rate_limit_period,omitempty"`
// Limit event attempts to receive per period
- RateLimit *int `json:"rate_limit,omitempty"`
- HttpMethod *DestinationHttpMethod `json:"http_method,omitempty"`
- AuthMethod *DestinationAuthMethodConfig `json:"auth_method,omitempty"`
- PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+ RateLimit *core.Optional[int] `json:"rate_limit,omitempty"`
+ HttpMethod *core.Optional[DestinationHttpMethod] `json:"http_method,omitempty"`
+ AuthMethod *core.Optional[DestinationAuthMethodConfig] `json:"auth_method,omitempty"`
+ PathForwardingDisabled *core.Optional[bool] `json:"path_forwarding_disabled,omitempty"`
}
diff --git a/destinations/client.go b/destinations/client.go
index 45dc00a..1fc6510 100644
--- a/destinations/client.go
+++ b/destinations/client.go
@@ -16,36 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetDestinations(ctx context.Context, request *hookdeckgosdk.GetDestinationsRequest) (*hookdeckgosdk.DestinationPaginatedResult, error)
- CreateDestination(ctx context.Context, request *hookdeckgosdk.CreateDestinationRequest) (*hookdeckgosdk.Destination, error)
- UpsertDestination(ctx context.Context, request *hookdeckgosdk.UpsertDestinationRequest) (*hookdeckgosdk.Destination, error)
- GetDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error)
- UpdateDestination(ctx context.Context, id string, request *hookdeckgosdk.UpdateDestinationRequest) (*hookdeckgosdk.Destination, error)
- DeleteDestination(ctx context.Context, id string) (*hookdeckgosdk.DeleteDestinationResponse, error)
- ArchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error)
- UnarchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetDestinations(ctx context.Context, request *hookdeckgosdk.GetDestinationsRequest) (*hookdeckgosdk.DestinationPaginatedResult, error) {
+func (c *Client) GetDestinations(ctx context.Context, request *hookdeckgosdk.GetDestinationsRequest) (*hookdeckgosdk.DestinationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -102,14 +91,14 @@ func (c *client) GetDestinations(ctx context.Context, request *hookdeckgosdk.Get
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -133,7 +122,7 @@ func (c *client) GetDestinations(ctx context.Context, request *hookdeckgosdk.Get
return response, nil
}
-func (c *client) CreateDestination(ctx context.Context, request *hookdeckgosdk.CreateDestinationRequest) (*hookdeckgosdk.Destination, error) {
+func (c *Client) CreateDestination(ctx context.Context, request *hookdeckgosdk.CreateDestinationRequest) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -152,14 +141,14 @@ func (c *client) CreateDestination(ctx context.Context, request *hookdeckgosdk.C
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -183,7 +172,7 @@ func (c *client) CreateDestination(ctx context.Context, request *hookdeckgosdk.C
return response, nil
}
-func (c *client) UpsertDestination(ctx context.Context, request *hookdeckgosdk.UpsertDestinationRequest) (*hookdeckgosdk.Destination, error) {
+func (c *Client) UpsertDestination(ctx context.Context, request *hookdeckgosdk.UpsertDestinationRequest) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -202,14 +191,14 @@ func (c *client) UpsertDestination(ctx context.Context, request *hookdeckgosdk.U
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -233,7 +222,7 @@ func (c *client) UpsertDestination(ctx context.Context, request *hookdeckgosdk.U
return response, nil
}
-func (c *client) GetDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
+func (c *Client) GetDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -252,7 +241,7 @@ func (c *client) GetDestination(ctx context.Context, id string) (*hookdeckgosdk.
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -276,7 +265,7 @@ func (c *client) GetDestination(ctx context.Context, id string) (*hookdeckgosdk.
return response, nil
}
-func (c *client) UpdateDestination(ctx context.Context, id string, request *hookdeckgosdk.UpdateDestinationRequest) (*hookdeckgosdk.Destination, error) {
+func (c *Client) UpdateDestination(ctx context.Context, id string, request *hookdeckgosdk.UpdateDestinationRequest) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -295,21 +284,21 @@ func (c *client) UpdateDestination(ctx context.Context, id string, request *hook
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -333,7 +322,7 @@ func (c *client) UpdateDestination(ctx context.Context, id string, request *hook
return response, nil
}
-func (c *client) DeleteDestination(ctx context.Context, id string) (*hookdeckgosdk.DeleteDestinationResponse, error) {
+func (c *Client) DeleteDestination(ctx context.Context, id string) (*hookdeckgosdk.DeleteDestinationResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -352,7 +341,7 @@ func (c *client) DeleteDestination(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -376,7 +365,7 @@ func (c *client) DeleteDestination(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) ArchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
+func (c *Client) ArchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -395,7 +384,7 @@ func (c *client) ArchiveDestination(ctx context.Context, id string) (*hookdeckgo
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -419,7 +408,7 @@ func (c *client) ArchiveDestination(ctx context.Context, id string) (*hookdeckgo
return response, nil
}
-func (c *client) UnarchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
+func (c *Client) UnarchiveDestination(ctx context.Context, id string) (*hookdeckgosdk.Destination, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -438,7 +427,7 @@ func (c *client) UnarchiveDestination(ctx context.Context, id string) (*hookdeck
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/doc.go b/doc.go
index ee6eb9f..43fc39f 100644
--- a/doc.go
+++ b/doc.go
@@ -1,4 +1,4 @@
// This file was auto-generated by Fern from our API Definition.
-// A request represent a webhook received by Hookdeck.
+// An event is any request that Hookdeck receives from a source.
package api
diff --git a/errors.go b/errors.go
index a288526..28435cb 100644
--- a/errors.go
+++ b/errors.go
@@ -26,6 +26,10 @@ func (b *BadRequestError) MarshalJSON() ([]byte, error) {
return json.Marshal(b.Body)
}
+func (b *BadRequestError) Unwrap() error {
+ return b.APIError
+}
+
type NotFoundError struct {
*core.APIError
Body *ApiErrorResponse
@@ -45,6 +49,10 @@ func (n *NotFoundError) MarshalJSON() ([]byte, error) {
return json.Marshal(n.Body)
}
+func (n *NotFoundError) Unwrap() error {
+ return n.APIError
+}
+
type UnprocessableEntityError struct {
*core.APIError
Body *ApiErrorResponse
@@ -63,3 +71,7 @@ func (u *UnprocessableEntityError) UnmarshalJSON(data []byte) error {
func (u *UnprocessableEntityError) MarshalJSON() ([]byte, error) {
return json.Marshal(u.Body)
}
+
+func (u *UnprocessableEntityError) Unwrap() error {
+ return u.APIError
+}
diff --git a/events/client.go b/events/client.go
index 0a169da..2852af9 100644
--- a/events/client.go
+++ b/events/client.go
@@ -16,33 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetEvents(ctx context.Context, request *hookdeckgosdk.GetEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error)
- GetEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error)
- GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error)
- RetryEvent(ctx context.Context, id string) (*hookdeckgosdk.RetriedEvent, error)
- MuteEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetEvents(ctx context.Context, request *hookdeckgosdk.GetEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error) {
+func (c *Client) GetEvents(ctx context.Context, request *hookdeckgosdk.GetEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -147,14 +139,14 @@ func (c *client) GetEvents(ctx context.Context, request *hookdeckgosdk.GetEvents
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -178,7 +170,7 @@ func (c *client) GetEvents(ctx context.Context, request *hookdeckgosdk.GetEvents
return response, nil
}
-func (c *client) GetEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error) {
+func (c *Client) GetEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -197,7 +189,7 @@ func (c *client) GetEvent(ctx context.Context, id string) (*hookdeckgosdk.Event,
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -221,7 +213,7 @@ func (c *client) GetEvent(ctx context.Context, id string) (*hookdeckgosdk.Event,
return response, nil
}
-func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error) {
+func (c *Client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -240,7 +232,7 @@ func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -264,7 +256,7 @@ func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) RetryEvent(ctx context.Context, id string) (*hookdeckgosdk.RetriedEvent, error) {
+func (c *Client) RetryEvent(ctx context.Context, id string) (*hookdeckgosdk.RetriedEvent, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -283,7 +275,7 @@ func (c *client) RetryEvent(ctx context.Context, id string) (*hookdeckgosdk.Retr
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -307,7 +299,7 @@ func (c *client) RetryEvent(ctx context.Context, id string) (*hookdeckgosdk.Retr
return response, nil
}
-func (c *client) MuteEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error) {
+func (c *Client) MuteEvent(ctx context.Context, id string) (*hookdeckgosdk.Event, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -326,7 +318,7 @@ func (c *client) MuteEvent(ctx context.Context, id string) (*hookdeckgosdk.Event
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/integrations.go b/integrations.go
index 6b8591d..e123dd7 100644
--- a/integrations.go
+++ b/integrations.go
@@ -2,12 +2,16 @@
package api
+import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
+)
+
type CreateIntegrationRequest struct {
// Label of the integration
- Label *string `json:"label,omitempty"`
+ Label *core.Optional[string] `json:"label,omitempty"`
// Decrypted Key/Value object of the associated configuration for that provider
- Configs *CreateIntegrationRequestConfigs `json:"configs,omitempty"`
- Provider *IntegrationProvider `json:"provider,omitempty"`
+ Configs *core.Optional[CreateIntegrationRequestConfigs] `json:"configs,omitempty"`
+ Provider *core.Optional[IntegrationProvider] `json:"provider,omitempty"`
// List of features to enable (see features list above)
Features []IntegrationFeature `json:"features,omitempty"`
}
@@ -19,10 +23,10 @@ type GetIntegrationsRequest struct {
type UpdateIntegrationRequest struct {
// Label of the integration
- Label *string `json:"label,omitempty"`
+ Label *core.Optional[string] `json:"label,omitempty"`
// Decrypted Key/Value object of the associated configuration for that provider
- Configs *UpdateIntegrationRequestConfigs `json:"configs,omitempty"`
- Provider *IntegrationProvider `json:"provider,omitempty"`
+ Configs *core.Optional[UpdateIntegrationRequestConfigs] `json:"configs,omitempty"`
+ Provider *core.Optional[IntegrationProvider] `json:"provider,omitempty"`
// List of features to enable (see features list above)
Features []IntegrationFeature `json:"features,omitempty"`
}
diff --git a/integrations/client.go b/integrations/client.go
index 87e4329..3e7b855 100644
--- a/integrations/client.go
+++ b/integrations/client.go
@@ -15,35 +15,25 @@ import (
url "net/url"
)
-type Client interface {
- GetIntegrations(ctx context.Context, request *hookdeckgosdk.GetIntegrationsRequest) (*hookdeckgosdk.IntegrationPaginatedResult, error)
- CreateIntegration(ctx context.Context, request *hookdeckgosdk.CreateIntegrationRequest) (*hookdeckgosdk.Integration, error)
- GetIntegration(ctx context.Context, id string) (*hookdeckgosdk.Integration, error)
- UpdateIntegration(ctx context.Context, id string, request *hookdeckgosdk.UpdateIntegrationRequest) (*hookdeckgosdk.Integration, error)
- DeleteIntegration(ctx context.Context, id string) (*hookdeckgosdk.DeletedIntegration, error)
- AttachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.AttachedIntegrationToSource, error)
- DetachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.DetachedIntegrationFromSource, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetIntegrations(ctx context.Context, request *hookdeckgosdk.GetIntegrationsRequest) (*hookdeckgosdk.IntegrationPaginatedResult, error) {
+func (c *Client) GetIntegrations(ctx context.Context, request *hookdeckgosdk.GetIntegrationsRequest) (*hookdeckgosdk.IntegrationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -73,14 +63,14 @@ func (c *client) GetIntegrations(ctx context.Context, request *hookdeckgosdk.Get
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -104,7 +94,7 @@ func (c *client) GetIntegrations(ctx context.Context, request *hookdeckgosdk.Get
return response, nil
}
-func (c *client) CreateIntegration(ctx context.Context, request *hookdeckgosdk.CreateIntegrationRequest) (*hookdeckgosdk.Integration, error) {
+func (c *Client) CreateIntegration(ctx context.Context, request *hookdeckgosdk.CreateIntegrationRequest) (*hookdeckgosdk.Integration, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -123,14 +113,14 @@ func (c *client) CreateIntegration(ctx context.Context, request *hookdeckgosdk.C
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -154,7 +144,7 @@ func (c *client) CreateIntegration(ctx context.Context, request *hookdeckgosdk.C
return response, nil
}
-func (c *client) GetIntegration(ctx context.Context, id string) (*hookdeckgosdk.Integration, error) {
+func (c *Client) GetIntegration(ctx context.Context, id string) (*hookdeckgosdk.Integration, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -173,7 +163,7 @@ func (c *client) GetIntegration(ctx context.Context, id string) (*hookdeckgosdk.
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -197,7 +187,7 @@ func (c *client) GetIntegration(ctx context.Context, id string) (*hookdeckgosdk.
return response, nil
}
-func (c *client) UpdateIntegration(ctx context.Context, id string, request *hookdeckgosdk.UpdateIntegrationRequest) (*hookdeckgosdk.Integration, error) {
+func (c *Client) UpdateIntegration(ctx context.Context, id string, request *hookdeckgosdk.UpdateIntegrationRequest) (*hookdeckgosdk.Integration, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -216,21 +206,21 @@ func (c *client) UpdateIntegration(ctx context.Context, id string, request *hook
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -254,7 +244,7 @@ func (c *client) UpdateIntegration(ctx context.Context, id string, request *hook
return response, nil
}
-func (c *client) DeleteIntegration(ctx context.Context, id string) (*hookdeckgosdk.DeletedIntegration, error) {
+func (c *Client) DeleteIntegration(ctx context.Context, id string) (*hookdeckgosdk.DeletedIntegration, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -273,7 +263,7 @@ func (c *client) DeleteIntegration(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -297,7 +287,7 @@ func (c *client) DeleteIntegration(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) AttachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.AttachedIntegrationToSource, error) {
+func (c *Client) AttachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.AttachedIntegrationToSource, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -316,14 +306,14 @@ func (c *client) AttachIntegrationToSource(ctx context.Context, id string, sourc
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -347,7 +337,7 @@ func (c *client) AttachIntegrationToSource(ctx context.Context, id string, sourc
return response, nil
}
-func (c *client) DetachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.DetachedIntegrationFromSource, error) {
+func (c *Client) DetachIntegrationToSource(ctx context.Context, id string, sourceId string) (*hookdeckgosdk.DetachedIntegrationFromSource, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -366,14 +356,14 @@ func (c *client) DetachIntegrationToSource(ctx context.Context, id string, sourc
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/issue_triggers.go b/issue_triggers.go
index 307eded..233035b 100644
--- a/issue_triggers.go
+++ b/issue_triggers.go
@@ -3,16 +3,17 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
type CreateIssueTriggerRequest struct {
Type IssueType `json:"type,omitempty"`
// Configuration object for the specific issue type selected
- Configs *CreateIssueTriggerRequestConfigs `json:"configs,omitempty"`
- Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ Configs *core.Optional[CreateIssueTriggerRequestConfigs] `json:"configs,omitempty"`
+ Channels *core.Optional[IssueTriggerChannels] `json:"channels,omitempty"`
// Optional unique name to use as reference when using the API
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
}
type GetIssueTriggersRequest struct {
@@ -28,19 +29,19 @@ type GetIssueTriggersRequest struct {
type UpdateIssueTriggerRequest struct {
// Configuration object for the specific issue type selected
- Configs *UpdateIssueTriggerRequestConfigs `json:"configs,omitempty"`
- Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ Configs *core.Optional[UpdateIssueTriggerRequestConfigs] `json:"configs,omitempty"`
+ Channels *core.Optional[IssueTriggerChannels] `json:"channels,omitempty"`
// Date when the issue trigger was disabled
- DisabledAt *time.Time `json:"disabled_at,omitempty"`
+ DisabledAt *core.Optional[time.Time] `json:"disabled_at,omitempty"`
// Optional unique name to use as reference when using the API
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
}
type UpsertIssueTriggerRequest struct {
Type IssueType `json:"type,omitempty"`
// Configuration object for the specific issue type selected
- Configs *UpsertIssueTriggerRequestConfigs `json:"configs,omitempty"`
- Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ Configs *core.Optional[UpsertIssueTriggerRequestConfigs] `json:"configs,omitempty"`
+ Channels *core.Optional[IssueTriggerChannels] `json:"channels,omitempty"`
// Required unique name to use as reference when using the API `<= 255 characters`
Name string `json:"name"`
}
diff --git a/issues/client.go b/issues/client.go
index 26b56f1..c38f3fb 100644
--- a/issues/client.go
+++ b/issues/client.go
@@ -16,33 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetIssues(ctx context.Context, request *hookdeckgosdk.GetIssuesRequest) (*hookdeckgosdk.IssueWithDataPaginatedResult, error)
- GetIssueCount(ctx context.Context, request *hookdeckgosdk.GetIssueCountRequest) (*hookdeckgosdk.IssueCount, error)
- GetIssue(ctx context.Context, id string) (*hookdeckgosdk.IssueWithData, error)
- UpdateIssue(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueRequest) (*hookdeckgosdk.Issue, error)
- DismissIssue(ctx context.Context, id string) (*hookdeckgosdk.Issue, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetIssues(ctx context.Context, request *hookdeckgosdk.GetIssuesRequest) (*hookdeckgosdk.IssueWithDataPaginatedResult, error) {
+func (c *Client) GetIssues(ctx context.Context, request *hookdeckgosdk.GetIssuesRequest) (*hookdeckgosdk.IssueWithDataPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -108,14 +100,14 @@ func (c *client) GetIssues(ctx context.Context, request *hookdeckgosdk.GetIssues
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -139,7 +131,7 @@ func (c *client) GetIssues(ctx context.Context, request *hookdeckgosdk.GetIssues
return response, nil
}
-func (c *client) GetIssueCount(ctx context.Context, request *hookdeckgosdk.GetIssueCountRequest) (*hookdeckgosdk.IssueCount, error) {
+func (c *Client) GetIssueCount(ctx context.Context, request *hookdeckgosdk.GetIssueCountRequest) (*hookdeckgosdk.IssueCount, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -205,7 +197,7 @@ func (c *client) GetIssueCount(ctx context.Context, request *hookdeckgosdk.GetIs
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -229,7 +221,7 @@ func (c *client) GetIssueCount(ctx context.Context, request *hookdeckgosdk.GetIs
return response, nil
}
-func (c *client) GetIssue(ctx context.Context, id string) (*hookdeckgosdk.IssueWithData, error) {
+func (c *Client) GetIssue(ctx context.Context, id string) (*hookdeckgosdk.IssueWithData, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -248,7 +240,7 @@ func (c *client) GetIssue(ctx context.Context, id string) (*hookdeckgosdk.IssueW
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -272,7 +264,7 @@ func (c *client) GetIssue(ctx context.Context, id string) (*hookdeckgosdk.IssueW
return response, nil
}
-func (c *client) UpdateIssue(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueRequest) (*hookdeckgosdk.Issue, error) {
+func (c *Client) UpdateIssue(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueRequest) (*hookdeckgosdk.Issue, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -291,14 +283,14 @@ func (c *client) UpdateIssue(ctx context.Context, id string, request *hookdeckgo
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -322,7 +314,7 @@ func (c *client) UpdateIssue(ctx context.Context, id string, request *hookdeckgo
return response, nil
}
-func (c *client) DismissIssue(ctx context.Context, id string) (*hookdeckgosdk.Issue, error) {
+func (c *Client) DismissIssue(ctx context.Context, id string) (*hookdeckgosdk.Issue, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -341,7 +333,7 @@ func (c *client) DismissIssue(ctx context.Context, id string) (*hookdeckgosdk.Is
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/issuetriggers/client.go b/issuetriggers/client.go
index a8659f4..c43df70 100644
--- a/issuetriggers/client.go
+++ b/issuetriggers/client.go
@@ -16,36 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetIssueTriggers(ctx context.Context, request *hookdeckgosdk.GetIssueTriggersRequest) (*hookdeckgosdk.IssueTriggerPaginatedResult, error)
- CreateIssueTrigger(ctx context.Context, request *hookdeckgosdk.CreateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error)
- UpsertIssueTrigger(ctx context.Context, request *hookdeckgosdk.UpsertIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error)
- GetIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error)
- UpdateIssueTrigger(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error)
- DeleteIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.DeletedIssueTriggerResponse, error)
- DisableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error)
- EnableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetIssueTriggers(ctx context.Context, request *hookdeckgosdk.GetIssueTriggersRequest) (*hookdeckgosdk.IssueTriggerPaginatedResult, error) {
+func (c *Client) GetIssueTriggers(ctx context.Context, request *hookdeckgosdk.GetIssueTriggersRequest) (*hookdeckgosdk.IssueTriggerPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -93,14 +82,14 @@ func (c *client) GetIssueTriggers(ctx context.Context, request *hookdeckgosdk.Ge
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -124,7 +113,7 @@ func (c *client) GetIssueTriggers(ctx context.Context, request *hookdeckgosdk.Ge
return response, nil
}
-func (c *client) CreateIssueTrigger(ctx context.Context, request *hookdeckgosdk.CreateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) CreateIssueTrigger(ctx context.Context, request *hookdeckgosdk.CreateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -143,14 +132,14 @@ func (c *client) CreateIssueTrigger(ctx context.Context, request *hookdeckgosdk.
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -174,7 +163,7 @@ func (c *client) CreateIssueTrigger(ctx context.Context, request *hookdeckgosdk.
return response, nil
}
-func (c *client) UpsertIssueTrigger(ctx context.Context, request *hookdeckgosdk.UpsertIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) UpsertIssueTrigger(ctx context.Context, request *hookdeckgosdk.UpsertIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -193,14 +182,14 @@ func (c *client) UpsertIssueTrigger(ctx context.Context, request *hookdeckgosdk.
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -224,7 +213,7 @@ func (c *client) UpsertIssueTrigger(ctx context.Context, request *hookdeckgosdk.
return response, nil
}
-func (c *client) GetIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) GetIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -243,7 +232,7 @@ func (c *client) GetIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -267,7 +256,7 @@ func (c *client) GetIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk
return response, nil
}
-func (c *client) UpdateIssueTrigger(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) UpdateIssueTrigger(ctx context.Context, id string, request *hookdeckgosdk.UpdateIssueTriggerRequest) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -286,14 +275,14 @@ func (c *client) UpdateIssueTrigger(ctx context.Context, id string, request *hoo
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -317,7 +306,7 @@ func (c *client) UpdateIssueTrigger(ctx context.Context, id string, request *hoo
return response, nil
}
-func (c *client) DeleteIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.DeletedIssueTriggerResponse, error) {
+func (c *Client) DeleteIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.DeletedIssueTriggerResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -336,7 +325,7 @@ func (c *client) DeleteIssueTrigger(ctx context.Context, id string) (*hookdeckgo
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -360,7 +349,7 @@ func (c *client) DeleteIssueTrigger(ctx context.Context, id string) (*hookdeckgo
return response, nil
}
-func (c *client) DisableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) DisableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -379,7 +368,7 @@ func (c *client) DisableIssueTrigger(ctx context.Context, id string) (*hookdeckg
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -403,7 +392,7 @@ func (c *client) DisableIssueTrigger(ctx context.Context, id string) (*hookdeckg
return response, nil
}
-func (c *client) EnableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
+func (c *Client) EnableIssueTrigger(ctx context.Context, id string) (*hookdeckgosdk.IssueTrigger, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -422,7 +411,7 @@ func (c *client) EnableIssueTrigger(ctx context.Context, id string) (*hookdeckgo
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/notifications/client.go b/notifications/client.go
index 581e33d..5429337 100644
--- a/notifications/client.go
+++ b/notifications/client.go
@@ -10,31 +10,25 @@ import (
http "net/http"
)
-type Client interface {
- ListCustomDomains(ctx context.Context, teamId string) (hookdeckgosdk.ListCustomDomainSchema, error)
- AddCustomDomain(ctx context.Context, teamId string, request *hookdeckgosdk.AddCustomHostname) (*hookdeckgosdk.AddCustomHostname, error)
- DeleteCustomDomain(ctx context.Context, teamId string, domainId string) (*hookdeckgosdk.DeleteCustomDomainSchema, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) ListCustomDomains(ctx context.Context, teamId string) (hookdeckgosdk.ListCustomDomainSchema, error) {
+func (c *Client) ListCustomDomains(ctx context.Context, teamId string) (hookdeckgosdk.ListCustomDomainSchema, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -58,7 +52,7 @@ func (c *client) ListCustomDomains(ctx context.Context, teamId string) (hookdeck
return response, nil
}
-func (c *client) AddCustomDomain(ctx context.Context, teamId string, request *hookdeckgosdk.AddCustomHostname) (*hookdeckgosdk.AddCustomHostname, error) {
+func (c *Client) AddCustomDomain(ctx context.Context, teamId string, request *hookdeckgosdk.AddCustomHostname) (*hookdeckgosdk.AddCustomHostname, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -82,7 +76,7 @@ func (c *client) AddCustomDomain(ctx context.Context, teamId string, request *ho
return response, nil
}
-func (c *client) DeleteCustomDomain(ctx context.Context, teamId string, domainId string) (*hookdeckgosdk.DeleteCustomDomainSchema, error) {
+func (c *Client) DeleteCustomDomain(ctx context.Context, teamId string, domainId string) (*hookdeckgosdk.DeleteCustomDomainSchema, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
diff --git a/optional.go b/optional.go
new file mode 100644
index 0000000..f2a7b6e
--- /dev/null
+++ b/optional.go
@@ -0,0 +1,22 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
+)
+
+// Optional initializes an optional field.
+func Optional[T any](value T) *core.Optional[T] {
+ return &core.Optional[T]{
+ Value: value,
+ }
+}
+
+// Null initializes an optional field that will be sent as
+// an explicit null value.
+func Null[T any]() *core.Optional[T] {
+ return &core.Optional[T]{
+ Null: true,
+ }
+}
diff --git a/requests/client.go b/requests/client.go
index fb9ee05..2440fba 100644
--- a/requests/client.go
+++ b/requests/client.go
@@ -16,34 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetRequests(ctx context.Context, request *hookdeckgosdk.GetRequestsRequest) (*hookdeckgosdk.RequestPaginatedResult, error)
- GetRequest(ctx context.Context, id string) (*hookdeckgosdk.Request, error)
- GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error)
- RetryRequest(ctx context.Context, id string, request *hookdeckgosdk.RetryRequestRequest) (*hookdeckgosdk.RetryRequest, error)
- GetRequestEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error)
- GetRequestIgnoredEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestIgnoredEventsRequest) (*hookdeckgosdk.IgnoredEventPaginatedResult, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetRequests(ctx context.Context, request *hookdeckgosdk.GetRequestsRequest) (*hookdeckgosdk.RequestPaginatedResult, error) {
+func (c *Client) GetRequests(ctx context.Context, request *hookdeckgosdk.GetRequestsRequest) (*hookdeckgosdk.RequestPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -127,14 +118,14 @@ func (c *client) GetRequests(ctx context.Context, request *hookdeckgosdk.GetRequ
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -158,7 +149,7 @@ func (c *client) GetRequests(ctx context.Context, request *hookdeckgosdk.GetRequ
return response, nil
}
-func (c *client) GetRequest(ctx context.Context, id string) (*hookdeckgosdk.Request, error) {
+func (c *Client) GetRequest(ctx context.Context, id string) (*hookdeckgosdk.Request, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -177,7 +168,7 @@ func (c *client) GetRequest(ctx context.Context, id string) (*hookdeckgosdk.Requ
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -201,7 +192,7 @@ func (c *client) GetRequest(ctx context.Context, id string) (*hookdeckgosdk.Requ
return response, nil
}
-func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error) {
+func (c *Client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgosdk.RawBody, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -220,7 +211,7 @@ func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -244,7 +235,7 @@ func (c *client) GetRequestRawBody(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) RetryRequest(ctx context.Context, id string, request *hookdeckgosdk.RetryRequestRequest) (*hookdeckgosdk.RetryRequest, error) {
+func (c *Client) RetryRequest(ctx context.Context, id string, request *hookdeckgosdk.RetryRequestRequest) (*hookdeckgosdk.RetryRequest, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -263,21 +254,21 @@ func (c *client) RetryRequest(ctx context.Context, id string, request *hookdeckg
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -301,7 +292,7 @@ func (c *client) RetryRequest(ctx context.Context, id string, request *hookdeckg
return response, nil
}
-func (c *client) GetRequestEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error) {
+func (c *Client) GetRequestEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestEventsRequest) (*hookdeckgosdk.EventPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -406,21 +397,21 @@ func (c *client) GetRequestEvents(ctx context.Context, id string, request *hookd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -444,7 +435,7 @@ func (c *client) GetRequestEvents(ctx context.Context, id string, request *hookd
return response, nil
}
-func (c *client) GetRequestIgnoredEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestIgnoredEventsRequest) (*hookdeckgosdk.IgnoredEventPaginatedResult, error) {
+func (c *Client) GetRequestIgnoredEvents(ctx context.Context, id string, request *hookdeckgosdk.GetRequestIgnoredEventsRequest) (*hookdeckgosdk.IgnoredEventPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -486,21 +477,21 @@ func (c *client) GetRequestIgnoredEvents(ctx context.Context, id string, request
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/sources.go b/sources.go
index 051c655..f9f6599 100644
--- a/sources.go
+++ b/sources.go
@@ -3,6 +3,7 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
@@ -10,10 +11,10 @@ type CreateSourceRequest struct {
// A unique name for the source `<= 155 characters`
Name string `json:"name"`
// Description for the source
- Description *string `json:"description,omitempty"`
- AllowedHttpMethods *SourceAllowedHttpMethod `json:"allowed_http_methods,omitempty"`
- CustomResponse *SourceCustomResponse `json:"custom_response,omitempty"`
- Verification *VerificationConfig `json:"verification,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
+ AllowedHttpMethods *core.Optional[SourceAllowedHttpMethod] `json:"allowed_http_methods,omitempty"`
+ CustomResponse *core.Optional[SourceCustomResponse] `json:"custom_response,omitempty"`
+ Verification *core.Optional[VerificationConfig] `json:"verification,omitempty"`
}
type GetSourceRequest struct {
@@ -34,20 +35,20 @@ type GetSourcesRequest struct {
type UpdateSourceRequest struct {
// A unique name for the source `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// Description for the source
- Description *string `json:"description,omitempty"`
- AllowedHttpMethods *SourceAllowedHttpMethod `json:"allowed_http_methods,omitempty"`
- CustomResponse *SourceCustomResponse `json:"custom_response,omitempty"`
- Verification *VerificationConfig `json:"verification,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
+ AllowedHttpMethods *core.Optional[SourceAllowedHttpMethod] `json:"allowed_http_methods,omitempty"`
+ CustomResponse *core.Optional[SourceCustomResponse] `json:"custom_response,omitempty"`
+ Verification *core.Optional[VerificationConfig] `json:"verification,omitempty"`
}
type UpsertSourceRequest struct {
// A unique name for the source `<= 155 characters`
Name string `json:"name"`
// Description for the source
- Description *string `json:"description,omitempty"`
- AllowedHttpMethods *SourceAllowedHttpMethod `json:"allowed_http_methods,omitempty"`
- CustomResponse *SourceCustomResponse `json:"custom_response,omitempty"`
- Verification *VerificationConfig `json:"verification,omitempty"`
+ Description *core.Optional[string] `json:"description,omitempty"`
+ AllowedHttpMethods *core.Optional[SourceAllowedHttpMethod] `json:"allowed_http_methods,omitempty"`
+ CustomResponse *core.Optional[SourceCustomResponse] `json:"custom_response,omitempty"`
+ Verification *core.Optional[VerificationConfig] `json:"verification,omitempty"`
}
diff --git a/sources/client.go b/sources/client.go
index 3cecc17..e7d09ce 100644
--- a/sources/client.go
+++ b/sources/client.go
@@ -16,36 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetSources(ctx context.Context, request *hookdeckgosdk.GetSourcesRequest) (*hookdeckgosdk.SourcePaginatedResult, error)
- CreateSource(ctx context.Context, request *hookdeckgosdk.CreateSourceRequest) (*hookdeckgosdk.Source, error)
- UpsertSource(ctx context.Context, request *hookdeckgosdk.UpsertSourceRequest) (*hookdeckgosdk.Source, error)
- GetSource(ctx context.Context, id string, request *hookdeckgosdk.GetSourceRequest) (*hookdeckgosdk.Source, error)
- UpdateSource(ctx context.Context, id string, request *hookdeckgosdk.UpdateSourceRequest) (*hookdeckgosdk.Source, error)
- DeleteSource(ctx context.Context, id string) (*hookdeckgosdk.DeleteSourceResponse, error)
- ArchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error)
- UnarchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetSources(ctx context.Context, request *hookdeckgosdk.GetSourcesRequest) (*hookdeckgosdk.SourcePaginatedResult, error) {
+func (c *Client) GetSources(ctx context.Context, request *hookdeckgosdk.GetSourcesRequest) (*hookdeckgosdk.SourcePaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -96,14 +85,14 @@ func (c *client) GetSources(ctx context.Context, request *hookdeckgosdk.GetSourc
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -127,7 +116,7 @@ func (c *client) GetSources(ctx context.Context, request *hookdeckgosdk.GetSourc
return response, nil
}
-func (c *client) CreateSource(ctx context.Context, request *hookdeckgosdk.CreateSourceRequest) (*hookdeckgosdk.Source, error) {
+func (c *Client) CreateSource(ctx context.Context, request *hookdeckgosdk.CreateSourceRequest) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -146,14 +135,14 @@ func (c *client) CreateSource(ctx context.Context, request *hookdeckgosdk.Create
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -177,7 +166,7 @@ func (c *client) CreateSource(ctx context.Context, request *hookdeckgosdk.Create
return response, nil
}
-func (c *client) UpsertSource(ctx context.Context, request *hookdeckgosdk.UpsertSourceRequest) (*hookdeckgosdk.Source, error) {
+func (c *Client) UpsertSource(ctx context.Context, request *hookdeckgosdk.UpsertSourceRequest) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -196,14 +185,14 @@ func (c *client) UpsertSource(ctx context.Context, request *hookdeckgosdk.Upsert
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -227,7 +216,7 @@ func (c *client) UpsertSource(ctx context.Context, request *hookdeckgosdk.Upsert
return response, nil
}
-func (c *client) GetSource(ctx context.Context, id string, request *hookdeckgosdk.GetSourceRequest) (*hookdeckgosdk.Source, error) {
+func (c *Client) GetSource(ctx context.Context, id string, request *hookdeckgosdk.GetSourceRequest) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -254,7 +243,7 @@ func (c *client) GetSource(ctx context.Context, id string, request *hookdeckgosd
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -278,7 +267,7 @@ func (c *client) GetSource(ctx context.Context, id string, request *hookdeckgosd
return response, nil
}
-func (c *client) UpdateSource(ctx context.Context, id string, request *hookdeckgosdk.UpdateSourceRequest) (*hookdeckgosdk.Source, error) {
+func (c *Client) UpdateSource(ctx context.Context, id string, request *hookdeckgosdk.UpdateSourceRequest) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -297,21 +286,21 @@ func (c *client) UpdateSource(ctx context.Context, id string, request *hookdeckg
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -335,7 +324,7 @@ func (c *client) UpdateSource(ctx context.Context, id string, request *hookdeckg
return response, nil
}
-func (c *client) DeleteSource(ctx context.Context, id string) (*hookdeckgosdk.DeleteSourceResponse, error) {
+func (c *Client) DeleteSource(ctx context.Context, id string) (*hookdeckgosdk.DeleteSourceResponse, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -354,7 +343,7 @@ func (c *client) DeleteSource(ctx context.Context, id string) (*hookdeckgosdk.De
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -378,7 +367,7 @@ func (c *client) DeleteSource(ctx context.Context, id string) (*hookdeckgosdk.De
return response, nil
}
-func (c *client) ArchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error) {
+func (c *Client) ArchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -397,7 +386,7 @@ func (c *client) ArchiveSource(ctx context.Context, id string) (*hookdeckgosdk.S
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -421,7 +410,7 @@ func (c *client) ArchiveSource(ctx context.Context, id string) (*hookdeckgosdk.S
return response, nil
}
-func (c *client) UnarchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error) {
+func (c *Client) UnarchiveSource(ctx context.Context, id string) (*hookdeckgosdk.Source, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -440,7 +429,7 @@ func (c *client) UnarchiveSource(ctx context.Context, id string) (*hookdeckgosdk
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
diff --git a/transformations.go b/transformations.go
index da89a51..f1cada8 100644
--- a/transformations.go
+++ b/transformations.go
@@ -3,6 +3,7 @@
package api
import (
+ core "github.com/hookdeck/hookdeck-go-sdk/core"
time "time"
)
@@ -39,23 +40,23 @@ type GetTransformationsRequest struct {
type TestTransformationRequest struct {
// Key-value environment variables to be passed to the transformation
- Env *TestTransformationRequestEnv `json:"env,omitempty"`
+ Env *core.Optional[TestTransformationRequestEnv] `json:"env,omitempty"`
// ID of the connection to use for the execution `context`
- WebhookId *string `json:"webhook_id,omitempty"`
+ WebhookId *core.Optional[string] `json:"webhook_id,omitempty"`
// JavaScript code to be executed
- Code *string `json:"code,omitempty"`
+ Code *core.Optional[string] `json:"code,omitempty"`
// Transformation ID
- TransformationId *string `json:"transformation_id,omitempty"`
+ TransformationId *core.Optional[string] `json:"transformation_id,omitempty"`
// Request input to use for the transformation execution
- Request *TestTransformationRequestRequest `json:"request,omitempty"`
- EventId *string `json:"event_id,omitempty"`
+ Request *core.Optional[TestTransformationRequestRequest] `json:"request,omitempty"`
+ EventId *core.Optional[string] `json:"event_id,omitempty"`
}
type UpdateTransformationRequest struct {
// A unique, human-friendly name for the transformation `<= 155 characters`
- Name *string `json:"name,omitempty"`
+ Name *core.Optional[string] `json:"name,omitempty"`
// JavaScript code to be executed
- Code *string `json:"code,omitempty"`
+ Code *core.Optional[string] `json:"code,omitempty"`
// Key-value environment variables to be passed to the transformation
Env map[string]*UpdateTransformationRequestEnvValue `json:"env,omitempty"`
}
diff --git a/transformations/client.go b/transformations/client.go
index 73574cf..fc07cf3 100644
--- a/transformations/client.go
+++ b/transformations/client.go
@@ -16,36 +16,25 @@ import (
time "time"
)
-type Client interface {
- GetTransformations(ctx context.Context, request *hookdeckgosdk.GetTransformationsRequest) (*hookdeckgosdk.TransformationPaginatedResult, error)
- CreateTransformation(ctx context.Context, request *hookdeckgosdk.CreateTransformationRequest) (*hookdeckgosdk.Transformation, error)
- UpsertTransformation(ctx context.Context, request *hookdeckgosdk.UpsertTransformationRequest) (*hookdeckgosdk.Transformation, error)
- GetTransformation(ctx context.Context, id string) (*hookdeckgosdk.Transformation, error)
- UpdateTransformation(ctx context.Context, id string, request *hookdeckgosdk.UpdateTransformationRequest) (*hookdeckgosdk.Transformation, error)
- TestTransformation(ctx context.Context, request *hookdeckgosdk.TestTransformationRequest) (*hookdeckgosdk.TransformationExecutorOutput, error)
- GetTransformationExecutions(ctx context.Context, id string, request *hookdeckgosdk.GetTransformationExecutionsRequest) (*hookdeckgosdk.TransformationExecutionPaginatedResult, error)
- GetTransformationExecution(ctx context.Context, id string, executionId string) (*hookdeckgosdk.TransformationExecution, error)
+type Client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
}
-func NewClient(opts ...core.ClientOption) Client {
+func NewClient(opts ...core.ClientOption) *Client {
options := core.NewClientOptions()
for _, opt := range opts {
opt(options)
}
- return &client{
+ return &Client{
baseURL: options.BaseURL,
httpClient: options.HTTPClient,
header: options.ToHeader(),
}
}
-type client struct {
- baseURL string
- httpClient core.HTTPClient
- header http.Header
-}
-
-func (c *client) GetTransformations(ctx context.Context, request *hookdeckgosdk.GetTransformationsRequest) (*hookdeckgosdk.TransformationPaginatedResult, error) {
+func (c *Client) GetTransformations(ctx context.Context, request *hookdeckgosdk.GetTransformationsRequest) (*hookdeckgosdk.TransformationPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -90,14 +79,14 @@ func (c *client) GetTransformations(ctx context.Context, request *hookdeckgosdk.
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -121,7 +110,7 @@ func (c *client) GetTransformations(ctx context.Context, request *hookdeckgosdk.
return response, nil
}
-func (c *client) CreateTransformation(ctx context.Context, request *hookdeckgosdk.CreateTransformationRequest) (*hookdeckgosdk.Transformation, error) {
+func (c *Client) CreateTransformation(ctx context.Context, request *hookdeckgosdk.CreateTransformationRequest) (*hookdeckgosdk.Transformation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -140,14 +129,14 @@ func (c *client) CreateTransformation(ctx context.Context, request *hookdeckgosd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -171,7 +160,7 @@ func (c *client) CreateTransformation(ctx context.Context, request *hookdeckgosd
return response, nil
}
-func (c *client) UpsertTransformation(ctx context.Context, request *hookdeckgosdk.UpsertTransformationRequest) (*hookdeckgosdk.Transformation, error) {
+func (c *Client) UpsertTransformation(ctx context.Context, request *hookdeckgosdk.UpsertTransformationRequest) (*hookdeckgosdk.Transformation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -190,14 +179,14 @@ func (c *client) UpsertTransformation(ctx context.Context, request *hookdeckgosd
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -221,7 +210,7 @@ func (c *client) UpsertTransformation(ctx context.Context, request *hookdeckgosd
return response, nil
}
-func (c *client) GetTransformation(ctx context.Context, id string) (*hookdeckgosdk.Transformation, error) {
+func (c *Client) GetTransformation(ctx context.Context, id string) (*hookdeckgosdk.Transformation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -240,7 +229,7 @@ func (c *client) GetTransformation(ctx context.Context, id string) (*hookdeckgos
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -264,7 +253,7 @@ func (c *client) GetTransformation(ctx context.Context, id string) (*hookdeckgos
return response, nil
}
-func (c *client) UpdateTransformation(ctx context.Context, id string, request *hookdeckgosdk.UpdateTransformationRequest) (*hookdeckgosdk.Transformation, error) {
+func (c *Client) UpdateTransformation(ctx context.Context, id string, request *hookdeckgosdk.UpdateTransformationRequest) (*hookdeckgosdk.Transformation, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -283,21 +272,21 @@ func (c *client) UpdateTransformation(ctx context.Context, id string, request *h
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 404:
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -321,7 +310,7 @@ func (c *client) UpdateTransformation(ctx context.Context, id string, request *h
return response, nil
}
-func (c *client) TestTransformation(ctx context.Context, request *hookdeckgosdk.TestTransformationRequest) (*hookdeckgosdk.TransformationExecutorOutput, error) {
+func (c *Client) TestTransformation(ctx context.Context, request *hookdeckgosdk.TestTransformationRequest) (*hookdeckgosdk.TransformationExecutorOutput, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -340,14 +329,14 @@ func (c *client) TestTransformation(ctx context.Context, request *hookdeckgosdk.
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -371,7 +360,7 @@ func (c *client) TestTransformation(ctx context.Context, request *hookdeckgosdk.
return response, nil
}
-func (c *client) GetTransformationExecutions(ctx context.Context, id string, request *hookdeckgosdk.GetTransformationExecutionsRequest) (*hookdeckgosdk.TransformationExecutionPaginatedResult, error) {
+func (c *Client) GetTransformationExecutions(ctx context.Context, id string, request *hookdeckgosdk.GetTransformationExecutionsRequest) (*hookdeckgosdk.TransformationExecutionPaginatedResult, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -422,14 +411,14 @@ func (c *client) GetTransformationExecutions(ctx context.Context, id string, req
value := new(hookdeckgosdk.BadRequestError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
case 422:
value := new(hookdeckgosdk.UnprocessableEntityError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}
@@ -453,7 +442,7 @@ func (c *client) GetTransformationExecutions(ctx context.Context, id string, req
return response, nil
}
-func (c *client) GetTransformationExecution(ctx context.Context, id string, executionId string) (*hookdeckgosdk.TransformationExecution, error) {
+func (c *Client) GetTransformationExecution(ctx context.Context, id string, executionId string) (*hookdeckgosdk.TransformationExecution, error) {
baseURL := "https://api.hookdeck.com/2023-07-01"
if c.baseURL != "" {
baseURL = c.baseURL
@@ -472,7 +461,7 @@ func (c *client) GetTransformationExecution(ctx context.Context, id string, exec
value := new(hookdeckgosdk.NotFoundError)
value.APIError = apiError
if err := decoder.Decode(value); err != nil {
- return err
+ return apiError
}
return value
}