Documentation ¶
Index ¶
- Constants
- Variables
- func GetValidator() *validator.Validate
- func ResolveRetryPolicies(tasks []TryTaskCatch, retries map[string]*RetryPolicy) error
- type AsyncAPIArguments
- type AsyncAPIMessageConsumptionPolicy
- type AsyncAPIOutboundMessage
- type AsyncAPIServer
- type AsyncAPISubscription
- type AuthenticationPolicy
- type BackoffDefinition
- type BasicAuthenticationPolicy
- type BearerAuthenticationPolicy
- type CallAsyncAPI
- type CallFunction
- type CallGRPC
- type CallHTTP
- type CallOpenAPI
- type Catalog
- type Container
- type Correlation
- type DigestAuthenticationPolicy
- type DoTask
- type Document
- type Duration
- type DurationExpression
- type DurationInline
- type EmitEventDefinition
- type EmitTask
- type EmitTaskConfiguration
- type Endpoint
- type EndpointConfiguration
- type Error
- type ErrorFilter
- type EventConsumptionStrategy
- type EventConsumptionUntil
- type EventFilter
- type EventProperties
- type Export
- type Extension
- type ExtensionItem
- type ExtensionList
- type ExternalResource
- type FlowDirective
- type FlowDirectiveType
- type ForTask
- type ForTaskConfiguration
- type ForkTask
- type ForkTaskConfiguration
- type GRPCArguments
- type GRPCService
- type HTTPArguments
- type Input
- type JsonPointerOrRuntimeExpression
- type ListenTask
- type ListenTaskConfiguration
- type LiteralUri
- type LiteralUriTemplate
- type NamedTaskMap
- type OAuth2AutenthicationDataClient
- type OAuth2AuthenticationDataGrant
- type OAuth2AuthenticationPolicy
- type OAuth2AuthenticationProperties
- type OAuth2Endpoints
- type OAuth2Token
- type OAuth2TokenRequest
- type OAuth2TokenRequestEncodingType
- type OAuthClientAuthenticationType
- type ObjectOrRuntimeExpr
- type ObjectOrString
- type OpenAPIArguments
- type OpenIdConnectAuthenticationPolicy
- type Output
- type RaiseTask
- type RaiseTaskConfiguration
- type RaiseTaskError
- type ReferenceableAuthenticationPolicy
- type RetryBackoff
- type RetryLimit
- type RetryLimitAttempt
- type RetryPolicy
- type RetryPolicyJitter
- type RunTask
- type RunTaskConfiguration
- type RunWorkflow
- type RuntimeExpression
- type Schedule
- type Schema
- type Script
- type SetTask
- type Shell
- type StringOrRuntimeExpr
- type SwitchCase
- type SwitchItem
- type SwitchTask
- type Task
- type TaskBase
- type TaskItem
- func (ti *TaskItem) AsCallAsyncAPITask() *CallAsyncAPI
- func (ti *TaskItem) AsCallFunctionTask() *CallFunction
- func (ti *TaskItem) AsCallGRPCTask() *CallGRPC
- func (ti *TaskItem) AsCallHTTPTask() *CallHTTP
- func (ti *TaskItem) AsCallOpenAPITask() *CallOpenAPI
- func (ti *TaskItem) AsDoTask() *DoTask
- func (ti *TaskItem) AsEmitTask() *EmitTask
- func (ti *TaskItem) AsForTask() *ForTask
- func (ti *TaskItem) AsForkTask() *ForkTask
- func (ti *TaskItem) AsListenTask() *ListenTask
- func (ti *TaskItem) AsRaiseTask() *RaiseTask
- func (ti *TaskItem) AsRunTask() *RunTask
- func (ti *TaskItem) AsSetTask() *SetTask
- func (ti *TaskItem) AsSwitchTask() *SwitchTask
- func (ti *TaskItem) AsTask() *TaskBase
- func (ti *TaskItem) AsTryTask() *TryTask
- func (ti *TaskItem) AsWaitTask() *WaitTask
- func (ti *TaskItem) MarshalJSON() ([]byte, error)
- type TaskList
- type Timeout
- type TimeoutOrReference
- type TryTask
- type TryTaskCatch
- type URITemplate
- type URITemplateOrRuntimeExpr
- type Use
- type WaitTask
- type Workflow
- type WorkflowBuilder
- func (wb *WorkflowBuilder) AddTask(key string, task Task) *WorkflowBuilder
- func (wb *WorkflowBuilder) Build() *Workflow
- func (wb *WorkflowBuilder) SetDocument(dsl, namespace, name, version string) *WorkflowBuilder
- func (wb *WorkflowBuilder) SetInput(input *Input) *WorkflowBuilder
- func (wb *WorkflowBuilder) SetOutput(output *Output) *WorkflowBuilder
- func (wb *WorkflowBuilder) SetSchedule(schedule *Schedule) *WorkflowBuilder
- func (wb *WorkflowBuilder) SetTimeout(timeout *TimeoutOrReference) *WorkflowBuilder
- func (wb *WorkflowBuilder) SetUse(use *Use) *WorkflowBuilder
- func (wb *WorkflowBuilder) ToJSON() ([]byte, error)
- func (wb *WorkflowBuilder) ToYAML() ([]byte, error)
Constants ¶
const ( OAuth2DefaultTokenURI = "/oauth2/token" // #nosec G101 OAuth2DefaultRevokeURI = "/oauth2/revoke" OAuth2DefaultIntrospectionURI = "/oauth2/introspect" )
const DefaultSchema = "json"
Variables ¶
var JSONPointerPattern = regexp.MustCompile(`^(/([^/~]|~[01])*)*$`)
JSONPointerPattern validates JSON Pointers as per RFC 6901.
var LiteralUriPattern = regexp.MustCompile(`^[A-Za-z][A-Za-z0-9+\-.]*://[^{}\s]+$`)
LiteralUriPattern matches standard URIs without placeholders.
var LiteralUriTemplatePattern = regexp.MustCompile(`^[A-Za-z][A-Za-z0-9+\-.]*://.*\{.*}.*$`)
LiteralUriTemplatePattern matches URIs with placeholders.
var NewRuntimeExpression = NewExpr
NewRuntimeExpression is an alias for NewExpr
Functions ¶
func GetValidator ¶
func GetValidator() *validator.Validate
func ResolveRetryPolicies ¶
func ResolveRetryPolicies(tasks []TryTaskCatch, retries map[string]*RetryPolicy) error
Types ¶
type AsyncAPIArguments ¶
type AsyncAPIArguments struct { Document *ExternalResource `json:"document" validate:"required"` Channel string `json:"channel,omitempty"` Operation string `json:"operation,omitempty"` Server *AsyncAPIServer `json:"server,omitempty"` Protocol string `` /* 169-byte string literal not displayed */ Message *AsyncAPIOutboundMessage `json:"message,omitempty"` Subscription *AsyncAPISubscription `json:"subscription,omitempty"` Authentication *ReferenceableAuthenticationPolicy `json:"authentication,omitempty" validate:"omitempty"` }
type AsyncAPIMessageConsumptionPolicy ¶
type AsyncAPIMessageConsumptionPolicy struct { For *Duration `json:"for,omitempty"` Amount int `json:"amount,omitempty" validate:"required_without_all=While Until"` While *RuntimeExpression `json:"while,omitempty" validate:"required_without_all=Amount Until"` Until *RuntimeExpression `json:"until,omitempty" validate:"required_without_all=Amount While"` }
type AsyncAPIOutboundMessage ¶
type AsyncAPIServer ¶
type AsyncAPISubscription ¶
type AsyncAPISubscription struct { Filter *RuntimeExpression `json:"filter,omitempty"` Consume *AsyncAPIMessageConsumptionPolicy `json:"consume" validate:"required"` }
type AuthenticationPolicy ¶
type AuthenticationPolicy struct { Basic *BasicAuthenticationPolicy `json:"basic,omitempty"` Bearer *BearerAuthenticationPolicy `json:"bearer,omitempty"` Digest *DigestAuthenticationPolicy `json:"digest,omitempty"` OAuth2 *OAuth2AuthenticationPolicy `json:"oauth2,omitempty"` OIDC *OpenIdConnectAuthenticationPolicy `json:"oidc,omitempty"` }
AuthenticationPolicy Defines an authentication policy.
func NewBasicAuth ¶
func NewBasicAuth(username, password string) *AuthenticationPolicy
func (*AuthenticationPolicy) MarshalJSON ¶
func (ap *AuthenticationPolicy) MarshalJSON() ([]byte, error)
MarshalJSON for AuthenticationPolicy.
func (*AuthenticationPolicy) UnmarshalJSON ¶
func (ap *AuthenticationPolicy) UnmarshalJSON(data []byte) error
UnmarshalJSON for AuthenticationPolicy to enforce "oneOf" behavior.
type BackoffDefinition ¶
type BackoffDefinition struct {
Definition map[string]interface{} `json:"definition,omitempty"`
}
type BasicAuthenticationPolicy ¶
type BasicAuthenticationPolicy struct { Username string `json:"username,omitempty" validate:"required_without=Use"` Password string `json:"password,omitempty" validate:"required_without=Use"` Use string `json:"use,omitempty" validate:"required_without_all=Username Password,basic_policy"` }
BasicAuthenticationPolicy supports either inline properties (username/password) or a secret reference (use).
type BearerAuthenticationPolicy ¶
type BearerAuthenticationPolicy struct { Token string `json:"token,omitempty" validate:"required_without=Use,bearer_policy"` Use string `json:"use,omitempty" validate:"required_without=Token"` }
BearerAuthenticationPolicy supports either an inline token or a secret reference (use).
type CallAsyncAPI ¶
type CallAsyncAPI struct { TaskBase `json:",inline"` Call string `json:"call" validate:"required,eq=asyncapi"` With AsyncAPIArguments `json:"with" validate:"required"` }
type CallFunction ¶
type CallGRPC ¶
type CallGRPC struct { TaskBase `json:",inline"` Call string `json:"call" validate:"required,eq=grpc"` With GRPCArguments `json:"with" validate:"required"` }
type CallHTTP ¶
type CallHTTP struct { TaskBase `json:",inline"` // Inline TaskBase fields Call string `json:"call" validate:"required,eq=http"` With HTTPArguments `json:"with" validate:"required"` }
type CallOpenAPI ¶
type CallOpenAPI struct { TaskBase `json:",inline"` // Inline TaskBase fields Call string `json:"call" validate:"required,eq=openapi"` With OpenAPIArguments `json:"with" validate:"required"` }
type Correlation ¶
type Correlation struct { From string `json:"from" validate:"required"` // Runtime expression to extract the correlation value Expect string `json:"expect,omitempty"` // Expected value or runtime expression }
Correlation defines the mapping of event attributes for correlation.
type DigestAuthenticationPolicy ¶
type DigestAuthenticationPolicy struct { Username string `json:"username,omitempty" validate:"required_without=Use"` Password string `json:"password,omitempty" validate:"required_without=Use"` Use string `json:"use,omitempty" validate:"required_without_all=Username Password,digest_policy"` }
DigestAuthenticationPolicy supports either inline properties (username/password) or a secret reference (use).
type DoTask ¶
type DoTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Do *TaskList `json:"do" validate:"required,dive"` }
DoTask represents a task configuration to execute tasks sequentially.
type Document ¶
type Document struct { DSL string `json:"dsl" yaml:"dsl" validate:"required,semver_pattern"` Namespace string `json:"namespace" yaml:"namespace" validate:"required,hostname_rfc1123"` Name string `json:"name" yaml:"name" validate:"required,hostname_rfc1123"` Version string `json:"version" yaml:"version" validate:"required,semver_pattern"` Title string `json:"title,omitempty" yaml:"title,omitempty"` Summary string `json:"summary,omitempty" yaml:"summary,omitempty"` Tags map[string]string `json:"tags,omitempty" yaml:"tags,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty" yaml:"metadata,omitempty"` }
Document holds metadata for the workflow.
type Duration ¶
type Duration struct {
Value interface{} `json:"-"`
}
Duration represents a flexible duration that can be either inline or an ISO 8601 expression.
func NewDurationExpr ¶
NewDurationExpr accessor to create a Duration object from a string
func (*Duration) AsExpression ¶
func (*Duration) AsInline ¶
func (d *Duration) AsInline() *DurationInline
func (*Duration) MarshalJSON ¶
MarshalJSON for Duration to handle both inline and expression durations.
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON for Duration to handle both inline and expression durations.
type DurationExpression ¶
type DurationExpression struct {
Expression string `json:"-" validate:"required,iso8601_duration"`
}
DurationExpression represents the ISO 8601 expression of a duration.
func (*DurationExpression) MarshalJSON ¶
func (d *DurationExpression) MarshalJSON() ([]byte, error)
MarshalJSON for DurationExpression.
func (*DurationExpression) String ¶
func (d *DurationExpression) String() string
func (*DurationExpression) UnmarshalJSON ¶
func (d *DurationExpression) UnmarshalJSON(data []byte) error
UnmarshalJSON for DurationExpression to handle ISO 8601 strings.
type DurationInline ¶
type DurationInline struct { Days int32 `json:"days,omitempty"` Hours int32 `json:"hours,omitempty"` Minutes int32 `json:"minutes,omitempty"` Seconds int32 `json:"seconds,omitempty"` Milliseconds int32 `json:"milliseconds,omitempty"` }
DurationInline represents the inline definition of a duration.
func (*DurationInline) MarshalJSON ¶
func (d *DurationInline) MarshalJSON() ([]byte, error)
MarshalJSON for DurationInline.
type EmitEventDefinition ¶
type EmitEventDefinition struct {
With *EventProperties `json:"with" validate:"required"`
}
type EmitTask ¶
type EmitTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Emit EmitTaskConfiguration `json:"emit" validate:"required"` }
EmitTask represents the configuration for emitting events.
func (*EmitTask) MarshalJSON ¶
type EmitTaskConfiguration ¶
type EmitTaskConfiguration struct {
Event EmitEventDefinition `json:"event" validate:"required"`
}
type Endpoint ¶
type Endpoint struct { RuntimeExpression *RuntimeExpression `json:"-"` URITemplate URITemplate `json:"-"` EndpointConfig *EndpointConfiguration `json:"-"` }
func NewEndpoint ¶
func (*Endpoint) MarshalJSON ¶
MarshalJSON implements custom marshalling for Endpoint.
func (*Endpoint) UnmarshalJSON ¶
UnmarshalJSON implements custom unmarshalling for Endpoint.
type EndpointConfiguration ¶
type EndpointConfiguration struct { URI URITemplate `json:"uri" validate:"required"` Authentication *ReferenceableAuthenticationPolicy `json:"authentication,omitempty"` }
func (*EndpointConfiguration) UnmarshalJSON ¶
func (e *EndpointConfiguration) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom unmarshalling for EndpointConfiguration.
type Error ¶
type Error struct { Type *URITemplateOrRuntimeExpr `json:"type" validate:"required"` Status int `json:"status" validate:"required"` Title string `json:"title,omitempty"` Detail string `json:"detail,omitempty"` Instance *JsonPointerOrRuntimeExpression `json:"instance,omitempty" validate:"omitempty"` }
type ErrorFilter ¶
type EventConsumptionStrategy ¶
type EventConsumptionStrategy struct { All []*EventFilter `json:"all,omitempty" validate:"omitempty,dive"` Any []*EventFilter `json:"any,omitempty" validate:"omitempty,dive"` One *EventFilter `json:"one,omitempty" validate:"omitempty"` Until *EventConsumptionUntil `json:"until,omitempty" validate:"omitempty"` }
EventConsumptionStrategy defines the consumption strategy for events.
func (*EventConsumptionStrategy) MarshalJSON ¶
func (ecs *EventConsumptionStrategy) MarshalJSON() ([]byte, error)
MarshalJSON for EventConsumptionStrategy to ensure proper serialization.
func (*EventConsumptionStrategy) UnmarshalJSON ¶
func (ecs *EventConsumptionStrategy) UnmarshalJSON(data []byte) error
UnmarshalJSON for EventConsumptionStrategy to enforce "oneOf" behavior and handle edge cases.
type EventConsumptionUntil ¶
type EventConsumptionUntil struct { Condition *RuntimeExpression `json:"-" validate:"omitempty"` Strategy *EventConsumptionStrategy `json:"-" validate:"omitempty"` IsDisabled bool `json:"-"` // True when "until: false" }
EventConsumptionUntil handles the complex conditions of the "until" field.
func (*EventConsumptionUntil) MarshalJSON ¶
func (ecu *EventConsumptionUntil) MarshalJSON() ([]byte, error)
MarshalJSON for EventConsumptionUntil to handle proper serialization.
func (*EventConsumptionUntil) UnmarshalJSON ¶
func (ecu *EventConsumptionUntil) UnmarshalJSON(data []byte) error
UnmarshalJSON for EventConsumptionUntil to handle the "oneOf" behavior.
type EventFilter ¶
type EventFilter struct { With *EventProperties `json:"with" validate:"required"` Correlate map[string]Correlation `json:"correlate,omitempty" validate:"omitempty,dive"` // Keyed correlation filters }
EventFilter defines a mechanism to filter events based on predefined criteria.
type EventProperties ¶
type EventProperties struct { ID string `json:"id,omitempty"` Source *URITemplateOrRuntimeExpr `json:"source,omitempty" validate:"omitempty"` // URI template or runtime expression Type string `json:"type,omitempty"` Time *StringOrRuntimeExpr `json:"time,omitempty" validate:"omitempty,string_or_runtime_expr"` // ISO 8601 date-time string or runtime expression Subject string `json:"subject,omitempty"` DataContentType string `json:"datacontenttype,omitempty"` DataSchema *URITemplateOrRuntimeExpr `json:"dataschema,omitempty" validate:"omitempty"` // URI template or runtime expression Additional map[string]interface{} `json:"-"` }
func (*EventProperties) MarshalJSON ¶
func (e *EventProperties) MarshalJSON() ([]byte, error)
MarshalJSON implements custom marshaling for EventProperties.
func (*EventProperties) UnmarshalJSON ¶
func (e *EventProperties) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom unmarshaling for EventProperties.
type Export ¶
type Export struct { Schema *Schema `json:"schema,omitempty" validate:"omitempty"` As *ObjectOrRuntimeExpr `json:"as,omitempty" validate:"omitempty"` }
Export Set the content of the context.
type Extension ¶
type Extension struct { Extend string `json:"extend" validate:"required,oneof=call composite emit for listen raise run set switch try wait all"` When *RuntimeExpression `json:"when,omitempty"` Before *TaskList `json:"before,omitempty" validate:"omitempty,dive"` After *TaskList `json:"after,omitempty" validate:"omitempty,dive"` }
Extension represents the definition of an extension.
type ExtensionItem ¶
type ExtensionItem struct { Key string `json:"-" validate:"required"` Extension *Extension `json:"-" validate:"required"` }
ExtensionItem represents a named extension and its associated definition.
func (*ExtensionItem) MarshalJSON ¶
func (ei *ExtensionItem) MarshalJSON() ([]byte, error)
MarshalJSON for ExtensionItem to serialize as a single-key object.
func (*ExtensionItem) UnmarshalJSON ¶
func (ei *ExtensionItem) UnmarshalJSON(data []byte) error
UnmarshalJSON for ExtensionItem to deserialize from a single-key object.
type ExtensionList ¶
type ExtensionList []*ExtensionItem
ExtensionList represents a list of extensions.
func (*ExtensionList) Key ¶
func (el *ExtensionList) Key(key string) *Extension
Key retrieves all extensions with the specified key.
func (*ExtensionList) MarshalJSON ¶
func (el *ExtensionList) MarshalJSON() ([]byte, error)
MarshalJSON for ExtensionList to serialize as an array of ExtensionItem objects.
func (*ExtensionList) UnmarshalJSON ¶
func (el *ExtensionList) UnmarshalJSON(data []byte) error
UnmarshalJSON for ExtensionList to deserialize an array of ExtensionItem objects.
type ExternalResource ¶
type FlowDirective ¶
type FlowDirective struct {
Value string `json:"-" validate:"required"` // Ensure the value is non-empty.
}
FlowDirective represents a directive that can be an enumerated or free-form string.
func (*FlowDirective) IsEnum ¶
func (f *FlowDirective) IsEnum() bool
IsEnum checks if the FlowDirective matches one of the enumerated values.
func (*FlowDirective) MarshalJSON ¶
func (f *FlowDirective) MarshalJSON() ([]byte, error)
func (*FlowDirective) UnmarshalJSON ¶
func (f *FlowDirective) UnmarshalJSON(data []byte) error
type FlowDirectiveType ¶
type FlowDirectiveType string
const ( FlowDirectiveContinue FlowDirectiveType = "continue" FlowDirectiveExit FlowDirectiveType = "exit" FlowDirectiveEnd FlowDirectiveType = "end" )
type ForTask ¶
type ForTask struct { TaskBase `json:",inline"` // Inline TaskBase fields For ForTaskConfiguration `json:"for" validate:"required"` While string `json:"while,omitempty"` Do *TaskList `json:"do" validate:"required,dive"` }
ForTask represents a task configuration to iterate over a collection.
type ForTaskConfiguration ¶
type ForTaskConfiguration struct { Each string `json:"each,omitempty"` // Variable name for the current item In string `json:"in" validate:"required"` // Runtime expression for the collection At string `json:"at,omitempty"` // Variable name for the current index }
ForTaskConfiguration defines the loop configuration for iterating over a collection.
type ForkTask ¶
type ForkTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Fork ForkTaskConfiguration `json:"fork" validate:"required"` }
ForkTask represents a task configuration to execute multiple tasks concurrently.
type ForkTaskConfiguration ¶
type ForkTaskConfiguration struct { Branches *TaskList `json:"branches" validate:"required,dive"` Compete bool `json:"compete,omitempty"` }
ForkTaskConfiguration defines the configuration for the branches to perform concurrently.
type GRPCArguments ¶
type GRPCArguments struct { Proto *ExternalResource `json:"proto" validate:"required"` Service GRPCService `json:"service" validate:"required"` Method string `json:"method" validate:"required"` Arguments map[string]interface{} `json:"arguments,omitempty"` Authentication *ReferenceableAuthenticationPolicy `json:"authentication,omitempty" validate:"omitempty"` }
type GRPCService ¶
type GRPCService struct { Name string `json:"name" validate:"required"` Host string `json:"host" validate:"required,hostname_rfc1123"` Port int `json:"port" validate:"required,min=0,max=65535"` Authentication *ReferenceableAuthenticationPolicy `json:"authentication,omitempty"` }
type HTTPArguments ¶
type HTTPArguments struct { Method string `json:"method" validate:"required,oneofci=GET POST PUT DELETE PATCH"` Endpoint *Endpoint `json:"endpoint" validate:"required"` Headers map[string]string `json:"headers,omitempty"` Body json.RawMessage `json:"body,omitempty"` Query map[string]interface{} `json:"query,omitempty"` Output string `json:"output,omitempty" validate:"omitempty,oneof=raw content response"` }
type Input ¶
type Input struct { Schema *Schema `json:"schema,omitempty" validate:"omitempty"` From *ObjectOrRuntimeExpr `json:"from,omitempty" validate:"omitempty"` }
Input Configures the workflow's input.
type JsonPointerOrRuntimeExpression ¶
type JsonPointerOrRuntimeExpression struct {
Value interface{} `json:"-" validate:"json_pointer_or_runtime_expr"` // Custom validation tag.
}
JsonPointerOrRuntimeExpression represents a type that can be a JSON Pointer or a RuntimeExpression.
func (*JsonPointerOrRuntimeExpression) MarshalJSON ¶
func (j *JsonPointerOrRuntimeExpression) MarshalJSON() ([]byte, error)
MarshalJSON marshals JsonPointerOrRuntimeExpression into JSON.
func (*JsonPointerOrRuntimeExpression) UnmarshalJSON ¶
func (j *JsonPointerOrRuntimeExpression) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into either a JSON Pointer or a RuntimeExpression.
type ListenTask ¶
type ListenTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Listen ListenTaskConfiguration `json:"listen" validate:"required"` }
ListenTask represents a task configuration to listen to events.
func (*ListenTask) MarshalJSON ¶
func (lt *ListenTask) MarshalJSON() ([]byte, error)
MarshalJSON for ListenTask to ensure proper serialization.
func (*ListenTask) UnmarshalJSON ¶
func (lt *ListenTask) UnmarshalJSON(data []byte) error
UnmarshalJSON for ListenTask to ensure proper deserialization.
type ListenTaskConfiguration ¶
type ListenTaskConfiguration struct {
To *EventConsumptionStrategy `json:"to" validate:"required"`
}
type LiteralUri ¶
type LiteralUri struct {
Value string `json:"-" validate:"required,uri_pattern"` // Validate pattern for URI.
}
func (*LiteralUri) IsURITemplate ¶
func (u *LiteralUri) IsURITemplate() bool
func (*LiteralUri) MarshalJSON ¶
func (u *LiteralUri) MarshalJSON() ([]byte, error)
func (*LiteralUri) String ¶
func (u *LiteralUri) String() string
type LiteralUriTemplate ¶
type LiteralUriTemplate struct {
Value string `json:"-" validate:"required,uri_template_pattern"` // Validate pattern for URI template.
}
func (*LiteralUriTemplate) IsURITemplate ¶
func (t *LiteralUriTemplate) IsURITemplate() bool
func (*LiteralUriTemplate) MarshalJSON ¶
func (t *LiteralUriTemplate) MarshalJSON() ([]byte, error)
func (*LiteralUriTemplate) String ¶
func (t *LiteralUriTemplate) String() string
type NamedTaskMap ¶
func (*NamedTaskMap) UnmarshalJSON ¶
func (ntm *NamedTaskMap) UnmarshalJSON(data []byte) error
UnmarshalJSON for NamedTaskMap to ensure proper deserialization.
type OAuth2AutenthicationDataClient ¶
type OAuth2AutenthicationDataClient struct { ID string `json:"id,omitempty"` Secret string `json:"secret,omitempty"` Assertion string `json:"assertion,omitempty"` Authentication OAuthClientAuthenticationType `json:"authentication,omitempty" validate:"client_auth_type"` }
OAuth2AutenthicationDataClient The definition of an OAuth2 client.
type OAuth2AuthenticationDataGrant ¶
type OAuth2AuthenticationDataGrant string
OAuth2AuthenticationDataGrant represents the grant type to use in OAuth2 authentication.
const ( AuthorizationCodeGrant OAuth2AuthenticationDataGrant = "authorization_code" ClientCredentialsGrant OAuth2AuthenticationDataGrant = "client_credentials" PasswordGrant OAuth2AuthenticationDataGrant = "password" RefreshTokenGrant OAuth2AuthenticationDataGrant = "refresh_token" TokenExchangeGrant OAuth2AuthenticationDataGrant = "urn:ietf:params:oauth:grant-type:token-exchange" // #nosec G101 )
Valid grant types
type OAuth2AuthenticationPolicy ¶
type OAuth2AuthenticationPolicy struct { Properties *OAuth2AuthenticationProperties `json:",omitempty" validate:"required_without=Use"` Endpoints *OAuth2Endpoints `json:"endpoints,omitempty"` Use string `json:"use,omitempty" validate:"oauth2_policy"` }
func (*OAuth2AuthenticationPolicy) ApplyDefaults ¶
func (o *OAuth2AuthenticationPolicy) ApplyDefaults()
func (*OAuth2AuthenticationPolicy) MarshalJSON ¶
func (o *OAuth2AuthenticationPolicy) MarshalJSON() ([]byte, error)
MarshalJSON customizes the JSON output for OAuth2AuthenticationPolicy
func (*OAuth2AuthenticationPolicy) UnmarshalJSON ¶
func (o *OAuth2AuthenticationPolicy) UnmarshalJSON(data []byte) error
type OAuth2AuthenticationProperties ¶
type OAuth2AuthenticationProperties struct { Authority URITemplate `json:"authority,omitempty"` Grant OAuth2AuthenticationDataGrant `` /* 158-byte string literal not displayed */ Client *OAuth2AutenthicationDataClient `json:"client,omitempty"` Request *OAuth2TokenRequest `json:"request,omitempty"` Issuers []string `json:"issuers,omitempty"` Scopes []string `json:"scopes,omitempty"` Audiences []string `json:"audiences,omitempty"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` Subject *OAuth2Token `json:"subject,omitempty"` Actor *OAuth2Token `json:"actor,omitempty"` }
func (*OAuth2AuthenticationProperties) UnmarshalJSON ¶
func (o *OAuth2AuthenticationProperties) UnmarshalJSON(data []byte) error
type OAuth2Endpoints ¶
type OAuth2Token ¶
type OAuth2Token struct { // Token The security token to use Token string `json:"token,omitempty"` // Type The type of the security token to use. Type string `json:"type,omitempty"` }
OAuth2Token Represents an OAuth2 token.
type OAuth2TokenRequest ¶
type OAuth2TokenRequest struct {
Encoding OAuth2TokenRequestEncodingType `json:"encoding" validate:"encoding_type"`
}
type OAuth2TokenRequestEncodingType ¶
type OAuth2TokenRequestEncodingType string
const ( EncodingTypeFormUrlEncoded OAuth2TokenRequestEncodingType = "application/x-www-form-urlencoded" EncodingTypeApplicationJson OAuth2TokenRequestEncodingType = "application/json" )
type OAuthClientAuthenticationType ¶
type OAuthClientAuthenticationType string
const ( OAuthClientAuthClientSecretBasic OAuthClientAuthenticationType = "client_secret_basic" OAuthClientAuthClientSecretPost OAuthClientAuthenticationType = "client_secret_post" OAuthClientAuthClientSecretJWT OAuthClientAuthenticationType = "client_secret_jwt" OAuthClientAuthPrivateKeyJWT OAuthClientAuthenticationType = "private_key_jwt" OAuthClientAuthNone OAuthClientAuthenticationType = "none" )
type ObjectOrRuntimeExpr ¶
type ObjectOrRuntimeExpr struct {
Value interface{} `json:"-" validate:"object_or_runtime_expr"` // Custom validation tag.
}
ObjectOrRuntimeExpr is a type that can hold either a RuntimeExpression or an object.
func (*ObjectOrRuntimeExpr) MarshalJSON ¶
func (o *ObjectOrRuntimeExpr) MarshalJSON() ([]byte, error)
MarshalJSON marshals ObjectOrRuntimeExpr into JSON.
func (*ObjectOrRuntimeExpr) UnmarshalJSON ¶
func (o *ObjectOrRuntimeExpr) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into either a RuntimeExpression or an object.
func (*ObjectOrRuntimeExpr) Validate ¶
func (o *ObjectOrRuntimeExpr) Validate() error
Validate validates the ObjectOrRuntimeExpr using the custom validation logic.
type ObjectOrString ¶
type ObjectOrString struct {
Value interface{} `validate:"object_or_string"`
}
ObjectOrString is a type that can hold either a string or an object.
func (*ObjectOrString) MarshalJSON ¶
func (o *ObjectOrString) MarshalJSON() ([]byte, error)
MarshalJSON marshals ObjectOrString into JSON.
func (*ObjectOrString) UnmarshalJSON ¶
func (o *ObjectOrString) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into either a string or an object.
type OpenAPIArguments ¶
type OpenAPIArguments struct { Document *ExternalResource `json:"document" validate:"required"` OperationID string `json:"operationId" validate:"required"` Parameters map[string]interface{} `json:"parameters,omitempty"` Authentication *ReferenceableAuthenticationPolicy `json:"authentication,omitempty"` Output string `json:"output,omitempty" validate:"omitempty,oneof=raw content response"` }
type OpenIdConnectAuthenticationPolicy ¶
type OpenIdConnectAuthenticationPolicy struct { Properties *OAuth2AuthenticationProperties `json:",omitempty" validate:"omitempty,required_without=Use"` Use string `json:"use,omitempty" validate:"omitempty,required_without=Properties"` }
OpenIdConnectAuthenticationPolicy Use OpenIdConnect authentication.
type Output ¶
type Output struct { Schema *Schema `json:"schema,omitempty" validate:"omitempty"` As *ObjectOrRuntimeExpr `json:"as,omitempty" validate:"omitempty"` }
Output Configures the output of a workflow or task.
type RaiseTask ¶
type RaiseTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Raise RaiseTaskConfiguration `json:"raise" validate:"required"` }
RaiseTask represents a task configuration to raise errors.
type RaiseTaskConfiguration ¶
type RaiseTaskConfiguration struct {
Error RaiseTaskError `json:"error" validate:"required"`
}
type RaiseTaskError ¶
func (*RaiseTaskError) MarshalJSON ¶
func (rte *RaiseTaskError) MarshalJSON() ([]byte, error)
MarshalJSON for RaiseTaskError to ensure proper serialization.
func (*RaiseTaskError) UnmarshalJSON ¶
func (rte *RaiseTaskError) UnmarshalJSON(data []byte) error
UnmarshalJSON for RaiseTaskError to enforce "oneOf" behavior.
type ReferenceableAuthenticationPolicy ¶
type ReferenceableAuthenticationPolicy struct { Use *string `json:"use,omitempty"` AuthenticationPolicy *AuthenticationPolicy `json:",inline"` }
ReferenceableAuthenticationPolicy represents a referenceable authentication policy.
func (*ReferenceableAuthenticationPolicy) MarshalJSON ¶
func (rap *ReferenceableAuthenticationPolicy) MarshalJSON() ([]byte, error)
MarshalJSON for ReferenceableAuthenticationPolicy.
func (*ReferenceableAuthenticationPolicy) UnmarshalJSON ¶
func (rap *ReferenceableAuthenticationPolicy) UnmarshalJSON(data []byte) error
UnmarshalJSON for ReferenceableAuthenticationPolicy enforces the "oneOf" behavior.
type RetryBackoff ¶
type RetryBackoff struct { Constant *BackoffDefinition `json:"constant,omitempty"` Exponential *BackoffDefinition `json:"exponential,omitempty"` Linear *BackoffDefinition `json:"linear,omitempty"` }
RetryBackoff defines the retry backoff strategies.
func (*RetryBackoff) MarshalJSON ¶
func (rb *RetryBackoff) MarshalJSON() ([]byte, error)
MarshalJSON for RetryBackoff to ensure oneOf behavior.
func (*RetryBackoff) UnmarshalJSON ¶
func (rb *RetryBackoff) UnmarshalJSON(data []byte) error
type RetryLimit ¶
type RetryLimit struct { Attempt *RetryLimitAttempt `json:"attempt,omitempty"` Duration *Duration `json:"duration,omitempty"` }
RetryLimit defines the retry limit configurations.
type RetryLimitAttempt ¶
type RetryLimitAttempt struct { Count int `json:"count,omitempty"` Duration *Duration `json:"duration,omitempty"` }
RetryLimitAttempt defines the limit for each retry attempt.
type RetryPolicy ¶
type RetryPolicy struct { When *RuntimeExpression `json:"when,omitempty"` ExceptWhen *RuntimeExpression `json:"exceptWhen,omitempty"` Delay *Duration `json:"delay,omitempty"` Backoff *RetryBackoff `json:"backoff,omitempty"` Limit RetryLimit `json:"limit,omitempty"` Jitter *RetryPolicyJitter `json:"jitter,omitempty"` Ref string `json:"-"` // Reference to a reusable retry policy }
RetryPolicy defines a retry policy.
func (*RetryPolicy) MarshalJSON ¶
func (rp *RetryPolicy) MarshalJSON() ([]byte, error)
MarshalJSON for RetryPolicy to ensure proper serialization.
func (*RetryPolicy) ResolveReference ¶
func (rp *RetryPolicy) ResolveReference(retries map[string]*RetryPolicy) error
func (*RetryPolicy) UnmarshalJSON ¶
func (rp *RetryPolicy) UnmarshalJSON(data []byte) error
UnmarshalJSON for RetryPolicy to ensure proper deserialization.
type RetryPolicyJitter ¶
type RetryPolicyJitter struct { From *Duration `json:"from" validate:"required"` To *Duration `json:"to" validate:"required"` }
RetryPolicyJitter defines the randomness or variability of retry delays.
type RunTask ¶
type RunTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Run RunTaskConfiguration `json:"run" validate:"required"` }
RunTask represents a task configuration to execute external processes.
type RunTaskConfiguration ¶
type RunTaskConfiguration struct { Await *bool `json:"await,omitempty"` Container *Container `json:"container,omitempty"` Script *Script `json:"script,omitempty"` Shell *Shell `json:"shell,omitempty"` Workflow *RunWorkflow `json:"workflow,omitempty"` }
func (*RunTaskConfiguration) MarshalJSON ¶
func (rtc *RunTaskConfiguration) MarshalJSON() ([]byte, error)
MarshalJSON for RunTaskConfiguration to ensure proper serialization.
func (*RunTaskConfiguration) UnmarshalJSON ¶
func (rtc *RunTaskConfiguration) UnmarshalJSON(data []byte) error
UnmarshalJSON for RunTaskConfiguration to enforce "oneOf" behavior.
type RunWorkflow ¶
type RuntimeExpression ¶
type RuntimeExpression struct {
Value string `json:"-" validate:"required"`
}
RuntimeExpression represents a runtime expression.
func NewExpr ¶
func NewExpr(runtimeExpression string) *RuntimeExpression
NewExpr creates a new RuntimeExpression instance
func (*RuntimeExpression) IsValid ¶
func (r *RuntimeExpression) IsValid() bool
IsValid checks if the RuntimeExpression value is valid, handling both with and without `${}`.
func (*RuntimeExpression) MarshalJSON ¶
func (r *RuntimeExpression) MarshalJSON() ([]byte, error)
MarshalJSON implements custom marshalling for RuntimeExpression.
func (*RuntimeExpression) String ¶
func (r *RuntimeExpression) String() string
func (*RuntimeExpression) UnmarshalJSON ¶
func (r *RuntimeExpression) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom unmarshalling for RuntimeExpression.
type Schedule ¶
type Schedule struct { Every *Duration `json:"every,omitempty" validate:"omitempty"` Cron string `json:"cron,omitempty" validate:"omitempty"` After *Duration `json:"after,omitempty" validate:"omitempty"` On *EventConsumptionStrategy `json:"on,omitempty" validate:"omitempty"` }
Schedule the workflow.
type Schema ¶
type Schema struct { Format string `json:"format,omitempty"` Document interface{} `json:"document,omitempty" validate:"omitempty"` Resource *ExternalResource `json:"resource,omitempty" validate:"omitempty"` }
Schema represents the definition of a schema.
func (*Schema) ApplyDefaults ¶
func (s *Schema) ApplyDefaults()
func (*Schema) MarshalJSON ¶
MarshalJSON for Schema marshals the correct field.
func (*Schema) UnmarshalJSON ¶
UnmarshalJSON for Schema enforces "oneOf" behavior.
type SetTask ¶
type SetTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Set map[string]interface{} `json:"set" validate:"required,min=1,dive"` }
SetTask represents a task used to set data.
func (*SetTask) MarshalJSON ¶
MarshalJSON for SetTask to ensure proper serialization.
func (*SetTask) UnmarshalJSON ¶
UnmarshalJSON for SetTask to ensure proper deserialization.
type StringOrRuntimeExpr ¶
type StringOrRuntimeExpr struct {
Value interface{} `json:"-" validate:"string_or_runtime_expr"` // Custom validation tag.
}
StringOrRuntimeExpr is a type that can hold either a RuntimeExpression or a string.
func (*StringOrRuntimeExpr) MarshalJSON ¶
func (s *StringOrRuntimeExpr) MarshalJSON() ([]byte, error)
MarshalJSON marshals StringOrRuntimeExpr into JSON.
func (*StringOrRuntimeExpr) String ¶
func (s *StringOrRuntimeExpr) String() string
func (*StringOrRuntimeExpr) UnmarshalJSON ¶
func (s *StringOrRuntimeExpr) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into either a RuntimeExpression or a string.
type SwitchCase ¶
type SwitchCase struct { When *RuntimeExpression `json:"when,omitempty"` Then *FlowDirective `json:"then" validate:"required"` }
SwitchCase defines a condition and the corresponding outcome for a switch task.
type SwitchItem ¶
type SwitchItem map[string]SwitchCase
type SwitchTask ¶
type SwitchTask struct { TaskBase `json:",inline"` // Inline TaskBase fields Switch []SwitchItem `json:"switch" validate:"required,min=1,dive,switch_item"` }
SwitchTask represents a task configuration for conditional branching.
func (*SwitchTask) MarshalJSON ¶
func (st *SwitchTask) MarshalJSON() ([]byte, error)
MarshalJSON for SwitchTask to ensure proper serialization.
func (*SwitchTask) UnmarshalJSON ¶
func (st *SwitchTask) UnmarshalJSON(data []byte) error
UnmarshalJSON for SwitchTask to ensure proper deserialization.
type TaskBase ¶
type TaskBase struct { // A runtime expression, if any, used to determine whether or not the task should be run. If *RuntimeExpression `json:"if,omitempty" validate:"omitempty"` // Configure the task's input. Input *Input `json:"input,omitempty" validate:"omitempty"` // Configure the task's output. Output *Output `json:"output,omitempty" validate:"omitempty"` // Export task output to context. Export *Export `json:"export,omitempty" validate:"omitempty"` Timeout *TimeoutOrReference `json:"timeout,omitempty" validate:"omitempty"` // The flow directive to be performed upon completion of the task. Then *FlowDirective `json:"then,omitempty" validate:"omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
type TaskItem ¶
type TaskItem struct { Key string `json:"-" validate:"required"` Task Task `json:"-" validate:"required"` }
TaskItem represents a named task and its associated definition.
func (*TaskItem) AsCallAsyncAPITask ¶
func (ti *TaskItem) AsCallAsyncAPITask() *CallAsyncAPI
AsCallAsyncAPITask casts the Task to a CallAsyncAPI task if possible, returning nil if the cast fails.
func (*TaskItem) AsCallFunctionTask ¶
func (ti *TaskItem) AsCallFunctionTask() *CallFunction
AsCallFunctionTask casts the Task to a CallFunction task if possible, returning nil if the cast fails.
func (*TaskItem) AsCallGRPCTask ¶
AsCallGRPCTask casts the Task to a CallGRPC task if possible, returning nil if the cast fails.
func (*TaskItem) AsCallHTTPTask ¶
AsCallHTTPTask casts the Task to a CallTask if possible, returning nil if the cast fails.
func (*TaskItem) AsCallOpenAPITask ¶
func (ti *TaskItem) AsCallOpenAPITask() *CallOpenAPI
AsCallOpenAPITask casts the Task to a CallOpenAPI task if possible, returning nil if the cast fails.
func (*TaskItem) AsDoTask ¶
AsDoTask casts the Task to a DoTask if possible, returning nil if the cast fails.
func (*TaskItem) AsEmitTask ¶
AsEmitTask casts the Task to an EmitTask if possible, returning nil if the cast fails.
func (*TaskItem) AsForTask ¶
AsForTask casts the Task to a ForTask if possible, returning nil if the cast fails.
func (*TaskItem) AsForkTask ¶
AsForkTask casts the Task to a ForkTask if possible, returning nil if the cast fails.
func (*TaskItem) AsListenTask ¶
func (ti *TaskItem) AsListenTask() *ListenTask
AsListenTask casts the Task to a ListenTask if possible, returning nil if the cast fails.
func (*TaskItem) AsRaiseTask ¶
AsRaiseTask casts the Task to a RaiseTask if possible, returning nil if the cast fails.
func (*TaskItem) AsRunTask ¶
AsRunTask casts the Task to a RunTask if possible, returning nil if the cast fails.
func (*TaskItem) AsSetTask ¶
AsSetTask casts the Task to a SetTask if possible, returning nil if the cast fails.
func (*TaskItem) AsSwitchTask ¶
func (ti *TaskItem) AsSwitchTask() *SwitchTask
AsSwitchTask casts the Task to a SwitchTask if possible, returning nil if the cast fails.
func (*TaskItem) AsTask ¶
AsTask extracts the TaskBase from the Task if the Task embeds TaskBase. Returns nil if the Task does not embed TaskBase.
func (*TaskItem) AsTryTask ¶
AsTryTask casts the Task to a TryTask if possible, returning nil if the cast fails.
func (*TaskItem) AsWaitTask ¶
AsWaitTask casts the Task to a WaitTask if possible, returning nil if the cast fails.
func (*TaskItem) MarshalJSON ¶
MarshalJSON for TaskItem to ensure proper serialization as a key-value pair.
type TaskList ¶
type TaskList []*TaskItem
TaskList represents a list of named tasks to perform.
func (*TaskList) MarshalJSON ¶
MarshalJSON for TaskList to ensure proper serialization.
func (*TaskList) UnmarshalJSON ¶
UnmarshalJSON for TaskList to ensure proper deserialization.
type Timeout ¶
type Timeout struct { // After The duration after which to timeout After *Duration `json:"after" validate:"required"` }
Timeout specifies a time limit for tasks or workflows.
func (*Timeout) MarshalJSON ¶
MarshalJSON implements custom marshalling for Timeout.
func (*Timeout) UnmarshalJSON ¶
UnmarshalJSON implements custom unmarshalling for Timeout.
type TimeoutOrReference ¶
type TimeoutOrReference struct { Timeout *Timeout `json:"-" validate:"required_without=Ref"` Reference *string `json:"-" validate:"required_without=Timeout"` }
TimeoutOrReference handles either a Timeout definition or a reference (string).
func (*TimeoutOrReference) MarshalJSON ¶
func (tr *TimeoutOrReference) MarshalJSON() ([]byte, error)
MarshalJSON implements custom marshalling for TimeoutOrReference.
func (*TimeoutOrReference) UnmarshalJSON ¶
func (tr *TimeoutOrReference) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom unmarshalling for TimeoutOrReference.
type TryTask ¶
type TryTask struct { TaskBase `json:",inline"` Try *TaskList `json:"try" validate:"required,dive"` Catch *TryTaskCatch `json:"catch" validate:"required"` }
type TryTaskCatch ¶
type TryTaskCatch struct { Errors struct { With *ErrorFilter `json:"with,omitempty"` } `json:"errors,omitempty"` As string `json:"as,omitempty"` When *RuntimeExpression `json:"when,omitempty"` ExceptWhen *RuntimeExpression `json:"exceptWhen,omitempty"` Retry *RetryPolicy `json:"retry,omitempty"` Do *TaskList `json:"do,omitempty" validate:"omitempty,dive"` }
type URITemplate ¶
URITemplate represents a URI that can be a literal URI or a URI template.
func UnmarshalURITemplate ¶
func UnmarshalURITemplate(data []byte) (URITemplate, error)
UnmarshalURITemplate is a shared function for unmarshalling URITemplate fields.
type URITemplateOrRuntimeExpr ¶
type URITemplateOrRuntimeExpr struct {
Value interface{} `json:"-" validate:"uri_template_or_runtime_expr"` // Custom validation.
}
URITemplateOrRuntimeExpr represents a type that can be a URITemplate or a RuntimeExpression.
func NewUriTemplate ¶
func NewUriTemplate(uriTemplate string) *URITemplateOrRuntimeExpr
func (*URITemplateOrRuntimeExpr) MarshalJSON ¶
func (u *URITemplateOrRuntimeExpr) MarshalJSON() ([]byte, error)
MarshalJSON marshals URITemplateOrRuntimeExpr into JSON.
func (*URITemplateOrRuntimeExpr) String ¶
func (u *URITemplateOrRuntimeExpr) String() string
func (*URITemplateOrRuntimeExpr) UnmarshalJSON ¶
func (u *URITemplateOrRuntimeExpr) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into either a URITemplate or a RuntimeExpression.
type Use ¶
type Use struct { Authentications map[string]*AuthenticationPolicy `json:"authentications,omitempty" validate:"omitempty,dive"` Errors map[string]*Error `json:"errors,omitempty" validate:"omitempty,dive"` Extensions ExtensionList `json:"extensions,omitempty" validate:"omitempty,dive"` Functions NamedTaskMap `json:"functions,omitempty" validate:"omitempty,dive"` Retries map[string]*RetryPolicy `json:"retries,omitempty" validate:"omitempty,dive"` Secrets []string `json:"secrets,omitempty"` Timeouts map[string]*Timeout `json:"timeouts,omitempty" validate:"omitempty,dive"` Catalogs map[string]*Catalog `json:"catalogs,omitempty" validate:"omitempty,dive"` }
type WaitTask ¶
WaitTask represents a task configuration to delay execution for a specified duration.
func (*WaitTask) MarshalJSON ¶
MarshalJSON for WaitTask to ensure proper serialization.
func (*WaitTask) UnmarshalJSON ¶
UnmarshalJSON for WaitTask to ensure proper deserialization.
type Workflow ¶
type Workflow struct { Document Document `json:"document" yaml:"document" validate:"required"` Input *Input `json:"input,omitempty" yaml:"input,omitempty"` Use *Use `json:"use,omitempty" yaml:"use"` Do *TaskList `json:"do" yaml:"do" validate:"required,dive"` Timeout *TimeoutOrReference `json:"timeout,omitempty" yaml:"timeout,omitempty"` Output *Output `json:"output,omitempty" yaml:"output,omitempty"` Schedule *Schedule `json:"schedule,omitempty" yaml:"schedule,omitempty"` }
Workflow represents the root structure of a workflow.
func (*Workflow) MarshalYAML ¶
type WorkflowBuilder ¶
type WorkflowBuilder struct {
// contains filtered or unexported fields
}
WorkflowBuilder helps construct and serialize a Workflow object.
func NewWorkflowBuilder ¶
func NewWorkflowBuilder() *WorkflowBuilder
NewWorkflowBuilder initializes a new WorkflowBuilder.
func (*WorkflowBuilder) AddTask ¶
func (wb *WorkflowBuilder) AddTask(key string, task Task) *WorkflowBuilder
AddTask adds a TaskItem to the Workflow's Do list.
func (*WorkflowBuilder) Build ¶
func (wb *WorkflowBuilder) Build() *Workflow
Build returns the constructed Workflow object.
func (*WorkflowBuilder) SetDocument ¶
func (wb *WorkflowBuilder) SetDocument(dsl, namespace, name, version string) *WorkflowBuilder
SetDocument sets the Document fields in the Workflow.
func (*WorkflowBuilder) SetInput ¶
func (wb *WorkflowBuilder) SetInput(input *Input) *WorkflowBuilder
SetInput sets the Input for the Workflow.
func (*WorkflowBuilder) SetOutput ¶
func (wb *WorkflowBuilder) SetOutput(output *Output) *WorkflowBuilder
SetOutput sets the Output for the Workflow.
func (*WorkflowBuilder) SetSchedule ¶
func (wb *WorkflowBuilder) SetSchedule(schedule *Schedule) *WorkflowBuilder
SetSchedule sets the Schedule for the Workflow.
func (*WorkflowBuilder) SetTimeout ¶
func (wb *WorkflowBuilder) SetTimeout(timeout *TimeoutOrReference) *WorkflowBuilder
SetTimeout sets the Timeout for the Workflow.
func (*WorkflowBuilder) SetUse ¶
func (wb *WorkflowBuilder) SetUse(use *Use) *WorkflowBuilder
SetUse sets the Use section for the Workflow.
func (*WorkflowBuilder) ToJSON ¶
func (wb *WorkflowBuilder) ToJSON() ([]byte, error)
ToJSON serializes the Workflow to JSON format.
func (*WorkflowBuilder) ToYAML ¶
func (wb *WorkflowBuilder) ToYAML() ([]byte, error)
ToYAML serializes the Workflow to YAML format.