specs

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2022 License: MPL-2.0 Imports: 8 Imported by: 20

Documentation

Overview

Package specs specs for source and destination plugins including parsers and readers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SpecUnmarshalYamlStrict added in v0.0.4

func SpecUnmarshalYamlStrict(b []byte, spec *Spec) error

func UnmarshalJSONStrict added in v0.5.0

func UnmarshalJSONStrict(b []byte, out interface{}) error

func ValidateSpec

func ValidateSpec(schema string, spec interface{}) (*gojsonschema.Result, error)

Types

type Destination added in v0.0.4

type Destination struct {
	Name      string      `json:"name,omitempty"`
	Version   string      `json:"version,omitempty"`
	Path      string      `json:"path,omitempty"`
	Registry  Registry    `json:"registry,omitempty"`
	WriteMode WriteMode   `json:"write_mode,omitempty"`
	Spec      interface{} `json:"spec,omitempty"`
}

func (*Destination) SetDefaults added in v0.0.4

func (d *Destination) SetDefaults()

func (*Destination) UnmarshalSpec added in v0.0.4

func (d *Destination) UnmarshalSpec(out interface{}) error

type Kind added in v0.0.4

type Kind int
const (
	KindSource Kind = iota
	KindDestination
)

func KindFromString added in v0.0.4

func KindFromString(s string) (Kind, error)

func (Kind) MarshalJSON added in v0.0.4

func (k Kind) MarshalJSON() ([]byte, error)

func (Kind) String added in v0.0.4

func (k Kind) String() string

func (*Kind) UnmarshalJSON added in v0.0.4

func (k *Kind) UnmarshalJSON(data []byte) (err error)

type Registry added in v0.0.4

type Registry int
const (
	RegistryGithub Registry = iota
	RegistryLocal
	RegistryGrpc
)

func RegistryFromString added in v0.0.4

func RegistryFromString(s string) (Registry, error)

func (Registry) MarshalJSON added in v0.0.4

func (r Registry) MarshalJSON() ([]byte, error)

func (Registry) String added in v0.0.4

func (r Registry) String() string

func (*Registry) UnmarshalJSON added in v0.0.4

func (r *Registry) UnmarshalJSON(data []byte) (err error)

type Source added in v0.0.4

type Source struct {
	// Name of the source plugin to use
	Name string `json:"name,omitempty"`
	// Version of the source plugin to use
	Version string `json:"version,omitempty"`
	// Path is the canonical path to the source plugin in a given registry
	// For example:
	// in github the path will be: org/repo
	// For the local registry the path will be the path to the binary: ./path/to/binary
	// For the gRPC registry the path will be the address of the gRPC server: host:port
	Path string `json:"path,omitempty"`
	// Registry can be github,local,grpc.
	Registry      Registry `json:"registry,omitempty"`
	MaxGoRoutines uint64   `json:"max_goroutines,omitempty"`
	// Tables to sync from the source plugin
	Tables []string `json:"tables,omitempty"`
	// SkipTables defines tables to skip when syncing data. Useful if a glob pattern is used in Tables
	SkipTables []string `json:"skip_tables,omitempty"`
	// Destinations are the names of destination plugins to send sync data to
	Destinations []string `json:"destinations,omitempty"`
	// Spec defines plugin specific configuration
	// This is different in every source plugin.
	Spec interface{} `json:"spec,omitempty"`
}

Source is the spec for a source plugin

func (*Source) SetDefaults added in v0.0.4

func (s *Source) SetDefaults()

func (*Source) UnmarshalSpec added in v0.0.4

func (s *Source) UnmarshalSpec(out interface{}) error

UnmarshalSpec unmarshals the internal spec into the given interface

func (*Source) Validate added in v0.0.4

func (*Source) Validate() (*gojsonschema.Result, error)

type Spec

type Spec struct {
	Kind Kind        `json:"kind"`
	Spec interface{} `json:"spec"`
}

func (*Spec) UnmarshalJSON added in v0.0.4

func (s *Spec) UnmarshalJSON(data []byte) error

type SpecReader

type SpecReader struct {
	// contains filtered or unexported fields
}

func NewSpecReader

func NewSpecReader(directory string) (*SpecReader, error)

func (*SpecReader) GetDestinationByName added in v0.2.3

func (s *SpecReader) GetDestinationByName(name string) *Destination

func (*SpecReader) GetDestinations added in v0.6.3

func (s *SpecReader) GetDestinations() []Destination

func (*SpecReader) GetSourceByName

func (s *SpecReader) GetSourceByName(name string) *Source

func (*SpecReader) GetSources added in v0.0.4

func (s *SpecReader) GetSources() []Source

type WriteMode added in v0.0.4

type WriteMode int
const (
	WriteModeAppend WriteMode = iota
	WriteModeOverwrite
)

func WriteModeFromString added in v0.0.4

func WriteModeFromString(s string) (WriteMode, error)

func (WriteMode) MarshalJSON added in v0.0.4

func (m WriteMode) MarshalJSON() ([]byte, error)

func (WriteMode) String added in v0.0.4

func (m WriteMode) String() string

func (*WriteMode) UnmarshalJSON added in v0.0.4

func (m *WriteMode) UnmarshalJSON(data []byte) (err error)

Jump to

Keyboard shortcuts

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