mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-23 02:35:17 +01:00
Delete unused files and functions (#16599)
testing/apitest/apilib is not used after harbor 2.4 refactor no testcase removed Signed-off-by: stonezdj <stonezdj@gmail.com>
This commit is contained in:
parent
e01a31c433
commit
1449988353
@ -17,8 +17,6 @@ package api
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/astaxie/beego"
|
||||
"github.com/dghubble/sling"
|
||||
"github.com/goharbor/harbor/src/common/api"
|
||||
@ -29,18 +27,14 @@ import (
|
||||
_ "github.com/goharbor/harbor/src/core/auth/ldap"
|
||||
"github.com/goharbor/harbor/src/lib/config"
|
||||
libOrm "github.com/goharbor/harbor/src/lib/orm"
|
||||
proModels "github.com/goharbor/harbor/src/pkg/project/models"
|
||||
"github.com/goharbor/harbor/src/server/middleware"
|
||||
"github.com/goharbor/harbor/src/server/middleware/orm"
|
||||
"github.com/goharbor/harbor/src/server/middleware/security"
|
||||
"github.com/goharbor/harbor/src/testing/apitests/apilib"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -151,488 +145,6 @@ func request(_sling *sling.Sling, acceptHeader string, authInfo ...usrInfo) (int
|
||||
return code, body, err
|
||||
}
|
||||
|
||||
// Search for projects and repositories
|
||||
// Implementation Notes
|
||||
// The Search endpoint returns information about the projects and repositories
|
||||
// offered at public status or related to the current logged in user.
|
||||
// The response includes the project and repository list in a proper display order.
|
||||
// @param q Search parameter for project and repository name.
|
||||
// @return []Search
|
||||
func (a testapi) SearchGet(q string, authInfo ...usrInfo) (int, apilib.Search, error) {
|
||||
var httpCode int
|
||||
var body []byte
|
||||
var err error
|
||||
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/search"
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
type QueryParams struct {
|
||||
Query string `url:"q,omitempty"`
|
||||
}
|
||||
|
||||
_sling = _sling.QueryStruct(&QueryParams{Query: q})
|
||||
|
||||
if len(authInfo) > 0 {
|
||||
httpCode, body, err = request(_sling, jsonAcceptHeader, authInfo[0])
|
||||
} else {
|
||||
httpCode, body, err = request(_sling, jsonAcceptHeader)
|
||||
}
|
||||
|
||||
var successPayload = new(apilib.Search)
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
return httpCode, *successPayload, err
|
||||
}
|
||||
|
||||
// Create a new project.
|
||||
// Implementation Notes
|
||||
// This endpoint is for user to create a new project.
|
||||
// @param project New created project.
|
||||
// @return void
|
||||
// func (a testapi) ProjectsPost (prjUsr usrInfo, project apilib.Project) (int, error) {
|
||||
func (a testapi) ProjectsPost(prjUsr usrInfo, project apilib.ProjectReq) (int, error) {
|
||||
|
||||
_sling := sling.New().Post(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/projects/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
// body params
|
||||
_sling = _sling.BodyJSON(project)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
func (a testapi) StatisticGet(user usrInfo) (int, apilib.StatisticMap, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/statistics/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
var successPayload apilib.StatisticMap
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, user)
|
||||
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
}
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// Delete project by projectID
|
||||
func (a testapi) ProjectsDelete(prjUsr usrInfo, projectID string) (int, error) {
|
||||
_sling := sling.New().Delete(a.basePath)
|
||||
|
||||
// create api path
|
||||
path := "api/projects/" + projectID
|
||||
_sling = _sling.Path(path)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Check if the project name user provided already exists
|
||||
func (a testapi) ProjectsHead(prjUsr usrInfo, projectName string) (int, error) {
|
||||
_sling := sling.New().Head(a.basePath)
|
||||
|
||||
// create api path
|
||||
path := "api/projects"
|
||||
_sling = _sling.Path(path)
|
||||
type QueryParams struct {
|
||||
ProjectName string `url:"project_name,omitempty"`
|
||||
}
|
||||
_sling = _sling.QueryStruct(&QueryParams{ProjectName: projectName})
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Return specific project detail information
|
||||
func (a testapi) ProjectsGetByPID(projectID string) (int, apilib.Project, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
// create api path
|
||||
path := "api/projects/" + projectID
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
var successPayload apilib.Project
|
||||
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader)
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
}
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// Search projects by projectName and isPublic
|
||||
func (a testapi) ProjectsGet(query *apilib.ProjectQuery, authInfo ...usrInfo) (int, []apilib.Project, error) {
|
||||
_sling := sling.New().Get(a.basePath).
|
||||
Path("api/projects").
|
||||
QueryStruct(query)
|
||||
|
||||
var successPayload []apilib.Project
|
||||
|
||||
var httpStatusCode int
|
||||
var err error
|
||||
var body []byte
|
||||
if len(authInfo) > 0 {
|
||||
httpStatusCode, body, err = request(_sling, jsonAcceptHeader, authInfo[0])
|
||||
} else {
|
||||
httpStatusCode, body, err = request(_sling, jsonAcceptHeader)
|
||||
}
|
||||
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
} else {
|
||||
log.Println(string(body))
|
||||
}
|
||||
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// Update properties for a selected project.
|
||||
func (a testapi) ProjectsPut(prjUsr usrInfo, projectID string,
|
||||
project *proModels.Project) (int, error) {
|
||||
path := "/api/projects/" + projectID
|
||||
_sling := sling.New().Put(a.basePath).Path(path).BodyJSON(project)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
return httpStatusCode, err
|
||||
|
||||
}
|
||||
|
||||
// ProjectDeletable check whether a project can be deleted
|
||||
func (a testapi) ProjectDeletable(prjUsr usrInfo, projectID int64) (int, bool, error) {
|
||||
_sling := sling.New().Get(a.basePath).
|
||||
Path("/api/projects/" + strconv.FormatInt(projectID, 10) + "/_deletable")
|
||||
|
||||
code, body, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
if err != nil {
|
||||
return 0, false, err
|
||||
}
|
||||
|
||||
if code != http.StatusOK {
|
||||
return code, false, nil
|
||||
}
|
||||
|
||||
deletable := struct {
|
||||
Deletable bool `json:"deletable"`
|
||||
}{}
|
||||
if err = json.Unmarshal(body, &deletable); err != nil {
|
||||
return 0, false, err
|
||||
}
|
||||
|
||||
return code, deletable.Deletable, nil
|
||||
}
|
||||
|
||||
// ProjectSummary returns summary for the project
|
||||
func (a testapi) ProjectSummary(prjUsr usrInfo, projectID string) (int, apilib.ProjectSummary, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
// create api path
|
||||
path := "api/projects/" + projectID + "/summary"
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
var successPayload apilib.ProjectSummary
|
||||
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
}
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// -------------------------Member Test---------------------------------------//
|
||||
|
||||
// Return relevant role members of projectID
|
||||
func (a testapi) GetProjectMembersByProID(prjUsr usrInfo, projectID string) (int, []apilib.User, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
path := "/api/projects/" + projectID + "/members/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
var successPayload []apilib.User
|
||||
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, prjUsr)
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
}
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// Delete project role member accompany with projectID
|
||||
func (a testapi) DeleteProjectMember(authInfo usrInfo, projectID string, memberID string) (int, error) {
|
||||
_sling := sling.New().Delete(a.basePath)
|
||||
|
||||
path := "/api/projects/" + projectID + "/members/" + memberID
|
||||
_sling = _sling.Path(path)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
|
||||
}
|
||||
|
||||
// Get role memberInfo by projectId and UserId
|
||||
func (a testapi) GetMemByPIDUID(authInfo usrInfo, projectID string, userID string) (int, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
path := "/api/projects/" + projectID + "/members/" + userID
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Put:update current project role members accompany with relevant project and user
|
||||
func (a testapi) PutProjectMember(authInfo usrInfo, projectID string, userID string, roles apilib.RoleParam) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
path := "/api/projects/" + projectID + "/members/" + userID
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
_sling = _sling.BodyJSON(roles)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// --------------------Replication_Policy Test--------------------------------//
|
||||
|
||||
// Create a new replication policy
|
||||
func (a testapi) AddPolicy(authInfo usrInfo, repPolicy apilib.RepPolicyPost) (int, error) {
|
||||
_sling := sling.New().Post(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
_sling = _sling.BodyJSON(repPolicy)
|
||||
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
if httpStatusCode != http.StatusCreated {
|
||||
log.Println(string(body))
|
||||
}
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// List policies by policyName and projectID
|
||||
func (a testapi) ListPolicies(authInfo usrInfo, policyName string, proID string) (int, []apilib.RepPolicy, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
type QueryParams struct {
|
||||
PolicyName string `url:"name"`
|
||||
ProjectID string `url:"project_id"`
|
||||
}
|
||||
_sling = _sling.QueryStruct(&QueryParams{PolicyName: policyName, ProjectID: proID})
|
||||
|
||||
var successPayload []apilib.RepPolicy
|
||||
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
|
||||
if err == nil && httpStatusCode == 200 {
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
}
|
||||
return httpStatusCode, successPayload, err
|
||||
}
|
||||
|
||||
// Get replication policy by policyID
|
||||
func (a testapi) GetPolicyByID(authInfo usrInfo, policyID string) (int, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/" + policyID
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Update policyInfo by policyID
|
||||
func (a testapi) PutPolicyInfoByID(authInfo usrInfo, policyID string, policyUpdate apilib.RepPolicyUpdate) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/" + policyID
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
_sling = _sling.BodyJSON(policyUpdate)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Update policy enablement flag by policyID
|
||||
func (a testapi) PutPolicyEnableByID(authInfo usrInfo, policyID string, policyEnable apilib.RepPolicyEnablementReq) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/" + policyID + "/enablement"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
_sling = _sling.BodyJSON(policyEnable)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Delete policy by policyID
|
||||
func (a testapi) DeletePolicyByID(authInfo usrInfo, policyID string) (int, error) {
|
||||
_sling := sling.New().Delete(a.basePath)
|
||||
|
||||
path := "/api/policies/replication/" + policyID
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Get registered users of Harbor.
|
||||
func (a testapi) UsersGet(userName string, authInfo usrInfo) (int, []apilib.User, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/"
|
||||
_sling = _sling.Path(path)
|
||||
// body params
|
||||
type QueryParams struct {
|
||||
UserName string `url:"username, omitempty"`
|
||||
}
|
||||
_sling = _sling.QueryStruct(&QueryParams{UserName: userName})
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
var successPayLoad []apilib.User
|
||||
if 200 == httpStatusCode && nil == err {
|
||||
err = json.Unmarshal(body, &successPayLoad)
|
||||
}
|
||||
return httpStatusCode, successPayLoad, err
|
||||
}
|
||||
|
||||
// Search registered users of Harbor.
|
||||
func (a testapi) UsersSearch(userName string, authInfo ...usrInfo) (int, []apilib.UserSearch, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/search"
|
||||
_sling = _sling.Path(path)
|
||||
// body params
|
||||
type QueryParams struct {
|
||||
UserName string `url:"username, omitempty"`
|
||||
}
|
||||
_sling = _sling.QueryStruct(&QueryParams{UserName: userName})
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo...)
|
||||
var successPayLoad []apilib.UserSearch
|
||||
if 200 == httpStatusCode && nil == err {
|
||||
err = json.Unmarshal(body, &successPayLoad)
|
||||
}
|
||||
return httpStatusCode, successPayLoad, err
|
||||
}
|
||||
|
||||
// Get registered users by userid.
|
||||
func (a testapi) UsersGetByID(userID int, authInfo usrInfo) (int, apilib.User, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/" + fmt.Sprintf("%d", userID)
|
||||
_sling = _sling.Path(path)
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
var successPayLoad apilib.User
|
||||
if 200 == httpStatusCode && nil == err {
|
||||
err = json.Unmarshal(body, &successPayLoad)
|
||||
}
|
||||
return httpStatusCode, successPayLoad, err
|
||||
}
|
||||
|
||||
// Creates a new user account.
|
||||
func (a testapi) UsersPost(user apilib.User, authInfo ...usrInfo) (int, error) {
|
||||
_sling := sling.New().Post(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/users/"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
// body params
|
||||
_sling = _sling.BodyJSON(user)
|
||||
var httpStatusCode int
|
||||
var err error
|
||||
if len(authInfo) > 0 {
|
||||
httpStatusCode, _, err = request(_sling, jsonAcceptHeader, authInfo[0])
|
||||
} else {
|
||||
httpStatusCode, _, err = request(_sling, jsonAcceptHeader)
|
||||
}
|
||||
return httpStatusCode, err
|
||||
|
||||
}
|
||||
|
||||
// Update a registered user to change profile.
|
||||
func (a testapi) UsersPut(userID int, profile apilib.UserProfile, authInfo usrInfo) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/" + fmt.Sprintf("%d", userID)
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
// body params
|
||||
_sling = _sling.BodyJSON(profile)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Update a registered user to be an administrator of Harbor.
|
||||
func (a testapi) UsersToggleAdminRole(userID int, authInfo usrInfo, hasAdminRole bool) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/" + fmt.Sprintf("%d", userID) + "/sysadmin"
|
||||
_sling = _sling.Path(path)
|
||||
type QueryParams struct {
|
||||
HasAdminRole bool `json:"sysadmin_flag,omitempty"`
|
||||
}
|
||||
|
||||
_sling = _sling.BodyJSON(&QueryParams{HasAdminRole: hasAdminRole})
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
// Update password of a registered user.
|
||||
func (a testapi) UsersUpdatePassword(userID int, password apilib.Password, authInfo usrInfo) (int, error) {
|
||||
_sling := sling.New().Put(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/" + fmt.Sprintf("%d", userID) + "/password"
|
||||
_sling = _sling.Path(path)
|
||||
// body params
|
||||
_sling = _sling.BodyJSON(password)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
func (a testapi) UsersGetPermissions(userID interface{}, scope string, authInfo usrInfo) (int, []apilib.Permission, error) {
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
// create path and map variables
|
||||
path := fmt.Sprintf("/api/users/%v/permissions", userID)
|
||||
_sling = _sling.Path(path)
|
||||
type QueryParams struct {
|
||||
Scope string `url:"scope,omitempty"`
|
||||
}
|
||||
_sling = _sling.QueryStruct(&QueryParams{Scope: scope})
|
||||
httpStatusCode, body, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
var successPayLoad []apilib.Permission
|
||||
if 200 == httpStatusCode && nil == err {
|
||||
err = json.Unmarshal(body, &successPayLoad)
|
||||
}
|
||||
return httpStatusCode, successPayLoad, err
|
||||
}
|
||||
|
||||
// Mark a registered user as be removed.
|
||||
func (a testapi) UsersDelete(userID int, authInfo usrInfo) (int, error) {
|
||||
_sling := sling.New().Delete(a.basePath)
|
||||
// create path and map variables
|
||||
path := "/api/users/" + fmt.Sprintf("%d", userID)
|
||||
_sling = _sling.Path(path)
|
||||
httpStatusCode, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return httpStatusCode, err
|
||||
}
|
||||
|
||||
func (a testapi) PingEmail(authInfo usrInfo, settings []byte) (int, string, error) {
|
||||
_sling := sling.New().Base(a.basePath).Post("/api/email/ping").Body(bytes.NewReader(settings))
|
||||
|
||||
@ -640,74 +152,3 @@ func (a testapi) PingEmail(authInfo usrInfo, settings []byte) (int, string, erro
|
||||
|
||||
return code, string(body), err
|
||||
}
|
||||
|
||||
func (a testapi) PostMeta(authInfor usrInfo, projectID int64, metas map[string]string) (int, string, error) {
|
||||
_sling := sling.New().Base(a.basePath).
|
||||
Post(fmt.Sprintf("/api/projects/%d/metadatas/", projectID)).
|
||||
BodyJSON(metas)
|
||||
|
||||
code, body, err := request(_sling, jsonAcceptHeader, authInfor)
|
||||
return code, string(body), err
|
||||
}
|
||||
|
||||
func (a testapi) PutMeta(authInfor usrInfo, projectID int64, name string,
|
||||
metas map[string]string) (int, string, error) {
|
||||
_sling := sling.New().Base(a.basePath).
|
||||
Put(fmt.Sprintf("/api/projects/%d/metadatas/%s", projectID, name)).
|
||||
BodyJSON(metas)
|
||||
|
||||
code, body, err := request(_sling, jsonAcceptHeader, authInfor)
|
||||
return code, string(body), err
|
||||
}
|
||||
|
||||
func (a testapi) GetMeta(authInfor usrInfo, projectID int64, name ...string) (int, map[string]string, error) {
|
||||
_sling := sling.New().Base(a.basePath).
|
||||
Get(fmt.Sprintf("/api/projects/%d/metadatas/", projectID))
|
||||
if len(name) > 0 {
|
||||
_sling = _sling.Path(name[0])
|
||||
}
|
||||
|
||||
code, body, err := request(_sling, jsonAcceptHeader, authInfor)
|
||||
if err == nil && code == http.StatusOK {
|
||||
metas := map[string]string{}
|
||||
if err := json.Unmarshal(body, &metas); err != nil {
|
||||
return 0, nil, err
|
||||
}
|
||||
return code, metas, nil
|
||||
}
|
||||
return code, nil, err
|
||||
}
|
||||
|
||||
func (a testapi) DeleteMeta(authInfor usrInfo, projectID int64, name string) (int, string, error) {
|
||||
_sling := sling.New().Base(a.basePath).
|
||||
Delete(fmt.Sprintf("/api/projects/%d/metadatas/%s", projectID, name))
|
||||
|
||||
code, body, err := request(_sling, jsonAcceptHeader, authInfor)
|
||||
return code, string(body), err
|
||||
}
|
||||
|
||||
type pingReq struct {
|
||||
ID *int64 `json:"id"`
|
||||
Type *string `json:"type"`
|
||||
URL *string `json:"url"`
|
||||
CredentialType *string `json:"credential_type"`
|
||||
AccessKey *string `json:"access_key"`
|
||||
AccessSecret *string `json:"access_secret"`
|
||||
Insecure *bool `json:"insecure"`
|
||||
}
|
||||
|
||||
func (a testapi) RegistryPing(authInfo usrInfo, registry *pingReq) (int, error) {
|
||||
_sling := sling.New().Base(a.basePath).Post("/api/registries/ping").BodyJSON(registry)
|
||||
code, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
return code, err
|
||||
}
|
||||
|
||||
func (a testapi) RegistryDelete(authInfo usrInfo, registryID int64) (int, error) {
|
||||
_sling := sling.New().Base(a.basePath).Delete(fmt.Sprintf("/api/registries/%d", registryID))
|
||||
code, _, err := request(_sling, jsonAcceptHeader, authInfo)
|
||||
if err != nil || code != http.StatusOK {
|
||||
return code, fmt.Errorf("delete registry error: %v", err)
|
||||
}
|
||||
|
||||
return code, nil
|
||||
}
|
||||
|
@ -1,224 +0,0 @@
|
||||
// Package apilib
|
||||
// These APIs provide services for manipulating Harbor project.
|
||||
package apilib
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
// "fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/dghubble/sling"
|
||||
)
|
||||
|
||||
type HarborAPI struct {
|
||||
basePath string
|
||||
}
|
||||
|
||||
func NewHarborAPI() *HarborAPI {
|
||||
return &HarborAPI{
|
||||
basePath: "http://localhost",
|
||||
}
|
||||
}
|
||||
|
||||
func NewHarborAPIWithBasePath(basePath string) *HarborAPI {
|
||||
return &HarborAPI{
|
||||
basePath: basePath,
|
||||
}
|
||||
}
|
||||
|
||||
type UsrInfo struct {
|
||||
Name string
|
||||
Passwd string
|
||||
}
|
||||
|
||||
// Search for projects and repositories
|
||||
// Implementation Notes
|
||||
// The Search endpoint returns information about the projects and repositories
|
||||
// offered at public status or related to the current logged in user.
|
||||
// The response includes the project and repository list in a proper display order.
|
||||
// @param q Search parameter for project and repository name.
|
||||
// @return []Search
|
||||
// func (a HarborAPI) SearchGet (q string) (Search, error) {
|
||||
func (a HarborAPI) SearchGet(q string) (Search, error) {
|
||||
|
||||
_sling := sling.New().Get(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/search"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
type QueryParams struct {
|
||||
Query string `url:"q,omitempty"`
|
||||
}
|
||||
|
||||
_sling = _sling.QueryStruct(&QueryParams{Query: q})
|
||||
|
||||
// accept header
|
||||
accepts := []string{"application/json", "text/plain"}
|
||||
for key := range accepts {
|
||||
_sling = _sling.Set("Accept", accepts[key])
|
||||
break // only use the first Accept
|
||||
}
|
||||
|
||||
req, err := _sling.Request()
|
||||
|
||||
client := &http.Client{}
|
||||
httpResponse, err := client.Do(req)
|
||||
defer httpResponse.Body.Close()
|
||||
|
||||
body, err := ioutil.ReadAll(httpResponse.Body)
|
||||
if err != nil {
|
||||
// handle error
|
||||
}
|
||||
|
||||
var successPayload = new(Search)
|
||||
err = json.Unmarshal(body, &successPayload)
|
||||
return *successPayload, err
|
||||
}
|
||||
|
||||
// Create a new project.
|
||||
// Implementation Notes
|
||||
// This endpoint is for user to create a new project.
|
||||
// @param project New created project.
|
||||
// @return void
|
||||
// func (a HarborAPI) ProjectsPost (prjUsr UsrInfo, project Project) (int, error) {
|
||||
func (a HarborAPI) ProjectsPost(prjUsr UsrInfo, project Project) (int, error) {
|
||||
|
||||
_sling := sling.New().Post(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/projects"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
// accept header
|
||||
accepts := []string{"application/json", "text/plain"}
|
||||
for key := range accepts {
|
||||
_sling = _sling.Set("Accept", accepts[key])
|
||||
break // only use the first Accept
|
||||
}
|
||||
|
||||
// body params
|
||||
_sling = _sling.BodyJSON(project)
|
||||
|
||||
req, err := _sling.Request()
|
||||
req.SetBasicAuth(prjUsr.Name, prjUsr.Passwd)
|
||||
|
||||
client := &http.Client{}
|
||||
httpResponse, err := client.Do(req)
|
||||
defer httpResponse.Body.Close()
|
||||
|
||||
return httpResponse.StatusCode, err
|
||||
}
|
||||
|
||||
// Delete a repository or a tag in a repository.
|
||||
// Delete a repository or a tag in a repository.
|
||||
// This endpoint let user delete repositories and tags with repo name and tag.\n
|
||||
// @param repoName The name of repository which will be deleted.
|
||||
// @param tag Tag of a repository.
|
||||
// @return void
|
||||
// func (a HarborAPI) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) {
|
||||
func (a HarborAPI) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) {
|
||||
_sling := sling.New().Delete(a.basePath)
|
||||
|
||||
// create path and map variables
|
||||
path := "/api/repositories"
|
||||
|
||||
_sling = _sling.Path(path)
|
||||
|
||||
type QueryParams struct {
|
||||
RepoName string `url:"repo_name,omitempty"`
|
||||
Tag string `url:"tag,omitempty"`
|
||||
}
|
||||
|
||||
_sling = _sling.QueryStruct(&QueryParams{RepoName: repoName, Tag: tag})
|
||||
// accept header
|
||||
accepts := []string{"application/json", "text/plain"}
|
||||
for key := range accepts {
|
||||
_sling = _sling.Set("Accept", accepts[key])
|
||||
break // only use the first Accept
|
||||
}
|
||||
|
||||
req, err := _sling.Request()
|
||||
req.SetBasicAuth(prjUsr.Name, prjUsr.Passwd)
|
||||
// fmt.Printf("request %+v", req)
|
||||
|
||||
client := &http.Client{}
|
||||
httpResponse, err := client.Do(req)
|
||||
defer httpResponse.Body.Close()
|
||||
|
||||
if err != nil {
|
||||
// handle error
|
||||
}
|
||||
return httpResponse.StatusCode, err
|
||||
}
|
||||
|
||||
// Return projects created by Harbor
|
||||
// func (a HarborApi) ProjectsGet (projectName string, isPublic int32) ([]Project, error) {
|
||||
// }
|
||||
|
||||
// Check if the project name user provided already exists.
|
||||
// func (a HarborApi) ProjectsHead (projectName string) (error) {
|
||||
// }
|
||||
|
||||
// Get access logs accompany with a relevant project.
|
||||
// func (a HarborApi) ProjectsProjectIdLogsFilterPost (projectId int32, accessLog AccessLog) ([]AccessLog, error) {
|
||||
// }
|
||||
|
||||
// Return a project's relevant role members.
|
||||
// func (a HarborApi) ProjectsProjectIdMembersGet (projectId int32) ([]Role, error) {
|
||||
// }
|
||||
|
||||
// Add project role member accompany with relevant project and user.
|
||||
// func (a HarborApi) ProjectsProjectIdMembersPost (projectId int32, roles RoleParam) (error) {
|
||||
// }
|
||||
|
||||
// Delete project role members accompany with relevant project and user.
|
||||
// func (a HarborApi) ProjectsProjectIdMembersUserIdDelete (projectId int32, userId int32) (error) {
|
||||
// }
|
||||
|
||||
// Return role members accompany with relevant project and user.
|
||||
// func (a HarborApi) ProjectsProjectIdMembersUserIdGet (projectId int32, userId int32) ([]Role, error) {
|
||||
// }
|
||||
|
||||
// Update project role members accompany with relevant project and user.
|
||||
// func (a HarborApi) ProjectsProjectIdMembersUserIdPut (projectId int32, userId int32, roles RoleParam) (error) {
|
||||
// }
|
||||
|
||||
// Update properties for a selected project.
|
||||
// func (a HarborApi) ProjectsProjectIdPut (projectId int32, project Project) (error) {
|
||||
// }
|
||||
|
||||
// Get repositories accompany with relevant project and repo name.
|
||||
// func (a HarborApi) RepositoriesGet (projectId int32, q string) ([]Repository, error) {
|
||||
// }
|
||||
|
||||
// Get manifests of a relevant repository.
|
||||
// func (a HarborApi) RepositoriesManifestGet (repoName string, tag string) (error) {
|
||||
// }
|
||||
|
||||
// Get tags of a relevant repository.
|
||||
// func (a HarborApi) RepositoriesTagsGet (repoName string) (error) {
|
||||
// }
|
||||
|
||||
// Get registered users of Harbor.
|
||||
// func (a HarborApi) UsersGet (userName string) ([]User, error) {
|
||||
// }
|
||||
|
||||
// Creates a new user account.
|
||||
// func (a HarborApi) UsersPost (user User) (error) {
|
||||
// }
|
||||
|
||||
// Mark a registered user as be removed.
|
||||
// func (a HarborApi) UsersUserIdDelete (userId int32) (error) {
|
||||
// }
|
||||
|
||||
// Change the password on a user that already exists.
|
||||
// func (a HarborApi) UsersUserIdPasswordPut (userId int32, password Password) (error) {
|
||||
// }
|
||||
|
||||
// Update a registered user to change to be an administrator of Harbor.
|
||||
// func (a HarborApi) UsersUserIdPut (userId int32) (error) {
|
||||
// }
|
@ -1,15 +0,0 @@
|
||||
// HarborLogout.go
|
||||
package HarborAPI
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func (a HarborAPI) HarborLogout() (int, error) {
|
||||
|
||||
response, err := http.Get(a.basePath + "/logout")
|
||||
|
||||
defer response.Body.Close()
|
||||
|
||||
return response.StatusCode, err
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
// HarborLogout.go
|
||||
package apilib
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func (a HarborAPI) HarborLogout() (int, error) {
|
||||
|
||||
response, err := http.Get(a.basePath + "/logout")
|
||||
|
||||
defer response.Body.Close()
|
||||
|
||||
return response.StatusCode, err
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
// HarborLogon.go
|
||||
package HarborAPI
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (a HarborAPI) HarborLogin(user UsrInfo) (int, error) {
|
||||
|
||||
v := url.Values{}
|
||||
v.Set("principal", user.Name)
|
||||
v.Set("password", user.Passwd)
|
||||
|
||||
body := ioutil.NopCloser(strings.NewReader(v.Encode())) //endode v:[body struce]
|
||||
|
||||
client := &http.Client{}
|
||||
reqest, err := http.NewRequest("POST", a.basePath+"/login", body)
|
||||
|
||||
reqest.Header.Set("Content-Type", "application/x-www-form-urlencoded;param=value") //setting post head
|
||||
|
||||
resp, err := client.Do(reqest)
|
||||
defer resp.Body.Close() //close resp.Body
|
||||
|
||||
return resp.StatusCode, err
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
// HarborLogon.go
|
||||
package apilib
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (a HarborAPI) HarborLogin(user UsrInfo) (int, error) {
|
||||
|
||||
v := url.Values{}
|
||||
v.Set("principal", user.Name)
|
||||
v.Set("password", user.Passwd)
|
||||
|
||||
body := ioutil.NopCloser(strings.NewReader(v.Encode())) // endode v:[body struce]
|
||||
|
||||
client := &http.Client{}
|
||||
reqest, err := http.NewRequest("POST", a.basePath+"/login", body)
|
||||
|
||||
reqest.Header.Set("Content-Type", "application/x-www-form-urlencoded;param=value") // setting post head
|
||||
|
||||
resp, err := client.Do(reqest)
|
||||
defer resp.Body.Close() // close resp.Body
|
||||
|
||||
return resp.StatusCode, err
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type JobStatus struct {
|
||||
|
||||
// The job ID.
|
||||
Id int64 `json:"id,omitempty"`
|
||||
|
||||
// The status of the job.
|
||||
Status string `json:"status,omitempty"`
|
||||
|
||||
// The repository handled by the job.
|
||||
Repository string `json:"repository,omitempty"`
|
||||
|
||||
// The ID of the policy that triggered this job.
|
||||
PolicyId int64 `json:"policy_id,omitempty"`
|
||||
|
||||
// The operation of the job.
|
||||
Operation string `json:"operation,omitempty"`
|
||||
|
||||
// The repository's used tag list.
|
||||
Tags []Tags `json:"tags,omitempty"`
|
||||
|
||||
// The creation time of the job.
|
||||
CreationTime string `json:"creation_time,omitempty"`
|
||||
|
||||
// The update time of the job.
|
||||
UpdateTime string `json:"update_time,omitempty"`
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type LdapConf struct {
|
||||
LdapURL string `json:"ldap_url"`
|
||||
LdapSearchDn string `json:"ldap_search_dn"`
|
||||
LdapSearchPassword string `json:"ldap_search_password"`
|
||||
LdapBaseDn string `json:"ldap_base_dn"`
|
||||
LdapFilter string `json:"ldap_filter"`
|
||||
LdapUID string `json:"ldap_uid"`
|
||||
LdapScope int `json:"ldap_scope"`
|
||||
LdapConnectionTimeout int `json:"ldap_connection_timeout"`
|
||||
}
|
||||
|
||||
// LdapGroupsSearch the ldap group search type
|
||||
type LdapGroupsSearch struct {
|
||||
GroupName string `json:"group_name,omitempty"`
|
||||
GroupDN string `json:"ldap_group_dn,omitempty"`
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type Password struct {
|
||||
|
||||
// The user's existing password.
|
||||
OldPassword string `json:"old_password,omitempty"`
|
||||
|
||||
// New password for marking as to be updated.
|
||||
NewPassword string `json:"new_password,omitempty"`
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type Project struct {
|
||||
|
||||
// Project ID
|
||||
ProjectId int32 `json:"project_id,omitempty"`
|
||||
|
||||
// The owner ID of the project always means the creator of the project.
|
||||
OwnerId int32 `json:"owner_id,omitempty"`
|
||||
|
||||
// The name of the project.
|
||||
ProjectName string `json:"name,omitempty"`
|
||||
|
||||
// The creation time of the project.
|
||||
CreationTime string `json:"creation_time,omitempty"`
|
||||
|
||||
// The update time of the project.
|
||||
UpdateTime string `json:"update_time,omitempty"`
|
||||
|
||||
// A deletion mark of the project (1 means it's deleted, 0 is not)
|
||||
Deleted bool `json:"deleted,omitempty"`
|
||||
|
||||
// The owner name of the project.
|
||||
OwnerName string `json:"owner_name,omitempty"`
|
||||
|
||||
// The metadata of the project.
|
||||
Metadata map[string]string `json:"metadata,omitempty"`
|
||||
|
||||
// Correspond to the UI about whether the project's publicity is updatable (for UI)
|
||||
Togglable bool `json:"togglable,omitempty"`
|
||||
|
||||
// The role ID of the current user who triggered the API (for UI)
|
||||
CurrentUserRoleId int32 `json:"current_user_role_id,omitempty"`
|
||||
|
||||
// The number of the repositories under this project.
|
||||
RepoCount int32 `json:"repo_count,omitempty"`
|
||||
}
|
||||
|
||||
type ProjectQuery struct {
|
||||
Name string `url:"name,omitempty"`
|
||||
Owner string `url:"owner,omitempty"`
|
||||
Public bool `url:"public,omitempty"`
|
||||
Member string `url:"member,omitempty"`
|
||||
Role int `url:"role,omitempty"`
|
||||
Page int64 `url:"page,omitempty"`
|
||||
PageSize int64 `url:"page_size,omitempty"`
|
||||
}
|
||||
|
||||
// ProjectSummary ...
|
||||
type ProjectSummary struct {
|
||||
RepoCount int64 `json:"repo_count"`
|
||||
ChartCount uint64 `json:"chart_count"`
|
||||
|
||||
ProjectAdminCount int64 `json:"project_admin_count"`
|
||||
MaintainerCount int64 `json:"maintainer_count"`
|
||||
DeveloperCount int64 `json:"developer_count"`
|
||||
GuestCount int64 `json:"guest_count"`
|
||||
|
||||
Quota struct {
|
||||
Hard map[string]int64 `json:"hard"`
|
||||
Used map[string]int64 `json:"used"`
|
||||
} `json:"quota"`
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type ProjectReq struct {
|
||||
// The name of the project.
|
||||
ProjectName string `json:"project_name,omitempty"`
|
||||
// The metadata of the project.
|
||||
Metadata map[string]string `json:"metadata,omitempty"`
|
||||
// The count quota of the project.
|
||||
CountLimit *int64 `json:"count_limit,omitempty"`
|
||||
// The storage quota of the project
|
||||
StorageLimit *int64 `json:"storage_limit,omitempty"`
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepPolicy struct {
|
||||
|
||||
// The policy ID.
|
||||
Id int64 `json:"id,omitempty"`
|
||||
|
||||
// The project ID.
|
||||
ProjectId int64 `json:"project_id,omitempty"`
|
||||
|
||||
// The project name.
|
||||
ProjectName string `json:"project_name,omitempty"`
|
||||
|
||||
// The target ID.
|
||||
TargetId int64 `json:"target_id,omitempty"`
|
||||
|
||||
// The policy name.
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// The policy's enabled status.
|
||||
Enabled int32 `json:"enabled,omitempty"`
|
||||
|
||||
// The description of the policy.
|
||||
Description string `json:"description,omitempty"`
|
||||
|
||||
// The cron string for schedule job.
|
||||
CronStr string `json:"cron_str,omitempty"`
|
||||
|
||||
// The start time of the policy.
|
||||
StartTime string `json:"start_time,omitempty"`
|
||||
|
||||
// The create time of the policy.
|
||||
CreationTime string `json:"creation_time,omitempty"`
|
||||
|
||||
// The update time of the policy.
|
||||
UpdateTime string `json:"update_time,omitempty"`
|
||||
|
||||
Deleted int32 `json:"deleted,omitempty"`
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepPolicyEnablementReq struct {
|
||||
|
||||
// The policy enablement flag.
|
||||
Enabled int32 `json:"enabled,omitempty"`
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepPolicyPost struct {
|
||||
|
||||
// The project ID.
|
||||
ProjectId int64 `json:"project_id,omitempty"`
|
||||
|
||||
// The target ID.
|
||||
TargetId int64 `json:"target_id,omitempty"`
|
||||
|
||||
// The policy name.
|
||||
Name string `json:"name,omitempty"`
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepPolicyUpdate struct {
|
||||
|
||||
// The target ID.
|
||||
TargetId int64 `json:"target_id,omitempty"`
|
||||
|
||||
// The policy name.
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// The policy's enabled status.
|
||||
Enabled int32 `json:"enabled,omitempty"`
|
||||
|
||||
// The description of the policy.
|
||||
Description string `json:"description,omitempty"`
|
||||
|
||||
// The cron string for schedule job.
|
||||
CronStr string `json:"cron_str,omitempty"`
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepTarget struct {
|
||||
|
||||
// The target ID.
|
||||
Id int64 `json:"id,omitempty"`
|
||||
|
||||
// The target address URL string.
|
||||
Endpoint string `json:"endpoint,omitempty"`
|
||||
|
||||
// The target name.
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// The target server username.
|
||||
Username string `json:"username,omitempty"`
|
||||
|
||||
// The target server password.
|
||||
Password string `json:"password,omitempty"`
|
||||
|
||||
// Reserved field.
|
||||
Type_ int32 `json:"type,omitempty"`
|
||||
|
||||
// The create time of the policy.
|
||||
CreationTime string `json:"creation_time,omitempty"`
|
||||
|
||||
// The update time of the policy.
|
||||
UpdateTime string `json:"update_time,omitempty"`
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RepTargetPost struct {
|
||||
|
||||
// The target address URL string.
|
||||
Endpoint string `json:"endpoint,omitempty"`
|
||||
|
||||
// The target name.
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// The target server username.
|
||||
Username string `json:"username,omitempty"`
|
||||
|
||||
// The target server password.
|
||||
Password string `json:"password,omitempty"`
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type Repository struct {
|
||||
|
||||
// Repository ID
|
||||
Id string `json:"id,omitempty"`
|
||||
|
||||
// Parent of the image.
|
||||
Parent string `json:"parent,omitempty"`
|
||||
|
||||
// Repository create time.
|
||||
Created string `json:"created,omitempty"`
|
||||
|
||||
// Duration days of the image.
|
||||
DurationDays string `json:"duration_days,omitempty"`
|
||||
|
||||
// Author of the image.
|
||||
Author string `json:"author,omitempty"`
|
||||
|
||||
// Architecture of the image.
|
||||
Architecture string `json:"architecture,omitempty"`
|
||||
|
||||
// Docker version of the image.
|
||||
DockerVersion string `json:"docker_version,omitempty"`
|
||||
|
||||
// OS of the image.
|
||||
Os string `json:"os,omitempty"`
|
||||
}
|
||||
|
||||
// Retag describes a retag request
|
||||
type Retag struct {
|
||||
|
||||
// The new tag
|
||||
Tag string `json:"tag"`
|
||||
|
||||
// Source images in format <project>/<repo>:<reference>
|
||||
SrcImage string `json:"src_image"`
|
||||
|
||||
// If target tag exists, whether override it
|
||||
Override bool `json:"override"`
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type Role struct {
|
||||
|
||||
// ID in table.
|
||||
RoleId int32 `json:"role_id,omitempty"`
|
||||
|
||||
// Description of permissions for the role.
|
||||
RoleCode string `json:"role_code,omitempty"`
|
||||
|
||||
// Name the the role.
|
||||
RoleName string `json:"role_name,omitempty"`
|
||||
|
||||
RoleMask string `json:"role_mask,omitempty"`
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type RoleParam struct {
|
||||
|
||||
// Role ID for updating project role member.
|
||||
Roles []int32 `json:"roles,omitempty"`
|
||||
|
||||
// Username relevant to a project role member.
|
||||
Username string `json:"username,omitempty"`
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
import (
|
||||
proModels "github.com/goharbor/harbor/src/pkg/project/models"
|
||||
)
|
||||
|
||||
type Search struct {
|
||||
|
||||
// Search results of the projects that matched the filter keywords.
|
||||
Projects []proModels.Project `json:"project,omitempty"`
|
||||
|
||||
// Search results of the repositories that matched the filter keywords.
|
||||
Repositories []SearchRepository `json:"repository,omitempty"`
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type SearchProject struct {
|
||||
|
||||
// The ID of project
|
||||
Id int64 `json:"id,omitempty"`
|
||||
|
||||
// The name of the project
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// The flag to indicate the publicity of the project (1 is public, 0 is non-public)
|
||||
Public int32 `json:"public,omitempty"`
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type SearchRepository struct {
|
||||
|
||||
// The ID of the project that the repository belongs to
|
||||
ProjectId int32 `json:"project_id,omitempty"`
|
||||
|
||||
// The name of the project that the repository belongs to
|
||||
ProjectName string `json:"project_name,omitempty"`
|
||||
|
||||
// The flag to indicate the publicity of the project that the repository belongs to
|
||||
ProjectPublic bool `json:"project_public,omitempty"`
|
||||
|
||||
// The name of the repository
|
||||
RepositoryName string `json:"repository_name,omitempty"`
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type StatisticMap struct {
|
||||
|
||||
// The count of the private projects which the user is a member of.
|
||||
PrivateProjectCount int32 `json:"private_project_count,omitempty"`
|
||||
|
||||
// The count of the private repositories belonging to the projects which the user is a member of.
|
||||
PrivateRepoCount int32 `json:"private_repo_count,omitempty"`
|
||||
|
||||
// The count of the public projects.
|
||||
PublicProjectCount int32 `json:"public_project_count,omitempty"`
|
||||
|
||||
// The count of the public repositories belonging to the public projects which the user is a member of.
|
||||
PublicRepoCount int32 `json:"public_repo_count,omitempty"`
|
||||
|
||||
// The count of the total projects, only be seen when the is admin.
|
||||
TotalProjectCount int32 `json:"total_project_count,omitempty"`
|
||||
|
||||
// The count of the total repositories, only be seen when the user is admin.
|
||||
TotalRepoCount int32 `json:"total_repo_count,omitempty"`
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type Tags struct {
|
||||
|
||||
// The repository's used tag.
|
||||
Tag string `json:"tag,omitempty"`
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type TopRepo struct {
|
||||
|
||||
// The name of the repo
|
||||
RepoName string `json:"repo_name,omitempty"`
|
||||
|
||||
// The access count of the repo
|
||||
Count int32 `json:"count,omitempty"`
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type User struct {
|
||||
|
||||
// The ID of the user.
|
||||
UserId int `json:"user_id,omitempty"`
|
||||
|
||||
Username string `json:"username,omitempty"`
|
||||
|
||||
Email string `json:"email,omitempty"`
|
||||
|
||||
Password string `json:"password,omitempty"`
|
||||
|
||||
Realname string `json:"realname,omitempty"`
|
||||
|
||||
Comment string `json:"comment,omitempty"`
|
||||
|
||||
Deleted bool `json:"deleted,omitempty"`
|
||||
|
||||
RoleName string `json:"role_name,omitempty"`
|
||||
|
||||
RoleId int32 `json:"role_id,omitempty"`
|
||||
|
||||
HasAdminRole bool `json:"sysadmin_flag,omitempty"`
|
||||
|
||||
ResetUuid string `json:"reset_uuid,omitempty"`
|
||||
|
||||
Salt string `json:"Salt,omitempty"`
|
||||
|
||||
CreationTime string `json:"creation_time,omitempty"`
|
||||
|
||||
UpdateTime string `json:"update_time,omitempty"`
|
||||
}
|
||||
|
||||
// UserSearch the user search type
|
||||
type UserSearch struct {
|
||||
UserID int `json:"user_id,omitempty"`
|
||||
Username string `json:"username,omitempty"`
|
||||
}
|
||||
|
||||
// Permission the permission type
|
||||
type Permission struct {
|
||||
Resource string `json:"resource,omitempty"`
|
||||
Action string `json:"action,omitempty"`
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Harbor API
|
||||
*
|
||||
* These APIs provide services for manipulating Harbor project.
|
||||
*
|
||||
* OpenAPI spec version: 0.3.0
|
||||
*
|
||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package apilib
|
||||
|
||||
type UserProfile struct {
|
||||
UserID int `json:"user_id,omitempty"`
|
||||
Email string `json:"email,omitempty"`
|
||||
Realname string `json:"realname,omitempty"`
|
||||
Comment string `json:"comment,omitempty"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user