Documentation
¶
Index ¶
- func Bool(value bool) param.Field[bool]
- func DefaultClientOptions() []option.RequestOption
- func F[T any](value T) param.Field[T]
- func FileParam(reader io.Reader, filename string, contentType string) param.Field[io.Reader]
- func Float(value float64) param.Field[float64]
- func Int(value int64) param.Field[int64]
- func Null[T any]() param.Field[T]
- func Raw[T any](value any) param.Field[T]
- func String(value string) param.Field[string]
- type APIKey
- type APIKeyEdges
- type ApikeyNewParams
- type ApikeyService
- func (r *ApikeyService) List(ctx context.Context, opts ...option.RequestOption) (res *[][]APIKey, err error)
- func (r *ApikeyService) New(ctx context.Context, body ApikeyNewParams, opts ...option.RequestOption) (res *APIKey, err error)
- func (r *ApikeyService) Revoke(ctx context.Context, id int64, opts ...option.RequestOption) (res *[][]APIKey, err error)
- type Client
- func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, ...) error
- func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- func (r *Client) Put(ctx context.Context, path string, params interface{}, res interface{}, ...) error
- type Environment
- type EnvironmentEdges
- type EnvironmentNewParams
- type EnvironmentService
- func (r *EnvironmentService) Delete(ctx context.Context, id int64, opts ...option.RequestOption) (res *Environment, err error)
- func (r *EnvironmentService) List(ctx context.Context, opts ...option.RequestOption) (res *[]Environment, err error)
- func (r *EnvironmentService) New(ctx context.Context, body EnvironmentNewParams, opts ...option.RequestOption) (res *Environment, err error)
- type Error
- type Job
- type JobDefineParams
- type JobDeleteParams
- type JobExecution
- type JobExecutionCompleteParams
- type JobExecutionFrame
- type JobExecutionListParams
- type JobExecutionService
- func (r *JobExecutionService) Complete(ctx context.Context, executionID int64, body JobExecutionCompleteParams, ...) (res *JobExecution, err error)
- func (r *JobExecutionService) List(ctx context.Context, jobID int64, params JobExecutionListParams, ...) (res *[]JobExecutionFrame, err error)
- func (r *JobExecutionService) Poll(ctx context.Context, opts ...option.RequestOption) (res *[]JobExecution, err error)
- type JobGetParams
- type JobListParams
- type JobPauseParams
- type JobResumeParams
- type JobService
- func (r *JobService) Define(ctx context.Context, body JobDefineParams, opts ...option.RequestOption) (res *Job, err error)
- func (r *JobService) Delete(ctx context.Context, jobID int64, body JobDeleteParams, ...) (res *string, err error)
- func (r *JobService) Get(ctx context.Context, jobID int64, query JobGetParams, ...) (res *Output, err error)
- func (r *JobService) List(ctx context.Context, query JobListParams, opts ...option.RequestOption) (res *Job, err error)
- func (r *JobService) Pause(ctx context.Context, jobID int64, body JobPauseParams, ...) (res *JobExecution, err error)
- func (r *JobService) Resume(ctx context.Context, jobID int64, body JobResumeParams, ...) (res *JobExecution, err error)
- func (r *JobService) Trigger(ctx context.Context, jobID int64, body JobTriggerParams, ...) (res *JobExecution, err error)
- type JobTriggerParams
- type Org
- type OrgEdges
- type OrgService
- type Output
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultClientOptions ¶
func DefaultClientOptions() []option.RequestOption
DefaultClientOptions read from the environment (SCHEDO_API_KEY). This should be used to initialize new clients.
func F ¶
F is a param field helper used to initialize a param.Field generic struct. This helps specify null, zero values, and overrides, as well as normal values. You can read more about this in our README.
func Int ¶
Int is a param field helper which helps specify integers. This is particularly helpful when specifying integer constants for fields.
func Raw ¶
Raw is a param field helper for specifying values for fields when the type you are looking to send is different from the type that is specified in the SDK. For example, if the type of the field is an integer, but you want to send a float, you could do that by setting the corresponding field with Raw[int](0.5).
Types ¶
type APIKey ¶
type APIKey struct { // ID of the ent. ID int64 `json:"id"` // CreatedAt holds the value of the "created_at" field. CreatedAt string `json:"created_at"` // Edges holds the relations/edges for other nodes in the graph. The values are // being populated by the ApiKeyQuery when eager-loading is set. Edges APIKeyEdges `json:"edges"` // EnvironmentID holds the value of the "environment_id" field. EnvironmentID int64 `json:"environment_id"` // Internal holds the value of the "internal" field. Internal bool `json:"internal"` // Key holds the value of the "key" field. Key string `json:"key"` // Name holds the value of the "name" field. Name string `json:"name"` // OrganizationID holds the value of the "organization_id" field. OrganizationID int64 `json:"organization_id"` // Revoked holds the value of the "revoked" field. Revoked bool `json:"revoked"` JSON apiKeyJSON `json:"-"` }
func (*APIKey) UnmarshalJSON ¶
type APIKeyEdges ¶
type APIKeyEdges = interface{}
type ApikeyNewParams ¶
type ApikeyNewParams struct { EnvironmentID param.Field[int64] `json:"environment_id,required"` Name param.Field[string] `json:"name,required"` }
func (ApikeyNewParams) MarshalJSON ¶
func (r ApikeyNewParams) MarshalJSON() (data []byte, err error)
type ApikeyService ¶
type ApikeyService struct {
Options []option.RequestOption
}
ApikeyService contains methods and other services that help with interacting with the Schedo 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 NewApikeyService method instead.
func NewApikeyService ¶
func NewApikeyService(opts ...option.RequestOption) (r *ApikeyService)
NewApikeyService 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 (*ApikeyService) List ¶
func (r *ApikeyService) List(ctx context.Context, opts ...option.RequestOption) (res *[][]APIKey, err error)
Returns a list of API Keys for the organization
func (*ApikeyService) New ¶
func (r *ApikeyService) New(ctx context.Context, body ApikeyNewParams, opts ...option.RequestOption) (res *APIKey, err error)
Generates a new API Key to access Schedo.dev API
func (*ApikeyService) Revoke ¶
func (r *ApikeyService) Revoke(ctx context.Context, id int64, opts ...option.RequestOption) (res *[][]APIKey, err error)
Revokes an API Key making it inactive
type Client ¶
type Client struct { Options []option.RequestOption Apikeys *ApikeyService Environments *EnvironmentService Jobs *JobService JobExecution *JobExecutionService Org *OrgService }
Client creates a struct with services and top level methods that help with interacting with the Schedo 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 (SCHEDO_API_KEY). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.
func (*Client) Delete ¶
func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Execute ¶
func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.
If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
- A pointer to a *http.Response is populated by the raw response.
- A pointer to a byte array will be populated with the contents of the request body.
- A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
- A nil value will not read the response body.
For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.
func (*Client) Get ¶
func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Patch ¶
func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Post ¶
func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error
Post makes a POST request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
type Environment ¶
type Environment struct { // ID of the ent. ID int64 `json:"id"` // CreatedAt holds the value of the "created_at" field. CreatedAt string `json:"created_at"` // Edges holds the relations/edges for other nodes in the graph. The values are // being populated by the EnvironmentQuery when eager-loading is set. Edges EnvironmentEdges `json:"edges"` // Name holds the value of the "name" field. Name string `json:"name"` // OrganizationID holds the value of the "organization_id" field. OrganizationID int64 `json:"organization_id"` JSON environmentJSON `json:"-"` }
func (*Environment) UnmarshalJSON ¶
func (r *Environment) UnmarshalJSON(data []byte) (err error)
type EnvironmentEdges ¶
type EnvironmentEdges struct { // Organization that owns this environment Organization []Org `json:"organization"` JSON environmentEdgesJSON `json:"-"` }
func (*EnvironmentEdges) UnmarshalJSON ¶
func (r *EnvironmentEdges) UnmarshalJSON(data []byte) (err error)
type EnvironmentNewParams ¶
func (EnvironmentNewParams) MarshalJSON ¶
func (r EnvironmentNewParams) MarshalJSON() (data []byte, err error)
type EnvironmentService ¶
type EnvironmentService struct {
Options []option.RequestOption
}
EnvironmentService contains methods and other services that help with interacting with the Schedo 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 NewEnvironmentService method instead.
func NewEnvironmentService ¶
func NewEnvironmentService(opts ...option.RequestOption) (r *EnvironmentService)
NewEnvironmentService 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 (*EnvironmentService) Delete ¶
func (r *EnvironmentService) Delete(ctx context.Context, id int64, opts ...option.RequestOption) (res *Environment, err error)
Deletes an org environment
func (*EnvironmentService) List ¶
func (r *EnvironmentService) List(ctx context.Context, opts ...option.RequestOption) (res *[]Environment, err error)
Retrieves a list of environments for the current org
func (*EnvironmentService) New ¶
func (r *EnvironmentService) New(ctx context.Context, body EnvironmentNewParams, opts ...option.RequestOption) (res *Environment, err error)
Creates a new org environment
type Job ¶
type Job struct { // ID of the ent. ID int64 `json:"id"` // Blocking holds the value of the "blocking" field. Blocking bool `json:"blocking"` // Command to execute Command string `json:"command"` // Time when the job was created CreatedAt string `json:"created_at"` // Cron expression for job scheduling CronExpression string `json:"cron_expression"` // ID of the user who owns this job EnvironmentID int64 `json:"environment_id"` // Key holds the value of the "key" field. Key string `json:"key"` // Time when the job was last executed LastRunAt string `json:"last_run_at"` // Maximum number of retry attempts MaxRetries int64 `json:"max_retries"` // Additional metadata for the job Metadata map[string]interface{} `json:"metadata"` // Name of the job Name string `json:"name"` // Scheduled time for next execution NextRunAt string `json:"next_run_at"` // Paused holds the value of the "paused" field. Paused bool `json:"paused"` // Number of retry attempts RetryCount int64 `json:"retry_count"` // Current job status (pending, running, completed, failed) Status string `json:"status"` // Maximum execution time before job is terminated Timeout string `json:"timeout"` // Maximum execution time before job is terminated TimeoutSeconds int64 `json:"timeout_seconds"` // Time when the job was last updated UpdatedAt string `json:"updated_at"` JSON jobJSON `json:"-"` }
func (*Job) UnmarshalJSON ¶
type JobDefineParams ¶
type JobDefineParams struct { Name param.Field[string] `json:"name,required"` Schedule param.Field[string] `json:"schedule,required"` Blocking param.Field[bool] `json:"blocking"` Metadata param.Field[map[string]interface{}] `json:"metadata"` TimeoutSeconds param.Field[int64] `json:"timeout_seconds"` }
func (JobDefineParams) MarshalJSON ¶
func (r JobDefineParams) MarshalJSON() (data []byte, err error)
type JobDeleteParams ¶
type JobExecution ¶
type JobExecution struct { // ID of the ent. ID int64 `json:"id"` // Duration holds the value of the "duration" field. Duration int64 `json:"duration"` // Time when execution completed EndTime string `json:"end_time"` // Error message if execution failed Error string `json:"error"` // Exit code of the executed command ExitCode int64 `json:"exit_code"` // JobCode holds the value of the "job_code" field. JobCode string `json:"job_code"` // Output of the executed command Output string `json:"output"` // Time when execution was picked up by a worker PickUpTime string `json:"pick_up_time"` // Time when execution started StartTime string `json:"start_time"` // Execution status (running, completed, failed, skipped, expired) Status string `json:"status"` JSON jobExecutionJSON `json:"-"` }
func (*JobExecution) UnmarshalJSON ¶
func (r *JobExecution) UnmarshalJSON(data []byte) (err error)
type JobExecutionCompleteParams ¶
type JobExecutionCompleteParams struct { Success param.Field[bool] `json:"success,required"` CompleteServerTimeUtc param.Field[int64] `json:"complete_server_time_utc"` Error param.Field[string] `json:"error"` Output param.Field[string] `json:"output"` StartServerTimeUtc param.Field[int64] `json:"start_server_time_utc"` }
func (JobExecutionCompleteParams) MarshalJSON ¶
func (r JobExecutionCompleteParams) MarshalJSON() (data []byte, err error)
type JobExecutionFrame ¶
type JobExecutionFrame struct { // ID of the ent. ID int64 `json:"id"` // Duration holds the value of the "duration" field. Duration int64 `json:"duration"` // Time when execution completed EndTime string `json:"end_time"` // Error message if execution failed Error string `json:"error"` // Exit code of the executed command ExitCode int64 `json:"exit_code"` // JobCode holds the value of the "job_code" field. JobCode string `json:"job_code"` Metadata map[string]interface{} `json:"metadata"` // Output of the executed command Output string `json:"output"` // Time when execution was picked up by a worker PickUpTime string `json:"pick_up_time"` // Time when execution started StartTime string `json:"start_time"` // Execution status (running, completed, failed, skipped, expired) Status string `json:"status"` JSON jobExecutionFrameJSON `json:"-"` }
func (*JobExecutionFrame) UnmarshalJSON ¶
func (r *JobExecutionFrame) UnmarshalJSON(data []byte) (err error)
type JobExecutionListParams ¶
type JobExecutionListParams struct { XAPIEnvironment param.Field[int64] `header:"X-API-ENVIRONMENT,required"` // 1 Cursor param.Field[int64] `query:"cursor"` // 1 Limit param.Field[int64] `query:"limit"` }
func (JobExecutionListParams) URLQuery ¶
func (r JobExecutionListParams) URLQuery() (v url.Values)
URLQuery serializes JobExecutionListParams's query parameters as `url.Values`.
type JobExecutionService ¶
type JobExecutionService struct {
Options []option.RequestOption
}
JobExecutionService contains methods and other services that help with interacting with the Schedo 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 NewJobExecutionService method instead.
func NewJobExecutionService ¶
func NewJobExecutionService(opts ...option.RequestOption) (r *JobExecutionService)
NewJobExecutionService 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 (*JobExecutionService) Complete ¶
func (r *JobExecutionService) Complete(ctx context.Context, executionID int64, body JobExecutionCompleteParams, opts ...option.RequestOption) (res *JobExecution, err error)
Marks pending job execution as complete
func (*JobExecutionService) List ¶
func (r *JobExecutionService) List(ctx context.Context, jobID int64, params JobExecutionListParams, opts ...option.RequestOption) (res *[]JobExecutionFrame, err error)
Returns a list of executions for a job
func (*JobExecutionService) Poll ¶
func (r *JobExecutionService) Poll(ctx context.Context, opts ...option.RequestOption) (res *[]JobExecution, err error)
Returns list of jobs that must be executed
type JobGetParams ¶
type JobListParams ¶
type JobPauseParams ¶
type JobResumeParams ¶
type JobService ¶
type JobService struct {
Options []option.RequestOption
}
JobService contains methods and other services that help with interacting with the Schedo 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 NewJobService method instead.
func NewJobService ¶
func NewJobService(opts ...option.RequestOption) (r *JobService)
NewJobService 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 (*JobService) Define ¶
func (r *JobService) Define(ctx context.Context, body JobDefineParams, opts ...option.RequestOption) (res *Job, err error)
Tries to create a new Job Definition
func (*JobService) Delete ¶
func (r *JobService) Delete(ctx context.Context, jobID int64, body JobDeleteParams, opts ...option.RequestOption) (res *string, err error)
After you delete a job, you can't recover it, but if you have services still running with that job reference, they will re-create and re-schedule a new job automatically.
func (*JobService) Get ¶
func (r *JobService) Get(ctx context.Context, jobID int64, query JobGetParams, opts ...option.RequestOption) (res *Output, err error)
Retrieve a job by its ID
func (*JobService) List ¶
func (r *JobService) List(ctx context.Context, query JobListParams, opts ...option.RequestOption) (res *Job, err error)
List all jobs
func (*JobService) Pause ¶
func (r *JobService) Pause(ctx context.Context, jobID int64, body JobPauseParams, opts ...option.RequestOption) (res *JobExecution, err error)
Temporary stops a job from running
func (*JobService) Resume ¶
func (r *JobService) Resume(ctx context.Context, jobID int64, body JobResumeParams, opts ...option.RequestOption) (res *JobExecution, err error)
Resumes job execution
func (*JobService) Trigger ¶
func (r *JobService) Trigger(ctx context.Context, jobID int64, body JobTriggerParams, opts ...option.RequestOption) (res *JobExecution, err error)
Immediately triggers a job
type JobTriggerParams ¶
type Org ¶
type Org struct { // ID of the ent. ID int64 `json:"id"` // External Clerk organization ID ClerkID string `json:"clerk_id"` // Edges holds the relations/edges for other nodes in the graph. The values are // being populated by the OrgQuery when eager-loading is set. Edges OrgEdges `json:"edges"` // Organization name Name string `json:"name"` // SingleUserOrg holds the value of the "single_user_org" field. SingleUserOrg bool `json:"single_user_org"` JSON orgJSON `json:"-"` }
func (*Org) UnmarshalJSON ¶
type OrgEdges ¶
type OrgEdges struct { // APIKeys holds the value of the api_keys edge. APIKeys []APIKey `json:"api_keys"` JSON orgEdgesJSON `json:"-"` }
func (*OrgEdges) UnmarshalJSON ¶
type OrgService ¶
type OrgService struct {
Options []option.RequestOption
}
OrgService contains methods and other services that help with interacting with the Schedo 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 NewOrgService method instead.
func NewOrgService ¶
func NewOrgService(opts ...option.RequestOption) (r *OrgService)
NewOrgService 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 (*OrgService) Get ¶
func (r *OrgService) Get(ctx context.Context, opts ...option.RequestOption) (res *Org, err error)
Retrieves information about current org
type Output ¶
type Output struct { Job Job `json:"job"` LastRun JobExecution `json:"last_run"` JSON outputJSON `json:"-"` }