lagoon

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2023 License: MIT Imports: 12 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.
lgraphql
Code generated for package lgraphql by go-bindata DO NOT EDIT.
Code generated for package lgraphql by go-bindata DO NOT EDIT.

Jump to

Keyboard shortcuts

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