Documentation
¶
Index ¶
- func Bool(b bool) param.Opt[bool]
- func BoolPtr(v bool) *bool
- func DefaultClientOptions() []option.RequestOption
- func File(rdr io.Reader, filename string, contentType string) file
- func Float(f float64) param.Opt[float64]
- func FloatPtr(v float64) *float64
- func Int(i int64) param.Opt[int64]
- func IntPtr(v int64) *int64
- func Opt[T comparable](v T) param.Opt[T]
- func Ptr[T any](v T) *T
- func String(s string) param.Opt[string]
- func StringPtr(v string) *string
- func Time(t time.Time) param.Opt[time.Time]
- func TimePtr(v time.Time) *time.Time
- type Client
- func (r *Client) Delete(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, ...) error
- func (r *Client) Get(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Patch(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Post(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Put(ctx context.Context, path string, params any, res any, ...) error
- type CreateTaskBudget
- type CreateTaskParam
- type CreateWorkerParam
- type CreateWorkerVisibility
- type DeleteTaskResponse
- type DeleteWorkerResponse
- type Error
- type Task
- type TaskNewParams
- type TaskService
- func (r *TaskService) Delete(ctx context.Context, taskID string, opts ...option.RequestOption) (res *DeleteTaskResponse, err error)
- func (r *TaskService) Get(ctx context.Context, taskID string, opts ...option.RequestOption) (res *TaskWithTurns, err error)
- func (r *TaskService) New(ctx context.Context, body TaskNewParams, opts ...option.RequestOption) (res *Worker, err error)
- type TaskStatus
- type TaskTotals
- type TaskTriggeredBy
- type TaskWithTurns
- type TaskWithTurnsTurn
- type UpdateWebhookParam
- type UpdateWorkerParam
- type UpdateWorkerVisibility
- type Webhook
- type WebhookExecution
- type WebhookExecutionList
- type WebhookExecutionRequestStatus
- type Worker
- type WorkerFile
- type WorkerGetEmailResponse
- type WorkerGetParams
- type WorkerGetParamsStream
- type WorkerNewParams
- type WorkerOutput
- type WorkerOutputContent
- type WorkerScheduleCancelParams
- type WorkerScheduleCancelResponse
- type WorkerScheduleCron
- type WorkerScheduleDelayed
- type WorkerScheduleInterval
- type WorkerScheduleListResponse
- type WorkerScheduleNewParams
- type WorkerScheduleNewParamsBudget
- type WorkerScheduleNewParamsWhenCron
- type WorkerScheduleNewParamsWhenDelayed
- type WorkerScheduleNewParamsWhenInterval
- type WorkerScheduleNewParamsWhenScheduled
- type WorkerScheduleNewParamsWhenUnion
- type WorkerScheduleScheduled
- type WorkerScheduleService
- func (r *WorkerScheduleService) Cancel(ctx context.Context, scheduleID string, body WorkerScheduleCancelParams, ...) (res *WorkerScheduleCancelResponse, err error)
- func (r *WorkerScheduleService) List(ctx context.Context, workerID string, opts ...option.RequestOption) (res *WorkerScheduleListResponse, err error)
- func (r *WorkerScheduleService) New(ctx context.Context, workerID string, body WorkerScheduleNewParams, ...) (res *WorkerScheduleUnion, err error)
- type WorkerScheduleUnion
- func (u WorkerScheduleUnion) AsAny() anyWorkerSchedule
- func (u WorkerScheduleUnion) AsCron() (v WorkerScheduleCron)
- func (u WorkerScheduleUnion) AsDelayed() (v WorkerScheduleDelayed)
- func (u WorkerScheduleUnion) AsInterval() (v WorkerScheduleInterval)
- func (u WorkerScheduleUnion) AsScheduled() (v WorkerScheduleScheduled)
- func (u WorkerScheduleUnion) RawJSON() string
- func (r *WorkerScheduleUnion) UnmarshalJSON(data []byte) error
- type WorkerService
- func (r *WorkerService) Delete(ctx context.Context, workerID string, opts ...option.RequestOption) (res *DeleteWorkerResponse, err error)
- func (r *WorkerService) Get(ctx context.Context, workerID string, query WorkerGetParams, ...) (res *Worker, err error)
- func (r *WorkerService) GetEmail(ctx context.Context, workerID string, opts ...option.RequestOption) (res *WorkerGetEmailResponse, err error)
- func (r *WorkerService) New(ctx context.Context, body WorkerNewParams, opts ...option.RequestOption) (res *WorkerTemplate, err error)
- func (r *WorkerService) Update(ctx context.Context, workerID string, body WorkerUpdateParams, ...) (res *WorkerTemplate, err error)
- type WorkerSource
- type WorkerStatus
- type WorkerTemplate
- type WorkerTemplateVisibility
- type WorkerUpdateParams
- type WorkerUsage
- type WorkerWebhookListExecutionsParams
- type WorkerWebhookService
- func (r *WorkerWebhookService) Delete(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
- func (r *WorkerWebhookService) Get(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
- func (r *WorkerWebhookService) ListExecutions(ctx context.Context, workerID string, query WorkerWebhookListExecutionsParams, ...) (res *WebhookExecutionList, err error)
- func (r *WorkerWebhookService) RegenerateToken(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
- func (r *WorkerWebhookService) Update(ctx context.Context, workerID string, body WorkerWebhookUpdateParams, ...) (res *Webhook, err error)
- type WorkerWebhookUpdateParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultClientOptions ¶
func DefaultClientOptions() []option.RequestOption
DefaultClientOptions read from the environment (HANDINGER_API_KEY, HANDINGER_BASE_URL). This should be used to initialize new clients.
func Opt ¶
func Opt[T comparable](v T) param.Opt[T]
Types ¶
type Client ¶
type Client struct {
// Create, retrieve, and manage agent worker templates.
Workers WorkerService
// Run and inspect tasks against a worker.
Tasks TaskService
// contains filtered or unexported fields
}
Client creates a struct with services and top level methods that help with interacting with the handinger API. You should not instantiate this client directly, and instead use the NewClient method instead.
func NewClient ¶
func NewClient(opts ...option.RequestOption) (r Client)
NewClient generates a new client with the default option read from the environment (HANDINGER_API_KEY, HANDINGER_BASE_URL). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.
func (*Client) Delete ¶
func (r *Client) Delete(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Execute ¶
func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, opts ...option.RequestOption) error
Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.
If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
- A pointer to a *http.Response is populated by the raw response.
- A pointer to a byte array will be populated with the contents of the request body.
- A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
- A nil value will not read the response body.
For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.
func (*Client) Get ¶
func (r *Client) Get(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Patch ¶
func (r *Client) Patch(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
type CreateTaskBudget ¶
type CreateTaskBudget string
Compute budget the worker is allowed to spend on the task. Defaults to `standard`.
const ( CreateTaskBudgetLow CreateTaskBudget = "low" CreateTaskBudgetStandard CreateTaskBudget = "standard" CreateTaskBudgetHigh CreateTaskBudget = "high" CreateTaskBudgetUnlimited CreateTaskBudget = "unlimited" )
type CreateTaskParam ¶
type CreateTaskParam struct {
Input string `json:"input" api:"required"`
// Stream the response as server-sent events instead of waiting for the final
// payload.
Stream param.Opt[bool] `json:"stream,omitzero"`
// Optional client-provided task id. Reuse this id to add turns to an existing
// task.
TaskID param.Opt[string] `json:"taskId,omitzero"`
// Worker id the task belongs to. If omitted, a new worker is created on-the-fly
// using the input as instructions.
WorkerID param.Opt[string] `json:"workerId,omitzero"`
// Compute budget the worker is allowed to spend on the task. Defaults to
// `standard`.
//
// Any of "low", "standard", "high", "unlimited".
Budget CreateTaskBudget `json:"budget,omitzero"`
// contains filtered or unexported fields
}
The property Input is required.
func (CreateTaskParam) MarshalJSON ¶
func (r CreateTaskParam) MarshalJSON() (data []byte, err error)
func (*CreateTaskParam) UnmarshalJSON ¶
func (r *CreateTaskParam) UnmarshalJSON(data []byte) error
type CreateWorkerParam ¶
type CreateWorkerParam struct {
// Persistent system prompt the worker uses for every task it runs.
Instructions param.Opt[string] `json:"instructions,omitzero"`
// Natural-language description of the worker to use for AI-generated instructions
// when `instructions` is omitted.
Prompt param.Opt[string] `json:"prompt,omitzero"`
// Short one-line description of the worker's purpose. Auto-generated when omitted
// and a `prompt` is provided.
Summary param.Opt[string] `json:"summary,omitzero"`
// Optional display name. When omitted, Handinger assigns a random dog-themed name.
Title param.Opt[string] `json:"title,omitzero"`
// Optional JSON Schema (Draft-07) describing the structured object the worker must
// produce. When set, every task response is validated against the schema and
// exposed as `structuredOutput`.
OutputSchema map[string]any `json:"outputSchema,omitzero"`
// `public` (default) is visible to all org members. `private` is only visible to
// invited members.
//
// Any of "public", "private".
Visibility CreateWorkerVisibility `json:"visibility,omitzero"`
// contains filtered or unexported fields
}
func (CreateWorkerParam) MarshalJSON ¶
func (r CreateWorkerParam) MarshalJSON() (data []byte, err error)
func (*CreateWorkerParam) UnmarshalJSON ¶
func (r *CreateWorkerParam) UnmarshalJSON(data []byte) error
type CreateWorkerVisibility ¶
type CreateWorkerVisibility string
`public` (default) is visible to all org members. `private` is only visible to invited members.
const ( CreateWorkerVisibilityPublic CreateWorkerVisibility = "public" CreateWorkerVisibilityPrivate CreateWorkerVisibility = "private" )
type DeleteTaskResponse ¶
type DeleteTaskResponse struct {
Archived bool `json:"archived" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Archived respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (DeleteTaskResponse) RawJSON ¶
func (r DeleteTaskResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*DeleteTaskResponse) UnmarshalJSON ¶
func (r *DeleteTaskResponse) UnmarshalJSON(data []byte) error
type DeleteWorkerResponse ¶
type DeleteWorkerResponse struct {
Deleted bool `json:"deleted" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Deleted respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (DeleteWorkerResponse) RawJSON ¶
func (r DeleteWorkerResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*DeleteWorkerResponse) UnmarshalJSON ¶
func (r *DeleteWorkerResponse) UnmarshalJSON(data []byte) error
type Task ¶
type Task struct {
ID string `json:"id" api:"required"`
CompletedAt string `json:"completedAt" api:"required"`
CreatedAt string `json:"createdAt" api:"required"`
CreatedByUserID string `json:"createdByUserId" api:"required"`
OrganizationID string `json:"organizationId" api:"required"`
// Any of "pending", "running", "completed", "error", "aborted".
Status TaskStatus `json:"status" api:"required"`
Title string `json:"title" api:"required"`
// Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
Totals TaskTotals `json:"totals" api:"required"`
// Any of "api", "email", "schedule", "ui".
TriggeredBy TaskTriggeredBy `json:"triggeredBy" api:"required"`
// Web URL of the task in the Handinger dashboard.
URL string `json:"url" api:"required"`
WorkerID string `json:"workerId" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CompletedAt respjson.Field
CreatedAt respjson.Field
CreatedByUserID respjson.Field
OrganizationID respjson.Field
Status respjson.Field
Title respjson.Field
Totals respjson.Field
TriggeredBy respjson.Field
URL respjson.Field
WorkerID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*Task) UnmarshalJSON ¶
type TaskNewParams ¶
type TaskNewParams struct {
CreateTask CreateTaskParam
// contains filtered or unexported fields
}
func (TaskNewParams) MarshalJSON ¶
func (r TaskNewParams) MarshalJSON() (data []byte, err error)
func (*TaskNewParams) UnmarshalJSON ¶
func (r *TaskNewParams) UnmarshalJSON(data []byte) error
type TaskService ¶
type TaskService struct {
// contains filtered or unexported fields
}
Run and inspect tasks against a worker.
TaskService contains methods and other services that help with interacting with the handinger API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTaskService method instead.
func NewTaskService ¶
func NewTaskService(opts ...option.RequestOption) (r TaskService)
NewTaskService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*TaskService) Delete ¶
func (r *TaskService) Delete(ctx context.Context, taskID string, opts ...option.RequestOption) (res *DeleteTaskResponse, err error)
Archive a task so it stops appearing in `GET /tasks` results. Turns and files are retained for audit purposes. Only the worker creator can archive a task.
func (*TaskService) Get ¶
func (r *TaskService) Get(ctx context.Context, taskID string, opts ...option.RequestOption) (res *TaskWithTurns, err error)
Retrieve a single task and its individual turns.
func (*TaskService) New ¶
func (r *TaskService) New(ctx context.Context, body TaskNewParams, opts ...option.RequestOption) (res *Worker, err error)
Run a new task against an existing worker. Send a `taskId` of a prior task to add a follow-up turn instead of starting a fresh task. Send `multipart/form-data` to attach files; the bytes are bootstrapped into the worker's workspace before the task starts.
type TaskStatus ¶
type TaskStatus string
const ( TaskStatusPending TaskStatus = "pending" TaskStatusRunning TaskStatus = "running" TaskStatusCompleted TaskStatus = "completed" TaskStatusError TaskStatus = "error" TaskStatusAborted TaskStatus = "aborted" )
type TaskTotals ¶
type TaskTotals struct {
Credits int64 `json:"credits" api:"required"`
DurationMs int64 `json:"durationMs" api:"required"`
TurnCount int64 `json:"turnCount" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Credits respjson.Field
DurationMs respjson.Field
TurnCount respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
func (TaskTotals) RawJSON ¶
func (r TaskTotals) RawJSON() string
Returns the unmodified JSON received from the API
func (*TaskTotals) UnmarshalJSON ¶
func (r *TaskTotals) UnmarshalJSON(data []byte) error
type TaskTriggeredBy ¶
type TaskTriggeredBy string
const ( TaskTriggeredByAPI TaskTriggeredBy = "api" TaskTriggeredByEmail TaskTriggeredBy = "email" TaskTriggeredBySchedule TaskTriggeredBy = "schedule" TaskTriggeredByUi TaskTriggeredBy = "ui" )
type TaskWithTurns ¶
type TaskWithTurns struct {
Task Task `json:"task" api:"required"`
Turns []TaskWithTurnsTurn `json:"turns" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Task respjson.Field
Turns respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TaskWithTurns) RawJSON ¶
func (r TaskWithTurns) RawJSON() string
Returns the unmodified JSON received from the API
func (*TaskWithTurns) UnmarshalJSON ¶
func (r *TaskWithTurns) UnmarshalJSON(data []byte) error
type TaskWithTurnsTurn ¶
type TaskWithTurnsTurn struct {
ID string `json:"id" api:"required"`
CompletedAt string `json:"completedAt" api:"required"`
Credits int64 `json:"credits" api:"required"`
DurationMs int64 `json:"durationMs" api:"required"`
Input string `json:"input" api:"required"`
InputTokens int64 `json:"inputTokens" api:"required"`
OutputText string `json:"outputText" api:"required"`
OutputTokens int64 `json:"outputTokens" api:"required"`
Role string `json:"role" api:"required"`
Seq int64 `json:"seq" api:"required"`
StartedAt string `json:"startedAt" api:"required"`
Status string `json:"status" api:"required"`
// Structured JSON payload when the worker is configured with an output schema.
// `null` otherwise.
StructuredOutput map[string]any `json:"structuredOutput" api:"required"`
TaskID string `json:"taskId" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CompletedAt respjson.Field
Credits respjson.Field
DurationMs respjson.Field
Input respjson.Field
InputTokens respjson.Field
OutputText respjson.Field
OutputTokens respjson.Field
Role respjson.Field
Seq respjson.Field
StartedAt respjson.Field
Status respjson.Field
StructuredOutput respjson.Field
TaskID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TaskWithTurnsTurn) RawJSON ¶
func (r TaskWithTurnsTurn) RawJSON() string
Returns the unmodified JSON received from the API
func (*TaskWithTurnsTurn) UnmarshalJSON ¶
func (r *TaskWithTurnsTurn) UnmarshalJSON(data []byte) error
type UpdateWebhookParam ¶
type UpdateWebhookParam struct {
// HTTPS endpoint Handinger should POST to when a task finishes. Pass `null` to
// remove the webhook and clear its token.
URL param.Opt[string] `json:"url,omitzero" api:"required" format:"uri"`
// contains filtered or unexported fields
}
The property URL is required.
func (UpdateWebhookParam) MarshalJSON ¶
func (r UpdateWebhookParam) MarshalJSON() (data []byte, err error)
func (*UpdateWebhookParam) UnmarshalJSON ¶
func (r *UpdateWebhookParam) UnmarshalJSON(data []byte) error
type UpdateWorkerParam ¶
type UpdateWorkerParam struct {
// Replaces the persistent system prompt. Subsequent tasks pick up the new
// instructions immediately; in-flight tasks keep using the previous version.
Instructions param.Opt[string] `json:"instructions,omitzero"`
// Replaces the worker's short one-line summary.
Summary param.Opt[string] `json:"summary,omitzero"`
// New display name for the worker.
Title param.Opt[string] `json:"title,omitzero"`
// Replace the worker's structured output schema. Pass `null` to clear it and
// return to free-form text responses.
OutputSchema map[string]any `json:"outputSchema,omitzero"`
// Change visibility between `public` (any org member can run tasks) and `private`
// (only invited members).
//
// Any of "public", "private".
Visibility UpdateWorkerVisibility `json:"visibility,omitzero"`
// contains filtered or unexported fields
}
func (UpdateWorkerParam) MarshalJSON ¶
func (r UpdateWorkerParam) MarshalJSON() (data []byte, err error)
func (*UpdateWorkerParam) UnmarshalJSON ¶
func (r *UpdateWorkerParam) UnmarshalJSON(data []byte) error
type UpdateWorkerVisibility ¶
type UpdateWorkerVisibility string
Change visibility between `public` (any org member can run tasks) and `private` (only invited members).
const ( UpdateWorkerVisibilityPublic UpdateWorkerVisibility = "public" UpdateWorkerVisibilityPrivate UpdateWorkerVisibility = "private" )
type Webhook ¶
type Webhook struct {
// Shared secret sent in the `X-Handinger-Token` header on each delivery. `null`
// when no webhook is configured.
Token string `json:"token" api:"required"`
// HTTPS endpoint that receives webhook deliveries when a task completes. `null`
// when no webhook is configured.
URL string `json:"url" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Token respjson.Field
URL respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*Webhook) UnmarshalJSON ¶
type WebhookExecution ¶
type WebhookExecution struct {
ID string `json:"id" api:"required"`
CreatedAt time.Time `json:"createdAt" api:"required" format:"date-time"`
// Wall-clock time spent on the delivery attempt.
DurationMs int64 `json:"durationMs" api:"required"`
// Failure reason when `requestStatus` is `error`.
ErrorMessage string `json:"errorMessage" api:"required"`
// `success` when the endpoint returned a 2xx response, `error` otherwise.
//
// Any of "success", "error".
RequestStatus WebhookExecutionRequestStatus `json:"requestStatus" api:"required"`
// HTTP status returned by the endpoint, when reachable.
ResponseStatus int64 `json:"responseStatus" api:"required"`
// Task that triggered the delivery, when available.
TaskID string `json:"taskId" api:"required"`
// Title of the originating task, when available.
TaskTitle string `json:"taskTitle" api:"required"`
// Endpoint Handinger attempted to deliver to.
URL string `json:"url" api:"required"`
WorkerID string `json:"workerId" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CreatedAt respjson.Field
DurationMs respjson.Field
ErrorMessage respjson.Field
RequestStatus respjson.Field
ResponseStatus respjson.Field
TaskID respjson.Field
TaskTitle respjson.Field
URL respjson.Field
WorkerID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WebhookExecution) RawJSON ¶
func (r WebhookExecution) RawJSON() string
Returns the unmodified JSON received from the API
func (*WebhookExecution) UnmarshalJSON ¶
func (r *WebhookExecution) UnmarshalJSON(data []byte) error
type WebhookExecutionList ¶
type WebhookExecutionList struct {
Logs []WebhookExecution `json:"logs" api:"required"`
// Current page number.
Page int64 `json:"page" api:"required"`
// Total number of pages available.
PageCount int64 `json:"pageCount" api:"required"`
// Total number of executions recorded.
TotalCount int64 `json:"totalCount" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Logs respjson.Field
Page respjson.Field
PageCount respjson.Field
TotalCount respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WebhookExecutionList) RawJSON ¶
func (r WebhookExecutionList) RawJSON() string
Returns the unmodified JSON received from the API
func (*WebhookExecutionList) UnmarshalJSON ¶
func (r *WebhookExecutionList) UnmarshalJSON(data []byte) error
type WebhookExecutionRequestStatus ¶
type WebhookExecutionRequestStatus string
`success` when the endpoint returned a 2xx response, `error` otherwise.
const ( WebhookExecutionRequestStatusSuccess WebhookExecutionRequestStatus = "success" WebhookExecutionRequestStatusError WebhookExecutionRequestStatus = "error" )
type Worker ¶
type Worker struct {
ID string `json:"id" api:"required"`
CreatedAt int64 `json:"created_at" api:"required"`
Error any `json:"error" api:"required"`
Files []WorkerFile `json:"files" api:"required"`
IncompleteDetails any `json:"incomplete_details" api:"required"`
Messages []any `json:"messages" api:"required"`
Metadata map[string]any `json:"metadata" api:"required"`
Object constant.Worker `json:"object" default:"worker"`
Output []WorkerOutput `json:"output" api:"required"`
OutputText string `json:"output_text" api:"required"`
Running bool `json:"running" api:"required"`
Sources []WorkerSource `json:"sources" api:"required"`
// Any of "running", "completed", "pending".
Status WorkerStatus `json:"status" api:"required"`
StructuredOutput map[string]any `json:"structured_output" api:"required"`
// Web URL of the worker in the Handinger dashboard.
URL string `json:"url" api:"required"`
Usage WorkerUsage `json:"usage"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CreatedAt respjson.Field
Error respjson.Field
Files respjson.Field
IncompleteDetails respjson.Field
Messages respjson.Field
Metadata respjson.Field
Object respjson.Field
Output respjson.Field
OutputText respjson.Field
Running respjson.Field
Sources respjson.Field
Status respjson.Field
StructuredOutput respjson.Field
URL respjson.Field
Usage respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*Worker) UnmarshalJSON ¶
type WorkerFile ¶
type WorkerFile struct {
Filename string `json:"filename" api:"required"`
MediaType string `json:"mediaType" api:"required"`
URL string `json:"url" api:"required"`
Size int64 `json:"size"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Filename respjson.Field
MediaType respjson.Field
URL respjson.Field
Size respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerFile) RawJSON ¶
func (r WorkerFile) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerFile) UnmarshalJSON ¶
func (r *WorkerFile) UnmarshalJSON(data []byte) error
type WorkerGetEmailResponse ¶
type WorkerGetEmailResponse struct {
Email string `json:"email" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Email respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerGetEmailResponse) RawJSON ¶
func (r WorkerGetEmailResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerGetEmailResponse) UnmarshalJSON ¶
func (r *WorkerGetEmailResponse) UnmarshalJSON(data []byte) error
type WorkerGetParams ¶
type WorkerGetParams struct {
// Set to "true" to receive a server-sent event stream that replays all stored
// messages and then continues with live chunks from the active task (if any)
// before closing.
//
// Any of "true", "false".
Stream WorkerGetParamsStream `query:"stream,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (WorkerGetParams) URLQuery ¶
func (r WorkerGetParams) URLQuery() (v url.Values, err error)
URLQuery serializes WorkerGetParams's query parameters as `url.Values`.
type WorkerGetParamsStream ¶
type WorkerGetParamsStream string
Set to "true" to receive a server-sent event stream that replays all stored messages and then continues with live chunks from the active task (if any) before closing.
const ( WorkerGetParamsStreamTrue WorkerGetParamsStream = "true" WorkerGetParamsStreamFalse WorkerGetParamsStream = "false" )
type WorkerNewParams ¶
type WorkerNewParams struct {
CreateWorker CreateWorkerParam
// contains filtered or unexported fields
}
func (WorkerNewParams) MarshalJSON ¶
func (r WorkerNewParams) MarshalJSON() (data []byte, err error)
func (*WorkerNewParams) UnmarshalJSON ¶
func (r *WorkerNewParams) UnmarshalJSON(data []byte) error
type WorkerOutput ¶
type WorkerOutput struct {
ID string `json:"id" api:"required"`
Content []WorkerOutputContent `json:"content" api:"required"`
Role constant.Assistant `json:"role" default:"assistant"`
Status constant.Completed `json:"status" default:"completed"`
Type constant.Message `json:"type" default:"message"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Content respjson.Field
Role respjson.Field
Status respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerOutput) RawJSON ¶
func (r WorkerOutput) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerOutput) UnmarshalJSON ¶
func (r *WorkerOutput) UnmarshalJSON(data []byte) error
type WorkerOutputContent ¶
type WorkerOutputContent struct {
Text string `json:"text" api:"required"`
Type constant.OutputText `json:"type" default:"output_text"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Text respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerOutputContent) RawJSON ¶
func (r WorkerOutputContent) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerOutputContent) UnmarshalJSON ¶
func (r *WorkerOutputContent) UnmarshalJSON(data []byte) error
type WorkerScheduleCancelParams ¶
type WorkerScheduleCancelParams struct {
WorkerID string `path:"workerId" api:"required" json:"-"`
// contains filtered or unexported fields
}
type WorkerScheduleCancelResponse ¶
type WorkerScheduleCancelResponse struct {
Cancelled bool `json:"cancelled" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Cancelled respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleCancelResponse) RawJSON ¶
func (r WorkerScheduleCancelResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleCancelResponse) UnmarshalJSON ¶
func (r *WorkerScheduleCancelResponse) UnmarshalJSON(data []byte) error
type WorkerScheduleCron ¶
type WorkerScheduleCron struct {
ID string `json:"id" api:"required"`
// Any of "low", "standard", "high", "unlimited".
Budget string `json:"budget" api:"required"`
Cron string `json:"cron" api:"required"`
Input string `json:"input" api:"required"`
NextRunAt time.Time `json:"nextRunAt" api:"required" format:"date-time"`
Type constant.Cron `json:"type" default:"cron"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Budget respjson.Field
Cron respjson.Field
Input respjson.Field
NextRunAt respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleCron) RawJSON ¶
func (r WorkerScheduleCron) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleCron) UnmarshalJSON ¶
func (r *WorkerScheduleCron) UnmarshalJSON(data []byte) error
type WorkerScheduleDelayed ¶
type WorkerScheduleDelayed struct {
ID string `json:"id" api:"required"`
// Any of "low", "standard", "high", "unlimited".
Budget string `json:"budget" api:"required"`
DelayInSeconds int64 `json:"delayInSeconds" api:"required"`
Input string `json:"input" api:"required"`
NextRunAt time.Time `json:"nextRunAt" api:"required" format:"date-time"`
Type constant.Delayed `json:"type" default:"delayed"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Budget respjson.Field
DelayInSeconds respjson.Field
Input respjson.Field
NextRunAt respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleDelayed) RawJSON ¶
func (r WorkerScheduleDelayed) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleDelayed) UnmarshalJSON ¶
func (r *WorkerScheduleDelayed) UnmarshalJSON(data []byte) error
type WorkerScheduleInterval ¶
type WorkerScheduleInterval struct {
ID string `json:"id" api:"required"`
// Any of "low", "standard", "high", "unlimited".
Budget string `json:"budget" api:"required"`
Input string `json:"input" api:"required"`
IntervalSeconds int64 `json:"intervalSeconds" api:"required"`
NextRunAt time.Time `json:"nextRunAt" api:"required" format:"date-time"`
Type constant.Interval `json:"type" default:"interval"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Budget respjson.Field
Input respjson.Field
IntervalSeconds respjson.Field
NextRunAt respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleInterval) RawJSON ¶
func (r WorkerScheduleInterval) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleInterval) UnmarshalJSON ¶
func (r *WorkerScheduleInterval) UnmarshalJSON(data []byte) error
type WorkerScheduleListResponse ¶
type WorkerScheduleListResponse struct {
Schedules []WorkerScheduleUnion `json:"schedules" api:"required"`
WorkerID string `json:"workerId" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Schedules respjson.Field
WorkerID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleListResponse) RawJSON ¶
func (r WorkerScheduleListResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleListResponse) UnmarshalJSON ¶
func (r *WorkerScheduleListResponse) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParams ¶
type WorkerScheduleNewParams struct {
Input string `json:"input" api:"required"`
When WorkerScheduleNewParamsWhenUnion `json:"when,omitzero" api:"required"`
// Any of "low", "standard", "high", "unlimited".
Budget WorkerScheduleNewParamsBudget `json:"budget,omitzero"`
// contains filtered or unexported fields
}
func (WorkerScheduleNewParams) MarshalJSON ¶
func (r WorkerScheduleNewParams) MarshalJSON() (data []byte, err error)
func (*WorkerScheduleNewParams) UnmarshalJSON ¶
func (r *WorkerScheduleNewParams) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParamsBudget ¶
type WorkerScheduleNewParamsBudget string
const ( WorkerScheduleNewParamsBudgetLow WorkerScheduleNewParamsBudget = "low" WorkerScheduleNewParamsBudgetStandard WorkerScheduleNewParamsBudget = "standard" WorkerScheduleNewParamsBudgetHigh WorkerScheduleNewParamsBudget = "high" WorkerScheduleNewParamsBudgetUnlimited WorkerScheduleNewParamsBudget = "unlimited" )
type WorkerScheduleNewParamsWhenCron ¶
type WorkerScheduleNewParamsWhenCron struct {
Cron string `json:"cron" api:"required"`
// This field can be elided, and will marshal its zero value as "cron".
Type constant.Cron `json:"type" default:"cron"`
// contains filtered or unexported fields
}
The properties Cron, Type are required.
func (WorkerScheduleNewParamsWhenCron) MarshalJSON ¶
func (r WorkerScheduleNewParamsWhenCron) MarshalJSON() (data []byte, err error)
func (*WorkerScheduleNewParamsWhenCron) UnmarshalJSON ¶
func (r *WorkerScheduleNewParamsWhenCron) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParamsWhenDelayed ¶
type WorkerScheduleNewParamsWhenDelayed struct {
DelayInSeconds int64 `json:"delayInSeconds" api:"required"`
// This field can be elided, and will marshal its zero value as "delayed".
Type constant.Delayed `json:"type" default:"delayed"`
// contains filtered or unexported fields
}
The properties DelayInSeconds, Type are required.
func (WorkerScheduleNewParamsWhenDelayed) MarshalJSON ¶
func (r WorkerScheduleNewParamsWhenDelayed) MarshalJSON() (data []byte, err error)
func (*WorkerScheduleNewParamsWhenDelayed) UnmarshalJSON ¶
func (r *WorkerScheduleNewParamsWhenDelayed) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParamsWhenInterval ¶
type WorkerScheduleNewParamsWhenInterval struct {
IntervalSeconds int64 `json:"intervalSeconds" api:"required"`
// This field can be elided, and will marshal its zero value as "interval".
Type constant.Interval `json:"type" default:"interval"`
// contains filtered or unexported fields
}
The properties IntervalSeconds, Type are required.
func (WorkerScheduleNewParamsWhenInterval) MarshalJSON ¶
func (r WorkerScheduleNewParamsWhenInterval) MarshalJSON() (data []byte, err error)
func (*WorkerScheduleNewParamsWhenInterval) UnmarshalJSON ¶
func (r *WorkerScheduleNewParamsWhenInterval) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParamsWhenScheduled ¶
type WorkerScheduleNewParamsWhenScheduled struct {
Date string `json:"date" api:"required"`
// This field can be elided, and will marshal its zero value as "scheduled".
Type constant.Scheduled `json:"type" default:"scheduled"`
// contains filtered or unexported fields
}
The properties Date, Type are required.
func (WorkerScheduleNewParamsWhenScheduled) MarshalJSON ¶
func (r WorkerScheduleNewParamsWhenScheduled) MarshalJSON() (data []byte, err error)
func (*WorkerScheduleNewParamsWhenScheduled) UnmarshalJSON ¶
func (r *WorkerScheduleNewParamsWhenScheduled) UnmarshalJSON(data []byte) error
type WorkerScheduleNewParamsWhenUnion ¶
type WorkerScheduleNewParamsWhenUnion struct {
OfScheduled *WorkerScheduleNewParamsWhenScheduled `json:",omitzero,inline"`
OfDelayed *WorkerScheduleNewParamsWhenDelayed `json:",omitzero,inline"`
OfCron *WorkerScheduleNewParamsWhenCron `json:",omitzero,inline"`
OfInterval *WorkerScheduleNewParamsWhenInterval `json:",omitzero,inline"`
// contains filtered or unexported fields
}
Only one field can be non-zero.
Use param.IsOmitted to confirm if a field is set.
func (WorkerScheduleNewParamsWhenUnion) MarshalJSON ¶
func (u WorkerScheduleNewParamsWhenUnion) MarshalJSON() ([]byte, error)
func (*WorkerScheduleNewParamsWhenUnion) UnmarshalJSON ¶
func (u *WorkerScheduleNewParamsWhenUnion) UnmarshalJSON(data []byte) error
type WorkerScheduleScheduled ¶
type WorkerScheduleScheduled struct {
ID string `json:"id" api:"required"`
// Any of "low", "standard", "high", "unlimited".
Budget string `json:"budget" api:"required"`
Input string `json:"input" api:"required"`
NextRunAt time.Time `json:"nextRunAt" api:"required" format:"date-time"`
Type constant.Scheduled `json:"type" default:"scheduled"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Budget respjson.Field
Input respjson.Field
NextRunAt respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerScheduleScheduled) RawJSON ¶
func (r WorkerScheduleScheduled) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleScheduled) UnmarshalJSON ¶
func (r *WorkerScheduleScheduled) UnmarshalJSON(data []byte) error
type WorkerScheduleService ¶
type WorkerScheduleService struct {
// contains filtered or unexported fields
}
Manage future and recurring worker tasks.
WorkerScheduleService contains methods and other services that help with interacting with the handinger API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewWorkerScheduleService method instead.
func NewWorkerScheduleService ¶
func NewWorkerScheduleService(opts ...option.RequestOption) (r WorkerScheduleService)
NewWorkerScheduleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*WorkerScheduleService) Cancel ¶
func (r *WorkerScheduleService) Cancel(ctx context.Context, scheduleID string, body WorkerScheduleCancelParams, opts ...option.RequestOption) (res *WorkerScheduleCancelResponse, err error)
Cancel a scheduled task for a worker.
func (*WorkerScheduleService) List ¶
func (r *WorkerScheduleService) List(ctx context.Context, workerID string, opts ...option.RequestOption) (res *WorkerScheduleListResponse, err error)
List scheduled tasks for a worker.
func (*WorkerScheduleService) New ¶
func (r *WorkerScheduleService) New(ctx context.Context, workerID string, body WorkerScheduleNewParams, opts ...option.RequestOption) (res *WorkerScheduleUnion, err error)
Schedule a worker instruction for a future or recurring run.
type WorkerScheduleUnion ¶
type WorkerScheduleUnion struct {
ID string `json:"id"`
Budget string `json:"budget"`
Input string `json:"input"`
NextRunAt time.Time `json:"nextRunAt"`
// Any of "scheduled", "delayed", "cron", "interval".
Type string `json:"type"`
// This field is from variant [WorkerScheduleDelayed].
DelayInSeconds int64 `json:"delayInSeconds"`
// This field is from variant [WorkerScheduleCron].
Cron string `json:"cron"`
// This field is from variant [WorkerScheduleInterval].
IntervalSeconds int64 `json:"intervalSeconds"`
JSON struct {
ID respjson.Field
Budget respjson.Field
Input respjson.Field
NextRunAt respjson.Field
Type respjson.Field
DelayInSeconds respjson.Field
Cron respjson.Field
IntervalSeconds respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
WorkerScheduleUnion contains all possible properties and values from WorkerScheduleScheduled, WorkerScheduleDelayed, WorkerScheduleCron, WorkerScheduleInterval.
Use the WorkerScheduleUnion.AsAny method to switch on the variant.
Use the methods beginning with 'As' to cast the union to one of its variants.
func (WorkerScheduleUnion) AsAny ¶
func (u WorkerScheduleUnion) AsAny() anyWorkerSchedule
Use the following switch statement to find the correct variant
switch variant := WorkerScheduleUnion.AsAny().(type) {
case handinger.WorkerScheduleScheduled:
case handinger.WorkerScheduleDelayed:
case handinger.WorkerScheduleCron:
case handinger.WorkerScheduleInterval:
default:
fmt.Errorf("no variant present")
}
func (WorkerScheduleUnion) AsCron ¶
func (u WorkerScheduleUnion) AsCron() (v WorkerScheduleCron)
func (WorkerScheduleUnion) AsDelayed ¶
func (u WorkerScheduleUnion) AsDelayed() (v WorkerScheduleDelayed)
func (WorkerScheduleUnion) AsInterval ¶
func (u WorkerScheduleUnion) AsInterval() (v WorkerScheduleInterval)
func (WorkerScheduleUnion) AsScheduled ¶
func (u WorkerScheduleUnion) AsScheduled() (v WorkerScheduleScheduled)
func (WorkerScheduleUnion) RawJSON ¶
func (u WorkerScheduleUnion) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerScheduleUnion) UnmarshalJSON ¶
func (r *WorkerScheduleUnion) UnmarshalJSON(data []byte) error
type WorkerService ¶
type WorkerService struct {
// Manage future and recurring worker tasks.
Schedules WorkerScheduleService
// Configure outbound webhooks delivered when a worker's tasks complete.
Webhooks WorkerWebhookService
// contains filtered or unexported fields
}
Create, retrieve, and manage agent worker templates.
WorkerService contains methods and other services that help with interacting with the handinger API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewWorkerService method instead.
func NewWorkerService ¶
func NewWorkerService(opts ...option.RequestOption) (r WorkerService)
NewWorkerService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*WorkerService) Delete ¶
func (r *WorkerService) Delete(ctx context.Context, workerID string, opts ...option.RequestOption) (res *DeleteWorkerResponse, err error)
Soft-delete a worker template so it no longer appears in list or retrieve endpoints. Tasks, turns, files, schedules, and integrations remain in the database for analytics. Only the worker creator can delete a worker.
func (*WorkerService) Get ¶
func (r *WorkerService) Get(ctx context.Context, workerID string, query WorkerGetParams, opts ...option.RequestOption) (res *Worker, err error)
Retrieve the current worker state and messages from its most recent task. Returns a JSON worker object by default, or a server-sent event stream when `stream=true`.
func (*WorkerService) GetEmail ¶
func (r *WorkerService) GetEmail(ctx context.Context, workerID string, opts ...option.RequestOption) (res *WorkerGetEmailResponse, err error)
Retrieve the inbound email address for a worker.
func (*WorkerService) New ¶
func (r *WorkerService) New(ctx context.Context, body WorkerNewParams, opts ...option.RequestOption) (res *WorkerTemplate, err error)
Create a new worker. The worker is a reusable agent template; tasks are runs against this template. Use `POST /tasks` to actually run the agent.
func (*WorkerService) Update ¶
func (r *WorkerService) Update(ctx context.Context, workerID string, body WorkerUpdateParams, opts ...option.RequestOption) (res *WorkerTemplate, err error)
Update a worker's instructions, title, summary, visibility, or output schema. Only the fields you send are changed; omitted fields keep their current values. Only the worker creator can update a worker.
type WorkerSource ¶
type WorkerSource struct {
ID string `json:"id" api:"required"`
Title string `json:"title" api:"required"`
Type constant.URL `json:"type" default:"url"`
URL string `json:"url" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Title respjson.Field
Type respjson.Field
URL respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerSource) RawJSON ¶
func (r WorkerSource) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerSource) UnmarshalJSON ¶
func (r *WorkerSource) UnmarshalJSON(data []byte) error
type WorkerStatus ¶
type WorkerStatus string
const ( WorkerStatusRunning WorkerStatus = "running" WorkerStatusCompleted WorkerStatus = "completed" WorkerStatusPending WorkerStatus = "pending" )
type WorkerTemplate ¶
type WorkerTemplate struct {
ID string `json:"id" api:"required"`
CreatedAt string `json:"createdAt" api:"required"`
Instructions string `json:"instructions" api:"required"`
OrganizationID string `json:"organizationId" api:"required"`
OutputSchema map[string]any `json:"outputSchema" api:"required"`
Summary string `json:"summary" api:"required"`
Title string `json:"title" api:"required"`
UpdatedAt string `json:"updatedAt" api:"required"`
// Web URL of the worker in the Handinger dashboard.
URL string `json:"url" api:"required"`
UserID string `json:"userId" api:"required"`
// Any of "public", "private".
Visibility WorkerTemplateVisibility `json:"visibility" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CreatedAt respjson.Field
Instructions respjson.Field
OrganizationID respjson.Field
OutputSchema respjson.Field
Summary respjson.Field
Title respjson.Field
UpdatedAt respjson.Field
URL respjson.Field
UserID respjson.Field
Visibility respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerTemplate) RawJSON ¶
func (r WorkerTemplate) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerTemplate) UnmarshalJSON ¶
func (r *WorkerTemplate) UnmarshalJSON(data []byte) error
type WorkerTemplateVisibility ¶
type WorkerTemplateVisibility string
const ( WorkerTemplateVisibilityPublic WorkerTemplateVisibility = "public" WorkerTemplateVisibilityPrivate WorkerTemplateVisibility = "private" )
type WorkerUpdateParams ¶
type WorkerUpdateParams struct {
UpdateWorker UpdateWorkerParam
// contains filtered or unexported fields
}
func (WorkerUpdateParams) MarshalJSON ¶
func (r WorkerUpdateParams) MarshalJSON() (data []byte, err error)
func (*WorkerUpdateParams) UnmarshalJSON ¶
func (r *WorkerUpdateParams) UnmarshalJSON(data []byte) error
type WorkerUsage ¶
type WorkerUsage struct {
Credits int64 `json:"credits"`
DurationMs int64 `json:"durationMs"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Credits respjson.Field
DurationMs respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (WorkerUsage) RawJSON ¶
func (r WorkerUsage) RawJSON() string
Returns the unmodified JSON received from the API
func (*WorkerUsage) UnmarshalJSON ¶
func (r *WorkerUsage) UnmarshalJSON(data []byte) error
type WorkerWebhookListExecutionsParams ¶
type WorkerWebhookListExecutionsParams struct {
// Page number (1-indexed). Defaults to 1.
Page param.Opt[int64] `query:"page,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (WorkerWebhookListExecutionsParams) URLQuery ¶
func (r WorkerWebhookListExecutionsParams) URLQuery() (v url.Values, err error)
URLQuery serializes WorkerWebhookListExecutionsParams's query parameters as `url.Values`.
type WorkerWebhookService ¶
type WorkerWebhookService struct {
// contains filtered or unexported fields
}
Configure outbound webhooks delivered when a worker's tasks complete.
WorkerWebhookService contains methods and other services that help with interacting with the handinger API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewWorkerWebhookService method instead.
func NewWorkerWebhookService ¶
func NewWorkerWebhookService(opts ...option.RequestOption) (r WorkerWebhookService)
NewWorkerWebhookService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*WorkerWebhookService) Delete ¶
func (r *WorkerWebhookService) Delete(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
Remove the webhook from a worker. Both `url` and `token` are cleared and no further deliveries are attempted. Only the worker creator can delete the webhook.
func (*WorkerWebhookService) Get ¶
func (r *WorkerWebhookService) Get(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
Retrieve the webhook URL and shared token configured for a worker. Both fields are `null` when no webhook is configured. Only the worker creator can read the webhook configuration.
func (*WorkerWebhookService) ListExecutions ¶
func (r *WorkerWebhookService) ListExecutions(ctx context.Context, workerID string, query WorkerWebhookListExecutionsParams, opts ...option.RequestOption) (res *WebhookExecutionList, err error)
List recent webhook delivery attempts for a worker, newest first, paginated 50 per page. Only the worker creator can read execution history.
func (*WorkerWebhookService) RegenerateToken ¶
func (r *WorkerWebhookService) RegenerateToken(ctx context.Context, workerID string, opts ...option.RequestOption) (res *Webhook, err error)
Issue a new shared token for the webhook, invalidating the previous one. The webhook URL is preserved. Only the worker creator can regenerate the token.
func (*WorkerWebhookService) Update ¶
func (r *WorkerWebhookService) Update(ctx context.Context, workerID string, body WorkerWebhookUpdateParams, opts ...option.RequestOption) (res *Webhook, err error)
Set or replace the webhook URL for a worker. A fresh token is generated the first time a URL is set; subsequent updates keep the existing token. Pass `url: null` to clear the webhook (use the dedicated DELETE for the same effect). Only the worker creator can update the webhook.
type WorkerWebhookUpdateParams ¶
type WorkerWebhookUpdateParams struct {
UpdateWebhook UpdateWebhookParam
// contains filtered or unexported fields
}
func (WorkerWebhookUpdateParams) MarshalJSON ¶
func (r WorkerWebhookUpdateParams) MarshalJSON() (data []byte, err error)
func (*WorkerWebhookUpdateParams) UnmarshalJSON ¶
func (r *WorkerWebhookUpdateParams) UnmarshalJSON(data []byte) error
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
encoding/json
Package json implements encoding and decoding of JSON as defined in RFC 7159.
|
Package json implements encoding and decoding of JSON as defined in RFC 7159. |
|
encoding/json/shims
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.22, and used by the Go 1.24 encoding/json package.
|
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.22, and used by the Go 1.24 encoding/json package. |
|
packages
|
|
|
shared
|
|