resources

package
v1.1.0-beta.202410302254 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2024 License: AGPL-3.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HttpMethodGet    = "get"
	HttpMethodPost   = "post"
	HttpMethodPut    = "put"
	HttpMethodDelete = "delete"
	HttpMethodPatch  = "patch"
)
View Source
const (
	DefaultMaxAttempts = 3
	DefaultStrategy    = "constant"
	DefaultMinInterval = 1000
	DefaultMaxInterval = 10000
)

Variables

View Source
var IntegrationEmailBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSmtpTls,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSmtpHost,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeSmtpPort,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSmtpsPort,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSmtpUsername,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSmtpPassword,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeFrom,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeTo,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeCc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeBcc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSubject,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeResponseUrl,
			Required: false,
		},
	},
}
View Source
var IntegrationSlackBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeToken,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSigningSecret,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeWebhookUrl,
			Required: false,
		},
	},
}
View Source
var IntegrationTeamsBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeWebhookUrl,
			Required: true,
		},
	},
}
View Source
var PipelineBasicAuthBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeUsername,
			Required: true,
		},
		{
			Name:     schema.AttributeTypePassword,
			Required: true,
		},
	},
}
View Source
var PipelineBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDocumentation,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type:       schema.BlockTypeParam,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type:       schema.BlockTypePipelineStep,
			LabelNames: []string{schema.LabelType, schema.LabelName},
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
	},
}
View Source
var PipelineOutputBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name:     schema.AttributeTypeValue,
			Required: true,
		},
	},
}
View Source
var PipelineParamBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeType,
		},
		{
			Name: schema.AttributeTypeDefault,
		},
		{
			Name:     schema.AttributeTypeEnum,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeOptional,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeFormat,
			Required: false,
		},
	},
}
View Source
var PipelineStepContainerBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeTimeout,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name: schema.AttributeTypeImage,
		},
		{
			Name: schema.AttributeTypeSource,
		},
		{
			Name: schema.AttributeTypeCmd,
		},
		{
			Name: schema.AttributeTypeEnv,
		},
		{
			Name: schema.AttributeTypeEntrypoint,
		},
		{
			Name: schema.AttributeTypeCpuShares,
		},
		{
			Name: schema.AttributeTypeMemory,
		},
		{
			Name: schema.AttributeTypeMemoryReservation,
		},
		{
			Name: schema.AttributeTypeMemorySwap,
		},
		{
			Name: schema.AttributeTypeMemorySwappiness,
		},
		{
			Name: schema.AttributeTypeReadOnly,
		},
		{
			Name: schema.AttributeTypeUser,
		},
		{
			Name: schema.AttributeTypeWorkdir,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepEmailBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name:     schema.AttributeTypeTo,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeFrom,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeSmtpUsername,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeSmtpPassword,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeHost,
			Required: true,
		},
		{
			Name:     schema.AttributeTypePort,
			Required: true,
		},
		{
			Name: schema.AttributeTypeSenderName,
		},
		{
			Name: schema.AttributeTypeCc,
		},
		{
			Name: schema.AttributeTypeBcc,
		},
		{
			Name: schema.AttributeTypeBody,
		},
		{
			Name: schema.AttributeTypeContentType,
		},
		{
			Name: schema.AttributeTypeSubject,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepFunctionBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeTimeout,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name:     schema.AttributeTypeSource,
			Required: true,
		},
		{
			Name: schema.AttributeTypeHandler,
		},
		{
			Name: schema.AttributeTypeRuntime,
		},
		{
			Name: schema.AttributeTypeEnv,
		},
		{
			Name: schema.AttributeTypeEvent,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
		{
			Type: schema.BlockTypeLoop,
		},
	},
}
View Source
var PipelineStepHttpBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeTimeout,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name:     schema.AttributeTypeUrl,
			Required: true,
		},
		{
			Name: schema.AttributeTypeMethod,
		},
		{
			Name: schema.AttributeTypeCaCertPem,
		},
		{
			Name: schema.AttributeTypeInsecure,
		},
		{
			Name: schema.AttributeTypeRequestBody,
		},
		{
			Name: schema.AttributeTypeRequestHeaders,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypePipelineBasicAuth,
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepInputBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name: schema.AttributeTypeOptions,
		},
		{
			Name: schema.AttributeTypePrompt,
		},
		{
			Name:     schema.AttributeTypeNotifier,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeType,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeTo,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeCc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeBcc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSubject,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeChannel,
			Required: false,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
		{
			Type:       schema.BlockTypeOption,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
	},
}
View Source
var PipelineStepInputNotifyBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeIntegration,
		},
		{
			Name: schema.AttributeTypeChannel,
		},
	},
}
View Source
var PipelineStepMessageBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name:     schema.AttributeTypeNotifier,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeText,
			Required: true,
		},
		{
			Name:     schema.AttributeTypeTo,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeCc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeBcc,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSubject,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeChannel,
			Required: false,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
		{
			Type: schema.BlockTypeLoop,
		},
	},
}
View Source
var PipelineStepPipelineBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name: schema.AttributeTypePipeline,
		},
		{
			Name: schema.AttributeTypeArgs,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepQueryBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeTimeout,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name: schema.AttributeTypeSql,
		},
		{
			Name: schema.AttributeTypeDatabase,
		},
		{
			Name: schema.AttributeTypeArgs,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepSleepBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name:     schema.AttributeTypeDuration,
			Required: true,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var PipelineStepTransformBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name: schema.AttributeTypeTitle,
		},
		{
			Name: schema.AttributeTypeDescription,
		},
		{
			Name: schema.AttributeTypeForEach,
		},
		{
			Name: schema.AttributeTypeDependsOn,
		},
		{
			Name: schema.AttributeTypeIf,
		},
		{
			Name: schema.AttributeTypeValue,
		},
		{
			Name: schema.AttributeTypeMaxConcurrency,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type: schema.BlockTypeError,
		},
		{
			Type:       schema.BlockTypePipelineOutput,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type: schema.BlockTypeLoop,
		},
		{
			Type: schema.BlockTypeRetry,
		},
		{
			Type: schema.BlockTypeThrow,
		},
	},
}
View Source
var TriggerHttpBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDocumentation,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{
			Name: schema.AttributeTypePipeline,
		},
		{
			Name: schema.AttributeTypeExecutionMode,
		},
		{
			Name: schema.AttributeTypeArgs,
		},
		{
			Name: schema.AttributeTypeEnabled,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type:       schema.BlockTypeMethod,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type:       schema.BlockTypeParam,
			LabelNames: []string{schema.LabelName},
		},
	},
}
View Source
var TriggerIntervalBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDocumentation,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSchedule,
			Required: true,
		},
		{
			Name:     schema.AttributeTypePipeline,
			Required: true,
		},
		{
			Name: schema.AttributeTypeArgs,
		},
		{
			Name: schema.AttributeTypeEnabled,
		},
	},
}
View Source
var TriggerQueryBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDocumentation,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{

			Name: schema.AttributeTypeSchedule,
		},
		{
			Name:     schema.AttributeTypeSql,
			Required: true,
		},
		{
			Name: schema.AttributeTypePrimaryKey,
		},
		{
			Name:     schema.AttributeTypeDatabase,
			Required: false,
		},
		{
			Name: schema.AttributeTypeEnabled,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type:       schema.BlockTypeCapture,
			LabelNames: []string{schema.LabelName},
		},
		{
			Type:       schema.BlockTypeParam,
			LabelNames: []string{schema.LabelName},
		},
	},
}
View Source
var TriggerScheduleBlockSchema = &hcl.BodySchema{
	Attributes: []hcl.AttributeSchema{
		{
			Name:     schema.AttributeTypeDescription,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTitle,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeDocumentation,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeTags,
			Required: false,
		},
		{
			Name:     schema.AttributeTypeSchedule,
			Required: true,
		},
		{
			Name:     schema.AttributeTypePipeline,
			Required: true,
		},
		{
			Name: schema.AttributeTypeArgs,
		},
		{
			Name: schema.AttributeTypeEnabled,
		},
	},
	Blocks: []hcl.BlockHeaderSchema{
		{
			Type:       schema.BlockTypeParam,
			LabelNames: []string{schema.LabelName},
		},
	},
}
View Source
var ValidDependsOnTypes = []string{
	schema.BlockTypePipelineStep,
}

Functions

func CustomValueValidation

func CustomValueValidation(name string, setting cty.Value, evalCtx *hcl.EvalContext) hcl.Diagnostics

func DefaultIntegrations

func DefaultIntegrations() (map[string]Integration, error)

func DefaultNotifiers

func DefaultNotifiers(defaultHttpIntegration Integration) (map[string]Notifier, error)

func FindRequiredConnection

func FindRequiredConnection(expr hcl.Expression) string

func GetTriggerTypeFromTriggerConfig

func GetTriggerTypeFromTriggerConfig(config TriggerConfig) string

GetTriggerTypeFromTriggerConfig returns the type of the trigger from the trigger config

func HclImplFromAttributes

func HclImplFromAttributes(hclResourceImpl *modconfig.HclResourceImpl, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func IsConnectionError

func IsConnectionError(diags hcl.Diagnostics) bool

func IsConnectionExpr

func IsConnectionExpr(expr hcl.Expression) bool

func IsConnectionIndexTraversal

func IsConnectionIndexTraversal(indexExpr *hclsyntax.IndexExpr) bool

func IsConnectionScopeTraversal

func IsConnectionScopeTraversal(scopeTraversals *hclsyntax.ScopeTraversalExpr) bool

func NewModResources

func NewModResources(mod *modconfig.Mod, sourceMaps ...modconfig.ModResources) modconfig.ModResources

Types

type BasicAuthConfig

type BasicAuthConfig struct {
	Username string `json:"username"`
	Password string `json:"password"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
}

func (*BasicAuthConfig) Equals

func (b *BasicAuthConfig) Equals(other *BasicAuthConfig) bool

func (*BasicAuthConfig) GetInputs

func (b *BasicAuthConfig) GetInputs(evalContext *hcl.EvalContext, unresolvedAttributes map[string]hcl.Expression) (*BasicAuthConfig, hcl.Diagnostics)

type ConnectionDependency

type ConnectionDependency struct {
	Source string
	Type   string
}

func FindConnectionFromDiags

func FindConnectionFromDiags(diags hcl.Diagnostics) []ConnectionDependency

func GuessRequiredConnection

func GuessRequiredConnection(expr hcl.Expression) []ConnectionDependency

func GuessRequiredConnectionIndex

func GuessRequiredConnectionIndex(indexExpr *hclsyntax.IndexExpr) []ConnectionDependency

func GuessRequiredConnectionRelativeTraversal

func GuessRequiredConnectionRelativeTraversal(relativeTraversal *hclsyntax.RelativeTraversalExpr) []ConnectionDependency

func GuessRequiredConnectionScopeTraversal

func GuessRequiredConnectionScopeTraversal(scopeTraversals *hclsyntax.ScopeTraversalExpr) []ConnectionDependency

func GuessRequiredConnectionTemplate

func GuessRequiredConnectionTemplate(templateExpr *hclsyntax.TemplateExpr) []ConnectionDependency

type EmailIntegration

type EmailIntegration struct {
	modconfig.HclResourceImpl          `json:"-"`
	modconfig.ResourceWithMetadataImpl `json:"-"`
	IntegrationImpl                    `json:"-"`

	Type string `json:"type" cty:"type" hcl:"type,label"`

	// email
	SmtpHost     *string `json:"smtp_host,omitempty" cty:"smtp_host" hcl:"smtp_host"`
	SmtpTls      *string `json:"smtp_tls,omitempty" cty:"smtp_tls" hcl:"smtp_tls,optional"`
	SmtpPort     *int    `json:"smtp_port,omitempty" cty:"smtp_port" hcl:"smtp_port,optional"`
	SmtpsPort    *int    `json:"smtps_port,omitempty" cty:"smtps_port" hcl:"smtps_port,optional"`
	SmtpUsername *string `json:"smtp_username,omitempty" cty:"smtp_username" hcl:"smtp_username,optional"`
	SmtpPassword *string `json:"smtp_password,omitempty" cty:"smtp_password" hcl:"smtp_password,optional"`

	From    *string  `json:"from,omitempty" cty:"from" hcl:"from"`
	To      []string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
	Cc      []string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc     []string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Subject *string  `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
}

func EmailIntegrationFromCtyValue

func EmailIntegrationFromCtyValue(val cty.Value) (*EmailIntegration, error)

func (*EmailIntegration) CtyValue

func (i *EmailIntegration) CtyValue() (cty.Value, error)

func (*EmailIntegration) Equals

func (i *EmailIntegration) Equals(other Integration) bool

func (*EmailIntegration) GetIntegrationType

func (i *EmailIntegration) GetIntegrationType() string

func (*EmailIntegration) MapInterface

func (i *EmailIntegration) MapInterface() (map[string]interface{}, error)

func (*EmailIntegration) SetAttributes

func (i *EmailIntegration) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*EmailIntegration) Validate

func (i *EmailIntegration) Validate() hcl.Diagnostics

type ErrorConfig

type ErrorConfig struct {
	// circular link to its "parent"
	PipelineStepBase *PipelineStepBase `json:"-"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	If                   *bool                     `json:"if"`
	Ignore               *bool                     `json:"ignore,omitempty" hcl:"ignore,optional" cty:"ignore"`
}

func NewErrorConfig

func NewErrorConfig(p *PipelineStepBase) *ErrorConfig

func (*ErrorConfig) AddUnresolvedAttribute

func (e *ErrorConfig) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*ErrorConfig) AppendConnectionDependsOn

func (e *ErrorConfig) AppendConnectionDependsOn(...string)

func (*ErrorConfig) AppendCredentialDependsOn

func (e *ErrorConfig) AppendCredentialDependsOn(...string)

func (*ErrorConfig) AppendDependsOn

func (e *ErrorConfig) AppendDependsOn(dependsOn ...string)

func (*ErrorConfig) Equals

func (e *ErrorConfig) Equals(other *ErrorConfig) bool

func (*ErrorConfig) GetPipeline

func (e *ErrorConfig) GetPipeline() *Pipeline

func (*ErrorConfig) SetAttributes

func (e *ErrorConfig) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*ErrorConfig) Validate

func (e *ErrorConfig) Validate() bool

type FlowpipeModResources

type FlowpipeModResources struct {
	// the parent mod
	Mod *modconfig.Mod

	Variables map[string]*modconfig.Variable
	// all mods (including deps)
	// TODO KAI store as interfaces so GetMods satisfies the interface
	Mods       map[string]*modconfig.Mod
	References map[string]*modconfig.ResourceReference
	Pipelines  map[string]*Pipeline
	Triggers   map[string]*Trigger
	Locals     map[string]*modconfig.Local
}

FlowpipeModResources is a struct containing maps of all mod resource types This is provided to avoid db needing to reference workspace package

func GetModResources

func GetModResources(mod *modconfig.Mod) *FlowpipeModResources

func (*FlowpipeModResources) AddMaps

func (m *FlowpipeModResources) AddMaps(sourceMaps ...modconfig.ModResources)

func (*FlowpipeModResources) AddReference

func (m *FlowpipeModResources) AddReference(ref *modconfig.ResourceReference)

func (*FlowpipeModResources) AddResource

func (m *FlowpipeModResources) AddResource(item modconfig.HclResource) hcl.Diagnostics

func (*FlowpipeModResources) Empty

func (m *FlowpipeModResources) Empty() bool

func (*FlowpipeModResources) Equals

func (*FlowpipeModResources) GetMods

func (m *FlowpipeModResources) GetMods() map[string]*modconfig.Mod

func (*FlowpipeModResources) GetReferences

func (m *FlowpipeModResources) GetReferences() map[string]*modconfig.ResourceReference

func (*FlowpipeModResources) GetResource

func (m *FlowpipeModResources) GetResource(parsedName *modconfig.ParsedResourceName) (resource modconfig.HclResource, found bool)

GetResource tries to find a resource with the given name in the ModResources NOTE: this does NOT support inputs, which are NOT uniquely named in a mod

func (*FlowpipeModResources) GetVariables

func (m *FlowpipeModResources) GetVariables() map[string]*modconfig.Variable

func (*FlowpipeModResources) TopLevelResources

func (m *FlowpipeModResources) TopLevelResources() modconfig.ModResources

TopLevelResources returns a new PowerpipeModResources containing only top level resources (i.e. no dependencies)

func (*FlowpipeModResources) WalkResources

func (m *FlowpipeModResources) WalkResources(resourceFunc func(item modconfig.HclResource) (bool, error)) error

WalkResources calls resourceFunc for every resource in the mod if any resourceFunc returns false or an error, return immediately

type HttpIntegration

type HttpIntegration struct {
	modconfig.HclResourceImpl          `json:"-"`
	modconfig.ResourceWithMetadataImpl `json:"-"`
	IntegrationImpl                    `json:"-"`

	Type string `json:"type" cty:"type" hcl:"type,label"`
}

func HttpIntegrationFromCtyValue

func HttpIntegrationFromCtyValue(val cty.Value) (*HttpIntegration, error)

func (*HttpIntegration) CtyValue

func (i *HttpIntegration) CtyValue() (cty.Value, error)

func (*HttpIntegration) Equals

func (i *HttpIntegration) Equals(other Integration) bool

func (*HttpIntegration) GetIntegrationType

func (i *HttpIntegration) GetIntegrationType() string

func (*HttpIntegration) MapInterface

func (i *HttpIntegration) MapInterface() (map[string]interface{}, error)

func (*HttpIntegration) SetAttributes

func (i *HttpIntegration) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*HttpIntegration) Validate

func (i *HttpIntegration) Validate() hcl.Diagnostics

type Input

type Input map[string]interface{}

Input to the step or pipeline execution

func (*Input) AsCtyMap

func (i *Input) AsCtyMap() (map[string]cty.Value, error)

type Integration

type Integration interface {
	modconfig.HclResource
	modconfig.ResourceWithMetadata

	CtyValue() (cty.Value, error)
	GetIntegrationImpl() *IntegrationImpl
	GetIntegrationType() string
	MapInterface() (map[string]interface{}, error)
	SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics
	SetFileReference(fileName string, startLineNumber int, endLineNumber int)
	SetUrl(string)
	Validate() hcl.Diagnostics

	Equals(Integration) bool
}

func NewIntegrationFromBlock

func NewIntegrationFromBlock(block *hcl.Block) Integration

type IntegrationImpl

type IntegrationImpl struct {
	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	// Slack and Http has URL, Email integration does not it will be null
	Url *string `json:"url,omitempty" cty:"url" hcl:"url,optional"`

	FileName        string
	StartLineNumber int
	EndLineNumber   int
}

func (*IntegrationImpl) GetIntegrationImpl

func (i *IntegrationImpl) GetIntegrationImpl() *IntegrationImpl

func (*IntegrationImpl) SetFileReference

func (i *IntegrationImpl) SetFileReference(fileName string, startLineNumber int, endLineNumber int)

func (*IntegrationImpl) SetUrl

func (i *IntegrationImpl) SetUrl(url string)

type LoopContainerStep

type LoopContainerStep struct {
	LoopStep

	Image             *string            `json:"image,omitempty" hcl:"image,optional" cty:"image"`
	Source            *string            `json:"source,omitempty" hcl:"source,optional" cty:"source"`
	Cmd               *[]string          `json:"cmd,omitempty" hcl:"cmd,optional" cty:"cmd"`
	Env               *map[string]string `json:"env,omitempty" hcl:"env,optional" cty:"env"`
	Entrypoint        *[]string          `json:"entrypoint,omitempty" hcl:"entrypoint,optional" cty:"entrypoint"`
	CpuShares         *int64             `json:"cpu_shares,omitempty" hcl:"cpu_shares,optional" cty:"cpu_shares"`
	Memory            *int64             `json:"memory,omitempty" hcl:"memory,optional" cty:"memory"`
	MemoryReservation *int64             `json:"memory_reservation,omitempty" hcl:"memory_reservation,optional" cty:"memory_reservation"`
	MemorySwap        *int64             `json:"memory_swap,omitempty" hcl:"memory_swap,optional" cty:"memory_swap"`
	MemorySwappiness  *int64             `json:"memory_swappiness,omitempty" hcl:"memory_swappiness,optional" cty:"memory_swappiness"`
	ReadOnly          *bool              `json:"read_only,omitempty" hcl:"read_only,optional" cty:"read_only"`
	User              *string            `json:"user,omitempty" hcl:"user,optional" cty:"user"`
	Workdir           *string            `json:"workdir,omitempty" hcl:"workdir,optional" cty:"workdir"`
}

func (*LoopContainerStep) Equals

func (l *LoopContainerStep) Equals(other LoopDefn) bool

func (*LoopContainerStep) GetType

func (*LoopContainerStep) GetType() string

func (*LoopContainerStep) SetAttributes

func (l *LoopContainerStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopContainerStep) UpdateInput

func (l *LoopContainerStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopDefn

type LoopDefn interface {
	GetType() string
	UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)
	SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics
	Equals(LoopDefn) bool
	AppendDependsOn(...string)
	AppendCredentialDependsOn(...string)
	AppendConnectionDependsOn(...string)
	AddUnresolvedAttribute(string, hcl.Expression)
	GetUnresolvedAttributes() map[string]hcl.Expression
	ResolveUntil(evalContext *hcl.EvalContext) (bool, hcl.Diagnostics)
}

func GetLoopDefn

func GetLoopDefn(stepType string, p *PipelineStepBase, hclRange *hcl.Range) LoopDefn

type LoopEmailStep

type LoopEmailStep struct {
	LoopStep

	To               *[]string `json:"to,omitempty" hcl:"to,optional" cty:"to"`
	From             *string   `json:"from,omitempty" hcl:"from,optional" cty:"from"`
	SenderCredential *string   `json:"sender_credential,omitempty" hcl:"sender_credential,optional" cty:"sender_credential"`
	Host             *string   `json:"host,omitempty" hcl:"host,optional" cty:"host"`
	Port             *int64    `json:"port,omitempty" hcl:"port,optional" cty:"port"`
	SenderName       *string   `json:"sender_name,omitempty" hcl:"sender_name,optional" cty:"sender_name"`
	Cc               *[]string `json:"cc,omitempty" hcl:"cc,optional" cty:"cc"`
	Bcc              *[]string `json:"bcc,omitempty" hcl:"bcc,optional" cty:"bcc"`
	Body             *string   `json:"body,omitempty" hcl:"body,optional" cty:"body"`
	ContentType      *string   `json:"content_type,omitempty" hcl:"content_type,optional" cty:"content_type"`
	Subject          *string   `json:"subject,omitempty" hcl:"subject,optional" cty:"subject"`
}

func (*LoopEmailStep) Equals

func (l *LoopEmailStep) Equals(other LoopDefn) bool

func (*LoopEmailStep) GetType

func (*LoopEmailStep) GetType() string

func (*LoopEmailStep) SetAttributes

func (l *LoopEmailStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopEmailStep) UpdateInput

func (l *LoopEmailStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopFunctionStep

type LoopFunctionStep struct {
	LoopStep

	Runtime *string                 `json:"runtime,omitempty"`
	Source  *string                 `json:"source,omitempty"`
	Handler *string                 `json:"handler,omitempty"`
	Event   *map[string]interface{} `json:"event,omitempty"`
	Env     *map[string]string      `json:"env,omitempty"`
}

func (*LoopFunctionStep) Equals

func (l *LoopFunctionStep) Equals(other LoopDefn) bool

func (*LoopFunctionStep) GetType

func (*LoopFunctionStep) GetType() string

func (*LoopFunctionStep) SetAttributes

func (l *LoopFunctionStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopFunctionStep) UpdateInput

func (l *LoopFunctionStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopHttpStep

type LoopHttpStep struct {
	LoopStep

	URL            *string                 `json:"url,omitempty" hcl:"url,optional" cty:"url"`
	Method         *string                 `json:"method,omitempty" hcl:"method,optional" cty:"method"`
	RequestBody    *string                 `json:"request_body,omitempty" hcl:"request_body,optional" cty:"request_body"`
	RequestHeaders *map[string]interface{} `json:"request_headers,omitempty" hcl:"request_headers,optional" cty:"request_headers"`
	CaCertPem      *string                 `json:"ca_cert_pem,omitempty" hcl:"ca_cert_pem,optional" cty:"ca_cert_pem"`
	Insecure       *bool                   `json:"insecure,omitempty" hcl:"insecure,optional" cty:"insecure"`
}

func (*LoopHttpStep) Equals

func (l *LoopHttpStep) Equals(other LoopDefn) bool

func (*LoopHttpStep) GetType

func (*LoopHttpStep) GetType() string

func (*LoopHttpStep) SetAttributes

func (l *LoopHttpStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopHttpStep) UpdateInput

func (l *LoopHttpStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopInputStep

type LoopInputStep struct {
	LoopStep

	Notifier *NotifierImpl `json:"notifier" cty:"-" hcl:"-"`

	Prompt  *string   `json:"prompt" cty:"prompt" hcl:"prompt,optional"`
	Cc      *[]string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc     *[]string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Channel *string   `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
	Subject *string   `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
	To      *[]string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
}

func (*LoopInputStep) Equals

func (l *LoopInputStep) Equals(other LoopDefn) bool

func (*LoopInputStep) GetType

func (s *LoopInputStep) GetType() string

func (*LoopInputStep) SetAttributes

func (l *LoopInputStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopInputStep) UpdateInput

func (l *LoopInputStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopMessageStep

type LoopMessageStep struct {
	LoopStep

	Notifier *NotifierImpl `json:"notifier" cty:"-" hcl:"-"`

	Text    *string   `json:"text" cty:"prompt" hcl:"prompt,optional"`
	Cc      *[]string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc     *[]string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Channel *string   `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
	Subject *string   `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
	To      *[]string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
}

func (*LoopMessageStep) Equals

func (l *LoopMessageStep) Equals(other LoopDefn) bool

func (*LoopMessageStep) GetType

func (s *LoopMessageStep) GetType() string

func (*LoopMessageStep) SetAttributes

func (l *LoopMessageStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopMessageStep) UpdateInput

func (l *LoopMessageStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopPipelineStep

type LoopPipelineStep struct {
	LoopStep

	Args interface{} `json:"args,omitempty" hcl:"args,optional" cty:"args"`
}

func (*LoopPipelineStep) Equals

func (l *LoopPipelineStep) Equals(other LoopDefn) bool

func (*LoopPipelineStep) GetType

func (*LoopPipelineStep) GetType() string

func (*LoopPipelineStep) SetAttributes

func (l *LoopPipelineStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopPipelineStep) UpdateInput

func (l *LoopPipelineStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopQueryStep

type LoopQueryStep struct {
	LoopStep

	Database *string        `json:"database,omitempty" hcl:"database,optional" cty:"database"`
	Sql      *string        `json:"sql,omitempty" hcl:"sql,optional" cty:"sql"`
	Args     *[]interface{} `json:"args,omitempty" hcl:"args,optional" cty:"args"`
}

func (*LoopQueryStep) Equals

func (l *LoopQueryStep) Equals(other LoopDefn) bool

func (*LoopQueryStep) GetType

func (*LoopQueryStep) GetType() string

func (*LoopQueryStep) SetAttributes

func (l *LoopQueryStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopQueryStep) UpdateInput

func (l *LoopQueryStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopSleepStep

type LoopSleepStep struct {
	LoopStep

	UnresolvedAttributes hcl.Attributes `json:"-"`
	Duration             *string        `json:"duration,omitempty"`
}

func (*LoopSleepStep) Equals

func (l *LoopSleepStep) Equals(other LoopDefn) bool

func (*LoopSleepStep) GetType

func (*LoopSleepStep) GetType() string

func (*LoopSleepStep) SetAttributes

func (s *LoopSleepStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopSleepStep) UpdateInput

func (l *LoopSleepStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type LoopStep

type LoopStep struct {
	// circular link to its "parent"
	PipelineStepBase     *PipelineStepBase         `json:"-"`
	Range                *hcl.Range                `json:"-"`
	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	Until                *bool
}

func (*LoopStep) AddUnresolvedAttribute

func (l *LoopStep) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*LoopStep) AppendConnectionDependsOn

func (*LoopStep) AppendConnectionDependsOn(...string)

func (*LoopStep) AppendCredentialDependsOn

func (*LoopStep) AppendCredentialDependsOn(...string)

func (*LoopStep) AppendDependsOn

func (l *LoopStep) AppendDependsOn(dependsOn ...string)

func (LoopStep) Equals

func (l LoopStep) Equals(other LoopStep) bool

func (*LoopStep) GetPipeline

func (l *LoopStep) GetPipeline() *Pipeline

func (*LoopStep) GetUnresolvedAttributes

func (l *LoopStep) GetUnresolvedAttributes() map[string]hcl.Expression

func (*LoopStep) ResolveUntil

func (l *LoopStep) ResolveUntil(evalContext *hcl.EvalContext) (bool, hcl.Diagnostics)

func (*LoopStep) SetAttributes

func (l *LoopStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type LoopTransformStep

type LoopTransformStep struct {
	LoopStep

	Value interface{} `json:"value,omitempty" hcl:"value,optional" cty:"value"`
}

func (*LoopTransformStep) Equals

func (l *LoopTransformStep) Equals(other LoopDefn) bool

func (*LoopTransformStep) GetType

func (*LoopTransformStep) GetType() string

func (*LoopTransformStep) SetAttributes

func (s *LoopTransformStep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*LoopTransformStep) UpdateInput

func (l *LoopTransformStep) UpdateInput(input Input, evalContext *hcl.EvalContext) (Input, error)

type MsTeamsIntegration

type MsTeamsIntegration struct {
	// base
	modconfig.HclResourceImpl          `json:"-"`
	modconfig.ResourceWithMetadataImpl `json:"-"`
	IntegrationImpl                    `json:"-"`
	Type                               string `json:"type" cty:"type" hcl:"type,label"`
	IntegrationName                    string `json:"integration_name" cty:"integration_name"`

	// teams
	WebhookUrl *string `json:"webhook_url,omitempty" cty:"webhook_url" hcl:"webhook_url,optional"`
}

func MsTeamsIntegrationFromCtyValue

func MsTeamsIntegrationFromCtyValue(val cty.Value) (*MsTeamsIntegration, error)

func (*MsTeamsIntegration) CtyValue

func (i *MsTeamsIntegration) CtyValue() (cty.Value, error)

func (*MsTeamsIntegration) Equals

func (i *MsTeamsIntegration) Equals(other Integration) bool

func (*MsTeamsIntegration) GetIntegrationType

func (i *MsTeamsIntegration) GetIntegrationType() string

func (*MsTeamsIntegration) MapInterface

func (i *MsTeamsIntegration) MapInterface() (map[string]interface{}, error)

func (*MsTeamsIntegration) SetAttributes

func (i *MsTeamsIntegration) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*MsTeamsIntegration) Validate

func (i *MsTeamsIntegration) Validate() hcl.Diagnostics

type NextStep

type NextStep struct {
	StepName       string         `json:"step_name"`
	Action         NextStepAction `json:"action"`
	StepForEach    *StepForEach   `json:"step_for_each,omitempty"`
	StepLoop       *StepLoop      `json:"step_loop,omitempty"`
	Input          Input          `json:"input"`
	MaxConcurrency *int           `json:"max_concurrency,omitempty"`
}

type NextStepAction

type NextStepAction string
const (
	// Default Next Step action which is just to start them, note that
	// the step may yet be "skipped" if the IF clause is preventing the step
	// to actually start, but at the very least we can "start" the step.
	NextStepActionStart NextStepAction = "start"

	// This happens if the step can't be started because one of it's dependency as failed
	//
	// Q: So why would step failure does not mean pipeline fail straight away?
	// A: We can't raise the pipeline fail command if there's "ignore error" directive on the step.
	//    If there are steps that depend on the failed step, these steps becomes "inaccessible", they can't start
	//    because the prerequisites have failed.
	//
	NextStepActionInaccessible NextStepAction = "inaccessible"

	NextStepActionSkip NextStepAction = "skip"
)

type Notifier

type Notifier interface {
	modconfig.HclResource
	modconfig.ResourceWithMetadata

	CtyValue() (cty.Value, error)
	GetNotifierImpl() *NotifierImpl
	GetNotifies() []Notify
	SetFileReference(fileName string, startLineNumber int, endLineNumber int)

	Equals(Notifier) bool
}

type NotifierImpl

type NotifierImpl struct {
	modconfig.HclResourceImpl          `json:"-"`
	modconfig.ResourceWithMetadataImpl `json:"-"`

	NotifierName string   `json:"notifier_name" cty:"notifier_name" hcl:"notifier_name"`
	Notifies     []Notify `json:"notifies" cty:"notifies" hcl:"notifies"`

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	FileName        string `json:"-" cty:"-" hcl:"-"`
	StartLineNumber int    `json:"-" cty:"-" hcl:"-"`
	EndLineNumber   int    `json:"-" cty:"-" hcl:"-"`
}

func (*NotifierImpl) CtyValue

func (n *NotifierImpl) CtyValue() (cty.Value, error)

func (*NotifierImpl) CustomType

func (n *NotifierImpl) CustomType()

CustomType implements custom_type.CustomType interface

func (*NotifierImpl) Equals

func (n *NotifierImpl) Equals(other Notifier) bool

func (*NotifierImpl) GetNotifierImpl

func (n *NotifierImpl) GetNotifierImpl() *NotifierImpl

func (*NotifierImpl) GetNotifies

func (n *NotifierImpl) GetNotifies() []Notify

func (*NotifierImpl) SetFileReference

func (n *NotifierImpl) SetFileReference(fileName string, startLineNumber int, endLineNumber int)

func (*NotifierImpl) Validate

func (n *NotifierImpl) Validate() hcl.Diagnostics

type Notify

type Notify struct {
	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	Integration Integration `json:"integration"`

	Cc          []string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc         []string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Channel     *string  `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
	Description *string  `json:"description,omitempty" cty:"description" hcl:"description,optional"`
	Subject     *string  `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
	Title       *string  `json:"title,omitempty" cty:"title" hcl:"title,optional"`
	To          []string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
}

func (*Notify) CtyValue

func (n *Notify) CtyValue() (cty.Value, error)

func (*Notify) Equals

func (n *Notify) Equals(other *Notify) bool

func (*Notify) MapInterface

func (n *Notify) MapInterface() (map[string]interface{}, error)

func (*Notify) SetAttributes

func (n *Notify) SetAttributes(body hcl.Body, evalCtx *hcl.EvalContext) hcl.Diagnostics

func (*Notify) UnmarshalJSON

func (n *Notify) UnmarshalJSON(data []byte) error

UnmarshalJSON custom unmarshaller for Notify

func (*Notify) Validate

func (n *Notify) Validate() hcl.Diagnostics

type Output

type Output struct {
	Status      string      `json:"status,omitempty"`
	FailureMode string      `json:"failure_mode,omitempty"`
	Data        OutputData  `json:"data,omitempty"`
	Errors      []StepError `json:"errors,omitempty"`
	// Flowpipe metadata, contains started_at, finished_at
	Flowpipe map[string]interface{} `json:"flowpipe,omitempty"`
}

Output is the output from a step execution.

func (*Output) AsCtyMap

func (o *Output) AsCtyMap() (map[string]cty.Value, error)

func (*Output) Get

func (o *Output) Get(key string) interface{}

func (*Output) HasErrors

func (o *Output) HasErrors() bool

func (*Output) Set

func (o *Output) Set(key string, value interface{})

type OutputData

type OutputData map[string]interface{}

type Pipeline

type Pipeline struct {
	modconfig.HclResourceImpl
	modconfig.ResourceWithMetadataImpl

	// TODO: hack to serialise pipeline name because HclResourceImpl is not serialised
	PipelineName string `json:"pipeline_name"`
	// To be used when passing pipeline as a parameter to another pipeline, we need to know the source mod of
	// this pipeline so we can resolve the pipeline later. Name is not enough because there may be multiple
	// versions of the same mod in the current context
	ModFullVersion string `json:"mod_full_version"`

	// Unparsed HCL body, needed so we can de-code the step HCL into the correct struct
	RawBody hcl.Body `json:"-" hcl:",remain"`

	// Unparsed JSON raw message, needed so we can unmarshall the step JSON into the correct struct
	StepsRawJson json.RawMessage `json:"-"`

	Steps           []PipelineStep   `json:"steps,omitempty"`
	OutputConfig    []PipelineOutput `json:"outputs,omitempty"`
	Params          []PipelineParam  `json:"params,omitempty"`
	FileName        string           `json:"file_name"`
	StartLineNumber int              `json:"start_line_number"`
	EndLineNumber   int              `json:"end_line_number"`
	// contains filtered or unexported fields
}

Pipeline represents a "pipeline" block in an flowpipe HCL (*.fp) file

Note that this Pipeline definition is different that the pipeline that is running. This definition contains unresolved expressions (mostly in steps), how to handle errors etc but not the actual Pipeline execution data.

func NewPipeline

func NewPipeline(mod *modconfig.Mod, block *hcl.Block) *Pipeline

func (*Pipeline) CtyValue

func (p *Pipeline) CtyValue() (cty.Value, error)

func (*Pipeline) Equals

func (p *Pipeline) Equals(other *Pipeline) bool

func (*Pipeline) GetMod

func (p *Pipeline) GetMod() *modconfig.Mod

Implements modconfig.ModItem interface

func (*Pipeline) GetParam

func (p *Pipeline) GetParam(paramName string) *PipelineParam

func (*Pipeline) GetParams

func (p *Pipeline) GetParams() []PipelineParam

func (*Pipeline) GetStep

func (p *Pipeline) GetStep(stepFullyQualifiedName string) PipelineStep

Pipeline functions

func (*Pipeline) OnDecoded

func (p *Pipeline) OnDecoded(*hcl.Block, modconfig.ModResourcesProvider) hcl.Diagnostics

func (*Pipeline) SetAttributes

func (p *Pipeline) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*Pipeline) SetFileReference

func (p *Pipeline) SetFileReference(fileName string, startLineNumber int, endLineNumber int)

func (*Pipeline) SetOptions

func (p *Pipeline) SetOptions(_ options.Options, block *hcl.Block) hcl.Diagnostics

SetOptions sets the options on the pipeline (not supported)

func (*Pipeline) UnmarshalJSON

func (p *Pipeline) UnmarshalJSON(data []byte) error

type PipelineOutput

type PipelineOutput struct {
	Name                string         `json:"name"`
	Description         string         `json:"description,omitempty"`
	DependsOn           []string       `json:"depends_on,omitempty"`
	CredentialDependsOn []string       `json:"credential_depends_on,omitempty"`
	ConnectionDependsOn []string       `json:"connection_depends_on,omitempty"`
	Resolved            bool           `json:"resolved,omitempty"`
	Value               interface{}    `json:"value,omitempty"`
	UnresolvedValue     hcl.Expression `json:"-"`
	Range               *hcl.Range     `json:"Range"`
}

func (*PipelineOutput) AppendConnectionDependsOn

func (o *PipelineOutput) AppendConnectionDependsOn(connectionDependsOn ...string)

func (*PipelineOutput) AppendCredentialDependsOn

func (o *PipelineOutput) AppendCredentialDependsOn(credentialDependsOn ...string)

func (*PipelineOutput) AppendDependsOn

func (o *PipelineOutput) AppendDependsOn(dependsOn ...string)

func (*PipelineOutput) Equals

func (o *PipelineOutput) Equals(other *PipelineOutput) bool

type PipelineParam

type PipelineParam struct {
	Name        string            `json:"name"`
	Description string            `json:"description"`
	Optional    bool              `json:"optional,omitempty"`
	Default     cty.Value         `json:"-"`
	Enum        cty.Value         `json:"-"`
	EnumGo      []any             `json:"enum"`
	Type        cty.Type          `json:"-"`
	TypeString  string            `json:"type_string"`
	Tags        map[string]string `json:"tags,omitempty"`
	Format      string            `json:"format"`
}

func (*PipelineParam) Equals

func (p *PipelineParam) Equals(other *PipelineParam) bool

func (*PipelineParam) IsConnectionType

func (p *PipelineParam) IsConnectionType() bool

func (*PipelineParam) IsNotifierType

func (p *PipelineParam) IsNotifierType() bool

func (*PipelineParam) PipelineParamCustomValueValidation

func (p *PipelineParam) PipelineParamCustomValueValidation(setting cty.Value, evalCtx *hcl.EvalContext) hcl.Diagnostics

func (*PipelineParam) ValidateSetting

func (p *PipelineParam) ValidateSetting(setting cty.Value, evalCtx *hcl.EvalContext) (bool, hcl.Diagnostics, error)

type PipelineStep

type PipelineStep interface {
	PipelineStepBaseInterface

	Initialize()
	GetFullyQualifiedName() string
	GetName() string
	SetName(string)
	GetType() string
	SetType(string)
	SetPipelineName(string)
	SetPipeline(*Pipeline)
	GetPipeline() *Pipeline
	GetPipelineName() string
	IsResolved() bool
	AddUnresolvedBody(string, hcl.Body)

	GetInputs(*hcl.EvalContext) (map[string]interface{}, error)
	GetInputs2(*hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

	GetDependsOn() []string
	GetCredentialDependsOn() []string
	GetConnectionDependsOn() []string
	GetForEach() hcl.Expression
	SetAttributes(hcl.Attributes, *hcl.EvalContext) hcl.Diagnostics
	GetUnresolvedAttributes() map[string]hcl.Expression
	SetBlockConfig(hcl.Blocks, *hcl.EvalContext) hcl.Diagnostics
	GetErrorConfig(*hcl.EvalContext, bool) (*ErrorConfig, hcl.Diagnostics)
	GetRetryConfig(*hcl.EvalContext, bool) (*RetryConfig, hcl.Diagnostics)
	GetLoopConfig() LoopDefn
	GetThrowConfig() []*ThrowConfig
	SetOutputConfig(map[string]*PipelineOutput)
	GetOutputConfig() map[string]*PipelineOutput
	Equals(other PipelineStep) bool
	Validate() hcl.Diagnostics
	SetFileReference(fileName string, startLineNumber int, endLineNumber int)
	SetRange(*hcl.Range)
	GetRange() *hcl.Range
	GetMaxConcurrency(*hcl.EvalContext) *int
}

A common interface that all pipeline steps must implement

func NewPipelineStep

func NewPipelineStep(stepType, stepName string, pipeline *Pipeline) PipelineStep

type PipelineStepBase

type PipelineStepBase struct {
	Title               *string        `json:"title,omitempty"`
	Description         *string        `json:"description,omitempty"`
	Name                string         `json:"name"`
	Type                string         `json:"step_type"`
	PipelineName        string         `json:"pipeline_name,omitempty"`
	Pipeline            *Pipeline      `json:"-"`
	Timeout             interface{}    `json:"timeout,omitempty"`
	DependsOn           []string       `json:"depends_on,omitempty"`
	CredentialDependsOn []string       `json:"credential_depends_on,omitempty"`
	ConnectionDependsOn []string       `json:"connection_depends_on,omitempty"`
	Resolved            bool           `json:"resolved,omitempty"`
	ErrorConfig         *ErrorConfig   `json:"-"`
	RetryConfig         *RetryConfig   `json:"retry,omitempty"`
	ThrowConfig         []*ThrowConfig `json:"throw,omitempty"`
	// TODO: we should serialise this, it's used in PipelineLoaded event to have a record the exact pipeline config loaded. There's no further need apart from record keeping, so it's OK to have it unserializeable for now.
	LoopConfig      LoopDefn                   `json:"-"`
	OutputConfig    map[string]*PipelineOutput `json:"-"`
	FileName        string                     `json:"file_name"`
	StartLineNumber int                        `json:"start_line_number"`
	EndLineNumber   int                        `json:"end_line_number"`
	MaxConcurrency  *int                       `json:"max_concurrency,omitempty"`
	Range           *hcl.Range                 `json:"range"`

	// This cant' be serialised
	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	UnresolvedBodies     map[string]hcl.Body       `json:"-"`
	ForEach              hcl.Expression            `json:"-"`
}

A common base struct that all pipeline steps must embed

func (*PipelineStepBase) AddUnresolvedAttribute

func (p *PipelineStepBase) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*PipelineStepBase) AddUnresolvedBody

func (p *PipelineStepBase) AddUnresolvedBody(name string, body hcl.Body)

func (*PipelineStepBase) AppendConnectionDependsOn

func (p *PipelineStepBase) AppendConnectionDependsOn(connectionDependsOn ...string)

func (*PipelineStepBase) AppendCredentialDependsOn

func (p *PipelineStepBase) AppendCredentialDependsOn(credentialDependsOn ...string)

func (*PipelineStepBase) AppendDependsOn

func (p *PipelineStepBase) AppendDependsOn(dependsOn ...string)

func (*PipelineStepBase) Equals

func (p *PipelineStepBase) Equals(other *PipelineStepBase) bool

func (*PipelineStepBase) GetBaseInputs

func (p *PipelineStepBase) GetBaseInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepBase) GetConnectionDependsOn

func (p *PipelineStepBase) GetConnectionDependsOn() []string

func (*PipelineStepBase) GetCredentialDependsOn

func (p *PipelineStepBase) GetCredentialDependsOn() []string

func (*PipelineStepBase) GetDependsOn

func (p *PipelineStepBase) GetDependsOn() []string

func (*PipelineStepBase) GetErrorConfig

func (p *PipelineStepBase) GetErrorConfig(evalContext *hcl.EvalContext, ifResolution bool) (*ErrorConfig, hcl.Diagnostics)

func (*PipelineStepBase) GetForEach

func (p *PipelineStepBase) GetForEach() hcl.Expression

func (*PipelineStepBase) GetFullyQualifiedName

func (p *PipelineStepBase) GetFullyQualifiedName() string

func (*PipelineStepBase) GetInputs2

func (p *PipelineStepBase) GetInputs2(*hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepBase) GetLoopConfig

func (p *PipelineStepBase) GetLoopConfig() LoopDefn

func (*PipelineStepBase) GetMaxConcurrency

func (p *PipelineStepBase) GetMaxConcurrency(evalContext *hcl.EvalContext) *int

func (*PipelineStepBase) GetName

func (p *PipelineStepBase) GetName() string

func (*PipelineStepBase) GetOutputConfig

func (p *PipelineStepBase) GetOutputConfig() map[string]*PipelineOutput

func (*PipelineStepBase) GetPipeline

func (p *PipelineStepBase) GetPipeline() *Pipeline

func (*PipelineStepBase) GetPipelineName

func (p *PipelineStepBase) GetPipelineName() string

func (*PipelineStepBase) GetRange

func (p *PipelineStepBase) GetRange() *hcl.Range

func (*PipelineStepBase) GetRetryConfig

func (p *PipelineStepBase) GetRetryConfig(evalContext *hcl.EvalContext, ifResolution bool) (*RetryConfig, hcl.Diagnostics)

func (*PipelineStepBase) GetThrowConfig

func (p *PipelineStepBase) GetThrowConfig() []*ThrowConfig

For Throw config we want the client to resolve individual element. This to avoid failing on the subsequent throw if an earlier throw is executed.

For example: 3 throw configuration. If the first throw condition is met, then there's no reason we should evaluate the subsequent throw conditions, let alone failing their evaluation.

func (*PipelineStepBase) GetType

func (p *PipelineStepBase) GetType() string

func (*PipelineStepBase) GetUnresolvedAttributes

func (p *PipelineStepBase) GetUnresolvedAttributes() map[string]hcl.Expression

func (*PipelineStepBase) HandleDecodeBodyDiags

func (p *PipelineStepBase) HandleDecodeBodyDiags(diags hcl.Diagnostics, attributeName string, body hcl.Body) hcl.Diagnostics

func (*PipelineStepBase) Initialize

func (p *PipelineStepBase) Initialize()

func (*PipelineStepBase) IsBaseAttribute

func (p *PipelineStepBase) IsBaseAttribute(name string) bool

func (*PipelineStepBase) IsResolved

func (p *PipelineStepBase) IsResolved() bool

func (*PipelineStepBase) SetBaseAttributes

func (p *PipelineStepBase) SetBaseAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepBase) SetBlockConfig

func (p *PipelineStepBase) SetBlockConfig(blocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepBase) SetFileReference

func (p *PipelineStepBase) SetFileReference(fileName string, startLineNumber int, endLineNumber int)

func (*PipelineStepBase) SetName

func (p *PipelineStepBase) SetName(name string)

func (*PipelineStepBase) SetOutputConfig

func (p *PipelineStepBase) SetOutputConfig(output map[string]*PipelineOutput)

func (*PipelineStepBase) SetPipeline

func (p *PipelineStepBase) SetPipeline(pipeline *Pipeline)

func (*PipelineStepBase) SetPipelineName

func (p *PipelineStepBase) SetPipelineName(pipelineName string)

func (*PipelineStepBase) SetRange

func (p *PipelineStepBase) SetRange(r *hcl.Range)

func (*PipelineStepBase) SetResolved

func (p *PipelineStepBase) SetResolved(resolved bool)

func (*PipelineStepBase) SetType

func (p *PipelineStepBase) SetType(stepType string)

func (*PipelineStepBase) Validate

func (p *PipelineStepBase) Validate() hcl.Diagnostics

func (*PipelineStepBase) ValidateBaseAttributes

func (p *PipelineStepBase) ValidateBaseAttributes() hcl.Diagnostics

type PipelineStepBaseInterface

type PipelineStepBaseInterface interface {
	AppendDependsOn(...string)
	AppendCredentialDependsOn(...string)
	AppendConnectionDependsOn(...string)
	AddUnresolvedAttribute(string, hcl.Expression)
	GetPipeline() *Pipeline
}

type PipelineStepContainer

type PipelineStepContainer struct {
	PipelineStepBase

	Image             *string           `json:"image"`
	Source            *string           `json:"source"`
	Cmd               []string          `json:"cmd"`
	Env               map[string]string `json:"env"`
	Entrypoint        []string          `json:"entrypoint"`
	CpuShares         *int64            `json:"cpu_shares"`
	Memory            *int64            `json:"memory"`
	MemoryReservation *int64            `json:"memory_reservation"`
	MemorySwap        *int64            `json:"memory_swap"`
	MemorySwappiness  *int64            `json:"memory_swappiness"`
	ReadOnly          *bool             `json:"read_only"`
	User              *string           `json:"user"`
	Workdir           *string           `json:"workdir"`
}

func (*PipelineStepContainer) Equals

func (p *PipelineStepContainer) Equals(iOther PipelineStep) bool

func (*PipelineStepContainer) GetInputs

func (p *PipelineStepContainer) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepContainer) GetInputs2

func (p *PipelineStepContainer) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepContainer) SetAttributes

func (p *PipelineStepContainer) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepContainer) Validate

func (p *PipelineStepContainer) Validate() hcl.Diagnostics

type PipelineStepEmail

type PipelineStepEmail struct {
	PipelineStepBase
	To           []string `json:"to"`
	From         *string  `json:"from"`
	SmtpPassword *string  `json:"smtp_password"`
	SmtpUsername *string  `json:"smtp_username"`
	Host         *string  `json:"host"`
	Port         *int64   `json:"port"`
	SenderName   *string  `json:"sender_name"`
	Cc           []string `json:"cc"`
	Bcc          []string `json:"bcc"`
	Body         *string  `json:"body"`
	ContentType  *string  `json:"content_type"`
	Subject      *string  `json:"subject"`
}

func (*PipelineStepEmail) Equals

func (p *PipelineStepEmail) Equals(iOther PipelineStep) bool

func (*PipelineStepEmail) GetInputs

func (p *PipelineStepEmail) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepEmail) GetInputs2

func (p *PipelineStepEmail) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepEmail) SetAttributes

func (p *PipelineStepEmail) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type PipelineStepFunction

type PipelineStepFunction struct {
	PipelineStepBase

	Runtime string `json:"runtime" cty:"runtime"`
	Source  string `json:"source" cty:"source"`
	Handler string `json:"handler" cty:"handler"`

	Event map[string]interface{} `json:"event"`
	Env   map[string]string      `json:"env"`
}

func (*PipelineStepFunction) Equals

func (p *PipelineStepFunction) Equals(iOther PipelineStep) bool

func (*PipelineStepFunction) GetInputs

func (p *PipelineStepFunction) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepFunction) GetInputs2

func (p *PipelineStepFunction) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepFunction) SetAttributes

func (p *PipelineStepFunction) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepFunction) Validate

func (p *PipelineStepFunction) Validate() hcl.Diagnostics

type PipelineStepHttp

type PipelineStepHttp struct {
	PipelineStepBase

	Url             *string                `json:"url" binding:"required"`
	Method          *string                `json:"method,omitempty"`
	CaCertPem       *string                `json:"ca_cert_pem,omitempty"`
	Insecure        *bool                  `json:"insecure,omitempty"`
	RequestBody     *string                `json:"request_body,omitempty"`
	RequestHeaders  map[string]interface{} `json:"request_headers,omitempty"`
	BasicAuthConfig *BasicAuthConfig       `json:"basic_auth,omitempty"`
}

func (*PipelineStepHttp) Equals

func (p *PipelineStepHttp) Equals(iOther PipelineStep) bool

func (*PipelineStepHttp) GetInputs

func (p *PipelineStepHttp) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepHttp) GetInputs2

func (p *PipelineStepHttp) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepHttp) SetAttributes

func (p *PipelineStepHttp) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepHttp) SetBlockConfig

func (p *PipelineStepHttp) SetBlockConfig(blocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepHttp) Validate

func (p *PipelineStepHttp) Validate() hcl.Diagnostics

type PipelineStepInput

type PipelineStepInput struct {
	PipelineStepBase

	InputType  string  `json:"type" cty:"type"`
	Prompt     *string `json:"prompt" cty:"prompt"`
	OptionList []PipelineStepInputOption

	// Notifier cty.Value `json:"-" cty:"notify"`
	Notifier NotifierImpl `json:"notify" cty:"-"`

	// overrides
	Cc      []string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc     []string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Channel *string  `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
	Subject *string  `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
	To      []string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
}

func (*PipelineStepInput) Equals

func (p *PipelineStepInput) Equals(other PipelineStep) bool

func (*PipelineStepInput) GetInputs

func (p *PipelineStepInput) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepInput) GetInputs2

func (p *PipelineStepInput) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepInput) SetAttributes

func (p *PipelineStepInput) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepInput) SetBlockConfig

func (p *PipelineStepInput) SetBlockConfig(blocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepInput) Validate

func (p *PipelineStepInput) Validate() hcl.Diagnostics

type PipelineStepInputOption

type PipelineStepInputOption struct {
	// circular link to its "parent"
	PipelineStepBase *PipelineStepBase `json:"-"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`

	OptionLabel *string `json:"-"` // the label on the option block
	Label       *string `json:"label,omitempty" hcl:"label,optional"`
	Value       *string `json:"value,omitempty" hcl:"value,optional"`
	Selected    *bool   `json:"selected,omitempty" hcl:"selected,optional"`
	Style       *string `json:"style,omitempty" hcl:"style,optional"`
}

func CtyValueToPipelineStepInputOptionList

func CtyValueToPipelineStepInputOptionList(value cty.Value) ([]PipelineStepInputOption, error)

func (*PipelineStepInputOption) AddUnresolvedAttribute

func (p *PipelineStepInputOption) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*PipelineStepInputOption) AppendConnectionDependsOn

func (p *PipelineStepInputOption) AppendConnectionDependsOn(...string)

func (*PipelineStepInputOption) AppendCredentialDependsOn

func (p *PipelineStepInputOption) AppendCredentialDependsOn(...string)

func (*PipelineStepInputOption) AppendDependsOn

func (p *PipelineStepInputOption) AppendDependsOn(dependsOn ...string)

func (*PipelineStepInputOption) Equals

func (*PipelineStepInputOption) GetPipeline

func (p *PipelineStepInputOption) GetPipeline() *Pipeline

func (*PipelineStepInputOption) Resolve

func (p *PipelineStepInputOption) Resolve(evalContext *hcl.EvalContext) (*PipelineStepInputOption, hcl.Diagnostics)

func (*PipelineStepInputOption) SetAttributes

func (p *PipelineStepInputOption) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepInputOption) Validate

func (p *PipelineStepInputOption) Validate() hcl.Diagnostics

type PipelineStepMessage

type PipelineStepMessage struct {
	PipelineStepBase

	Text string `json:"text" hcl:"text" cty:"text"`

	// Notifier cty.Value `json:"-" cty:"notify"`
	Notifier NotifierImpl `json:"notify" cty:"-"`

	// overrides
	Cc      []string `json:"cc,omitempty" cty:"cc" hcl:"cc,optional"`
	Bcc     []string `json:"bcc,omitempty" cty:"bcc" hcl:"bcc,optional"`
	Channel *string  `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
	Subject *string  `json:"subject,omitempty" cty:"subject" hcl:"subject,optional"`
	To      []string `json:"to,omitempty" cty:"to" hcl:"to,optional"`
}

func (*PipelineStepMessage) Equals

func (p *PipelineStepMessage) Equals(iOther PipelineStep) bool

func (*PipelineStepMessage) GetInputs

func (p *PipelineStepMessage) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepMessage) GetInputs2

func (p *PipelineStepMessage) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepMessage) SetAttributes

func (p *PipelineStepMessage) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type PipelineStepPipeline

type PipelineStepPipeline struct {
	PipelineStepBase

	Pipeline cty.Value `json:"-"`
	Args     Input     `json:"args"`
}

func (*PipelineStepPipeline) Equals

func (p *PipelineStepPipeline) Equals(iOther PipelineStep) bool

func (*PipelineStepPipeline) GetInputs

func (p *PipelineStepPipeline) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepPipeline) GetInputs2

func (p *PipelineStepPipeline) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepPipeline) SetAttributes

func (p *PipelineStepPipeline) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type PipelineStepQuery

type PipelineStepQuery struct {
	PipelineStepBase
	Database         *string
	ConnectionString *string       `json:"database"`
	Sql              *string       `json:"sql"`
	Args             []interface{} `json:"args"`
}

func (*PipelineStepQuery) Equals

func (p *PipelineStepQuery) Equals(iOther PipelineStep) bool

func (*PipelineStepQuery) GetInputs

func (p *PipelineStepQuery) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepQuery) GetInputs2

func (p *PipelineStepQuery) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepQuery) SetAttributes

func (p *PipelineStepQuery) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepQuery) Validate

func (p *PipelineStepQuery) Validate() hcl.Diagnostics

type PipelineStepSleep

type PipelineStepSleep struct {
	PipelineStepBase
	Duration interface{} `json:"duration"`
}

func (*PipelineStepSleep) Equals

func (p *PipelineStepSleep) Equals(iOther PipelineStep) bool

func (*PipelineStepSleep) GetInputs

func (p *PipelineStepSleep) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepSleep) GetInputs2

func (p *PipelineStepSleep) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepSleep) SetAttributes

func (p *PipelineStepSleep) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*PipelineStepSleep) Validate

func (p *PipelineStepSleep) Validate() hcl.Diagnostics

type PipelineStepTransform

type PipelineStepTransform struct {
	PipelineStepBase
	Value any `json:"value"`
}

func (*PipelineStepTransform) Equals

func (p *PipelineStepTransform) Equals(iOther PipelineStep) bool

func (*PipelineStepTransform) GetInputs

func (p *PipelineStepTransform) GetInputs(evalContext *hcl.EvalContext) (map[string]interface{}, error)

func (*PipelineStepTransform) GetInputs2

func (p *PipelineStepTransform) GetInputs2(evalContext *hcl.EvalContext) (map[string]interface{}, []ConnectionDependency, error)

func (*PipelineStepTransform) SetAttributes

func (p *PipelineStepTransform) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type ResourceWithParam

type ResourceWithParam interface {
	GetParam(paramName string) *PipelineParam
	GetParams() []PipelineParam
}

type RetryConfig

type RetryConfig struct {
	// circular link to its "parent"
	PipelineStepBase *PipelineStepBase `json:"-"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`

	If          *bool   `json:"if"`
	MaxAttempts *int64  `json:"max_attempts,omitempty" hcl:"max_attempts,optional" cty:"max_attempts"`
	Strategy    *string `json:"strategy,omitempty" hcl:"strategy,optional" cty:"strategy"`
	MinInterval *int64  `json:"min_interval,omitempty" hcl:"min_interval,optional" cty:"min_interval"`
	MaxInterval *int64  `json:"max_interval,omitempty" hcl:"max_interval,optional" cty:"max_interval"`
}

func NewRetryConfig

func NewRetryConfig(p *PipelineStepBase) *RetryConfig

func (*RetryConfig) AddUnresolvedAttribute

func (r *RetryConfig) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*RetryConfig) AppendConnectionDependsOn

func (r *RetryConfig) AppendConnectionDependsOn(...string)

func (*RetryConfig) AppendCredentialDependsOn

func (r *RetryConfig) AppendCredentialDependsOn(...string)

func (*RetryConfig) AppendDependsOn

func (r *RetryConfig) AppendDependsOn(dependsOn ...string)

func (*RetryConfig) CalculateBackoff

func (r *RetryConfig) CalculateBackoff(attempt int) time.Duration

The first attempt is the first time the operation is tried, NOT the first retry.

The first retry is the 2nd attempt

func (*RetryConfig) Equals

func (r *RetryConfig) Equals(other *RetryConfig) bool

func (*RetryConfig) GetPipeline

func (r *RetryConfig) GetPipeline() *Pipeline

func (*RetryConfig) ResolveSettings

func (r *RetryConfig) ResolveSettings() (int, string, int, int)

func (*RetryConfig) SetAttributes

func (r *RetryConfig) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*RetryConfig) Validate

func (r *RetryConfig) Validate() hcl.Diagnostics

type SlackIntegration

type SlackIntegration struct {
	modconfig.HclResourceImpl          `json:"-"`
	modconfig.ResourceWithMetadataImpl `json:"-"`
	IntegrationImpl                    `json:"-"`

	Type string `json:"type" cty:"type" hcl:"type,label"`

	// slack
	Token         *string `json:"token,omitempty" cty:"token" hcl:"token,optional"`
	SigningSecret *string `json:"signing_secret,omitempty" cty:"signing_secret" hcl:"signing_secret,optional"`
	WebhookUrl    *string `json:"webhook_url,omitempty" cty:"webhook_url" hcl:"webhook_url,optional"`
	Channel       *string `json:"channel,omitempty" cty:"channel" hcl:"channel,optional"`
}

func SlackIntegrationFromCtyValue

func SlackIntegrationFromCtyValue(val cty.Value) (*SlackIntegration, error)

func (*SlackIntegration) CtyValue

func (i *SlackIntegration) CtyValue() (cty.Value, error)

func (*SlackIntegration) Equals

func (i *SlackIntegration) Equals(other Integration) bool

func (*SlackIntegration) GetIntegrationType

func (i *SlackIntegration) GetIntegrationType() string

func (*SlackIntegration) MapInterface

func (i *SlackIntegration) MapInterface() (map[string]interface{}, error)

func (*SlackIntegration) SetAttributes

func (i *SlackIntegration) SetAttributes(hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*SlackIntegration) Validate

func (i *SlackIntegration) Validate() hcl.Diagnostics

type StepError

type StepError struct {
	PipelineExecutionID string          `json:"pipeline_execution_id"`
	StepExecutionID     string          `json:"step_execution_id"`
	Pipeline            string          `json:"pipeline"`
	Step                string          `json:"step"`
	Error               perr.ErrorModel `json:"error"`
}

type StepForEach

type StepForEach struct {
	ForEachStep bool                 `json:"for_each_step"`
	Key         string               `json:"key"  binding:"required"`
	Output      *Output              `json:"output,omitempty"`
	TotalCount  int                  `json:"total_count" binding:"required"`
	Each        json.SimpleJSONValue `json:"each" swaggerignore:"true"`
}

type StepLoop

type StepLoop struct {
	Index         int    `json:"index" binding:"required"`
	Input         *Input `json:"input,omitempty"`
	LoopCompleted bool   `json:"loop_completed"`
}

type StepRetry

type StepRetry struct {
	Count          int    `json:"count" binding:"required"`
	Input          *Input `json:"input,omitempty"`
	RetryCompleted bool   `json:"retry_completed"`
}

type ThrowConfig

type ThrowConfig struct {
	// Circular reference to its parent
	PipelineStepBase     *PipelineStepBase         `json:"-"`
	UnresolvedAttributes map[string]hcl.Expression `json:"-"`

	If      *bool
	Message *string
}

func NewThrowConfig

func NewThrowConfig(p *PipelineStepBase) *ThrowConfig

func (*ThrowConfig) AddUnresolvedAttribute

func (t *ThrowConfig) AddUnresolvedAttribute(name string, expr hcl.Expression)

func (*ThrowConfig) AppendConnectionDependsOn

func (t *ThrowConfig) AppendConnectionDependsOn(...string)

func (*ThrowConfig) AppendCredentialDependsOn

func (t *ThrowConfig) AppendCredentialDependsOn(...string)

func (*ThrowConfig) AppendDependsOn

func (t *ThrowConfig) AppendDependsOn(dependsOn ...string)

func (*ThrowConfig) Equals

func (t *ThrowConfig) Equals(other *ThrowConfig) bool

func (*ThrowConfig) GetPipeline

func (t *ThrowConfig) GetPipeline() *Pipeline

func (*ThrowConfig) Resolve

func (t *ThrowConfig) Resolve(evalContext *hcl.EvalContext) (*ThrowConfig, hcl.Diagnostics)

func (*ThrowConfig) SetAttributes

func (t *ThrowConfig) SetAttributes(throwBlock *hcl.Block, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

type Trigger

type Trigger struct {
	modconfig.HclResourceImpl
	modconfig.ResourceWithMetadataImpl

	FileName        string          `json:"file_name"`
	StartLineNumber int             `json:"start_line_number"`
	EndLineNumber   int             `json:"end_line_number"`
	Params          []PipelineParam `json:"params,omitempty"`

	// 27/09/23 - Args is a combination of both parse time and runtime arguments. "var" should be resolved
	// at parse time, the vars all should be supplied when we start the system.
	//
	// However, args can also contain runtime variable, i.e. self.request_body, self.rows
	//
	// Args are not currently validated at parse time. To validate Args at parse time we need to:
	// - identity which args are parse time (var and param)
	// - validate those parse time args
	//
	ArgsRaw hcl.Expression `json:"-"`

	// TODO: 2024/01/09 - change of direction with Trigger schema, pipeline no longer "common" because Query Trigger no longer has a single pipeline for
	// all its events, similarly for HTTP trigger the pipeline is being moved down to the "method" block.
	Pipeline cty.Value     `json:"-"`
	RawBody  hcl.Body      `json:"-" hcl:",remain"`
	Config   TriggerConfig `json:"-"`
	Enabled  *bool         `json:"-"`
	// contains filtered or unexported fields
}

The definition of a single Flowpipe Trigger

func NewTrigger

func NewTrigger(block *hcl.Block, mod *modconfig.Mod, triggerType, triggerName string) *Trigger

func (*Trigger) Equals

func (t *Trigger) Equals(other *Trigger) bool

func (*Trigger) GetArgs

func (t *Trigger) GetArgs(evalContext *hcl.EvalContext) (Input, hcl.Diagnostics)

func (*Trigger) GetMod

func (t *Trigger) GetMod() *modconfig.Mod

Implements the ModTreeItem interface

func (*Trigger) GetParam

func (t *Trigger) GetParam(paramName string) *PipelineParam

func (*Trigger) GetParams

func (t *Trigger) GetParams() []PipelineParam

func (*Trigger) GetPipeline

func (t *Trigger) GetPipeline() cty.Value

func (*Trigger) IsBaseAttribute

func (t *Trigger) IsBaseAttribute(name string) bool

func (*Trigger) SetBaseAttributes

func (t *Trigger) SetBaseAttributes(mod *modconfig.Mod, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*Trigger) SetFileReference

func (t *Trigger) SetFileReference(fileName string, startLineNumber int, endLineNumber int)

type TriggerConfig

type TriggerConfig interface {
	SetAttributes(*modconfig.Mod, *Trigger, hcl.Attributes, *hcl.EvalContext) hcl.Diagnostics
	GetUnresolvedAttributes() map[string]hcl.Expression
	SetBlocks(*modconfig.Mod, *Trigger, hcl.Blocks, *hcl.EvalContext) hcl.Diagnostics
	Equals(other TriggerConfig) bool
	GetType() string
	GetConfig(*hcl.EvalContext, *modconfig.Mod) (TriggerConfig, error)
	GetConnectionDependsOn() []string
}

type TriggerHTTPMethod

type TriggerHTTPMethod struct {
	Type          string
	ExecutionMode string
	Pipeline      cty.Value
	ArgsRaw       hcl.Expression
}

func (*TriggerHTTPMethod) Equals

func (c *TriggerHTTPMethod) Equals(other *TriggerHTTPMethod) bool

func (*TriggerHTTPMethod) GetArgs

func (c *TriggerHTTPMethod) GetArgs(evalContext *hcl.EvalContext) (Input, hcl.Diagnostics)

type TriggerHttp

type TriggerHttp struct {
	Url           string                        `json:"url"`
	ExecutionMode string                        `json:"execution_mode"`
	Methods       map[string]*TriggerHTTPMethod `json:"methods"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	ConnectionDependsOn  []string                  `json:"connection_depends_on,omitempty"`
}

func (*TriggerHttp) AddUnresolvedAttribute

func (t *TriggerHttp) AddUnresolvedAttribute(key string, value hcl.Expression)

func (*TriggerHttp) AppendConnectionDependsOn

func (t *TriggerHttp) AppendConnectionDependsOn(connectionDependsOn ...string)

func (*TriggerHttp) AppendCredentialDependsOn

func (t *TriggerHttp) AppendCredentialDependsOn(...string)

func (*TriggerHttp) AppendsDependsOn

func (t *TriggerHttp) AppendsDependsOn(dependsOn ...string)

func (*TriggerHttp) Equals

func (t *TriggerHttp) Equals(other TriggerConfig) bool

func (*TriggerHttp) GetConfig

func (t *TriggerHttp) GetConfig(*hcl.EvalContext, *modconfig.Mod) (TriggerConfig, error)

func (*TriggerHttp) GetConnectionDependsOn

func (t *TriggerHttp) GetConnectionDependsOn() []string

func (*TriggerHttp) GetPipeline

func (t *TriggerHttp) GetPipeline() *Pipeline

func (*TriggerHttp) GetType

func (t *TriggerHttp) GetType() string

func (*TriggerHttp) GetUnresolvedAttributes

func (t *TriggerHttp) GetUnresolvedAttributes() map[string]hcl.Expression

func (*TriggerHttp) SetAttributes

func (t *TriggerHttp) SetAttributes(mod *modconfig.Mod, trigger *Trigger, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*TriggerHttp) SetBlocks

func (t *TriggerHttp) SetBlocks(mod *modconfig.Mod, trigger *Trigger, hclBlocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

type TriggerQuery

type TriggerQuery struct {
	Sql        string                          `json:"sql"`
	Schedule   string                          `json:"schedule"`
	Database   string                          `json:"database"`
	PrimaryKey string                          `json:"primary_key"`
	Captures   map[string]*TriggerQueryCapture `json:"captures"`

	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	ConnectionDependsOn  []string                  `json:"connection_depends_on,omitempty"`
}

func (*TriggerQuery) AddUnresolvedAttribute

func (t *TriggerQuery) AddUnresolvedAttribute(key string, value hcl.Expression)

func (*TriggerQuery) AppendConnectionDependsOn

func (t *TriggerQuery) AppendConnectionDependsOn(connectionDependsOn ...string)

func (*TriggerQuery) AppendCredentialDependsOn

func (t *TriggerQuery) AppendCredentialDependsOn(...string)

func (*TriggerQuery) AppendDependsOn

func (t *TriggerQuery) AppendDependsOn(...string)

func (*TriggerQuery) Equals

func (t *TriggerQuery) Equals(other TriggerConfig) bool

func (*TriggerQuery) GetConfig

func (t *TriggerQuery) GetConfig(evalContext *hcl.EvalContext, mod *modconfig.Mod) (TriggerConfig, error)

func (*TriggerQuery) GetConnectionDependsOn

func (t *TriggerQuery) GetConnectionDependsOn() []string

func (*TriggerQuery) GetPipeline

func (t *TriggerQuery) GetPipeline() *Pipeline

func (*TriggerQuery) GetType

func (t *TriggerQuery) GetType() string

func (*TriggerQuery) GetUnresolvedAttributes

func (t *TriggerQuery) GetUnresolvedAttributes() map[string]hcl.Expression

func (*TriggerQuery) SetAttributes

func (t *TriggerQuery) SetAttributes(mod *modconfig.Mod, trigger *Trigger, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*TriggerQuery) SetBlocks

func (t *TriggerQuery) SetBlocks(mod *modconfig.Mod, trigger *Trigger, hclBlocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

type TriggerQueryCapture

type TriggerQueryCapture struct {
	Type     string
	Pipeline cty.Value
	ArgsRaw  hcl.Expression
}

func (*TriggerQueryCapture) Equals

func (c *TriggerQueryCapture) Equals(other *TriggerQueryCapture) bool

func (*TriggerQueryCapture) GetArgs

func (c *TriggerQueryCapture) GetArgs(evalContext *hcl.EvalContext) (Input, hcl.Diagnostics)

type TriggerSchedule

type TriggerSchedule struct {
	Schedule             string                    `json:"schedule"`
	UnresolvedAttributes map[string]hcl.Expression `json:"-"`
	ConnectionDependsOn  []string                  `json:"connection_depends_on,omitempty"`
}

func (*TriggerSchedule) AddUnresolvedAttribute

func (t *TriggerSchedule) AddUnresolvedAttribute(key string, value hcl.Expression)

func (*TriggerSchedule) AppendConnectionDependsOn

func (t *TriggerSchedule) AppendConnectionDependsOn(connectionDependsOn ...string)

func (*TriggerSchedule) AppendCredentialDependsOn

func (t *TriggerSchedule) AppendCredentialDependsOn(...string)

func (*TriggerSchedule) AppendsDependsOn

func (t *TriggerSchedule) AppendsDependsOn(dependsOn ...string)

func (*TriggerSchedule) Equals

func (t *TriggerSchedule) Equals(other TriggerConfig) bool

func (*TriggerSchedule) GetConfig

func (t *TriggerSchedule) GetConfig(evalContext *hcl.EvalContext, mod *modconfig.Mod) (TriggerConfig, error)

func (*TriggerSchedule) GetConnectionDependsOn

func (t *TriggerSchedule) GetConnectionDependsOn() []string

func (*TriggerSchedule) GetPipeline

func (t *TriggerSchedule) GetPipeline() *Pipeline

func (*TriggerSchedule) GetType

func (t *TriggerSchedule) GetType() string

func (*TriggerSchedule) GetUnresolvedAttributes

func (t *TriggerSchedule) GetUnresolvedAttributes() map[string]hcl.Expression

func (*TriggerSchedule) SetAttributes

func (t *TriggerSchedule) SetAttributes(mod *modconfig.Mod, trigger *Trigger, hclAttributes hcl.Attributes, evalContext *hcl.EvalContext) hcl.Diagnostics

func (*TriggerSchedule) SetBlocks

func (t *TriggerSchedule) SetBlocks(mod *modconfig.Mod, trigger *Trigger, hclBlocks hcl.Blocks, evalContext *hcl.EvalContext) hcl.Diagnostics

Jump to

Keyboard shortcuts

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