lagoon

package
v0.21.3 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Package lagoon implements high-level functions for interacting with the Lagoon API.

Index

Constants

This section is empty.

Variables

View Source
var ErrExist = errors.New("object already exists")

ErrExist indicates that an attempt was made to create an object that already exists.

Functions

func AddBackupRestore added in v0.12.2

func AddBackupRestore(ctx context.Context, backupID string, e Environments) (*schema.Restore, error)

AddBackupRestore adds a backup restore based on backup ID.

func AddDeployTarget added in v0.15.0

func AddNotificationEmail added in v0.18.0

AddNotificationEmail adds a notification.

func AddNotificationMicrosoftTeams added in v0.18.0

AddNotificationMicrosoftTeams adds a notification.

func AddNotificationRocketChat added in v0.18.0

AddNotificationRocketChat adds a notification.

func AddNotificationSlack added in v0.18.0

AddNotificationSlack adds a notification.

func AddNotificationToProject added in v0.18.0

func AddNotificationToProject(ctx context.Context, input *schema.AddNotificationToProjectInput, n Notification) (*schema.Project, error)

AddNotificationToProject adds a notification to project.

func AddNotificationWebhook added in v0.18.0

AddNotificationWebhook adds a notification.

func AddOrUpdateEnvVariableByName added in v0.16.0

func AddOrUpdateEnvVariableByName(ctx context.Context, in *schema.EnvVariableByNameInput, v Variables) (*schema.UpdateEnvVarResponse, error)

func DeleteDeployTarget added in v0.15.0

func DeleteDeployTargetConfiguration added in v0.12.3

func DeleteDeployTargetConfiguration(ctx context.Context, id int, project int, dtc DeployTargetConfigs) (*schema.DeleteDeployTargetConfig, error)

DeleteDeployTargetConfiguration deletes a deploytarget config from a specific project.

func DeleteEnvVariableByName added in v0.16.0

func DeleteNotificationEmail added in v0.18.0

func DeleteNotificationEmail(ctx context.Context, name string, n Notification) (*schema.DeleteNotification, error)

DeleteNotificationEmail deletes notification.

func DeleteNotificationMicrosoftTeams added in v0.18.0

func DeleteNotificationMicrosoftTeams(ctx context.Context, name string, n Notification) (*schema.DeleteNotification, error)

DeleteNotificationMicrosoftTeams deletes notification.

func DeleteNotificationRocketChat added in v0.18.0

func DeleteNotificationRocketChat(ctx context.Context, name string, n Notification) (*schema.DeleteNotification, error)

DeleteNotificationRocketChat deletes notification.

func DeleteNotificationSlack added in v0.18.0

func DeleteNotificationSlack(ctx context.Context, name string, n Notification) (*schema.DeleteNotification, error)

DeleteNotificationSlack deletes notification.

func DeleteNotificationWebhook added in v0.18.0

func DeleteNotificationWebhook(ctx context.Context, name string, n Notification) (*schema.DeleteNotification, error)

DeleteNotificationWebhook deletes notification.

func DeployBranch

DeployBranch deploys a branch.

func DeployLatest

DeployLatest deploys the latest environment.

func DeployPromote

DeployPromote promotes one environment into a new environment.

func DeployPullRequest

DeployPullRequest deploys a pull request.

func ExportProject

func ExportProject(ctx context.Context,
	e Exporter, name string, exclude map[string]bool) ([]byte, error)

ExportProject exports the given project by name.

func GetAllNotificationEmail added in v0.18.0

func GetAllNotificationEmail(ctx context.Context, n Notification) (*[]schema.Project, error)

GetAllNotificationEmail gets all notifications of type.

func GetAllNotificationMicrosoftTeams added in v0.18.0

func GetAllNotificationMicrosoftTeams(ctx context.Context, n Notification) (*[]schema.Project, error)

GetAllNotificationMicrosoftTeams gets all notifications of type.

func GetAllNotificationRocketChat added in v0.18.0

func GetAllNotificationRocketChat(ctx context.Context, n Notification) (*[]schema.Project, error)

GetAllNotificationRocketChat gets all notifications of type.

func GetAllNotificationSlack added in v0.18.0

func GetAllNotificationSlack(ctx context.Context, n Notification) (*[]schema.Project, error)

GetAllNotificationSlack gets all notifications of type.

func GetAllNotificationWebhook added in v0.18.0

func GetAllNotificationWebhook(ctx context.Context, n Notification) (*[]schema.Project, error)

GetAllNotificationWebhook gets all notifications of type.

func GetBackupsForEnvironmentByName added in v0.12.2

func GetBackupsForEnvironmentByName(ctx context.Context, name string, project uint, e Environments) (*schema.Environment, error)

GetBackupsForEnvironmentByName gets backup info in lagoon for specific environment.

func GetDeployTargetConfigs added in v0.12.3

func GetDeployTargetConfigs(ctx context.Context, project int, dtc DeployTargetConfigs) (*[]schema.DeployTargetConfig, error)

GetDeployTargetConfigs gets deploytarget configs for a specific project.

func GetEnvVariablesByProjectEnvironmentName added in v0.16.0

func GetEnvVariablesByProjectEnvironmentName(ctx context.Context, in *schema.EnvVariableByProjectEnvironmentNameInput, v Variables) (*[]schema.EnvKeyValue, error)

ListEnvVars gets info of envvars in lagoon.

func GetLagoonAPIVersion

func GetLagoonAPIVersion(ctx context.Context, l APIVersion) (*schema.LagoonVersion, error)

GetLagoonAPIVersion gets info on the current API version of lagoon, supported in lagoon v1.4.1+

func GetMeInfo

func GetMeInfo(ctx context.Context, m Me) (*schema.User, error)

GetMeInfo gets info on the current user of lagoon.

func GetMinimalProjectByName added in v0.12.0

func GetMinimalProjectByName(ctx context.Context, name string, p Projects) (*schema.Project, error)

GetMinimalProjectByName gets info of projects in lagoon that have matching metadata.

func GetProjectMetadata added in v0.12.0

func GetProjectMetadata(ctx context.Context, name string, p Projects) (*schema.ProjectMetadata, error)

GetProjectMetadata gets the metadata key:values for a lagoon project.

func GetProjectNotificationEmail added in v0.18.0

func GetProjectNotificationEmail(ctx context.Context, name string, n Notification) (*schema.Project, error)

GetProjectNotificationEmail gets all notifications of type in project.

func GetProjectNotificationMicrosoftTeams added in v0.18.0

func GetProjectNotificationMicrosoftTeams(ctx context.Context, name string, n Notification) (*schema.Project, error)

GetProjectNotificationMicrosoftTeams gets all notifications of type in project.

func GetProjectNotificationRocketChat added in v0.18.0

func GetProjectNotificationRocketChat(ctx context.Context, name string, n Notification) (*schema.Project, error)

GetProjectNotificationRocketChat gets all notifications of type in project.

func GetProjectNotificationSlack added in v0.18.0

func GetProjectNotificationSlack(ctx context.Context, name string, n Notification) (*schema.Project, error)

GetProjectNotificationSlack gets all notifications of type in project.

func GetProjectNotificationWebhook added in v0.18.0

func GetProjectNotificationWebhook(ctx context.Context, name string, n Notification) (*schema.Project, error)

GetProjectNotificationWebhook gets all notifications of type in project.

func GetSSHEndpointsByProject added in v0.18.1

func GetSSHEndpointsByProject(ctx context.Context, name string, p Projects) (*schema.Project, error)

GetSSHEndpointsByProject gets info of projects in lagoon that have matching metadata.

func Import

func Import(ctx context.Context, i Importer, r io.Reader, keepGoing bool,
	openshiftID uint) error

Import creates objects in the Lagoon API based on a configuration object.

func ListDeployTargets added in v0.15.0

func ListDeployTargets(ctx context.Context, out DeployTargets) (*[]schema.DeployTarget, error)

ListDeployTargets gets info of deploytargets in lagoon.

func RemoveNotificationFromProject added in v0.18.0

func RemoveNotificationFromProject(ctx context.Context, input *schema.RemoveNotificationFromProjectInput, n Notification) (*schema.Project, error)

RemoveNotificationFromProject removes a notification from a project.

func UpdateDeployTarget added in v0.15.0

func UpdateDeployTargetConfiguration added in v0.12.3

func UpdateDeployTargetConfiguration(ctx context.Context, in *schema.UpdateDeployTargetConfigInput, dtc DeployTargetConfigs) (*schema.DeployTargetConfig, error)

UpdateDeployTargetConfiguration adds a deploytarget config to a specific project.

func UpdateNotificationEmail added in v0.18.0

UpdateNotificationEmail updates a notification.

func UpdateNotificationMicrosoftTeams added in v0.18.0

UpdateNotificationMicrosoftTeams updates a notification.

func UpdateNotificationRocketChat added in v0.18.0

UpdateNotificationRocketChat updates a notification.

func UpdateNotificationSlack added in v0.18.0

UpdateNotificationSlack updates a notification.

func UpdateNotificationWebhook added in v0.18.0

UpdateNotificationWebhook updates a notification.

Types

type APIVersion

type APIVersion interface {
	LagoonAPIVersion(ctx context.Context, apiVersion *schema.LagoonVersion) error
	LagoonSchema(ctx context.Context, lagoonSchema *schema.LagoonSchema) error
}

APIVersion interface contains methods for getting info on the current version of lagoon.

type Config

type Config struct {
	Current                  string             `json:"current"`
	Default                  string             `json:"default"`
	Lagoons                  map[string]Context `json:"lagoons"`
	UpdateCheckDisable       bool               `json:"updatecheckdisable,omitempty"`
	EnvironmentFromDirectory bool               `json:"environmentfromdirectory,omitempty"`
}

Config is used for the lagoon configuration.

type Context

type Context struct {
	GraphQL   string `json:"graphql"`
	HostName  string `json:"hostname"`
	UI        string `json:"ui,omitempty"`
	Kibana    string `json:"kibana,omitempty"`
	Port      string `json:"port"`
	Token     string `json:"token,omitempty"`
	Version   string `json:"version,omitempty"`
	SSHKey    string `json:"sshkey,omitempty"`
	SSHPortal bool   `json:"sshPortal,omitempty"`
}

Context is used for each lagoon context in the config file.

type Deploy

type Deploy interface {
	DeployEnvironmentPromote(ctx context.Context, deploy *schema.DeployEnvironmentPromoteInput, result *schema.DeployEnvironmentPromote) error
	DeployEnvironmentLatest(ctx context.Context, deploy *schema.DeployEnvironmentLatestInput, result *schema.DeployEnvironmentLatest) error
	DeployEnvironmentPullrequest(ctx context.Context, deploy *schema.DeployEnvironmentPullrequestInput, result *schema.DeployEnvironmentPullrequest) error
	DeployEnvironmentBranch(ctx context.Context, deploy *schema.DeployEnvironmentBranchInput, result *schema.DeployEnvironmentBranch) error
}

Deploy interface contains methods for deploying branches and environments in lagoon.

type DeployTargetConfigs added in v0.12.3

type DeployTargetConfigs interface {
	DeployTargetConfigsByProjectID(ctx context.Context, project int, deployTargets *[]schema.DeployTargetConfig) error
	UpdateDeployTargetConfiguration(ctx context.Context, in *schema.UpdateDeployTargetConfigInput, deployTargets *schema.DeployTargetConfig) error
	DeleteDeployTargetConfiguration(ctx context.Context, id int, project int, deployTargets *schema.DeleteDeployTargetConfig) error
}

DeployTargetConfigs interface contains methods for getting info on deploytarget configs.

type DeployTargets added in v0.15.0

type DeployTargets interface {
	AddDeployTarget(ctx context.Context, in *schema.AddDeployTargetInput, out *schema.AddDeployTargetResponse) error
	UpdateDeployTarget(ctx context.Context, in *schema.UpdateDeployTargetInput, out *schema.UpdateDeployTargetResponse) error
	DeleteDeployTarget(ctx context.Context, in *schema.DeleteDeployTargetInput, out *schema.DeleteDeployTargetResponse) error
	ListDeployTargets(ctx context.Context, out *[]schema.DeployTarget) error
}

type Environments added in v0.12.2

type Environments interface {
	BackupsForEnvironmentByName(context.Context, string, uint, *schema.Environment) error
	AddRestore(context.Context, string, *schema.Restore) error
}

Environments interface contains methods for getting info on environments.

type Exporter

type Exporter interface {
	ProjectByName(ctx context.Context, name string, project *schema.Project) error
}

Exporter interface contains methods for exporting data from Lagoon.

type Importer

Importer interface contains methods for exporting data from Lagoon. TODO: compose this once simpler interfaces are defined.

type Me

type Me interface {
	Me(ctx context.Context, user *schema.User) error
}

Me interface contains methods for getting info on the current user of lagoon.

type Notification added in v0.18.0

type Notification interface {
	AddNotificationWebhook(ctx context.Context, input *schema.AddNotificationWebhookInput, result *schema.NotificationWebhook) error
	AddNotificationEmail(ctx context.Context, input *schema.AddNotificationEmailInput, result *schema.NotificationEmail) error
	AddNotificationRocketChat(ctx context.Context, input *schema.AddNotificationRocketChatInput, result *schema.NotificationRocketChat) error
	AddNotificationMicrosoftTeams(ctx context.Context, input *schema.AddNotificationMicrosoftTeamsInput, result *schema.NotificationMicrosoftTeams) error
	AddNotificationSlack(ctx context.Context, input *schema.AddNotificationSlackInput, result *schema.NotificationSlack) error
	AddNotificationToProject(context.Context, *schema.AddNotificationToProjectInput, *schema.Project) error

	RemoveNotificationFromProject(context.Context, *schema.RemoveNotificationFromProjectInput, *schema.Project) error

	DeleteNotificationSlack(ctx context.Context, name string, project *schema.DeleteNotification) error
	DeleteNotificationRocketChat(ctx context.Context, name string, project *schema.DeleteNotification) error
	DeleteNotificationMicrosoftTeams(ctx context.Context, name string, project *schema.DeleteNotification) error
	DeleteNotificationEmail(ctx context.Context, name string, project *schema.DeleteNotification) error
	DeleteNotificationWebhook(ctx context.Context, name string, project *schema.DeleteNotification) error

	UpdateNotificationWebhook(ctx context.Context, input *schema.UpdateNotificationWebhookInput, result *schema.NotificationWebhook) error
	UpdateNotificationEmail(ctx context.Context, input *schema.UpdateNotificationEmailInput, result *schema.NotificationEmail) error
	UpdateNotificationRocketChat(ctx context.Context, input *schema.UpdateNotificationRocketChatInput, result *schema.NotificationRocketChat) error
	UpdateNotificationMicrosoftTeams(ctx context.Context, input *schema.UpdateNotificationMicrosoftTeamsInput, result *schema.NotificationMicrosoftTeams) error
	UpdateNotificationSlack(ctx context.Context, input *schema.UpdateNotificationSlackInput, result *schema.NotificationSlack) error

	GetAllNotificationEmail(ctx context.Context, project *[]schema.Project) error
	GetAllNotificationWebhook(ctx context.Context, project *[]schema.Project) error
	GetAllNotificationMicrosoftTeams(ctx context.Context, project *[]schema.Project) error
	GetAllNotificationSlack(ctx context.Context, project *[]schema.Project) error
	GetAllNotificationRocketChat(ctx context.Context, project *[]schema.Project) error

	GetProjectNotificationSlack(ctx context.Context, name string, project *schema.Project) error
	GetProjectNotificationRocketChat(ctx context.Context, name string, project *schema.Project) error
	GetProjectNotificationMicrosoftTeams(ctx context.Context, name string, project *schema.Project) error
	GetProjectNotificationEmail(ctx context.Context, name string, project *schema.Project) error
	GetProjectNotificationWebhook(ctx context.Context, name string, project *schema.Project) error
}

Notification interface contains methods for adding notifications in Lagoon.

type Projects added in v0.12.0

type Projects interface {
	MinimalProjectByName(ctx context.Context, name string, project *schema.Project) error
	ProjectByNameMetadata(ctx context.Context, name string, project *schema.ProjectMetadata) error
	SSHEndpointsByProject(ctx context.Context, name string, project *schema.Project) error
}

Projects interface contains methods for getting info on projects.

type Variables added in v0.16.0

type Variables interface {
	AddOrUpdateEnvVariableByName(ctx context.Context, in *schema.EnvVariableByNameInput, envvar *schema.UpdateEnvVarResponse) error
	DeleteEnvVariableByName(ctx context.Context, in *schema.DeleteEnvVariableByNameInput, envvar *schema.DeleteEnvVarResponse) error
	GetEnvVariablesByProjectEnvironmentName(ctx context.Context, in *schema.EnvVariableByProjectEnvironmentNameInput, envvar *[]schema.EnvKeyValue) error
}

Directories

Path Synopsis
Package client implements the interfaces required by the parent lagoon package.
Package client implements the interfaces required by the parent lagoon package.

Jump to

Keyboard shortcuts

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