registry/types.go
752dd707
 package registry
 
 type SearchResult struct {
 	StarCount   int    `json:"star_count"`
 	IsOfficial  bool   `json:"is_official"`
 	Name        string `json:"name"`
 	IsTrusted   bool   `json:"is_trusted"`
 	Description string `json:"description"`
 }
 
 type SearchResults struct {
 	Query      string         `json:"query"`
 	NumResults int            `json:"num_results"`
 	Results    []SearchResult `json:"results"`
 }
 
 type RepositoryData struct {
 	ImgList   map[string]*ImgData
 	Endpoints []string
 	Tokens    []string
 }
 
 type ImgData struct {
 	ID              string `json:"id"`
 	Checksum        string `json:"checksum,omitempty"`
 	ChecksumPayload string `json:"-"`
 	Tag             string `json:",omitempty"`
 }
 
 type RegistryInfo struct {
 	Version    string `json:"version"`
 	Standalone bool   `json:"standalone"`
 }
61c6f206
 
15d5c7f1
 type FSLayer struct {
 	BlobSum string `json:"blobSum"`
 }
 
 type ManifestHistory struct {
 	V1Compatibility string `json:"v1Compatibility"`
 }
 
7c88e8f1
 type ManifestData struct {
15d5c7f1
 	Name          string             `json:"name"`
 	Tag           string             `json:"tag"`
 	Architecture  string             `json:"architecture"`
 	FSLayers      []*FSLayer         `json:"fsLayers"`
 	History       []*ManifestHistory `json:"history"`
 	SchemaVersion int                `json:"schemaVersion"`
7c88e8f1
 }
 
61c6f206
 type APIVersion int
 
 func (av APIVersion) String() string {
 	return apiVersions[av]
 }
 
 var apiVersions = map[APIVersion]string{
 	1: "v1",
 	2: "v2",
 }
 
41e20cec
 // API Version identifiers.
61c6f206
 const (
41e20cec
 	APIVersionUnknown = iota
 	APIVersion1
61c6f206
 	APIVersion2
 )
568f86eb
 
 // RepositoryInfo Examples:
 // {
 //   "Index" : {
 //     "Name" : "docker.io",
 //     "Mirrors" : ["https://registry-2.docker.io/v1/", "https://registry-3.docker.io/v1/"],
 //     "Secure" : true,
 //     "Official" : true,
 //   },
 //   "RemoteName" : "library/debian",
 //   "LocalName" : "debian",
 //   "CanonicalName" : "docker.io/debian"
 //   "Official" : true,
 // }
 
 // {
 //   "Index" : {
 //     "Name" : "127.0.0.1:5000",
 //     "Mirrors" : [],
 //     "Secure" : false,
 //     "Official" : false,
 //   },
 //   "RemoteName" : "user/repo",
 //   "LocalName" : "127.0.0.1:5000/user/repo",
 //   "CanonicalName" : "127.0.0.1:5000/user/repo",
 //   "Official" : false,
 // }
 type IndexInfo struct {
 	Name     string
 	Mirrors  []string
 	Secure   bool
 	Official bool
 }
 
 type RepositoryInfo struct {
 	Index         *IndexInfo
 	RemoteName    string
 	LocalName     string
 	CanonicalName string
 	Official      bool
 }