client

package
v0.9.7 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MSRAPIVERSION the.
	MSRAPIVERSION = "api/v0"
	ENZIENDPOINT  = "enzi/v0"

	// MsrURL - Default MSR URL.
	DEFAULTMSRURL = "http://localhost:80"
)

Variables

View Source
var (
	ErrEmptyClientArgs         = errors.New("MSR client did not receive host, username and/or password")
	ErrRequestCreation         = errors.New("creating request failed in MSR client")
	ErrMarshaling              = errors.New("marshalling struct failed in MSR client")
	ErrUnmarshaling            = errors.New("unmarshalling struc failed in MSR client")
	ErrEmptyResError           = errors.New("request returned empty ResponseError struct in MSR client")
	ErrResponseError           = errors.New("request returned ResponseError in MSR client")
	ErrUnauthorizedReq         = errors.New("unauthorized request in MSR client")
	ErrEmptyStruct             = errors.New("empty struct passed in MSR client")
	ErrInvalidFilter           = errors.New("passing invalid account retrieval filter in MSR client")
	ErrIDHasNoRepoName         = errors.New("ID doesn't contain repository name in MSR client")
	ErrInvalidResourceIDFormat = errors.New("resource ID is invalid format")
)

Functions

func GeneratePass

func GeneratePass() string

GeneratePass creates a random password.

Types

type AccountFilter

type AccountFilter string

Account filters enum.

const (
	Users         AccountFilter = "user"
	Orgs          AccountFilter = "orgs"
	Admins        AccountFilter = "admins"
	NonAdmins     AccountFilter = "non-admins"
	ActiveUsers   AccountFilter = "active-users"
	InactiveUsers AccountFilter = "inactive-users"
)

func (AccountFilter) APIFormOfFilter

func (accF AccountFilter) APIFormOfFilter() string

APIFormOfFilter is a string readable form of the AccountFilters enum.

type AuthStruct

type AuthStruct struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

AuthStruct basicauth struct.

type Client

type Client struct {
	MsrURL     string
	HTTPClient *http.Client
	Creds      AuthStruct
	TestMode   bool
}

Client MSR client.

func NewClient

func NewClient(username, password, MsrURL string, testMode bool, HTTPClient *http.Client) (Client, error)

NewClient creates a new MSR API Client from raw components.

func NewDefaultClient

func NewDefaultClient(host, username, password string, testMode bool) (Client, error)

NewDefaultClient creates a new MSR SSL safe Client.

func NewUnsafeSSLClient

func NewUnsafeSSLClient(host, username, password string, testMode bool) (Client, error)

NewUnsafeSSLClient creates a new unsafe MSR HTTP Client.

func (*Client) AddUserToTeam

func (c *Client) AddUserToTeam(ctx context.Context, orgID string, teamID string, user ResponseAccount) error

AddUserToTeam adds user to a team.

func (*Client) CreateAccount

func (c *Client) CreateAccount(ctx context.Context, acc CreateAccount) (ResponseAccount, error)

CreateAccount method - checking the MSR health endpoint.

func (*Client) CreatePruningPolicy added in v0.9.4

func (c *Client) CreatePruningPolicy(ctx context.Context, orgName string, repoName string, policy CreatePruningPolicy) (ResponsePruningPolicy, error)

CreatePruningPolicy creates a pruning policy in MSR.

func (*Client) CreateRepo

func (c *Client) CreateRepo(ctx context.Context, orgName string, repo CreateRepo) (ResponseRepo, error)

CreateRepo creates a repo in MSR.

func (*Client) CreateTeam

func (c *Client) CreateTeam(ctx context.Context, orgID string, team Team) (Team, error)

CreateTeam creates a team in Enzin.

func (*Client) DeleteAccount

func (c *Client) DeleteAccount(ctx context.Context, id string) error

DeleteAccount deletes a user from in Enzi.

func (*Client) DeletePruningPolicy added in v0.9.4

func (c *Client) DeletePruningPolicy(ctx context.Context, orgName string, repoName string, policyId string) error

DeletePruningPolicy deletes a pruning policy in MSR.

func (*Client) DeleteRepo

func (c *Client) DeleteRepo(ctx context.Context, orgName string, repoName string) error

DeleteRepo deletes a repo from MSR.

func (*Client) DeleteTeam

func (c *Client) DeleteTeam(ctx context.Context, orgID string, teamID string) error

DeleteTeam deletes a team from Enzi.

func (*Client) DeleteUserFromTeam

func (c *Client) DeleteUserFromTeam(ctx context.Context, orgID string, teamID string, userID string) error

DeleteUserFromTeam deletes a user from a given team.

func (*Client) GetMSRVersion

func (c *Client) GetMSRVersion(ctx context.Context) (string, error)

VerifGetMSRVersion returns the MSR instance version given the credentials are valid.

func (*Client) GetTeamUsers

func (c *Client) GetTeamUsers(ctx context.Context, orgID string, teamID string) (teamUsers, error)

GetTeamUsers retrieves the users of a given team.

func (*Client) IsHealthy

func (c *Client) IsHealthy(ctx context.Context) (bool, error)

IsHealthy method - checking the MSR health endpoint.

func (*Client) PruningPolicyExists added in v0.9.5

func (c *Client) PruningPolicyExists(ctx context.Context, newPolicy CreatePruningPolicy, existingPolicies []ResponsePruningPolicy) ResponsePruningPolicy

PruningPolicyExists compares if a pruning policy exists within a existing pruning policies.

func (*Client) ReadAccount

func (c *Client) ReadAccount(ctx context.Context, id string) (ResponseAccount, error)

ReadAccount method retrieves a user from the enzi endpoint.

func (*Client) ReadAccounts

func (c *Client) ReadAccounts(ctx context.Context, accFilter AccountFilter) ([]ResponseAccount, error)

ReadAccounts method retrieves all accounts depending on the filter passed from the enzi endpoint.

func (*Client) ReadPruningPolicies added in v0.9.5

func (c *Client) ReadPruningPolicies(ctx context.Context, orgName string, repoName string) ([]ResponsePruningPolicy, error)

ReadPruningPolicy reads the pruning policies of a repo in MSR.

func (*Client) ReadPruningPolicy added in v0.9.4

func (c *Client) ReadPruningPolicy(ctx context.Context, orgName string, repoName string, policyId string) (ResponsePruningPolicy, error)

ReadPruningPolicy reads specific pruning policy of a repo in MSR.

func (*Client) ReadRepo

func (c *Client) ReadRepo(ctx context.Context, orgName string, repoName string) (ResponseRepo, error)

ReadRepo method retrieves a repo from the MSR endpoint.

func (*Client) ReadTeam

func (c *Client) ReadTeam(ctx context.Context, orgID string, teamID string) (Team, error)

ReadTeam method retrieves a team from the enzi endpoint.

func (*Client) UpdateAccount

func (c *Client) UpdateAccount(ctx context.Context, id string, acc UpdateAccount) (ResponseAccount, error)

UpdateAccount updates a user in the enzi endpoint.

func (*Client) UpdatePruningPolicy added in v0.9.4

func (c *Client) UpdatePruningPolicy(ctx context.Context, orgName string, repoName string, policy CreatePruningPolicy, policyId string) (ResponsePruningPolicy, error)

UpdatePruningPolicy updates a pruning policy in MSR.

func (*Client) UpdateRepo

func (c *Client) UpdateRepo(ctx context.Context, orgName string, repoName string, repo UpdateRepo) (ResponseRepo, error)

UpdateRepo updates a repo in the MSR endpoint.

func (*Client) UpdateTeam

func (c *Client) UpdateTeam(ctx context.Context, orgID string, team Team) (Team, error)

UpdateTeam updates a team in the enzi endpoint.

func (*Client) UpdateTeamUsers

func (c *Client) UpdateTeamUsers(ctx context.Context, orgID string, teamID string, newUsers []string) error

UpdateTeamUsers updates a team user base to match the latest state defined by Terraform.

type CreateAccount

type CreateAccount struct {
	Name       string `json:"name"`
	ID         string `json:"id"`
	Password   string `json:"password"`
	FullName   string `json:"fullName,omitempty"`
	IsActive   bool   `json:"isActive,omitempty"`
	IsAdmin    bool   `json:"isAdmin,omitempty"`
	IsOrg      bool   `json:"isOrg,omitempty"`
	SearchLDAP bool   `json:"searchLDAP,omitempty"`
}

CreateAccount struct.

type CreatePruningPolicy added in v0.9.4

type CreatePruningPolicy struct {
	Enabled bool                   `json:"enabled"`
	Rules   []PruningPolicyRuleAPI `json:"rules"`
}

type CreateRepo

type CreateRepo struct {
	ImmutableTags    bool   `json:"immutableTags"`
	LongDescription  string `json:"longDescription"`
	Name             string `json:"name"`
	ScanOnPush       bool   `json:"scanOnPush"`
	ShortDescription string `json:"shortDescription"`
	TagLimit         int    `json:"tagLimit"`
	Visibility       string `json:"visibility" enum:"public|private"`
}

type Errors

type Errors struct {
	Code    string `json:"code"`
	Message string `json:"message"`
}

type HealthResponse

type HealthResponse struct {
	Error   string `json:"error"`
	Healthy bool   `json:"healthy"`
}

HealthResponse structure from MSR.

type MSRVersion

type MSRVersion struct {
	Version string `json:"version"`
}

type PruningPolicyRuleAPI added in v0.9.4

type PruningPolicyRuleAPI struct {
	Field    string   `tfsdk:"field" json:"field"`
	Operator string   `tfsdk:"operator" json:"operator"`
	Values   []string `tfsdk:"values" json:"values"`
}

func PruningPolicyRulesToAPI added in v0.9.4

func PruningPolicyRulesToAPI(ctx context.Context, rules []PruningPolicyRuleTFSDK) []PruningPolicyRuleAPI

PruningPolicyRulesToAPI converts slice of PruningPolicyRuleTFSDK rules to PruningPolicyRuleAPI.

func (*PruningPolicyRuleAPI) PruningPolicyRuleToTFSDK added in v0.9.4

func (r *PruningPolicyRuleAPI) PruningPolicyRuleToTFSDK(ctx context.Context) PruningPolicyRuleTFSDK

PruningPolicyRuleToTFSDK converts a single PruningPolicyRuleAPI rule to PruningPolicyRuleToTFSDK.

type PruningPolicyRuleTFSDK added in v0.9.4

type PruningPolicyRuleTFSDK struct {
	Field    types.String   `tfsdk:"field" json:"field"`
	Operator types.String   `tfsdk:"operator" json:"operator"`
	Values   []types.String `tfsdk:"values" json:"values"`
}

func PruningPolicyRulesToTFSDK added in v0.9.4

func PruningPolicyRulesToTFSDK(ctx context.Context, rules []PruningPolicyRuleAPI) []PruningPolicyRuleTFSDK

PruningPolicyRulesToTFSDK converts slice of PruningPolicyRuleAPI rules to PruningPolicyRuleTFSDK.

func (*PruningPolicyRuleTFSDK) PruningPolicyRuleToAPI added in v0.9.4

func (r *PruningPolicyRuleTFSDK) PruningPolicyRuleToAPI(ctx context.Context) PruningPolicyRuleAPI

PruningPolicyRuleToAPI converts a single PruningPolicyRuleTFSDK rule to PruningPolicyRuleAPI.

type ResponseAccount

type ResponseAccount struct {
	Name         string `json:"name"`
	ID           string `json:"id"`
	FullName     string `json:"fullName,omitempty"`
	IsActive     bool   `json:"isActive"`
	IsAdmin      bool   `json:"isAdmin"`
	IsOrg        bool   `json:"isOrg"`
	IsImported   bool   `json:"isImported"`
	OnDemand     bool   `json:"onDemand"`
	OtpEnabled   bool   `json:"otpEnabled"`
	MembersCount int    `json:"membersCount"`
	TeamsCount   int    `json:"teamsCount"`
}

ResponseAccount struct.

type ResponseError

type ResponseError struct {
	Errors []Errors `json:"errors"`
}

ResponseError structure from MSR.

type ResponsePruningPolicy added in v0.9.4

type ResponsePruningPolicy struct {
	ID      string                 `json:"id"`
	Enabled bool                   `json:"enabled"`
	Rules   []PruningPolicyRuleAPI `json:"rules"`
}

type ResponseRepo

type ResponseRepo struct {
	ID               string `json:"id"`
	ImmutableTags    bool   `json:"immutableTags"`
	LongDescription  string `json:"longDescription"`
	Name             string `json:"name"`
	Namespace        string `json:"namespace"`
	NamespaceType    string `json:"namespaceType"`
	Pulls            int    `json:"pulls"`
	Pushes           int    `json:"pushes"`
	ScanOnPush       bool   `json:"scanOnPush"`
	ShortDescription string `json:"shortDescription"`
	TagLimit         int    `json:"tagLimit"`
	Visibility       string `json:"visibility" enum:"public|private"`
}

type Team

type Team struct {
	Description  string `json:"description"`
	ID           string `json:"id"`
	MembersCount int    `json:"membersCount"`
	Name         string `json:"name"`
	OrgID        string `json:"orgID"`
}

type UpdateAccount

type UpdateAccount struct {
	FullName string `json:"fullName,omitempty"`
	IsActive bool   `json:"isActive,omitempty"`
	IsAdmin  bool   `json:"isAdmin,omitempty"`
}

UpdateAccount struct.

type UpdateRepo

type UpdateRepo struct {
	ImmutableTags    bool   `json:"immutableTags"`
	LongDescription  string `json:"longDescription"`
	ScanOnPush       bool   `json:"scanOnPush"`
	ShortDescription string `json:"shortDescription"`
	TagLimit         int    `json:"tagLimit"`
	Visibility       string `json:"visibility" enum:"public|private"`
}

Jump to

Keyboard shortcuts

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