Documentation ¶
Index ¶
- Variables
- func ContextWithStdErr(ctx context.Context, stderr io.Writer) context.Context
- func Exec[Source any, Version any, GetParams any, PutParams any](ctx context.Context, op Op, r Resource[Source, Version, GetParams, PutParams], ...) (err error)
- func Main[Source any, Version any, GetParams any, PutParams any](r Resource[Source, Version, GetParams, PutParams])
- func StdErrFromContext(ctx context.Context) io.Writer
- type Archive
- type BaseResource
- func (r *BaseResource[Source, Version, GetParams, PutParams]) Archive(ctx context.Context, s *Source) (Archive, error)
- func (r *BaseResource[Source, Version, GetParams, PutParams]) Check(ctx context.Context, s *Source, v *Version) ([]Version, error)
- func (r *BaseResource[Source, Version, GetParams, PutParams]) Close(ctx context.Context) error
- func (r *BaseResource[Source, Version, GetParams, PutParams]) In(ctx context.Context, s *Source, v *Version, path string, p *GetParams) ([]Metadata, error)
- func (r *BaseResource[Source, Version, GetParams, PutParams]) Initialize(ctx context.Context, s *Source) error
- func (r *BaseResource[Source, Version, GetParams, PutParams]) Out(ctx context.Context, s *Source, path string, p *GetParams) (Version, []Metadata, error)
- type Metadata
- type Op
- type Resource
- type Response
- type Validatable
Constants ¶
This section is empty.
Variables ¶
var Operation = "check"
Operation describes the resource operation to perform, set via linker flags
Functions ¶
func ContextWithStdErr ¶
ContextWithStdErr returns a child context with the resource's configured stderr writer
func Exec ¶
func Exec[Source any, Version any, GetParams any, PutParams any]( ctx context.Context, op Op, r Resource[Source, Version, GetParams, PutParams], stdin io.Reader, stdout, stderr io.Writer, args []string, ) (err error)
Exec implements a shared entrypoint for all supported resource operations and handles parsing and validating resource configuration and initializing the resource if implemented
Types ¶
type Archive ¶ added in v1.0.0
type Archive interface { Close(ctx context.Context) error History(ctx context.Context, latest []byte) ([][]byte, error) Put(ctx context.Context, versions ...[]byte) error }
Archive describes a Concourse version archive
type BaseResource ¶ added in v1.0.0
BaseResource provides an embeddable Resource implementation with noops for optional methods
func (*BaseResource[Source, Version, GetParams, PutParams]) Archive ¶ added in v1.0.0
func (r *BaseResource[Source, Version, GetParams, PutParams]) Archive(ctx context.Context, s *Source) (Archive, error)
func (*BaseResource[Source, Version, GetParams, PutParams]) Check ¶ added in v1.0.0
func (r *BaseResource[Source, Version, GetParams, PutParams]) Check(ctx context.Context, s *Source, v *Version) ([]Version, error)
func (*BaseResource[Source, Version, GetParams, PutParams]) Close ¶ added in v1.0.0
func (r *BaseResource[Source, Version, GetParams, PutParams]) Close(ctx context.Context) error
func (*BaseResource[Source, Version, GetParams, PutParams]) Initialize ¶ added in v1.0.0
func (r *BaseResource[Source, Version, GetParams, PutParams]) Initialize(ctx context.Context, s *Source) error
type Op ¶ added in v1.0.0
type Op int
Op implements an enumeration of supported resource operations
const ( CheckOp Op InOp OutOp )
Supported operations
type Resource ¶ added in v1.0.0
type Resource[Source any, Version any, GetParams any, PutParams any] interface { // Archive intializes an Archive implementation for persisting resource // version history outside of Concourse Archive(context.Context, *Source) (Archive, error) // Check checks for new versions Check(context.Context, *Source, *Version) ([]Version, error) // Close is called after any Check/In/Out operation Close(context.Context) error // In fetches the specified version and writes it to the filesystem In(context.Context, *Source, *Version, string, *GetParams) ([]Metadata, error) // Initialize is called prior to any Check/In/Out operation and provides // an opportunity to perform common resource initialization logic Initialize(context.Context, *Source) error // Out creates a new resource version Out(context.Context, *Source, string, *PutParams) (Version, []Metadata, error) }
Resource describes a Concourse custom resource implementation
type Response ¶
type Response[Version any] struct { Version *Version `json:"version"` Metadata []Metadata `json:"metadata"` }
Reponse describes a in/out response payload
type Validatable ¶
Validatable describes an interface that can be implemented by third party types to opt into automatic resource validation