718 lines
26 KiB
Go
718 lines
26 KiB
Go
// Code generated by seatgen from the seat definitions; DO NOT EDIT.
|
|
|
|
// Package meshcatalog is the contract of the seat "mesh-catalog", defined whole (seats/mesh-catalog/seat.json): The catalog of the mesh: every module the trunk holds with its manifest, fingerprint and verdict, the packages published, and the seat list (ADR 0636 §1, §4).
|
|
package meshcatalog
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"errors"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// Seat is the seat's name.
|
|
const Seat = "mesh-catalog"
|
|
|
|
const (
|
|
VerbModules = "modules"
|
|
VerbModule = "module"
|
|
VerbProvides = "provides"
|
|
VerbDependents = "dependents"
|
|
VerbSeatDefinitions = "seat-definitions"
|
|
)
|
|
|
|
const (
|
|
EventSeatDefinitionChanged = "seat-definition-changed"
|
|
EventSeatDefinitionRemoved = "seat-definition-removed"
|
|
EventManifestAccepted = "manifest-accepted"
|
|
EventManifestRefused = "manifest-refused"
|
|
)
|
|
|
|
// Verbs is every verb the seat serves, in its definition's order: a new copy each call.
|
|
func Verbs() []string {
|
|
return []string{VerbModules, VerbModule, VerbProvides, VerbDependents, VerbSeatDefinitions}
|
|
}
|
|
|
|
// Events is every event published on the seat's subject: a new copy each call.
|
|
func Events() []string {
|
|
return []string{EventSeatDefinitionChanged, EventSeatDefinitionRemoved, EventManifestAccepted, EventManifestRefused}
|
|
}
|
|
|
|
// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.
|
|
const (
|
|
Family = "mesh-catalog.events"
|
|
FamilyMaxAgeDays = 7
|
|
)
|
|
|
|
// SubjectSeatDefinitionChanged is where seat-definition-changed is published.
|
|
const SubjectSeatDefinitionChanged = "mesh.seat.mesh-catalog.event.seat-definition-changed"
|
|
|
|
// SubjectSeatDefinitionRemoved is where seat-definition-removed is published.
|
|
const SubjectSeatDefinitionRemoved = "mesh.seat.mesh-catalog.event.seat-definition-removed"
|
|
|
|
// SubjectManifestAccepted is where manifest-accepted is published.
|
|
const SubjectManifestAccepted = "mesh.seat.mesh-catalog.event.manifest-accepted"
|
|
|
|
// SubjectManifestRefused is where manifest-refused is published.
|
|
const SubjectManifestRefused = "mesh.seat.mesh-catalog.event.manifest-refused"
|
|
|
|
const (
|
|
StateManifests = "manifests"
|
|
StateModules = "modules"
|
|
StateCandidates = "candidates"
|
|
StateVerdicts = "verdicts"
|
|
StatePredefined = "predefined"
|
|
StateConfigCandidates = "config-candidates"
|
|
StatePackages = "packages"
|
|
)
|
|
|
|
// ManifestsByDigestKey is the key of one value of the state manifests under the form "<digest>".
|
|
func ManifestsByDigestKey(digest string) string { return digest }
|
|
|
|
// ParseManifestsByDigestKey reads the parts of a key of the form "<digest>", in the order of the form; the last result is false for a key of another form.
|
|
func ParseManifestsByDigestKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodeManifestsByDigestValue reads one value of the state manifests under the form "<digest>", refusing a field ManifestsByDigestValue does not know and any text after the value.
|
|
func DecodeManifestsByDigestValue(raw []byte) (ManifestsByDigestValue, error) {
|
|
var v ManifestsByDigestValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// ModulesByModuleKey is the key of one value of the state modules under the form "<module>".
|
|
func ModulesByModuleKey(module string) string { return module }
|
|
|
|
// ParseModulesByModuleKey reads the parts of a key of the form "<module>", in the order of the form; the last result is false for a key of another form.
|
|
func ParseModulesByModuleKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodeModulesByModuleValue reads one value of the state modules under the form "<module>", refusing a field ModulesByModuleValue does not know and any text after the value.
|
|
func DecodeModulesByModuleValue(raw []byte) (ModulesByModuleValue, error) {
|
|
var v ModulesByModuleValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// CandidatesByGroupKey is the key of one value of the state candidates under the form "<group>".
|
|
func CandidatesByGroupKey(group string) string { return group }
|
|
|
|
// ParseCandidatesByGroupKey reads the parts of a key of the form "<group>", in the order of the form; the last result is false for a key of another form.
|
|
func ParseCandidatesByGroupKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodeCandidatesByGroupValue reads one value of the state candidates under the form "<group>", refusing a field CandidatesByGroupValue does not know and any text after the value.
|
|
func DecodeCandidatesByGroupValue(raw []byte) (CandidatesByGroupValue, error) {
|
|
var v CandidatesByGroupValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// VerdictsByDigestKey is the key of one value of the state verdicts under the form "<digest>".
|
|
func VerdictsByDigestKey(digest string) string { return digest }
|
|
|
|
// ParseVerdictsByDigestKey reads the parts of a key of the form "<digest>", in the order of the form; the last result is false for a key of another form.
|
|
func ParseVerdictsByDigestKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodeVerdictsByDigestValue reads one value of the state verdicts under the form "<digest>", refusing a field VerdictsByDigestValue does not know and any text after the value.
|
|
func DecodeVerdictsByDigestValue(raw []byte) (VerdictsByDigestValue, error) {
|
|
var v VerdictsByDigestValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// PredefinedByListKey is the key of one value of the state predefined under the form "list".
|
|
func PredefinedByListKey() string { return "list" }
|
|
|
|
// ParsePredefinedByListKey reads the parts of a key of the form "list", in the order of the form; the last result is false for a key of another form.
|
|
func ParsePredefinedByListKey(key string) bool {
|
|
rest := key
|
|
if !strings.HasPrefix(rest, "list") {
|
|
return false
|
|
}
|
|
rest = rest[4:]
|
|
if rest != "" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// DecodePredefinedByListValue reads one value of the state predefined under the form "list", refusing a field PredefinedByListValue does not know and any text after the value.
|
|
func DecodePredefinedByListValue(raw []byte) (PredefinedByListValue, error) {
|
|
var v PredefinedByListValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// ConfigCandidatesByPullKey is the key of one value of the state config-candidates under the form "<pull>".
|
|
func ConfigCandidatesByPullKey(pull string) string { return pull }
|
|
|
|
// ParseConfigCandidatesByPullKey reads the parts of a key of the form "<pull>", in the order of the form; the last result is false for a key of another form.
|
|
func ParseConfigCandidatesByPullKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodeConfigCandidatesByPullValue reads one value of the state config-candidates under the form "<pull>", refusing a field ConfigCandidatesByPullValue does not know and any text after the value.
|
|
func DecodeConfigCandidatesByPullValue(raw []byte) (ConfigCandidatesByPullValue, error) {
|
|
var v ConfigCandidatesByPullValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// PackagesByModuleKey is the key of one value of the state packages under the form "<module>".
|
|
func PackagesByModuleKey(module string) string { return module }
|
|
|
|
// ParsePackagesByModuleKey reads the parts of a key of the form "<module>", in the order of the form; the last result is false for a key of another form.
|
|
func ParsePackagesByModuleKey(key string) (string, bool) {
|
|
rest := key
|
|
if rest == "" {
|
|
return "", false
|
|
}
|
|
v0 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", false
|
|
}
|
|
return v0, true
|
|
}
|
|
|
|
// DecodePackagesByModuleValue reads one value of the state packages under the form "<module>", refusing a field PackagesByModuleValue does not know and any text after the value.
|
|
func DecodePackagesByModuleValue(raw []byte) (PackagesByModuleValue, error) {
|
|
var v PackagesByModuleValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// PackagesByPackageSeriesKey is the key of one value of the state packages under the form "<package>.<series>".
|
|
func PackagesByPackageSeriesKey(packagePart, series string) string { return packagePart + "." + series }
|
|
|
|
// ParsePackagesByPackageSeriesKey reads the parts of a key of the form "<package>.<series>", in the order of the form; the last result is false for a key of another form.
|
|
func ParsePackagesByPackageSeriesKey(key string) (string, string, bool) {
|
|
rest := key
|
|
v0, after0, found0 := strings.Cut(rest, ".")
|
|
if !found0 || v0 == "" {
|
|
return "", "", false
|
|
}
|
|
rest = after0
|
|
if rest == "" {
|
|
return "", "", false
|
|
}
|
|
v2 := rest
|
|
rest = ""
|
|
if rest != "" {
|
|
return "", "", false
|
|
}
|
|
return v0, v2, true
|
|
}
|
|
|
|
// DecodePackagesByPackageSeriesValue reads one value of the state packages under the form "<package>.<series>", refusing a field PackagesByPackageSeriesValue does not know and any text after the value.
|
|
func DecodePackagesByPackageSeriesValue(raw []byte) (PackagesByPackageSeriesValue, error) {
|
|
var v PackagesByPackageSeriesValue
|
|
dec := json.NewDecoder(bytes.NewReader(raw))
|
|
dec.DisallowUnknownFields()
|
|
if err := dec.Decode(&v); err != nil {
|
|
return v, err
|
|
}
|
|
if dec.More() {
|
|
return v, errors.New("text after the value")
|
|
}
|
|
return v, nil
|
|
}
|
|
|
|
// ToolchainUsed is a toolchain a fingerprint was computed with (ADR 0405 clause 7).
|
|
type ToolchainUsed struct {
|
|
Language string `json:"language"`
|
|
// the build module's recipe version
|
|
Recipe string `json:"recipe"`
|
|
// the installed toolchain's version
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// ModulesInput is what modules takes.
|
|
type ModulesInput struct {
|
|
}
|
|
|
|
// ModulesAnswerModulesItem is a type of the contract.
|
|
type ModulesAnswerModulesItem struct {
|
|
// the merge commit it was last changed at
|
|
Commit string `json:"commit"`
|
|
// its fingerprint (src2: and 64 hex digits); absent when it has none
|
|
Fp string `json:"fp,omitempty"`
|
|
Module string `json:"module"`
|
|
// why it has none
|
|
None string `json:"none,omitempty"`
|
|
// the module's directory in its repository, '.' for a root
|
|
Path string `json:"path,omitempty"`
|
|
Repository string `json:"repository"`
|
|
}
|
|
|
|
// ModulesAnswer is what modules answers.
|
|
type ModulesAnswer struct {
|
|
Modules []ModulesAnswerModulesItem `json:"modules"`
|
|
}
|
|
|
|
// ModuleInput is what module takes.
|
|
type ModuleInput struct {
|
|
// the module's name
|
|
Module string `json:"module"`
|
|
}
|
|
|
|
// ModuleAnswerModule is a type of the contract.
|
|
type ModuleAnswerModule struct {
|
|
// the merge commit it was last changed at
|
|
Commit string `json:"commit"`
|
|
// its fingerprint (src2: and 64 hex digits); absent when it has none
|
|
Fp string `json:"fp,omitempty"`
|
|
// the module's manifest as the trunk holds it
|
|
Manifest map[string]any `json:"manifest,omitempty"`
|
|
Module string `json:"module"`
|
|
// why it has none
|
|
None string `json:"none,omitempty"`
|
|
// the module's directory in its repository, '.' for a root
|
|
Path string `json:"path,omitempty"`
|
|
Repository string `json:"repository"`
|
|
}
|
|
|
|
// ModuleAnswer is what module answers.
|
|
type ModuleAnswer struct {
|
|
Module ModuleAnswerModule `json:"module"`
|
|
}
|
|
|
|
// ProvidesInput is what provides takes.
|
|
type ProvidesInput struct {
|
|
// the provision, such as postgres-database
|
|
Provision string `json:"provision"`
|
|
}
|
|
|
|
// ProvidesAnswer is what provides answers.
|
|
type ProvidesAnswer = map[string]any
|
|
|
|
// DependentsInput is what dependents takes.
|
|
type DependentsInput struct {
|
|
// the module's name
|
|
Module string `json:"module"`
|
|
}
|
|
|
|
// DependentsAnswer is what dependents answers.
|
|
type DependentsAnswer = map[string]any
|
|
|
|
// SeatDefinitionsInput is what seat-definitions takes.
|
|
type SeatDefinitionsInput struct {
|
|
// the seat's name; none lists every trunk seat
|
|
Seat string `json:"seat,omitempty"`
|
|
}
|
|
|
|
// SeatDefinitionsAnswerEntry is a type of the contract.
|
|
type SeatDefinitionsAnswerEntry struct {
|
|
// the definition, resolved with the parts it includes
|
|
Definition map[string]any `json:"definition,omitempty"`
|
|
Digest string `json:"digest"`
|
|
Seat string `json:"seat"`
|
|
// trunk
|
|
Source string `json:"source"`
|
|
// why the definition could not be read, when it could not
|
|
Unparsed string `json:"unparsed,omitempty"`
|
|
}
|
|
|
|
// SeatDefinitionsAnswerSeatsItem is a type of the contract.
|
|
type SeatDefinitionsAnswerSeatsItem struct {
|
|
Digest string `json:"digest"`
|
|
Seat string `json:"seat"`
|
|
// trunk
|
|
Source string `json:"source"`
|
|
}
|
|
|
|
// SeatDefinitionsAnswer is what seat-definitions answers.
|
|
type SeatDefinitionsAnswer struct {
|
|
Entry *SeatDefinitionsAnswerEntry `json:"entry,omitempty"`
|
|
Found bool `json:"found,omitempty"`
|
|
Revision int64 `json:"revision,omitempty"`
|
|
Seat string `json:"seat,omitempty"`
|
|
Seats []SeatDefinitionsAnswerSeatsItem `json:"seats,omitempty"`
|
|
}
|
|
|
|
// SeatDefinitionChangedEvent is the body of the event seat-definition-changed.
|
|
type SeatDefinitionChangedEvent struct {
|
|
Digest string `json:"digest"`
|
|
Seat string `json:"seat"`
|
|
// trunk
|
|
Source string `json:"source"`
|
|
}
|
|
|
|
// SeatDefinitionRemovedEvent is the body of the event seat-definition-removed.
|
|
type SeatDefinitionRemovedEvent struct {
|
|
Seat string `json:"seat"`
|
|
}
|
|
|
|
// ManifestAcceptedEventBusStateItem is a type of the contract.
|
|
type ManifestAcceptedEventBusStateItem struct {
|
|
Configuration map[string]any `json:"configuration,omitempty"`
|
|
Name string `json:"name"`
|
|
Options map[string]any `json:"options,omitempty"`
|
|
Storage string `json:"storage"`
|
|
Template string `json:"template,omitempty"`
|
|
Types []map[string]any `json:"types,omitempty"`
|
|
}
|
|
|
|
// ManifestAcceptedEvent is the body of the event manifest-accepted.
|
|
type ManifestAcceptedEvent struct {
|
|
BusState []ManifestAcceptedEventBusStateItem `json:"bus-state"`
|
|
Digest string `json:"digest"`
|
|
Judge string `json:"judge"`
|
|
Module string `json:"module"`
|
|
// the indexer's revision of the verdict it says; a reader asks its first view again on a gap in it; zero from an indexer that does not say it
|
|
Revision int64 `json:"revision,omitempty"`
|
|
V int64 `json:"v"`
|
|
}
|
|
|
|
// ManifestRefusedEvent is the body of the event manifest-refused.
|
|
type ManifestRefusedEvent struct {
|
|
Digest string `json:"digest"`
|
|
Judge string `json:"judge"`
|
|
Module string `json:"module"`
|
|
Problems []string `json:"problems"`
|
|
// the indexer's revision of the verdict it says; a reader asks its first view again on a gap in it; zero from an indexer that does not say it
|
|
Revision int64 `json:"revision,omitempty"`
|
|
V int64 `json:"v"`
|
|
}
|
|
|
|
// ManifestsByDigestValue is one value of the state manifests under the key <digest>.
|
|
type ManifestsByDigestValue struct {
|
|
// the manifest, UTF-8 JSON text
|
|
Manifest string `json:"manifest"`
|
|
Module string `json:"module"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// ModulesByModuleValueInputs2 is a type of the contract.
|
|
type ModulesByModuleValueInputs2 struct {
|
|
Bases []string `json:"bases,omitempty"`
|
|
Builder string `json:"builder,omitempty"`
|
|
Contexts map[string]string `json:"contexts,omitempty"`
|
|
ImportForm string `json:"import-form,omitempty"`
|
|
Imports []string `json:"imports,omitempty"`
|
|
Locks map[string]string `json:"locks,omitempty"`
|
|
Packages []string `json:"packages,omitempty"`
|
|
Paths map[string]string `json:"paths,omitempty"`
|
|
Tree string `json:"tree"`
|
|
}
|
|
|
|
// ModulesByModuleValue is one value of the state modules under the key <module>.
|
|
type ModulesByModuleValue struct {
|
|
Commit string `json:"commit"`
|
|
// the old-form fingerprint
|
|
Fp string `json:"fp,omitempty"`
|
|
FpSrc int64 `json:"fp-src,omitempty"`
|
|
// src2: fingerprint
|
|
Fp2 string `json:"fp2,omitempty"`
|
|
Inputs2 *ModulesByModuleValueInputs2 `json:"inputs2,omitempty"`
|
|
// manifest digest
|
|
Manifest string `json:"manifest,omitempty"`
|
|
Needs []string `json:"needs,omitempty"`
|
|
None string `json:"none,omitempty"`
|
|
// why it has none
|
|
None2 string `json:"none2,omitempty"`
|
|
Packages map[string]string `json:"packages,omitempty"`
|
|
Path string `json:"path,omitempty"`
|
|
Paths map[string][]string `json:"paths,omitempty"`
|
|
Problems []string `json:"problems,omitempty"`
|
|
Repository string `json:"repository"`
|
|
// the source revision
|
|
Src int64 `json:"src,omitempty"`
|
|
// by language: the toolchain FP2 was computed with
|
|
Toolchains map[string]ToolchainUsed `json:"toolchains,omitempty"`
|
|
Unknown []string `json:"unknown,omitempty"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
Verdict string `json:"verdict,omitempty"`
|
|
Warnings []string `json:"warnings,omitempty"`
|
|
}
|
|
|
|
// CandidatesByGroupValuePullsItemFpsValue is a type of the contract.
|
|
type CandidatesByGroupValuePullsItemFpsValue struct {
|
|
Fp2 string `json:"fp2,omitempty"`
|
|
Manifest string `json:"manifest,omitempty"`
|
|
None2 string `json:"none2,omitempty"`
|
|
Packages map[string]string `json:"packages,omitempty"`
|
|
Paths map[string]string `json:"paths,omitempty"`
|
|
}
|
|
|
|
// CandidatesByGroupValuePullsItem is a type of the contract.
|
|
type CandidatesByGroupValuePullsItem struct {
|
|
Fps map[string]CandidatesByGroupValuePullsItemFpsValue `json:"fps,omitempty"`
|
|
Head string `json:"head"`
|
|
Modules []string `json:"modules"`
|
|
Number int64 `json:"number"`
|
|
Repository string `json:"repository"`
|
|
}
|
|
|
|
// CandidatesByGroupValue is one value of the state candidates under the key <group>.
|
|
type CandidatesByGroupValue struct {
|
|
// the source revision it is read on
|
|
Base int64 `json:"base"`
|
|
Fpset string `json:"fpset,omitempty"`
|
|
Group string `json:"group"`
|
|
Heads string `json:"heads"`
|
|
Pulls []CandidatesByGroupValuePullsItem `json:"pulls"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// VerdictsByDigestValue is one value of the state verdicts under the key <digest>.
|
|
type VerdictsByDigestValue struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
Judge string `json:"judge,omitempty"`
|
|
Module string `json:"module"`
|
|
Problems []string `json:"problems,omitempty"`
|
|
State string `json:"state"`
|
|
Unknown []string `json:"unknown,omitempty"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
Warnings []string `json:"warnings,omitempty"`
|
|
}
|
|
|
|
// PredefinedByListValue is one value of the state predefined under the key list.
|
|
type PredefinedByListValue struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
Commit string `json:"commit"`
|
|
// the foundation's predefined list as kept
|
|
List any `json:"list"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// ConfigCandidatesByPullValueDeclaresValueValue is a type of the contract.
|
|
type ConfigCandidatesByPullValueDeclaresValueValue struct {
|
|
// the default
|
|
Default any `json:"default"`
|
|
Description string `json:"description,omitempty"`
|
|
// the allowed values
|
|
Enum any `json:"enum,omitempty"`
|
|
Kind string `json:"kind"`
|
|
// a declared bound; 0 is a bound, absent is none
|
|
Maximum *float64 `json:"maximum,omitempty"`
|
|
// a declared bound; 0 is a bound, absent is none
|
|
Minimum *float64 `json:"minimum,omitempty"`
|
|
Pattern string `json:"pattern,omitempty"`
|
|
Predefined string `json:"predefined,omitempty"`
|
|
Required bool `json:"required,omitempty"`
|
|
Runtime bool `json:"runtime,omitempty"`
|
|
Trusted bool `json:"trusted,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
Why string `json:"why"`
|
|
}
|
|
|
|
// ConfigCandidatesByPullValue is one value of the state config-candidates under the key <pull>.
|
|
type ConfigCandidatesByPullValue struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
// module to key to declaration
|
|
Declares map[string]map[string]ConfigCandidatesByPullValueDeclaresValueValue `json:"declares"`
|
|
Head string `json:"head"`
|
|
Pull string `json:"pull"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// PackagesByModuleValuePackagesItem is a type of the contract.
|
|
type PackagesByModuleValuePackagesItem struct {
|
|
Digest string `json:"digest"`
|
|
Package string `json:"package"`
|
|
}
|
|
|
|
// PackagesByModuleValue is one value of the state packages under the key <module>.
|
|
type PackagesByModuleValue struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
Commit string `json:"commit"`
|
|
Dir string `json:"dir,omitempty"`
|
|
// the Go module path
|
|
Module string `json:"module"`
|
|
Packages []PackagesByModuleValuePackagesItem `json:"packages"`
|
|
Repository string `json:"repository"`
|
|
// digest of go.mod and go.sum
|
|
Requires string `json:"requires,omitempty"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNewestContentsPackagesItem is a type of the contract.
|
|
type PackagesByPackageSeriesValueNewestContentsPackagesItem struct {
|
|
Digest string `json:"digest"`
|
|
Package string `json:"package"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNewestContents is a type of the contract.
|
|
type PackagesByPackageSeriesValueNewestContents struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
Commit string `json:"commit"`
|
|
Dir string `json:"dir,omitempty"`
|
|
// the Go module path
|
|
Module string `json:"module"`
|
|
Packages []PackagesByPackageSeriesValueNewestContentsPackagesItem `json:"packages"`
|
|
Repository string `json:"repository"`
|
|
// digest of go.mod and go.sum
|
|
Requires string `json:"requires,omitempty"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNewest is a type of the contract.
|
|
type PackagesByPackageSeriesValueNewest struct {
|
|
Commit string `json:"commit,omitempty"`
|
|
Contents *PackagesByPackageSeriesValueNewestContents `json:"contents,omitempty"`
|
|
Digest string `json:"digest,omitempty"`
|
|
Fingerprint string `json:"fingerprint,omitempty"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNumberedContentsPackagesItem is a type of the contract.
|
|
type PackagesByPackageSeriesValueNumberedContentsPackagesItem struct {
|
|
Digest string `json:"digest"`
|
|
Package string `json:"package"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNumberedContents is a type of the contract.
|
|
type PackagesByPackageSeriesValueNumberedContents struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
Commit string `json:"commit"`
|
|
Dir string `json:"dir,omitempty"`
|
|
// the Go module path
|
|
Module string `json:"module"`
|
|
Packages []PackagesByPackageSeriesValueNumberedContentsPackagesItem `json:"packages"`
|
|
Repository string `json:"repository"`
|
|
// digest of go.mod and go.sum
|
|
Requires string `json:"requires,omitempty"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValueNumbered is a type of the contract.
|
|
type PackagesByPackageSeriesValueNumbered struct {
|
|
Commit string `json:"commit,omitempty"`
|
|
Contents *PackagesByPackageSeriesValueNumberedContents `json:"contents,omitempty"`
|
|
Digest string `json:"digest,omitempty"`
|
|
Fingerprint string `json:"fingerprint,omitempty"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// PackagesByPackageSeriesValue is one value of the state packages under the key <package>.<series>.
|
|
type PackagesByPackageSeriesValue struct {
|
|
// when (RFC 3339 time)
|
|
At *time.Time `json:"at,omitempty"`
|
|
GoModule string `json:"go-module,omitempty"`
|
|
Name string `json:"name"`
|
|
Newest *PackagesByPackageSeriesValueNewest `json:"newest,omitempty"`
|
|
Numbered *PackagesByPackageSeriesValueNumbered `json:"numbered,omitempty"`
|
|
Package string `json:"package,omitempty"`
|
|
Seat string `json:"seat,omitempty"`
|
|
Series string `json:"series"`
|
|
// the layout version
|
|
V int64 `json:"v,omitempty"`
|
|
}
|