lib

package
v0.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

README

lib

This folder will hold corresponding Go source files for each of the endpoints found in:

https://docs.quay.io/api/swagger/

Documentation

Index

Constants

View Source
const (
	QuayURL = "https://quay.io/api/v1"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregatedLogEntry added in v0.0.8

type AggregatedLogEntry struct {
	Kind     string `json:"kind"`
	Count    int    `json:"count"`
	Datetime string `json:"datetime"`
}

AggregatedLogEntry represents a single aggregated log entry.

type AggregatedLogs

type AggregatedLogs struct {
	Aggregated []AggregatedLogEntry `json:"aggregated"`
}

AggregatedLogs represents aggregated logs for a repository.

type Avatar added in v0.0.8

type Avatar struct {
	Name  string `json:"name,omitempty"`
	Hash  string `json:"hash,omitempty"`
	Color string `json:"color,omitempty"`
	Kind  string `json:"kind,omitempty"`
}

Avatar represents performer avatar details.

type Client

type Client struct {
	BearerToken string
	HTTPClient  *http.Client
}

func NewClient

func NewClient(bearerToken string) (*Client, error)

func (*Client) GetAggregatedLogs

func (c *Client) GetAggregatedLogs(namespace, repository, startDate, endDate string) (*AggregatedLogs, error)

GetAggregatedLogs returns the aggregated logs for a repository

func (*Client) GetLogs

func (c *Client) GetLogs(namespace, repository, nextPage string) (*Logs, error)

GetLogs returns the logs for a repository

func (*Client) GetOrganizationLogs

func (c *Client) GetOrganizationLogs(namespace, next_page string) (*OrganizationLogs, error)

GetOrganizationLogs returns the logs for an organization

func (*Client) GetRepository

func (c *Client) GetRepository(namespace, repository string) (RepositoryWithTags, error)

GetRepository returns a repository with tags information baked in

type LogEntry added in v0.0.8

type LogEntry struct {
	Kind      string    `json:"kind,omitempty"`
	Metadata  Metadata  `json:"metadata,omitempty"`
	IP        string    `json:"ip,omitempty"`
	Datetime  string    `json:"datetime,omitempty"`
	Performer Performer `json:"performer,omitempty"`
}

LogEntry represents a single log entry.

type Logs

type Logs struct {
	StartTime string     `json:"start_time,omitempty"`
	EndTime   string     `json:"end_time,omitempty"`
	Logs      []LogEntry `json:"logs,omitempty"`
	NextPage  string     `json:"next_page,omitempty"`
}

Logs represents logs for a repository.

type Metadata added in v0.0.8

type Metadata struct {
	Repo           string     `json:"repo,omitempty"`
	Namespace      string     `json:"namespace,omitempty"`
	UserAgent      string     `json:"user-agent,omitempty"`
	ManifestDigest string     `json:"manifest_digest,omitempty"`
	Username       string     `json:"username,omitempty"`
	IsRobot        bool       `json:"is_robot,omitempty"`
	ResolvedIP     ResolvedIP `json:"resolved_ip,omitempty"`
	Tag            string     `json:"tag,omitempty"`
}

Metadata represents metadata for logs.

type OrganizationLogs

type OrganizationLogs struct {
	StartTime string     `json:"start_time,omitempty"`
	EndTime   string     `json:"end_time,omitempty"`
	Logs      []LogEntry `json:"logs,omitempty"`
	NextPage  string     `json:"next_page,omitempty"`
}

OrganizationLogs represents logs for an organization.

type Performer added in v0.0.8

type Performer struct {
	Kind    string `json:"kind,omitempty"`
	Name    string `json:"name,omitempty"`
	IsRobot bool   `json:"is_robot,omitempty"`
	Avatar  Avatar `json:"avatar,omitempty"`
}

Performer represents the performer of an action.

type Repository

type Repository struct {
	Namespace      string `json:"namespace,omitempty"`
	Name           string `json:"name,omitempty"`
	Kind           string `json:"kind,omitempty"`
	Description    string `json:"description,omitempty"`
	IsPublic       bool   `json:"is_public,omitempty"`
	IsOrganization bool   `json:"is_organization,omitempty"`
	IsStarred      bool   `json:"is_starred,omitempty"`
	StatusToken    string `json:"status_token,omitempty"`
	TrustEnabled   bool   `json:"trust_enabled,omitempty"`
	TagExpirationS int    `json:"tag_expiration_s,omitempty"`
	IsFreeAccount  bool   `json:"is_free_account,omitempty"`
	State          string `json:"state,omitempty"`
	CanWrite       bool   `json:"can_write,omitempty"`
	CanAdmin       bool   `json:"can_admin,omitempty"`
}

type RepositoryTags

type RepositoryTags struct {
	Tags []struct {
		Name           string `json:"name,omitempty"`
		Reversion      bool   `json:"reversion,omitempty"`
		StartTs        int    `json:"start_ts,omitempty"`
		ManifestDigest string `json:"manifest_digest,omitempty"`
		IsManifestList bool   `json:"is_manifest_list,omitempty"`
		Size           any    `json:"size,omitempty"`
		LastModified   string `json:"last_modified,omitempty"`
		EndTs          int    `json:"end_ts,omitempty"`
		Expiration     string `json:"expiration,omitempty"`
	} `json:"tags,omitempty"`
	Page          int  `json:"page,omitempty"`
	HasAdditional bool `json:"has_additional,omitempty"`
}

type RepositoryWithTags

type RepositoryWithTags struct {
	Namespace      string         `json:"namespace,omitempty"`
	Name           string         `json:"name,omitempty"`
	Kind           string         `json:"kind,omitempty"`
	Description    string         `json:"description,omitempty"`
	IsPublic       bool           `json:"is_public,omitempty"`
	IsOrganization bool           `json:"is_organization,omitempty"`
	IsStarred      bool           `json:"is_starred,omitempty"`
	StatusToken    string         `json:"status_token,omitempty"`
	TrustEnabled   bool           `json:"trust_enabled,omitempty"`
	TagExpirationS int            `json:"tag_expiration_s,omitempty"`
	IsFreeAccount  bool           `json:"is_free_account,omitempty"`
	State          string         `json:"state,omitempty"`
	CanWrite       bool           `json:"can_write,omitempty"`
	CanAdmin       bool           `json:"can_admin,omitempty"`
	Tags           RepositoryTags `json:"tags,omitempty"`
}

type ResolvedIP added in v0.0.8

type ResolvedIP struct {
	Provider       string `json:"provider,omitempty"`
	Service        string `json:"service,omitempty"`
	SyncToken      string `json:"sync_token,omitempty"`
	CountryIsoCode string `json:"country_iso_code,omitempty"`
	AwsRegion      any    `json:"aws_region,omitempty"`
	Continent      string `json:"continent,omitempty"`
}

ResolvedIP represents resolved IP details.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL