codedeploy

package
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 25 Imported by: 0

README

CodeDeploy

Parity grade: A · SDK aws-sdk-go-v2/service/codedeploy@v1.37.0 · last audited 2026-07-12 (59ab8f6a)

Coverage

Metric Value
Operations audited 47 (36 ok, 7 partial, 4 gap)
Feature families 7 (6 ok, 1 gap)
Known gaps 3
Deferred items 2
Resource leaks clean
Known gaps
  • ApplicationRevision family (RegisterApplicationRevision/GetApplicationRevision/ListApplicationRevisions/BatchGetApplicationRevisions) has no backing store: RegisterApplicationRevision only validates the app exists and discards the revision, so ListApplicationRevisions always returns an empty list and GetApplicationRevision just echoes the input back instead of a persisted record. Needs a revisions table (keyed by appName + revision identity) wired into backendSnapshot. (bd: unfiled)
  • Deployment-instance/target family (GetDeploymentInstance, GetDeploymentTarget, ListDeploymentInstances, ListDeploymentTargets, BatchGetDeploymentInstances, BatchGetDeploymentTargets) has no real instance/target participation model: Get* fabricate a single Succeeded record, List* always return empty, Batch* fabricate Succeeded for every requested ID regardless of whether that ID ever existed. This mirrors the deeper gap that CodeDeploy has no concept of EC2/on-premises instances actually executing a deployment (ec2TagFilters/onPremisesInstanceTagFilters on a DeploymentGroup are stored but never resolved against real instances). Fixing this exceeds this pass's ~2000 LOC budget; needs a dedicated instance-participation model, likely coordinated with how services/ec2 exposes instances. (bd: unfiled)
  • ContinueDeployment does not model blue/green wait-state (DeploymentWaitType READY_WAIT/TERMINATION_WAIT); it only validates the deployment exists and no-ops. Low-value to fix without the CreateDeployment lifecycle itself modeling a genuine in-progress/waiting state, since deployments complete synchronously today. (bd: unfiled)
Deferred
  • Deployment-instance/target family (see gaps) — deferred pending a real instance-participation model
  • ApplicationRevision storage (see gaps) — deferred pending a revisions table

More

Documentation

Overview

Package codedeploy provides an in-memory implementation of the AWS CodeDeploy service.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound                      = awserr.New("ApplicationDoesNotExistException", awserr.ErrNotFound)
	ErrDeploymentGroupNotFound       = awserr.New("DeploymentGroupDoesNotExistException", awserr.ErrNotFound)
	ErrDeploymentNotFound            = awserr.New("DeploymentDoesNotExistException", awserr.ErrNotFound)
	ErrAlreadyExists                 = awserr.New("ApplicationAlreadyExistsException", awserr.ErrConflict)
	ErrDeploymentGroupAlreadyExists  = awserr.New("DeploymentGroupAlreadyExistsException", awserr.ErrConflict)
	ErrDeploymentConfigNotFound      = awserr.New("DeploymentConfigDoesNotExistException", awserr.ErrNotFound)
	ErrDeploymentConfigAlreadyExists = awserr.New("DeploymentConfigAlreadyExistsException", awserr.ErrConflict)
	ErrOnPremisesInstanceNotFound    = awserr.New("InstanceDoesNotExistException", awserr.ErrNotFound)
	ErrValidation                    = awserr.New("InvalidParameterValueException", awserr.ErrInvalidParameter)
	ErrTagLimitExceeded              = awserr.New("TagLimitExceededException", awserr.ErrInvalidParameter)
	ErrInvalidComputePlatform        = awserr.New("InvalidComputePlatformException", awserr.ErrInvalidParameter)
	ErrIamArnRequired                = awserr.New("IamArnRequiredException", awserr.ErrInvalidParameter)
	ErrMultipleIamArns               = awserr.New("MultipleIamArnsProvidedException", awserr.ErrInvalidParameter)
	ErrDeploymentConfigInUse         = awserr.New("DeploymentConfigInUseException", awserr.ErrConflict)
	ErrGitHubAccountTokenNotFound    = awserr.New("GitHubAccountTokenDoesNotExistException", awserr.ErrNotFound)
)

Sentinel errors returned by the CodeDeploy backend, mapped to AWS exception types and HTTP status codes by handler.go's errorMappings table.

View Source
var ErrNilAppContext = errors.New("AppContext is required")

ErrNilAppContext is returned when Provider.Init is called with a nil AppContext.

Functions

This section is empty.

Types

type Alarm

type Alarm struct {
	Name string `json:"name,omitempty"`
}

Alarm references a CloudWatch alarm.

type AlarmConfiguration

type AlarmConfiguration struct {
	Alarms                 []Alarm `json:"alarms,omitempty"`
	Enabled                bool    `json:"enabled,omitempty"`
	IgnorePollAlarmFailure bool    `json:"ignorePollAlarmFailure,omitempty"`
}

AlarmConfiguration holds alarm-based stop configuration.

type Application

type Application struct {
	CreationTime    time.Time         `json:"createTime"`
	Tags            *tags.Tags        `json:"-"`
	TagsMap         map[string]string `json:"tagsMap,omitempty"`
	ApplicationName string            `json:"applicationName"`
	ApplicationID   string            `json:"applicationId"`
	ComputePlatform string            `json:"computePlatform"`
	AccountID       string            `json:"-"`
	Region          string            `json:"-"`
}

Application represents an AWS CodeDeploy application.

type AutoRollbackConfiguration

type AutoRollbackConfiguration struct {
	Events  []string `json:"events,omitempty"` // rollback event types
	Enabled bool     `json:"enabled,omitempty"`
}

AutoRollbackConfiguration holds auto-rollback event configuration.

type AutoScalingGroup

type AutoScalingGroup struct {
	Name string `json:"name,omitempty"`
	Hook string `json:"hook,omitempty"`
}

AutoScalingGroup references an Auto Scaling group for a deployment group.

type BlueGreenDeploymentConfiguration

type BlueGreenDeploymentConfiguration struct {
	TerminateBlueInstancesOnDeploymentSuccess *TerminateBlueInstancesOnDeploymentSuccess `json:"terminateBlueInstancesOnDeploymentSuccess,omitempty"` //nolint:lll // long AWS name
	DeploymentReadyOption                     *DeploymentReadyOption                     `json:"deploymentReadyOption,omitempty"`                     //nolint:lll // aligned with AWS field above
	GreenFleetProvisioningOption              *GreenFleetProvisioningOption              `json:"greenFleetProvisioningOption,omitempty"`              //nolint:lll // aligned with AWS field above
}

BlueGreenDeploymentConfiguration holds blue/green deployment configuration.

type Deployment

type Deployment struct {
	CreateTime                    time.Time         `json:"createTime"`
	CompleteTime                  *time.Time        `json:"completeTime,omitempty"`
	Revision                      *RevisionLocation `json:"revision,omitempty"`
	Status                        string            `json:"status"`
	ApplicationName               string            `json:"applicationName"`
	DeploymentGroupName           string            `json:"deploymentGroupName"`
	DeploymentConfigName          string            `json:"deploymentConfigName"`
	DeploymentID                  string            `json:"deploymentId"`
	Creator                       string            `json:"creator"`
	Description                   string            `json:"description,omitempty"`
	FileExistsBehavior            string            `json:"fileExistsBehavior,omitempty"`
	AccountID                     string            `json:"-"`
	Region                        string            `json:"-"`
	UpdateOutdatedInstancesOnly   bool              `json:"updateOutdatedInstancesOnly,omitempty"`
	IgnoreApplicationStopFailures bool              `json:"ignoreApplicationStopFailures,omitempty"`
}

Deployment represents a CodeDeploy deployment.

type DeploymentConfig

type DeploymentConfig struct {
	CreateTime           time.Time             `json:"createTime"`
	MinimumHealthyHosts  *MinimumHealthyHosts  `json:"minimumHealthyHosts,omitempty"`
	TrafficRoutingConfig *TrafficRoutingConfig `json:"trafficRoutingConfig,omitempty"`
	ZonalConfig          *ZonalConfig          `json:"zonalConfig,omitempty"`
	DeploymentConfigName string                `json:"deploymentConfigName"`
	DeploymentConfigID   string                `json:"deploymentConfigId"`
	ComputePlatform      string                `json:"computePlatform"`
	IsDefault            bool                  `json:"isDefault,omitempty"`
}

DeploymentConfig represents a CodeDeploy deployment configuration.

type DeploymentFilter

type DeploymentFilter struct {
	CreateTimeStart     *time.Time
	CreateTimeEnd       *time.Time
	ApplicationName     string
	DeploymentGroupName string
	Statuses            []string
}

DeploymentFilter holds optional filters for ListDeployments.

type DeploymentGroup

type DeploymentGroup struct {
	Tags                             *tags.Tags                        `json:"-"`
	TagsMap                          map[string]string                 `json:"tagsMap,omitempty"`
	BlueGreenDeploymentConfiguration *BlueGreenDeploymentConfiguration `json:"blueGreenDeploymentConfiguration,omitempty"`
	AlarmConfiguration               *AlarmConfiguration               `json:"alarmConfiguration,omitempty"`
	AutoRollbackConfiguration        *AutoRollbackConfiguration        `json:"autoRollbackConfiguration,omitempty"`
	LoadBalancerInfo                 *LoadBalancerInfo                 `json:"loadBalancerInfo,omitempty"`
	DeploymentStyle                  *DeploymentStyle                  `json:"deploymentStyle,omitempty"`
	Ec2TagSet                        *Ec2TagSet                        `json:"ec2TagSet,omitempty"`
	OnPremisesTagSet                 *TagSet                           `json:"onPremisesTagSet,omitempty"`
	ApplicationName                  string                            `json:"applicationName"`
	DeploymentGroupName              string                            `json:"deploymentGroupName"`
	DeploymentGroupID                string                            `json:"deploymentGroupId"`
	ServiceRoleArn                   string                            `json:"serviceRoleArn"`
	DeploymentConfigName             string                            `json:"deploymentConfigName"`
	ComputePlatform                  string                            `json:"computePlatform"`
	OutdatedInstancesStrategy        string                            `json:"outdatedInstancesStrategy,omitempty"`
	AccountID                        string                            `json:"-"`
	Region                           string                            `json:"-"`
	Ec2TagFilters                    []TagFilter                       `json:"ec2TagFilters,omitempty"`
	OnPremisesInstanceTagFilters     []TagFilter                       `json:"onPremisesInstanceTagFilters,omitempty"`
	AutoScalingGroups                []AutoScalingGroup                `json:"autoScalingGroups,omitempty"`
	TriggerConfigurations            []TriggerConfiguration            `json:"triggerConfigurations,omitempty"`
	ECSServices                      []ECSService                      `json:"ecsServices,omitempty"`
	TerminationHookEnabled           bool                              `json:"terminationHookEnabled,omitempty"`
}

DeploymentGroup represents a CodeDeploy deployment group.

type DeploymentGroupInput

type DeploymentGroupInput struct {
	BlueGreenDeploymentConfiguration *BlueGreenDeploymentConfiguration
	AlarmConfiguration               *AlarmConfiguration
	AutoRollbackConfiguration        *AutoRollbackConfiguration
	LoadBalancerInfo                 *LoadBalancerInfo
	DeploymentStyle                  *DeploymentStyle
	Ec2TagSet                        *Ec2TagSet
	OnPremisesTagSet                 *TagSet
	ServiceRoleArn                   string
	DeploymentConfigName             string
	OutdatedInstancesStrategy        string
	OnPremisesInstanceTagFilters     []TagFilter
	AutoScalingGroups                []AutoScalingGroup
	TriggerConfigurations            []TriggerConfiguration
	ECSServices                      []ECSService
	Ec2TagFilters                    []TagFilter
	TerminationHookEnabled           bool
}

DeploymentGroupInput holds all the optional rich fields for CreateDeploymentGroup and UpdateDeploymentGroup.

type DeploymentOptions

type DeploymentOptions struct {
	Revision                      *RevisionLocation
	FileExistsBehavior            string
	Description                   string
	Creator                       string
	UpdateOutdatedInstancesOnly   bool
	IgnoreApplicationStopFailures bool
}

DeploymentOptions holds optional per-deployment settings.

type DeploymentReadyOption

type DeploymentReadyOption struct {
	ActionOnTimeout   string `json:"actionOnTimeout,omitempty"` // CONTINUE_DEPLOYMENT | STOP_DEPLOYMENT
	WaitTimeInMinutes int    `json:"waitTimeInMinutes,omitempty"`
}

DeploymentReadyOption configures behavior when blue/green instances are ready.

type DeploymentStyle

type DeploymentStyle struct {
	DeploymentType   string `json:"deploymentType,omitempty"`   // IN_PLACE | BLUE_GREEN
	DeploymentOption string `json:"deploymentOption,omitempty"` // WITH_TRAFFIC_CONTROL | WITHOUT_TRAFFIC_CONTROL
}

DeploymentStyle describes the type and traffic control option for a deployment.

type DeploymentTargetItem

type DeploymentTargetItem struct {
	DeploymentID string `json:"deploymentId"`
	TargetID     string `json:"targetId"`
	Status       string `json:"status"`
	TargetType   string `json:"targetType"`
}

DeploymentTargetItem is a simplified deployment target used by BatchGetDeploymentTargets.

type ECSService

type ECSService struct {
	ServiceName string `json:"serviceName,omitempty"`
	ClusterName string `json:"clusterName,omitempty"`
}

ECSService references an ECS service for ECS-platform deployments.

type Ec2TagSet

type Ec2TagSet struct {
	Ec2TagSetList [][]TagFilter `json:"ec2TagSetList,omitempty"`
}

Ec2TagSet is a list of EC2 tag filter groups combined with AND logic.

type ElbInfo

type ElbInfo struct {
	Name string `json:"name,omitempty"`
}

ElbInfo references an ELB for load-balancer-based routing.

type GreenFleetProvisioningOption

type GreenFleetProvisioningOption struct {
	Action string `json:"action,omitempty"` // DISCOVER_EXISTING | COPY_AUTO_SCALING_GROUP
}

GreenFleetProvisioningOption configures how replacement instances are provisioned.

type Handler

type Handler struct {
	Backend *InMemoryBackend
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for AWS CodeDeploy operations.

func NewHandler

func NewHandler(backend *InMemoryBackend) *Handler

NewHandler creates a new CodeDeploy handler with a pre-built dispatch table.

func (*Handler) ChaosOperations

func (h *Handler) ChaosOperations() []string

ChaosOperations returns all operations that can be fault-injected.

func (*Handler) ChaosRegions

func (h *Handler) ChaosRegions() []string

ChaosRegions returns all regions this CodeDeploy instance handles.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase AWS service name for fault rule matching.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation extracts the CodeDeploy operation from the X-Amz-Target header.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource extracts the application name from the request body.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns the list of supported CodeDeploy operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears the handler state by delegating to the backend.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a function that matches AWS CodeDeploy requests.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend.

type InMemoryBackend

type InMemoryBackend struct {
	// contains filtered or unexported fields
}

InMemoryBackend is the in-memory store for CodeDeploy resources.

deployments and deploymentConfigs carry a real, wire-visible identity field and no live *tags.Tags field, so each registers directly on b.registry as a "clean" *store.Table.

applications, deploymentGroups, and onPremisesInstances each carry a live *tags.Tags field marked json:"-", so each is a "dirty" table (store.New only, NOT store.Register-ed onto b.registry -- see store_setup.go) round-tripped through a DTO wrapper in persistence.go. deploymentGroups was previously nested by application; it flattens to one *store.Table keyed by the composite "appName/dgName" string (see dgKey in store_setup.go), with deploymentGroupsByApp replacing the old map[string]map[string]*DeploymentGroup nesting for per-application scans.

githubTokens is deliberately NOT converted: it is an identity-less set (map[string]struct{}), so there is no *T value for store.Table to key on. It remains a plain map, unchanged by this refactor.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new in-memory CodeDeploy backend with pre-seeded default configs.

func (*InMemoryBackend) AddApplicationInternal

func (b *InMemoryBackend) AddApplicationInternal(app *Application)

AddApplicationInternal adds an application directly to the backend without validation. Used for test seeding only.

func (*InMemoryBackend) AddDeploymentConfigInternal

func (b *InMemoryBackend) AddDeploymentConfigInternal(cfg *DeploymentConfig)

AddDeploymentConfigInternal adds a deployment config directly to the backend without validation. Used for test seeding only.

func (*InMemoryBackend) AddDeploymentGroupInternal

func (b *InMemoryBackend) AddDeploymentGroupInternal(dg *DeploymentGroup)

AddDeploymentGroupInternal adds a deployment group directly to the backend without validation. Used for test seeding only.

func (*InMemoryBackend) AddDeploymentInternal

func (b *InMemoryBackend) AddDeploymentInternal(d *Deployment)

AddDeploymentInternal adds a deployment directly to the backend without validation. Used for test seeding only.

func (*InMemoryBackend) AddGitHubAccountTokenInternal

func (b *InMemoryBackend) AddGitHubAccountTokenInternal(name string)

AddGitHubAccountTokenInternal adds a GitHub token name directly (for test seeding and internal use).

func (*InMemoryBackend) AddOnPremisesInstanceInternal

func (b *InMemoryBackend) AddOnPremisesInstanceInternal(inst *OnPremisesInstance)

AddOnPremisesInstanceInternal adds an on-premises instance directly to the backend. Used for test seeding only.

func (*InMemoryBackend) AddTagsToOnPremisesInstances

func (b *InMemoryBackend) AddTagsToOnPremisesInstances(instanceNames []string, kv map[string]string) error

AddTagsToOnPremisesInstances adds tags to on-premises instances, registering them if needed.

func (*InMemoryBackend) ApplicationARN

func (b *InMemoryBackend) ApplicationARN(name string) string

ApplicationARN builds an ARN for a CodeDeploy application.

func (*InMemoryBackend) BatchGetApplicationRevisions

func (b *InMemoryBackend) BatchGetApplicationRevisions(appName string, count int) (string, error)

BatchGetApplicationRevisions validates that the application exists. It accepts up to maxBatchRevisions revisions per AWS spec.

func (*InMemoryBackend) BatchGetApplications

func (b *InMemoryBackend) BatchGetApplications(names []string) []*Application

BatchGetApplications returns application structs for the given names. Names that do not exist are silently omitted (AWS behavior).

func (*InMemoryBackend) BatchGetDeploymentGroups

func (b *InMemoryBackend) BatchGetDeploymentGroups(appName string, dgNames []string) ([]*DeploymentGroup, error)

BatchGetDeploymentGroups returns deployment group info for the given names under an app. Groups that do not exist are silently omitted.

func (*InMemoryBackend) BatchGetDeploymentInstances

func (b *InMemoryBackend) BatchGetDeploymentInstances(
	deploymentID string,
	instanceIDs []string,
) ([]InstanceSummaryItem, error)

BatchGetDeploymentInstances returns stub instance summaries for the given instance IDs. Missing deployment returns an error per AWS behavior.

func (*InMemoryBackend) BatchGetDeploymentTargets

func (b *InMemoryBackend) BatchGetDeploymentTargets(
	deploymentID string,
	targetIDs []string,
) ([]*DeploymentTargetItem, error)

BatchGetDeploymentTargets returns stub deployment targets for the given target IDs.

func (*InMemoryBackend) BatchGetDeployments

func (b *InMemoryBackend) BatchGetDeployments(deploymentIDs []string) []*Deployment

BatchGetDeployments returns deployment structs for the given IDs. Deployment IDs that do not exist are silently omitted.

func (*InMemoryBackend) BatchGetOnPremisesInstances

func (b *InMemoryBackend) BatchGetOnPremisesInstances(instanceNames []string) []*OnPremisesInstance

BatchGetOnPremisesInstances returns on-premises instance info for the given names. Names that do not exist are silently omitted.

func (*InMemoryBackend) ContinueDeployment

func (b *InMemoryBackend) ContinueDeployment(deploymentID string) error

ContinueDeployment marks a blue/green deployment as continuing past the wait point.

func (*InMemoryBackend) CreateApplication

func (b *InMemoryBackend) CreateApplication(name, computePlatform string, kv map[string]string) (*Application, error)

CreateApplication creates a new CodeDeploy application.

func (*InMemoryBackend) CreateDeployment

func (b *InMemoryBackend) CreateDeployment(appName, dgName string, opts DeploymentOptions) (*Deployment, error)

CreateDeployment creates a new deployment.

func (*InMemoryBackend) CreateDeploymentConfig

func (b *InMemoryBackend) CreateDeploymentConfig(
	name, computePlatform string,
	minHealthyHosts *MinimumHealthyHosts,
	trafficRouting *TrafficRoutingConfig,
	zonalConfig *ZonalConfig,
) (*DeploymentConfig, error)

CreateDeploymentConfig creates a named deployment configuration.

func (*InMemoryBackend) CreateDeploymentGroup

func (b *InMemoryBackend) CreateDeploymentGroup(
	appName, dgName string,
	input DeploymentGroupInput,
	kv map[string]string,
) (*DeploymentGroup, error)

CreateDeploymentGroup creates a deployment group for an application.

func (*InMemoryBackend) DeleteApplication

func (b *InMemoryBackend) DeleteApplication(name string) error

DeleteApplication deletes an application and all its deployment groups.

func (*InMemoryBackend) DeleteDeploymentConfig

func (b *InMemoryBackend) DeleteDeploymentConfig(name string) error

DeleteDeploymentConfig deletes a deployment configuration by name. AWS-default configs (IsDefault=true) cannot be deleted.

func (*InMemoryBackend) DeleteDeploymentGroup

func (b *InMemoryBackend) DeleteDeploymentGroup(appName, dgName string) error

DeleteDeploymentGroup deletes a deployment group.

func (*InMemoryBackend) DeleteGitHubAccountToken

func (b *InMemoryBackend) DeleteGitHubAccountToken(name string) error

DeleteGitHubAccountToken removes a stored GitHub account token name.

func (*InMemoryBackend) DeploymentConfigARN

func (b *InMemoryBackend) DeploymentConfigARN(name string) string

DeploymentConfigARN builds an ARN for a CodeDeploy deployment configuration.

func (*InMemoryBackend) DeploymentGroupARN

func (b *InMemoryBackend) DeploymentGroupARN(appName, dgName string) string

DeploymentGroupARN builds an ARN for a CodeDeploy deployment group.

func (*InMemoryBackend) DeregisterOnPremisesInstance

func (b *InMemoryBackend) DeregisterOnPremisesInstance(name string) error

DeregisterOnPremisesInstance marks an on-premises instance as deregistered.

func (*InMemoryBackend) GetApplication

func (b *InMemoryBackend) GetApplication(name string) (*Application, error)

GetApplication returns an application by name.

func (*InMemoryBackend) GetDeployment

func (b *InMemoryBackend) GetDeployment(deploymentID string) (*Deployment, error)

GetDeployment returns a deployment by ID.

func (*InMemoryBackend) GetDeploymentConfig

func (b *InMemoryBackend) GetDeploymentConfig(name string) (*DeploymentConfig, error)

GetDeploymentConfig returns a deployment configuration by name.

func (*InMemoryBackend) GetDeploymentGroup

func (b *InMemoryBackend) GetDeploymentGroup(appName, dgName string) (*DeploymentGroup, error)

GetDeploymentGroup returns a deployment group by application and group name.

func (*InMemoryBackend) GetOnPremisesInstance

func (b *InMemoryBackend) GetOnPremisesInstance(name string) (*OnPremisesInstance, error)

GetOnPremisesInstance returns an on-premises instance by name.

func (*InMemoryBackend) ListApplicationDetails

func (b *InMemoryBackend) ListApplicationDetails() []*Application

ListApplicationDetails returns all applications as structs.

func (*InMemoryBackend) ListApplications

func (b *InMemoryBackend) ListApplications() []string

ListApplications returns all application names in sorted order.

func (*InMemoryBackend) ListDeploymentConfigs

func (b *InMemoryBackend) ListDeploymentConfigs() []string

ListDeploymentConfigs returns all deployment config names in sorted order.

func (*InMemoryBackend) ListDeploymentGroupDetails

func (b *InMemoryBackend) ListDeploymentGroupDetails(appName string) ([]*DeploymentGroup, error)

ListDeploymentGroupDetails returns all deployment groups for an application.

func (*InMemoryBackend) ListDeploymentGroups

func (b *InMemoryBackend) ListDeploymentGroups(appName string) ([]string, error)

ListDeploymentGroups returns all deployment group names for an application in sorted order.

func (*InMemoryBackend) ListDeployments

func (b *InMemoryBackend) ListDeployments(filter DeploymentFilter) []string

ListDeployments returns deployment IDs in sorted order, filtered by the provided criteria.

func (*InMemoryBackend) ListGitHubAccountTokenNames

func (b *InMemoryBackend) ListGitHubAccountTokenNames() []string

ListGitHubAccountTokenNames returns all stored GitHub account token names.

func (*InMemoryBackend) ListOnPremisesInstances

func (b *InMemoryBackend) ListOnPremisesInstances(registrationStatus string, tagFilters []TagFilter) []string

ListOnPremisesInstances returns instance names, optionally filtered by registration status and tag filters.

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(resourceARN string) (map[string]string, error)

ListTagsForResource returns the tags for a resource (application or deployment group) by ARN.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the AWS region this backend is configured for.

func (*InMemoryBackend) RegisterOnPremisesInstance

func (b *InMemoryBackend) RegisterOnPremisesInstance(name, iamSessionArn, iamUserArn string) error

RegisterOnPremisesInstance registers a new on-premises instance. Exactly one of iamSessionArn or iamUserArn must be set.

func (*InMemoryBackend) RemoveTagsFromOnPremisesInstances

func (b *InMemoryBackend) RemoveTagsFromOnPremisesInstances(instanceNames []string, keys []string) error

RemoveTagsFromOnPremisesInstances removes tag keys from the given on-premises instances.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all state, returning the backend to a fresh empty state (with default configs re-seeded).

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot produced by Snapshot.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. Returns nil on marshal failure.

func (*InMemoryBackend) StopDeployment

func (b *InMemoryBackend) StopDeployment(deploymentID string) error

StopDeployment marks a deployment as Stopped.

func (*InMemoryBackend) TagResource

func (b *InMemoryBackend) TagResource(resourceARN string, kv map[string]string) error

TagResource adds tags to a resource (application or deployment group) by ARN.

func (*InMemoryBackend) UntagResource

func (b *InMemoryBackend) UntagResource(resourceARN string, keys []string) error

UntagResource removes tags from a resource (application or deployment group) by ARN.

func (*InMemoryBackend) UpdateApplication

func (b *InMemoryBackend) UpdateApplication(name, newName string) error

UpdateApplication renames a CodeDeploy application, updating all referencing deployment groups and deployments.

func (*InMemoryBackend) UpdateDeploymentGroup

func (b *InMemoryBackend) UpdateDeploymentGroup(
	appName, currentDGName, newDGName string,
	input DeploymentGroupInput,
) (bool, error)

UpdateDeploymentGroup updates a deployment group, optionally renaming it. Returns true if alarms or triggers were removed (hooksNotCleanedUp).

type InstanceSummaryItem

type InstanceSummaryItem struct {
	DeploymentID string `json:"deploymentId"`
	InstanceID   string `json:"instanceId"`
	Status       string `json:"status"`
}

InstanceSummaryItem is a simplified deployment instance summary used by BatchGetDeploymentInstances.

type LoadBalancerInfo

type LoadBalancerInfo struct {
	ElbInfoList             []ElbInfo             `json:"elbInfoList,omitempty"`
	TargetGroupInfoList     []TargetGroupInfo     `json:"targetGroupInfoList,omitempty"`
	TargetGroupPairInfoList []TargetGroupPairInfo `json:"targetGroupPairInfoList,omitempty"`
}

LoadBalancerInfo holds load balancer configuration for a deployment group.

type MinimumHealthyHosts

type MinimumHealthyHosts struct {
	Type  string `json:"type,omitempty"` // HOST_COUNT | FLEET_PERCENT
	Value int    `json:"value,omitempty"`
}

MinimumHealthyHosts specifies the minimum number/percentage of healthy instances.

type OnPremisesInstance

type OnPremisesInstance struct {
	RegisterTime   time.Time         `json:"registerTime"`
	DeregisterTime *time.Time        `json:"deregisterTime,omitempty"`
	Tags           *tags.Tags        `json:"-"`
	TagsMap        map[string]string `json:"tagsMap,omitempty"`
	InstanceName   string            `json:"instanceName"`
	IamSessionArn  string            `json:"iamSessionArn,omitempty"`
	IamUserArn     string            `json:"iamUserArn,omitempty"`
}

OnPremisesInstance represents an on-premises instance registered with CodeDeploy.

type Provider

type Provider struct{}

Provider implements service.Provider for AWS CodeDeploy.

func (*Provider) Init

Init initializes the CodeDeploy service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type RevisionAppSpecContent

type RevisionAppSpecContent struct {
	Content string `json:"content,omitempty"`
	Sha256  string `json:"sha256,omitempty"`
}

RevisionAppSpecContent holds the AppSpec content for a string/AppSpecContent revision.

type RevisionGitHubLocation

type RevisionGitHubLocation struct {
	Repository string `json:"repository,omitempty"`
	CommitID   string `json:"commitId,omitempty"`
}

RevisionGitHubLocation holds the GitHub location fields for a deployment revision.

type RevisionLocation

type RevisionLocation struct {
	S3Location     *RevisionS3Location     `json:"s3Location,omitempty"`
	GitHubLocation *RevisionGitHubLocation `json:"gitHubLocation,omitempty"`
	AppSpecContent *RevisionAppSpecContent `json:"appSpecContent,omitempty"`
	RevisionType   string                  `json:"revisionType,omitempty"`
}

RevisionLocation represents a deployment revision source location.

type RevisionS3Location

type RevisionS3Location struct {
	Bucket     string `json:"bucket,omitempty"`
	Key        string `json:"key,omitempty"`
	BundleType string `json:"bundleType,omitempty"`
	ETag       string `json:"eTag,omitempty"`
	Version    string `json:"version,omitempty"`
}

RevisionS3Location holds the S3 location fields for a deployment revision.

type TagFilter

type TagFilter struct {
	Key   string `json:"Key,omitempty"`
	Value string `json:"Value,omitempty"`
	Type  string `json:"Type,omitempty"` // EQUALS | KEY_ONLY | VALUE_ONLY
}

TagFilter represents a key/value tag filter for on-premises or EC2 instances.

type TagSet

type TagSet struct {
	OnPremisesTagSetList [][]TagFilter `json:"onPremisesTagSetList,omitempty"`
}

TagSet is a list of tag filters combined with AND logic.

type TargetGroupInfo

type TargetGroupInfo struct {
	Name string `json:"name,omitempty"`
}

TargetGroupInfo references a target group for ALB/NLB routing.

type TargetGroupPairInfo

type TargetGroupPairInfo struct {
	ProdTrafficRoute *TrafficRoute     `json:"prodTrafficRoute,omitempty"`
	TestTrafficRoute *TrafficRoute     `json:"testTrafficRoute,omitempty"`
	TargetGroups     []TargetGroupInfo `json:"targetGroups,omitempty"`
}

TargetGroupPairInfo is an ALB/NLB target group pair for blue/green deployments.

type TerminateBlueInstancesOnDeploymentSuccess

type TerminateBlueInstancesOnDeploymentSuccess struct {
	Action                       string `json:"action,omitempty"` // TERMINATE | KEEP_ALIVE
	TerminationWaitTimeInMinutes int    `json:"terminationWaitTimeInMinutes,omitempty"`
}

TerminateBlueInstancesOnDeploymentSuccess holds blue-instance termination config.

type TimeBasedCanary

type TimeBasedCanary struct {
	CanaryPercentage int `json:"canaryPercentage,omitempty"`
	CanaryInterval   int `json:"canaryInterval,omitempty"`
}

TimeBasedCanary holds canary traffic shifting configuration.

type TimeBasedLinear

type TimeBasedLinear struct {
	LinearPercentage int `json:"linearPercentage,omitempty"`
	LinearInterval   int `json:"linearInterval,omitempty"`
}

TimeBasedLinear holds linear traffic shifting configuration.

type TrafficRoute

type TrafficRoute struct {
	ListenerArns []string `json:"listenerArns,omitempty"`
}

TrafficRoute specifies a listener ARN for traffic routing.

type TrafficRoutingConfig

type TrafficRoutingConfig struct {
	TimeBasedCanary *TimeBasedCanary `json:"timeBasedCanary,omitempty"`
	TimeBasedLinear *TimeBasedLinear `json:"timeBasedLinear,omitempty"`
	Type            string           `json:"type,omitempty"`
}

TrafficRoutingConfig holds traffic routing configuration for a deployment config.

type TriggerConfiguration

type TriggerConfiguration struct {
	TriggerName      string   `json:"triggerName,omitempty"`
	TriggerTargetArn string   `json:"triggerTargetArn,omitempty"`
	TriggerEvents    []string `json:"triggerEvents,omitempty"`
}

TriggerConfiguration holds SNS trigger configuration for deployment events.

type ZonalConfig

type ZonalConfig struct {
	MinimumHealthyHostsPerZone        *MinimumHealthyHosts `json:"minimumHealthyHostsPerZone,omitempty"`
	FirstZoneMonitorDurationInSeconds int                  `json:"firstZoneMonitorDurationInSeconds,omitempty"`
	MonitorDurationInSeconds          int                  `json:"monitorDurationInSeconds,omitempty"`
}

ZonalConfig holds availability-zone-based deployment configuration.

Jump to

Keyboard shortcuts

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