Documentation ¶
Index ¶
- Constants
- Variables
- func NewBuilder(config BuilderConfig, yamlTaskCreator TaskCreator, ...) *builder
- type Asset
- type AssetType
- type BuilderConfig
- type Column
- type ColumnCheck
- type ColumnCheckValue
- type CustomCheck
- type DefinitionFile
- type EmptyStringMap
- type ExecutableFile
- type Materialization
- type MaterializationStrategy
- type MaterializationType
- type Notifications
- type Pipeline
- type SecretMapping
- type SlackNotification
- type TaskCreator
- type TaskDefinitionFile
- type TaskDefinitionType
- type TaskSchedule
Constants ¶
View Source
const ( CommentTask TaskDefinitionType = "comment" YamlTask TaskDefinitionType = "yaml" AssetTypePython = AssetType("python") AssetTypeSnowflakeQuery = AssetType("sf.sql") AssetTypeBigqueryQuery = AssetType("bq.sql") AssetTypeEmpty = AssetType("empty") )
Variables ¶
Functions ¶
func NewBuilder ¶
func NewBuilder(config BuilderConfig, yamlTaskCreator TaskCreator, commentTaskCreator TaskCreator, fs afero.Fs) *builder
Types ¶
type Asset ¶
type Asset struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description"` Type AssetType `json:"type"` ExecutableFile ExecutableFile `json:"executable_file"` DefinitionFile TaskDefinitionFile `json:"definition_file"` Parameters map[string]string `json:"parameters"` Connection string `json:"connection"` Secrets []SecretMapping `json:"secrets"` DependsOn []string `json:"upstream"` Materialization Materialization `json:"materialization"` Columns []Column `json:"columns"` CustomChecks []CustomCheck `json:"custom_checks"` Image string `json:"image"` Metadata EmptyStringMap `json:"metadata"` Pipeline *Pipeline `json:"-"` // contains filtered or unexported fields }
func ConvertYamlToTask ¶
func (*Asset) AddDownstream ¶
func (*Asset) AddUpstream ¶
func (*Asset) GetDownstream ¶
func (*Asset) GetFullDownstream ¶
func (*Asset) GetFullUpstream ¶
func (*Asset) GetUpstream ¶
type BuilderConfig ¶
type Column ¶
type Column struct { Name string `json:"name"` Description string `json:"description"` Checks []ColumnCheck `json:"checks"` }
type ColumnCheck ¶
type ColumnCheck struct { ID string `json:"id"` Name string `json:"name"` Value ColumnCheckValue `json:"value"` }
type ColumnCheckValue ¶
type ColumnCheckValue struct { IntArray *[]int `json:"int_array"` Int *int `json:"int"` Float *float64 `json:"float"` StringArray *[]string `json:"string_array"` String *string `json:"string"` Bool *bool `json:"bool"` }
func (*ColumnCheckValue) MarshalJSON ¶
func (v *ColumnCheckValue) MarshalJSON() ([]byte, error)
type CustomCheck ¶
type CustomCheck struct { ID string `json:"id"` Name string `json:"name"` Query string `json:"query"` Value ColumnCheckValue `json:"value"` }
type DefinitionFile ¶
type EmptyStringMap ¶
func (EmptyStringMap) MarshalJSON ¶
func (m EmptyStringMap) MarshalJSON() ([]byte, error)
type ExecutableFile ¶
type Materialization ¶
type Materialization struct { Type MaterializationType `json:"type"` Strategy MaterializationStrategy `json:"strategy"` PartitionBy string `json:"partition_by"` ClusterBy []string `json:"cluster_by"` IncrementalKey string `json:"incremental_key"` }
func (Materialization) MarshalJSON ¶
func (m Materialization) MarshalJSON() ([]byte, error)
type MaterializationStrategy ¶
type MaterializationStrategy string
const ( MaterializationStrategyNone MaterializationStrategy = "" MaterializationStrategyCreateReplace MaterializationStrategy = "create+replace" MaterializationStrategyDeleteInsert MaterializationStrategy = "delete+insert" MaterializationStrategyAppend MaterializationStrategy = "append" )
type MaterializationType ¶
type MaterializationType string
const ( MaterializationTypeNone MaterializationType = "" MaterializationTypeView MaterializationType = "view" MaterializationTypeTable MaterializationType = "table" )
type Notifications ¶
type Notifications struct {
Slack []SlackNotification `json:"slack"`
}
func (Notifications) MarshalJSON ¶
func (n Notifications) MarshalJSON() ([]byte, error)
type Pipeline ¶
type Pipeline struct { LegacyID string `yaml:"id" json:"legacy_id"` Name string `yaml:"name" json:"name"` Schedule schedule `yaml:"schedule" json:"schedule"` StartDate string `yaml:"start_date" json:"start_date"` DefinitionFile DefinitionFile `json:"definition_file"` DefaultParameters EmptyStringMap `yaml:"default_parameters" json:"default_parameters"` DefaultConnections EmptyStringMap `yaml:"default_connections" json:"default_connections"` Assets []*Asset `json:"assets"` Notifications Notifications `yaml:"notifications" json:"notifications"` TasksByType map[AssetType][]*Asset `json:"-"` // contains filtered or unexported fields }
func (*Pipeline) GetAssetByPath ¶
func (*Pipeline) GetConnectionNameForAsset ¶
func (*Pipeline) HasAssetType ¶
func (*Pipeline) RelativeAssetPath ¶
type SecretMapping ¶
type SlackNotification ¶
type SlackNotification struct {
Channel string `json:"channel"`
}
type TaskCreator ¶
func CreateTaskFromFileComments ¶
func CreateTaskFromFileComments(fs afero.Fs) TaskCreator
func CreateTaskFromYamlDefinition ¶
func CreateTaskFromYamlDefinition(fs afero.Fs) TaskCreator
type TaskDefinitionFile ¶
type TaskDefinitionFile struct { Name string `json:"name"` Path string `json:"path"` Type TaskDefinitionType `json:"type"` }
type TaskDefinitionType ¶
type TaskDefinitionType string
type TaskSchedule ¶
type TaskSchedule struct {
Days []string `json:"days"`
}
Click to show internal directories.
Click to hide internal directories.