client

package
v0.0.0-...-266fb8d Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package client is used by external programs to communicate with Temporal service.

NOTE: DO NOT USE THIS API INSIDE OF ANY WORKFLOW CODE!!!

Index

Constants

View Source
const (
	// TaskReachabilityUnspecified indicates the reachability was not specified
	TaskReachabilityUnspecified = internal.TaskReachabilityUnspecified
	// TaskReachabilityNewWorkflows indicates the Build Id might be used by new workflows
	TaskReachabilityNewWorkflows = internal.TaskReachabilityNewWorkflows
	// TaskReachabilityExistingWorkflows indicates the Build Id might be used by open workflows
	// and/or closed workflows.
	TaskReachabilityExistingWorkflows = internal.TaskReachabilityExistingWorkflows
	// TaskReachabilityOpenWorkflows indicates the Build Id might be used by open workflows.
	TaskReachabilityOpenWorkflows = internal.TaskReachabilityOpenWorkflows
	// TaskReachabilityClosedWorkflows indicates the Build Id might be used by closed workflows
	TaskReachabilityClosedWorkflows = internal.TaskReachabilityClosedWorkflows
)
View Source
const (
	// DefaultHostPort is the host:port which is used if not passed with options.
	DefaultHostPort = internal.LocalHostPort

	// DefaultNamespace is the namespace name which is used if not passed with options.
	DefaultNamespace = internal.DefaultNamespace

	// QueryTypeStackTrace is the build in query type for Client.QueryWorkflow() call. Use this query type to get the call
	// stack of the workflow. The result will be a string encoded in the converter.EncodedValue.
	QueryTypeStackTrace string = internal.QueryTypeStackTrace

	// QueryTypeOpenSessions is the build in query type for Client.QueryWorkflow() call. Use this query type to get all open
	// sessions in the workflow. The result will be a list of SessionInfo encoded in the converter.EncodedValue.
	QueryTypeOpenSessions string = internal.QueryTypeOpenSessions

	// UnversionedBuildID is a stand-in for a Build Id for unversioned Workers.
	// WARNING: Worker versioning is currently experimental
	UnversionedBuildID string = internal.UnversionedBuildID
)

Variables

View Source
var MetricsNopHandler = metrics.NopHandler

MetricsNopHandler is a noop handler that does nothing with the metrics.

Functions

func HistoryFromJSON

func HistoryFromJSON(r io.Reader, options HistoryJSONOptions) (*historypb.History, error)

HistoryFromJSON deserializes history from a reader of JSON bytes. This does not close the reader if it is closeable.

func NewValue

func NewValue(data *commonpb.Payloads) converter.EncodedValue

NewValue creates a new converter.EncodedValue which can be used to decode binary data returned by Temporal. For example: User had Activity.RecordHeartbeat(ctx, "my-heartbeat") and then got response from calling Client.DescribeWorkflowExecution. The response contains binary field PendingActivityInfo.HeartbeatDetails, which can be decoded by using:

var result string // This need to be same type as the one passed to RecordHeartbeat
NewValue(data).Get(&result)

func NewValues

func NewValues(data *commonpb.Payloads) converter.EncodedValues

NewValues creates a new converter.EncodedValues which can be used to decode binary data returned by Temporal. For example: User had Activity.RecordHeartbeat(ctx, "my-heartbeat", 123) and then got response from calling Client.DescribeWorkflowExecution. The response contains binary field PendingActivityInfo.HeartbeatDetails, which can be decoded by using:

var result1 string
var result2 int // These need to be same type as those arguments passed to RecordHeartbeat
NewValues(data).Get(&result1, &result2)

func NewWorkflowServiceProxyServer

func NewWorkflowServiceProxyServer(options WorkflowServiceProxyOptions) (workflowservice.WorkflowServiceServer, error)

NewWorkflowServiceProxyServer creates a WorkflowServiceServer suitable for registering with a GRPC Server. Requests will be forwarded to the passed in WorkflowService Client. GRPC interceptors can be added on the Server or Client to adjust requests and responses.

Types

type BuildIDOpAddNewCompatibleVersion

type BuildIDOpAddNewCompatibleVersion = internal.BuildIDOpAddNewCompatibleVersion

BuildIDOpAddNewCompatibleVersion is an operation for UpdateWorkerBuildIdCompatibilityOptions to add a new BuildID to an existing compatible set. WARNING: Worker versioning is currently experimental

type BuildIDOpAddNewIDInNewDefaultSet

type BuildIDOpAddNewIDInNewDefaultSet = internal.BuildIDOpAddNewIDInNewDefaultSet

BuildIDOpAddNewIDInNewDefaultSet is an operation for UpdateWorkerBuildIdCompatibilityOptions to add a new BuildID in a new default set. WARNING: Worker versioning is currently experimental

type BuildIDOpPromoteIDWithinSet

type BuildIDOpPromoteIDWithinSet = internal.BuildIDOpPromoteIDWithinSet

BuildIDOpPromoteIDWithinSet is an operation for UpdateWorkerBuildIdCompatibilityOptions to promote a BuildID within a set to be the default. WARNING: Worker versioning is currently experimental

type BuildIDOpPromoteSet

type BuildIDOpPromoteSet = internal.BuildIDOpPromoteSet

BuildIDOpPromoteSet is an operation for UpdateWorkerBuildIdCompatibilityOptions to promote a set to be the default set by targeting an existing BuildID. WARNING: Worker versioning is currently experimental

type BuildIDReachability

type BuildIDReachability = internal.BuildIDReachability

BuildIDReachability describes the reachability of a buildID WARNING: Worker versioning is currently experimental

type CheckHealthRequest

type CheckHealthRequest = internal.CheckHealthRequest

CheckHealthRequest is a request for Client.CheckHealth.

type CheckHealthResponse

type CheckHealthResponse = internal.CheckHealthResponse

CheckHealthResponse is a response for Client.CheckHealth.

type Client

type Client interface {
	// ExecuteWorkflow starts a workflow execution and return a WorkflowRun instance and error
	// The user can use this to start using a function or workflow type name.
	// Either by
	//     ExecuteWorkflow(ctx, options, "workflowTypeName", arg1, arg2, arg3)
	//     or
	//     ExecuteWorkflow(ctx, options, workflowExecuteFn, arg1, arg2, arg3)
	// The errors it can return:
	//  - serviceerror.NamespaceNotFound, if namespace does not exist
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//
	// WorkflowRun has 3 methods:
	//  - GetWorkflowID() string: which return the started workflow ID
	//  - GetRunID() string: which return the first started workflow run ID (please see below)
	//  - Get(ctx context.Context, valuePtr interface{}) error: which will fill the workflow
	//    execution result to valuePtr, if workflow execution is a success, or return corresponding
	//    error. This is a blocking API.
	// NOTE: if the started workflow return ContinueAsNewError during the workflow execution, the
	// return result of GetRunID() will be the started workflow run ID, not the new run ID caused by ContinueAsNewError,
	// however, Get(ctx context.Context, valuePtr interface{}) will return result from the run which did not return ContinueAsNewError.
	// Say ExecuteWorkflow started a workflow, in its first run, has run ID "run ID 1", and returned ContinueAsNewError,
	// the second run has run ID "run ID 2" and return some result other than ContinueAsNewError:
	// GetRunID() will always return "run ID 1" and  Get(ctx context.Context, valuePtr interface{}) will return the result of second run.
	// NOTE: DO NOT USE THIS API INSIDE A WORKFLOW, USE workflow.ExecuteChildWorkflow instead
	ExecuteWorkflow(ctx context.Context, options StartWorkflowOptions, workflow interface{}, args ...interface{}) (WorkflowRun, error)

	// GetWorkflow retrieves a workflow execution and return a WorkflowRun instance (described above)
	// - workflow ID of the workflow.
	// - runID can be default(empty string). if empty string then it will pick the last running execution of that workflow ID.
	//
	// WorkflowRun has 2 methods:
	//  - GetRunID() string: which return the first started workflow run ID (please see below)
	//  - Get(ctx context.Context, valuePtr interface{}) error: which will fill the workflow
	//    execution result to valuePtr, if workflow execution is a success, or return corresponding
	//    error. This is a blocking API.
	// If workflow not found, the Get() will return serviceerror.NotFound.
	// NOTE: if the started workflow return ContinueAsNewError during the workflow execution, the
	// return result of GetRunID() will be the started workflow run ID, not the new run ID caused by ContinueAsNewError,
	// however, Get(ctx context.Context, valuePtr interface{}) will return result from the run which did not return ContinueAsNewError.
	// Say ExecuteWorkflow started a workflow, in its first run, has run ID "run ID 1", and returned ContinueAsNewError,
	// the second run has run ID "run ID 2" and return some result other than ContinueAsNewError:
	// GetRunID() will always return "run ID 1" and  Get(ctx context.Context, valuePtr interface{}) will return the result of second run.
	GetWorkflow(ctx context.Context, workflowID string, runID string) WorkflowRun

	// SignalWorkflow sends a signals to a workflow in execution
	// - workflow ID of the workflow.
	// - runID can be default(empty string). if empty string then it will pick the running execution of that workflow ID.
	// - signalName name to identify the signal.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	SignalWorkflow(ctx context.Context, workflowID string, runID string, signalName string, arg interface{}) error

	// SignalWithStartWorkflow sends a signal to a running workflow.
	// If the workflow is not running or not found, it starts the workflow and then sends the signal in transaction.
	// - workflowID, signalName, signalArg are same as SignalWorkflow's parameters
	// - options, workflow, workflowArgs are same as StartWorkflow's parameters
	// - the workflowID parameter is used instead of options.ID. If the latter is present, it must match the workflowID.
	// Note: options.WorkflowIDReusePolicy is default to AllowDuplicate in this API.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	SignalWithStartWorkflow(ctx context.Context, workflowID string, signalName string, signalArg interface{},
		options StartWorkflowOptions, workflow interface{}, workflowArgs ...interface{}) (WorkflowRun, error)

	// CancelWorkflow request cancellation of a workflow in execution. Cancellation request closes the channel
	// returned by the workflow.Context.Done() of the workflow that is target of the request.
	// - workflow ID of the workflow.
	// - runID can be default(empty string). if empty string then it will pick the currently running execution of that workflow ID.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	CancelWorkflow(ctx context.Context, workflowID string, runID string) error

	// TerminateWorkflow terminates a workflow execution. Terminate stops a workflow execution immediately without
	// letting the workflow to perform any cleanup
	// workflowID is required, other parameters are optional.
	// - workflow ID of the workflow.
	// - runID can be default(empty string). if empty string then it will pick the running execution of that workflow ID.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	TerminateWorkflow(ctx context.Context, workflowID string, runID string, reason string, details ...interface{}) error

	// GetWorkflowHistory gets history events of a particular workflow
	// - workflow ID of the workflow.
	// - runID can be default(empty string). if empty string then it will pick the last running execution of that workflow ID.
	// - whether use long poll for tracking new events: when the workflow is running, there can be new events generated during iteration
	//    of HistoryEventIterator, if isLongPoll == true, then iterator will do long poll, tracking new history event, i.e. the iteration
	//   will not be finished until workflow is finished; if isLongPoll == false, then iterator will only return current history events.
	// - whether return all history events or just the last event, which contains the workflow execution end result
	// Example:-
	//  To iterate all events,
	//     iter := GetWorkflowHistory(ctx, workflowID, runID, isLongPoll, filterType)
	//    events := []*shared.HistoryEvent{}
	//    for iter.HasNext() {
	//      event, err := iter.Next()
	//      if err != nil {
	//        return err
	//      }
	//      events = append(events, event)
	//    }
	GetWorkflowHistory(ctx context.Context, workflowID string, runID string, isLongPoll bool, filterType enumspb.HistoryEventFilterType) HistoryEventIterator

	// CompleteActivity reports activity completed.
	// activity Execute method can return activity.ErrResultPending to
	// indicate the activity is not completed when it's Execute method returns. In that case, this CompleteActivity() method
	// should be called when that activity is completed with the actual result and error. If err is nil, activity task
	// completed event will be reported; if err is CanceledError, activity task canceled event will be reported; otherwise,
	// activity task failed event will be reported.
	// An activity implementation should use GetActivityInfo(ctx).TaskToken function to get task token to use for completion.
	// Example:-
	//  To complete with a result.
	//    CompleteActivity(token, "Done", nil)
	//  To fail the activity with an error.
	//      CompleteActivity(token, nil, temporal.NewApplicationError("reason", details)
	// The activity can fail with below errors ApplicationError, TimeoutError, CanceledError.
	CompleteActivity(ctx context.Context, taskToken []byte, result interface{}, err error) error

	// CompleteActivityByID reports activity completed.
	// Similar to CompleteActivity, but may save user from keeping taskToken info.
	// activity Execute method can return activity.ErrResultPending to
	// indicate the activity is not completed when it's Execute method returns. In that case, this CompleteActivityById() method
	// should be called when that activity is completed with the actual result and error. If err is nil, activity task
	// completed event will be reported; if err is CanceledError, activity task canceled event will be reported; otherwise,
	// activity task failed event will be reported.
	// An activity implementation should use activityID provided in ActivityOption to use for completion.
	// namespace name, workflowID, activityID are required, runID is optional.
	// The errors it can return:
	//  - ApplicationError
	//  - TimeoutError
	//  - CanceledError
	CompleteActivityByID(ctx context.Context, namespace, workflowID, runID, activityID string, result interface{}, err error) error

	// RecordActivityHeartbeat records heartbeat for an activity.
	// taskToken - is the value of the binary "TaskToken" field of the "ActivityInfo" struct retrieved inside the activity.
	// details - is the progress you want to record along with heart beat for this activity.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	RecordActivityHeartbeat(ctx context.Context, taskToken []byte, details ...interface{}) error

	// RecordActivityHeartbeatByID records heartbeat for an activity.
	// details - is the progress you want to record along with heart beat for this activity.
	// The errors it can return:
	//  - serviceerror.NotFound
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	RecordActivityHeartbeatByID(ctx context.Context, namespace, workflowID, runID, activityID string, details ...interface{}) error

	// ListClosedWorkflow gets closed workflow executions based on request filters.
	// Retrieved workflow executions are sorted by close time in descending order.
	// Note: heavy usage of this API may cause huge persistence pressure.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NamespaceNotFound
	ListClosedWorkflow(ctx context.Context, request *workflowservice.ListClosedWorkflowExecutionsRequest) (*workflowservice.ListClosedWorkflowExecutionsResponse, error)

	// ListOpenWorkflow gets open workflow executions based on request filters.
	// Retrieved workflow executions are sorted by start time in descending order.
	// Note: heavy usage of this API may cause huge persistence pressure.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NamespaceNotFound
	ListOpenWorkflow(ctx context.Context, request *workflowservice.ListOpenWorkflowExecutionsRequest) (*workflowservice.ListOpenWorkflowExecutionsResponse, error)

	// ListWorkflow gets workflow executions based on query. The query is basically the SQL WHERE clause, examples:
	//  - "(WorkflowID = 'wid1' or (WorkflowType = 'type2' and WorkflowID = 'wid2'))".
	//  - "CloseTime between '2019-08-27T15:04:05+00:00' and '2019-08-28T15:04:05+00:00'".
	//  - to list only open workflow use "CloseTime is null"
	// For supported operations on different server versions see https://docs.temporal.io/visibility.
	// Retrieved workflow executions are sorted by StartTime in descending order when list open workflow,
	// and sorted by CloseTime in descending order for other queries.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	ListWorkflow(ctx context.Context, request *workflowservice.ListWorkflowExecutionsRequest) (*workflowservice.ListWorkflowExecutionsResponse, error)

	// ListArchivedWorkflow gets archived workflow executions based on query. This API will return BadRequest if Temporal
	// cluster or target namespace is not configured for visibility archival or read is not enabled. The query is basically the SQL WHERE clause.
	// However, different visibility archivers have different limitations on the query. Please check the documentation of the visibility archiver used
	// by your namespace to see what kind of queries are accept and whether retrieved workflow executions are ordered or not.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	ListArchivedWorkflow(ctx context.Context, request *workflowservice.ListArchivedWorkflowExecutionsRequest) (*workflowservice.ListArchivedWorkflowExecutionsResponse, error)

	// ScanWorkflow gets workflow executions based on query. The query is basically the SQL WHERE clause
	// (see ListWorkflow for query examples).
	// For supported operations on different server versions see https://docs.temporal.io/visibility.
	// ScanWorkflow should be used when retrieving large amount of workflows and order is not needed.
	// It will use more resources than ListWorkflow, but will be several times faster
	// when retrieving millions of workflows.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	ScanWorkflow(ctx context.Context, request *workflowservice.ScanWorkflowExecutionsRequest) (*workflowservice.ScanWorkflowExecutionsResponse, error)

	// CountWorkflow gets number of workflow executions based on query. The query is basically the SQL WHERE clause
	// (see ListWorkflow for query examples).
	// For supported operations on different server versions see https://docs.temporal.io/visibility.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	CountWorkflow(ctx context.Context, request *workflowservice.CountWorkflowExecutionsRequest) (*workflowservice.CountWorkflowExecutionsResponse, error)

	// GetSearchAttributes returns valid search attributes keys and value types.
	// The search attributes can be used in query of List/Scan/Count APIs. Adding new search attributes requires temporal server
	// to update dynamic config ValidSearchAttributes.
	GetSearchAttributes(ctx context.Context) (*workflowservice.GetSearchAttributesResponse, error)

	// QueryWorkflow queries a given workflow's last execution and returns the query result synchronously. Parameter workflowID
	// and queryType are required, other parameters are optional. The workflowID and runID (optional) identify the
	// target workflow execution that this query will be send to. If runID is not specified (empty string), server will
	// use the currently running execution of that workflowID. The queryType specifies the type of query you want to
	// run. By default, temporal supports "__stack_trace" as a standard query type, which will return string value
	// representing the call stack of the target workflow. The target workflow could also setup different query handler
	// to handle custom query types.
	// See comments at workflow.SetQueryHandler(ctx Context, queryType string, handler interface{}) for more details
	// on how to setup query handler within the target workflow.
	// - workflowID is required.
	// - runID can be default(empty string). if empty string then it will pick the running execution of that workflow ID.
	// - queryType is the type of the query.
	// - args... are the optional query parameters.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NotFound
	//  - serviceerror.QueryFailed
	QueryWorkflow(ctx context.Context, workflowID string, runID string, queryType string, args ...interface{}) (converter.EncodedValue, error)

	// QueryWorkflowWithOptions queries a given workflow execution and returns the query result synchronously.
	// See QueryWorkflowWithOptionsRequest and QueryWorkflowWithOptionsResponse for more information.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NotFound
	//  - serviceerror.QueryFailed
	QueryWorkflowWithOptions(ctx context.Context, request *QueryWorkflowWithOptionsRequest) (*QueryWorkflowWithOptionsResponse, error)

	// DescribeWorkflowExecution returns information about the specified workflow execution.
	// - runID can be default(empty string). if empty string then it will pick the last running execution of that workflow ID.
	//
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NotFound
	DescribeWorkflowExecution(ctx context.Context, workflowID, runID string) (*workflowservice.DescribeWorkflowExecutionResponse, error)

	// DescribeTaskQueue returns information about the target taskqueue, right now this API returns the
	// pollers which polled this taskqueue in last few minutes.
	// The errors it can return:
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	//  - serviceerror.NotFound
	DescribeTaskQueue(ctx context.Context, taskqueue string, taskqueueType enumspb.TaskQueueType) (*workflowservice.DescribeTaskQueueResponse, error)

	// ResetWorkflowExecution resets an existing workflow execution to WorkflowTaskFinishEventId(exclusive).
	// And it will immediately terminating the current execution instance.
	// RequestId is used to deduplicate requests. It will be autogenerated if not set.
	ResetWorkflowExecution(ctx context.Context, request *workflowservice.ResetWorkflowExecutionRequest) (*workflowservice.ResetWorkflowExecutionResponse, error)

	// UpdateWorkerBuildIdCompatibility
	// Allows you to update the worker-build-id based version sets for a particular task queue. This is used in
	// conjunction with workers who specify their build id and thus opt into the feature.
	// WARNING: Worker versioning is currently experimental
	UpdateWorkerBuildIdCompatibility(ctx context.Context, options *UpdateWorkerBuildIdCompatibilityOptions) error

	// GetWorkerBuildIdCompatibility
	// Returns the worker-build-id based version sets for a particular task queue.
	// WARNING: Worker versioning is currently experimental
	GetWorkerBuildIdCompatibility(ctx context.Context, options *GetWorkerBuildIdCompatibilityOptions) (*WorkerBuildIDVersionSets, error)

	// GetWorkerTaskReachability
	// Returns which versions are is still in use by open or closed workflows
	// WARNING: Worker versioning is currently experimental
	GetWorkerTaskReachability(ctx context.Context, options *GetWorkerTaskReachabilityOptions) (*WorkerTaskReachability, error)

	// CheckHealth performs a server health check using the gRPC health check
	// API. If the check fails, an error is returned.
	CheckHealth(ctx context.Context, request *CheckHealthRequest) (*CheckHealthResponse, error)

	// UpdateWorkflow issues an update request to the specified
	// workflow execution and returns the result synchronously. Calling this
	// function is equivalent to calling UpdateWorkflowOptions with
	// the same arguments and indicating that the RPC call should wait for
	// completion of the update process.
	// NOTE: Experimental
	UpdateWorkflow(ctx context.Context, workflowID string, workflowRunID string, updateName string, args ...interface{}) (WorkflowUpdateHandle, error)

	// UpdateWorkflowWithOptions issues an update request to the
	// specified workflow execution and returns a handle to the update that
	// is running in in parallel with the calling thread. Errors returned
	// from the server will be exposed through the return value of
	// WorkflowUpdateHandle.Get(). Errors that occur before the
	// update is requested (e.g. if the required workflow ID field is
	// missing from the UpdateWorkflowWithOptionsRequest) are returned
	// directly from this function call.
	// NOTE: Experimental
	UpdateWorkflowWithOptions(ctx context.Context, request *UpdateWorkflowWithOptionsRequest) (WorkflowUpdateHandle, error)

	// GetWorkflowUpdateHandle creates a handle to the referenced update
	// which can be polled for an outcome. Note that runID is optional and
	// if not specified the most recent runID will be used.
	// NOTE: Experimental
	GetWorkflowUpdateHandle(ref GetWorkflowUpdateHandleOptions) WorkflowUpdateHandle

	// WorkflowService provides access to the underlying gRPC service. This should only be used for advanced use cases
	// that cannot be accomplished via other Client methods. Unlike calls to other Client methods, calls directly to the
	// service are not configured with internal semantics such as automatic retries.
	WorkflowService() workflowservice.WorkflowServiceClient

	// OperatorService creates a new operator service client with the same gRPC connection as this client.
	OperatorService() operatorservice.OperatorServiceClient

	// Schedule creates a new shedule client with the same gRPC connection as this client.
	ScheduleClient() ScheduleClient

	// Close client and clean up underlying resources.
	//
	// If this client was created via NewClientFromExisting or this client has
	// been used in that call, Close() on may not necessarily close the
	// underlying connection. Only the final close of all existing clients will
	// close the underlying connection.
	Close()
}

Client is the client for starting and getting information about a workflow executions as well as completing activities asynchronously.

func Dial

func Dial(options Options) (Client, error)

Dial creates an instance of a workflow client. This will attempt to connect to the server eagerly and will return an error if the server is not available.

func NewClient deprecated

func NewClient(options Options) (Client, error)

NewClient creates an instance of a workflow client. This will attempt to connect to the server eagerly and will return an error if the server is not available.

Deprecated: Use Dial or NewLazyClient instead.

func NewClientFromExisting

func NewClientFromExisting(existingClient Client, options Options) (Client, error)

NewClientFromExisting creates a new client using the same connection as the existing client. This means all options.ConnectionOptions are ignored and options.HostPort is ignored. The existing client must have been created from this package and cannot be wrapped. Currently, this always attempts an eager connection even if the existing client was created with NewLazyClient and has not made any calls yet.

Close() on the resulting client may not necessarily close the underlying connection if there are any other clients using the connection. All clients associated with the existing client must call Close() and only the last one actually performs the connection close.

func NewLazyClient

func NewLazyClient(options Options) (Client, error)

NewLazyClient creates an instance of a workflow client. Unlike Dial, this will not eagerly connect to the server.

type ConnectionOptions

type ConnectionOptions = internal.ConnectionOptions

ConnectionOptions are optional parameters that can be specified in ClientOptions

type GetWorkerBuildIdCompatibilityOptions

type GetWorkerBuildIdCompatibilityOptions = internal.GetWorkerBuildIdCompatibilityOptions

GetWorkerBuildIdCompatibilityOptions is the input to Client.GetWorkerBuildIdCompatibility. WARNING: Worker versioning is currently experimental

type GetWorkerTaskReachabilityOptions

type GetWorkerTaskReachabilityOptions = internal.GetWorkerTaskReachabilityOptions

GetWorkerTaskReachabilityOptions is the input to Client.GetWorkerTaskReachability. WARNING: Worker versioning is currently experimental

type GetWorkflowUpdateHandleOptions

type GetWorkflowUpdateHandleOptions = internal.GetWorkflowUpdateHandleOptions

GetWorkflowUpdateHandleOptions encapsulates the parameters needed to unambiguously refer to a Workflow Update NOTE: Experimental

type HistoryEventIterator

type HistoryEventIterator = internal.HistoryEventIterator

HistoryEventIterator is a iterator which can return history events.

type HistoryJSONOptions

type HistoryJSONOptions struct {
	// LastEventID, if set, will only load history up to this ID (inclusive).
	LastEventID int64
}

HistoryJSONOptions are options for HistoryFromJSON.

type MetricsCounter

type MetricsCounter = metrics.Counter

MetricsCounter is an ever-increasing counter.

type MetricsGauge

type MetricsGauge = metrics.Gauge

MetricsGauge can be set to any float.

type MetricsHandler

type MetricsHandler = metrics.Handler

MetricsHandler is a handler for metrics emitted by the SDK. This interface is intentionally limited to only what the SDK needs to emit metrics and is not built to be a general purpose metrics abstraction for all uses.

A common implementation is at go.temporal.io/sdk/contrib/tally.NewMetricsHandler. The MetricsNopHandler is a noop handler. A handler may implement "Unwrap() client.MetricsHandler" if it wraps a handler.

type MetricsTimer

type MetricsTimer = metrics.Timer

MetricsTimer records time durations.

type NamespaceClient

type NamespaceClient interface {
	// Register a namespace with temporal server
	// The errors it can throw:
	//  - NamespaceAlreadyExistsError
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	Register(ctx context.Context, request *workflowservice.RegisterNamespaceRequest) error

	// Describe a namespace. The namespace has 3 part of information
	// NamespaceInfo - Which has Name, Status, Description, Owner Email
	// NamespaceConfiguration - Configuration like Workflow Execution Retention Period In Days, Whether to emit metrics.
	// ReplicationConfiguration - replication config like clusters and active cluster name
	// The errors it can throw:
	//  - serviceerror.NamespaceNotFound
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	Describe(ctx context.Context, name string) (*workflowservice.DescribeNamespaceResponse, error)

	// Update a namespace.
	// The errors it can throw:
	//  - serviceerror.NamespaceNotFound
	//  - serviceerror.InvalidArgument
	//  - serviceerror.Internal
	//  - serviceerror.Unavailable
	Update(ctx context.Context, request *workflowservice.UpdateNamespaceRequest) error

	// Close client and clean up underlying resources.
	Close()
}

NamespaceClient is the client for managing operations on the namespace. CLI, tools, ... can use this layer to manager operations on namespace.

func NewNamespaceClient

func NewNamespaceClient(options Options) (NamespaceClient, error)

NewNamespaceClient creates an instance of a namespace client, to manage lifecycle of namespaces. This will not attempt to connect to the server eagerly and therefore may not fail for an unreachable server until a call is made. grpc.WithBlock can be passed as a gRPC dial option to connection options to eagerly connect.

type Options

type Options = internal.ClientOptions

Options are optional parameters for Client creation.

type QueryWorkflowWithOptionsRequest

type QueryWorkflowWithOptionsRequest = internal.QueryWorkflowWithOptionsRequest

QueryWorkflowWithOptionsRequest defines the request to QueryWorkflowWithOptions.

type QueryWorkflowWithOptionsResponse

type QueryWorkflowWithOptionsResponse = internal.QueryWorkflowWithOptionsResponse

QueryWorkflowWithOptionsResponse defines the response to QueryWorkflowWithOptions.

type Schedule

type Schedule = internal.Schedule

Schedule describes a created schedule.

type ScheduleAction

type ScheduleAction = internal.ScheduleAction

ScheduleAction is the interface for all actions a schedule can take.

type ScheduleActionResult

type ScheduleActionResult = internal.ScheduleActionResult

ScheduleActionResult describes when a schedule action took place.

type ScheduleBackfill

type ScheduleBackfill = internal.ScheduleBackfill

ScheduleBackfill desribes a time periods and policy and takes Actions as if that time passed by right now, all at once.

type ScheduleBackfillOptions

type ScheduleBackfillOptions = internal.ScheduleBackfillOptions

ScheduleBackfillOptions configure the parameters for backfilling a schedule.

type ScheduleCalendarSpec

type ScheduleCalendarSpec = internal.ScheduleCalendarSpec

ScheduleCalendarSpec is an event specification relative to the calendar.

type ScheduleClient

type ScheduleClient = internal.ScheduleClient

ScheduleClient is the interface with the server to create and get handles to schedules.

type ScheduleDescription

type ScheduleDescription = internal.ScheduleDescription

ScheduleDescription describes the current Schedule details from ScheduleHandle.Describe.

type ScheduleHandle

type ScheduleHandle = internal.ScheduleHandle

ScheduleHandle represents a created schedule.

type ScheduleIntervalSpec

type ScheduleIntervalSpec = internal.ScheduleIntervalSpec

ScheduleIntervalSpec describes periods a schedules action should occur.

type ScheduleListEntry

type ScheduleListEntry = internal.ScheduleListEntry

ScheduleListEntry is a result from ScheduleListEntry.

type ScheduleListIterator

type ScheduleListIterator = internal.ScheduleListIterator

ScheduleListIterator is a iterator which can return created schedules.

type ScheduleListOptions

type ScheduleListOptions = internal.ScheduleListOptions

ScheduleListOptions are configuration parameters for listing schedules.

type ScheduleOptions

type ScheduleOptions = internal.ScheduleOptions

ScheduleOptions configuration parameters for creating a schedule.

type SchedulePauseOptions

type SchedulePauseOptions = internal.SchedulePauseOptions

SchedulePauseOptions configure the parameters for pausing a schedule.

type SchedulePolicies

type SchedulePolicies = internal.SchedulePolicies

SchedulePolicies describes the current polcies of a schedule.

type ScheduleRange

type ScheduleRange = internal.ScheduleRange

ScheduleRange represents a set of integer values.

type ScheduleSpec

type ScheduleSpec = internal.ScheduleSpec

ScheduleSpec describes when a schedules action should occur.

type ScheduleState

type ScheduleState = internal.ScheduleState

ScheduleState describes the current state of a schedule.

type ScheduleTriggerOptions

type ScheduleTriggerOptions = internal.ScheduleTriggerOptions

ScheduleTriggerOptions configure the parameters for triggering a schedule.

type ScheduleUnpauseOptions

type ScheduleUnpauseOptions = internal.ScheduleUnpauseOptions

ScheduleUnpauseOptions configure the parameters for unpausing a schedule.

type ScheduleUpdate

type ScheduleUpdate = internal.ScheduleUpdate

ScheduleUpdate describes the desired new schedule from ScheduleHandle.Update.

type ScheduleUpdateInput

type ScheduleUpdateInput = internal.ScheduleUpdateInput

ScheduleUpdateInput describes the current state of the schedule to be updated.

type ScheduleUpdateOptions

type ScheduleUpdateOptions = internal.ScheduleUpdateOptions

ScheduleUpdateOptions are configuration parameters for updating a schedule.

type ScheduleWorkflowAction

type ScheduleWorkflowAction = internal.ScheduleWorkflowAction

ScheduleWorkflowAction is the implementation of ScheduleAction to start a workflow.

type ScheduleWorkflowExecution

type ScheduleWorkflowExecution = internal.ScheduleWorkflowExecution

ScheduleWorkflowExecution contains details on a workflows execution stared by a schedule.

type StartWorkflowOptions

type StartWorkflowOptions = internal.StartWorkflowOptions

StartWorkflowOptions configuration parameters for starting a workflow execution.

type TaskQueueReachability

type TaskQueueReachability = internal.TaskQueueReachability

TaskQueueReachability Describes how the Build ID may be reachable from the task queue. WARNING: Worker versioning is currently experimental

type TaskReachability

type TaskReachability = internal.TaskReachability

TaskReachability specifies which category of tasks may reach a worker on a versioned task queue. Used both in a reachability query and its response. WARNING: Worker versioning is currently experimental

type UpdateWorkerBuildIdCompatibilityOptions

type UpdateWorkerBuildIdCompatibilityOptions = internal.UpdateWorkerBuildIdCompatibilityOptions

UpdateWorkerBuildIdCompatibilityOptions is the input to Client.UpdateWorkerBuildIdCompatibility. WARNING: Worker versioning is currently experimental

type UpdateWorkflowWithOptionsRequest

type UpdateWorkflowWithOptionsRequest = internal.UpdateWorkflowWithOptionsRequest

UpdateWorkflowWithOptionsRequest encapsulates the parameters for sending an update to a workflow execution. WARNING: Worker versioning is currently experimental

type WorkerBuildIDVersionSets

type WorkerBuildIDVersionSets = internal.WorkerBuildIDVersionSets

WorkerBuildIDVersionSets is the response for Client.GetWorkerBuildIdCompatibility. WARNING: Worker versioning is currently experimental

type WorkerTaskReachability

type WorkerTaskReachability = internal.WorkerTaskReachability

WorkerTaskReachability is the response for Client.GetWorkerTaskReachability. WARNING: Worker versioning is currently experimental

type WorkflowRun

type WorkflowRun = internal.WorkflowRun

WorkflowRun represents a started non child workflow.

type WorkflowRunGetOptions

type WorkflowRunGetOptions = internal.WorkflowRunGetOptions

WorkflowRunGetOptions are options for WorkflowRun.GetWithOptions.

type WorkflowServiceProxyOptions

type WorkflowServiceProxyOptions struct {
	Client workflowservice.WorkflowServiceClient
}

WorkflowServiceProxyOptions provides options for configuring a WorkflowServiceProxyServer. Client is a WorkflowServiceClient used to forward requests received by the server to the Temporal Frontend.

type WorkflowUpdateHandle

type WorkflowUpdateHandle = internal.WorkflowUpdateHandle

WorkflowUpdateHandle represents a running or completed workflow execution update and gives the holder access to the outcome of the same. NOTE: Experimental

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL