Documentation
¶
Overview ¶
Package types contains type defintions for all Bindle API objects
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BindleSpec ¶
type BindleSpec struct { Name string `toml:"name"` Version string `toml:"version"` Description *string `toml:"description"` Authors []string `toml:"authors,omitempty"` }
BindleSpec contains the data to identify a bindle as well as additional metadata describing it
type Condition ¶
type Condition struct { MemberOf []string `toml:"memberOf,omitempty"` Requires []string `toml:"requires,omitempty"` }
/ Condition is used to associate parcels to `Group`s
type ErrorResponse ¶
type ErrorResponse struct {
Error string `toml:"error"`
}
ErrorResponse is a string error message returned from the server
type Group ¶
type Group struct { Name string `toml:"name"` Required *bool `toml:"required"` SatisfiedBy *string `toml:"satisfiedBy"` }
Group is a top-level organization object that may contain zero or more parcels. Every parcel belongs to at least one group, but may belong to others.
type Invoice ¶
type Invoice struct { BindleVersion string `toml:"bindleVersion"` Yanked *bool `toml:"yanked"` Bindle BindleSpec `toml:"bindle"` Annotations map[string]string `toml:"annotations,omitempty"` Parcel []Parcel `toml:"parcel,omitempty"` Group []Group `toml:"group,omitempty"` }
Invoice is the main structure for a Bindle invoice. The invoice describes a specific version of a bindle. For example, the bindle `foo/bar/1.0.0` would be represented as an Invoice with the `BindleSpec` name set to `foo/bar` and version set to `1.0.0`.
Most fields on this struct are singular to best represent the specification. There, fields like `group` and `parcel` are singular due to the conventions of TOML.
type InvoiceCreateResponse ¶
type InvoiceCreateResponse struct { Invoice Invoice `toml:"invoice"` Missing []Label `toml:"missing,omitempty"` }
InvoiceCreateResponse is returned by a Bindle server when creating an invoice. It contains the created invoice and an optional slice of labels indicating which parcels are missing in storage
type Label ¶
type Label struct { SHA256 string `toml:"sha256"` MediaType string `toml:"mediaType"` Name string `toml:"name"` Size uint64 `toml:"size"` Annotations map[string]string `toml:"annotations,omitempty"` Feature map[string]map[string]string `toml:"feature,omitempty"` }
Label is the metadata of a stored parcel. See the Label Spec for more detailed information: https://github.com/deislabs/bindle/blob/master/docs/label-spec.md
type Matches ¶
type Matches struct { // The query used to find this match set Query string `toml:"query"` // Whether the search engine used strict mode Strict bool `toml:"strict"` // The offset of the first result in the matches Offset uint64 `toml:"offset"` // The maximum number of results this query would have returned Limit uint8 `toml:"limit"` // The total number of matches the search engine located // // In many cases, this will not match the number of results returned on this query Total uint64 `toml:"total"` // Whether there are more results than the ones returned here More bool `toml:"more"` // Whether this list includes potentially yanked invoices Yanked bool `toml:"yanked"` // The list of invoices returned as this part of the query // // The length of this Vec will be less than or equal to the limit. Invoices []Invoice `toml:"invoices"` }
Matches describes the matches that are returned from a query
type MissingParcelsResponse ¶
type MissingParcelsResponse struct {
Missing []Label `toml:"missing"`
}
MissingParcelsResponse is a response to a missing parcels request. TOML doesn't support top level arrays, so they must be embedded in a table
type Parcel ¶
Parcel is a description of a stored parcel file. A parcel file can be an arbitrary "blob" of data. This could be binary or text files. This object contains the metadata and associated conditions for using a parcel. For more information, see the Bindle Spec: https://github.com/deislabs/bindle/blob/master/docs/bindle-spec.md
type QueryOptions ¶
type QueryOptions struct { Query *string `toml:"q"` Version *string `toml:"v"` Offset *uint64 `toml:"o"` Limit *uint8 `toml:"l"` Strict *bool `toml:"strict"` Yanked *bool `toml:"yanked"` }
QueryOptions represents available options for the query API
func (*QueryOptions) QueryString ¶
func (q *QueryOptions) QueryString() string
QueryString returns a query string suitable for use in a URL (including the starting `?`) using the configured parameters of a `QueryOptions`