Documentation
¶
Overview ¶
ppi provides the plugin programming interface. It contains everything requirted to implement an OCM plugin
Index ¶
- Variables
- type AccessMethod
- type AccessMethodBase
- type AccessMethodDescriptor
- type AccessSpec
- type AccessSpecInfo
- type AccessSpecProvider
- type Action
- type ActionResult
- type ActionSpec
- type ActionSpecInfo
- type CLIOption
- type Config
- type Descriptor
- type DownloadResultProvider
- type Downloader
- type DownloaderDescriptor
- type DownloaderKey
- type Options
- type Plugin
- type UploadTargetSpec
- type UploadTargetSpecInfo
- type Uploader
- type UploaderBase
- type UploaderDescriptor
- type UploaderKey
Constants ¶
This section is empty.
Variables ¶
View Source
var REALM = descriptor.REALM
Functions ¶
This section is empty.
Types ¶
type AccessMethod ¶
type AccessMethod interface {
runtime.TypedObjectDecoder
Name() string
Version() string
// Options provides the list of CLI options supported to compose the access
// specification.
Options() []options.OptionType
// Description provides a general description for the access mehod kind.
Description() string
// Format describes the attributes of the dedicated version.
Format() string
ValidateSpecification(p Plugin, spec AccessSpec) (info *AccessSpecInfo, err error)
Reader(p Plugin, spec AccessSpec, creds credentials.Credentials) (io.ReadCloser, error)
ComposeAccessSpecification(p Plugin, opts Config, config Config) error
}
type AccessMethodBase ¶
type AccessMethodBase struct {
// contains filtered or unexported fields
}
func MustNewAccessMethodBase ¶
func MustNewAccessMethodBase(name, version string, proto AccessSpec, desc string, format string) AccessMethodBase
func (*AccessMethodBase) Description ¶
func (b *AccessMethodBase) Description() string
func (*AccessMethodBase) Format ¶
func (b *AccessMethodBase) Format() string
func (*AccessMethodBase) Version ¶
func (b *AccessMethodBase) Version() string
type AccessMethodDescriptor ¶
type AccessMethodDescriptor = descriptor.AccessMethodDescriptor
type AccessSpec ¶
type AccessSpec runtime.VersionedTypedObject
type AccessSpecInfo ¶
type AccessSpecInfo = internal.AccessSpecInfo
type AccessSpecProvider ¶
type AccessSpecProvider func() AccessSpec
type Action ¶ added in v0.3.0
type Action interface {
Name() string
Description() string
DefaultSelectors() []string
ConsumerType() string
Execute(p Plugin, spec ActionSpec, creds credentials.DirectCredentials) (result ActionResult, err error)
}
type ActionResult ¶ added in v0.3.0
type ActionResult action.ActionResult
type ActionSpec ¶ added in v0.3.0
type ActionSpec action.ActionSpec
type ActionSpecInfo ¶ added in v0.3.0
type ActionSpecInfo = internal.ActionSpecInfo
type CLIOption ¶
type CLIOption = descriptor.CLIOption
type Config ¶
type Config map[string]interface{}
Config is a generic structured config stored in a string map.
type Descriptor ¶
type Descriptor = descriptor.Descriptor
type DownloadResultProvider ¶
type Downloader ¶
type Downloader interface {
Name() string
Description() string
Writer(p Plugin, arttype, mediatype string, filepath string) (io.WriteCloser, DownloadResultProvider, error)
}
type DownloaderDescriptor ¶
type DownloaderDescriptor = descriptor.DownloaderDescriptor
type DownloaderKey ¶
type DownloaderKey = descriptor.DownloaderKey
type Options ¶
type Options struct {
Config json.RawMessage
}
type Plugin ¶
type Plugin interface {
Name() string
Version() string
Descriptor() descriptor.Descriptor
SetDescriptorTweaker(func(descriptor descriptor.Descriptor) descriptor.Descriptor)
SetShort(s string)
SetLong(s string)
SetConfigParser(config func(raw json.RawMessage) (interface{}, error))
RegisterDownloader(arttype, mediatype string, u Downloader) error
GetDownloader(name string) Downloader
GetDownloaderFor(arttype, mediatype string) Downloader
RegisterUploader(arttype, mediatype string, u Uploader) error
GetUploader(name string) Uploader
GetUploaderFor(arttype, mediatype string) Uploader
DecodeUploadTargetSpecification(data []byte) (UploadTargetSpec, error)
RegisterAccessMethod(m AccessMethod) error
DecodeAccessSpecification(data []byte) (AccessSpec, error)
GetAccessMethod(name string, version string) AccessMethod
RegisterAction(a Action) error
DecodeAction(data []byte) (ActionSpec, error)
GetAction(name string) Action
GetOptions() *Options
GetConfig() (interface{}, error)
}
type UploadTargetSpec ¶
type UploadTargetSpec runtime.VersionedTypedObject
type UploadTargetSpecInfo ¶
type UploadTargetSpecInfo = internal.UploadTargetSpecInfo
type Uploader ¶
type Uploader interface {
Decoders() map[string]runtime.TypedObjectDecoder
Name() string
Description() string
ValidateSpecification(p Plugin, spec UploadTargetSpec) (info *UploadTargetSpecInfo, err error)
Writer(p Plugin, arttype, mediatype string, hint string, spec UploadTargetSpec, creds credentials.Credentials) (io.WriteCloser, AccessSpecProvider, error)
}
type UploaderBase ¶
type UploaderBase = nameDescription
func MustNewUploaderBase ¶
func MustNewUploaderBase(name, desc string) UploaderBase
type UploaderDescriptor ¶
type UploaderDescriptor = descriptor.UploaderDescriptor
type UploaderKey ¶
type UploaderKey = descriptor.UploaderKey
Click to show internal directories.
Click to hide internal directories.