163 lines · 5.2 KB · Go
RawDownload
// Copyright 2024 The Forgejo Authors. All rights reserved.// SPDX-License-Identifier: MIT package structs // QuotaInfo represents information about a user's quotatype QuotaInfo struct {	Used   QuotaUsed      `json:"used"`	Groups QuotaGroupList `json:"groups"`} // QuotaUsed represents the quota usage of a usertype QuotaUsed struct {	Size QuotaUsedSize `json:"size"`} // QuotaUsedSize represents the size-based quota usage of a usertype QuotaUsedSize struct {	Repos  QuotaUsedSizeRepos  `json:"repos"`	Git    QuotaUsedSizeGit    `json:"git"`	Assets QuotaUsedSizeAssets `json:"assets"`} // QuotaUsedSizeRepos represents the size-based repository quota usage of a usertype QuotaUsedSizeRepos struct {	// Storage size of the user's public repositories	Public int64 `json:"public"`	// Storage size of the user's private repositories	Private int64 `json:"private"`} // QuotaUsedSizeGit represents the size-based git (lfs) quota usage of a usertype QuotaUsedSizeGit struct {	// Storage size of the user's Git LFS objects	LFS int64 `json:"LFS"`} // QuotaUsedSizeAssets represents the size-based asset usage of a usertype QuotaUsedSizeAssets struct {	Attachments QuotaUsedSizeAssetsAttachments `json:"attachments"`	// Storage size used for the user's artifacts	Artifacts int64                       `json:"artifacts"`	Packages  QuotaUsedSizeAssetsPackages `json:"packages"`} // QuotaUsedSizeAssetsAttachments represents the size-based attachment quota usage of a usertype QuotaUsedSizeAssetsAttachments struct {	// Storage size used for the user's issue & comment attachments	Issues int64 `json:"issues"`	// Storage size used for the user's release attachments	Releases int64 `json:"releases"`} // QuotaUsedSizeAssetsPackages represents the size-based package quota usage of a usertype QuotaUsedSizeAssetsPackages struct {	// Storage suze used for the user's packages	All int64 `json:"all"`} // QuotaRuleInfo contains information about a quota ruletype QuotaRuleInfo struct {	// Name of the rule (only shown to admins)	Name string `json:"name,omitempty"`	// The limit set by the rule	Limit int64 `json:"limit"`	// Subjects the rule affects	Subjects []string `json:"subjects,omitempty"`} // QuotaGroupList represents a list of quota groupstype QuotaGroupList []QuotaGroup // QuotaGroup represents a quota grouptype QuotaGroup struct {	// Name of the group	Name string `json:"name,omitempty"`	// Rules associated with the group	Rules []QuotaRuleInfo `json:"rules"`} // CreateQutaGroupOptions represents the options for creating a quota grouptype CreateQuotaGroupOptions struct {	// Name of the quota group to create	Name string `json:"name" binding:"Required"`	// Rules to add to the newly created group.	// If a rule does not exist, it will be created.	Rules []CreateQuotaRuleOptions `json:"rules"`} // CreateQuotaRuleOptions represents the options for creating a quota ruletype CreateQuotaRuleOptions struct {	// Name of the rule to create	Name string `json:"name" binding:"Required"`	// The limit set by the rule	Limit *int64 `json:"limit"`	// The subjects affected by the rule	Subjects []string `json:"subjects"`} // EditQuotaRuleOptions represents the options for editing a quota ruletype EditQuotaRuleOptions struct {	// The limit set by the rule	Limit *int64 `json:"limit"`	// The subjects affected by the rule	Subjects *[]string `json:"subjects"`} // SetUserQuotaGroupsOptions represents the quota groups of a usertype SetUserQuotaGroupsOptions struct {	// Quota groups the user shall have	// required: true	Groups *[]string `json:"groups"`} // QuotaUsedAttachmentList represents a list of attachment counting towards a user's quotatype QuotaUsedAttachmentList []*QuotaUsedAttachment // QuotaUsedAttachment represents an attachment counting towards a user's quotatype QuotaUsedAttachment struct {	// Filename of the attachment	Name string `json:"name"`	// Size of the attachment (in bytes)	Size int64 `json:"size"`	// API URL for the attachment	APIURL string `json:"api_url"`	// Context for the attachment: URLs to the containing object	ContainedIn struct {		// API URL for the object that contains this attachment		APIURL string `json:"api_url"`		// HTML URL for the object that contains this attachment		HTMLURL string `json:"html_url"`	} `json:"contained_in"`} // QuotaUsedPackageList represents a list of packages counting towards a user's quotatype QuotaUsedPackageList []*QuotaUsedPackage // QuotaUsedPackage represents a package counting towards a user's quotatype QuotaUsedPackage struct {	// Name of the package	Name string `json:"name"`	// Type of the package	Type string `json:"type"`	// Version of the package	Version string `json:"version"`	// Size of the package version	Size int64 `json:"size"`	// HTML URL to the package version	HTMLURL string `json:"html_url"`} // QuotaUsedArtifactList represents a list of artifacts counting towards a user's quotatype QuotaUsedArtifactList []*QuotaUsedArtifact // QuotaUsedArtifact represents an artifact counting towards a user's quotatype QuotaUsedArtifact struct {	// Name of the artifact	Name string `json:"name"`	// Size of the artifact (compressed)	Size int64 `json:"size"`	// HTML URL to the action run containing the artifact	HTMLURL string `json:"html_url"`}