redshift

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: 28 Imported by: 0

README

Redshift

Parity grade: A · SDK aws-sdk-go-v2/service/redshift@v1.62.3 · last audited 2026-07-12 (0d0d1cca8fba1247de159a190df6eadab8dc4c2d)

Coverage

Metric Value
Operations audited 5 (4 ok, 1 partial)
Feature families 7 (6 ok, 1 partial)
Known gaps 2
Deferred items 17
Resource leaks clean
Known gaps
  • ResizeCluster (cluster_mgmt.go) applies node-type/count changes synchronously but never calls AddActiveResizeInternal-equivalent to populate b.activeResizes, so DescribeResize and CancelResize can never observe an in-progress resize triggered via the ResizeCluster op itself (only via the AddActiveResizeInternal test-seed helper). Real AWS resize is asynchronous and trackable; this emulator's instant-apply model makes the resize untrackable. Needs a bd issue for proper async resize modeling (schedule a transition + activeResizes entry, matching the CreateCluster/clusterActivationDelay pattern).
  • ModifyCluster accepts a non-real ApplyImmediately parameter (not present in the real ModifyClusterInput/aws-sdk-go-v2 wire shape) and, when explicitly set to "false", stores changes in PendingModifiedValues -- but xmlCluster never serializes PendingModifiedValues in ANY response (CreateCluster/DescribeClusters/ModifyCluster all omit it). Low priority: real aws-sdk-go-v2 clients never send ApplyImmediately for Redshift (the SDK input struct has no such field), so this path is unreachable via genuine SDK traffic and only affects hand-crafted form posts / this service's own tests. Documented here so the next auditor doesn't re-flag it as urgent.
Deferred
  • DataShare (Associate/Authorize/Deauthorize/Reject/DescribeDataShares*)
  • EventSubscription / Events (Create/Delete/Modify/DescribeEventSubscriptions, DescribeEvents, DescribeEventCategories)
  • ScheduledAction (classic Create/Delete/Modify/DescribeScheduledActions)
  • UsageLimit (Create/Delete/Modify/DescribeUsageLimits)
  • SnapshotCopyGrant / SnapshotSchedule / SnapshotCopy (Enable/Disable/ModifySnapshotCopyRetentionPeriod)
  • …and 12 more — see PARITY.md

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrClusterNotFound                = errors.New("ClusterNotFound")
	ErrClusterAlreadyExists           = errors.New("ClusterAlreadyExists")
	ErrInvalidParameter               = errors.New("InvalidParameterValue")
	ErrReservedNodeNotFound           = errors.New("ReservedNodeNotFound")
	ErrReservedNodeAlreadyExists      = errors.New("ReservedNodeAlreadyExists")
	ErrReservedNodeOfferingNotFound   = errors.New("ReservedNodeOfferingNotFound")
	ErrPartnerNotFound                = errors.New("PartnerNotFound")
	ErrDataShareNotFound              = errors.New("DataShareNotFound")
	ErrSecurityGroupNotFound          = errors.New("ClusterSecurityGroupNotFound")
	ErrSecurityGroupAlreadyExists     = errors.New("ClusterSecurityGroupAlreadyExists")
	ErrSnapshotNotFound               = errors.New(errClusterSnapshotNotFound)
	ErrSnapshotAlreadyExists          = errors.New("ClusterSnapshotAlreadyExists")
	ErrEndpointAuthNotFound           = errors.New("EndpointAuthorizationNotFound")
	ErrEndpointAuthAlreadyExists      = errors.New("EndpointAuthorizationAlreadyExists")
	ErrResizeNotFound                 = errors.New("ResizeNotFound")
	ErrResizeNotCancellable           = errors.New("InvalidClusterState")
	ErrParameterGroupNotFound         = errors.New("ClusterParameterGroupNotFound")
	ErrParameterGroupAlreadyExists    = errors.New("ClusterParameterGroupAlreadyExists")
	ErrSubnetGroupNotFound            = errors.New("ClusterSubnetGroupNotFound")
	ErrSubnetGroupAlreadyExists       = errors.New("ClusterSubnetGroupAlreadyExists")
	ErrEventSubscriptionNotFound      = errors.New("SubscriptionNotFound")
	ErrEventSubscriptionAlreadyExists = errors.New("SubscriptionAlreadyExist")
	ErrSnapshotCopyGrantNotFound      = errors.New("SnapshotCopyGrantNotFound")
	ErrSnapshotCopyGrantAlreadyExists = errors.New("SnapshotCopyGrantAlreadyExists")
	ErrSnapshotScheduleNotFound       = errors.New("SnapshotScheduleNotFound")
	ErrSnapshotScheduleAlreadyExists  = errors.New("SnapshotScheduleAlreadyExists")
	ErrUsageLimitNotFound             = errors.New("UsageLimitNotFound")
	ErrAuthProfileNotFound            = errors.New("AuthenticationProfileNotFound")
	ErrAuthProfileAlreadyExists       = errors.New("AuthenticationProfileAlreadyExists")
	ErrResourcePolicyNotFound         = errors.New("ResourcePolicyNotFound")
	ErrSnapshotCopyAlreadyEnabled     = errors.New("SnapshotCopyAlreadyEnabled")
	ErrSnapshotCopyNotEnabled         = errors.New("CopyToRegionDisabled")
	ErrHsmClientCertNotFound          = errors.New("HsmClientCertificateNotFound")
	ErrHsmClientCertAlreadyExists     = errors.New("HsmClientCertificateAlreadyExists")
	ErrHsmConfigNotFound              = errors.New("HsmConfigurationNotFound")
	ErrHsmConfigAlreadyExists         = errors.New("HsmConfigurationAlreadyExists")
	ErrScheduledActionNotFound        = errors.New("ScheduledActionNotFound")
	ErrScheduledActionAlreadyExists   = errors.New("ScheduledActionAlreadyExists")
	ErrCustomDomainNotFound           = errors.New("CustomDomainAssociationNotFoundFault")
	ErrCustomDomainAlreadyExists      = errors.New("CustomDomainAssociationAlreadyExistsFault")
	ErrEndpointAccessNotFound         = errors.New("EndpointNotFound")
	ErrEndpointAccessAlreadyExists    = errors.New("EndpointAlreadyExists")
	ErrIntegrationNotFound            = errors.New("IntegrationNotFound")
	ErrIntegrationAlreadyExists       = errors.New("IntegrationAlreadyExists")
	ErrIdcApplicationNotFound         = errors.New("IdcApplicationNotExistsFault")
	ErrIdcApplicationAlreadyExists    = errors.New("IdcApplicationAlreadyExistsFault")
)
View Source
var (
	// ErrNamespaceNotFound is returned when a serverless namespace does not exist.
	ErrNamespaceNotFound = errors.New("ResourceNotFoundException")
	// ErrNamespaceAlreadyExists is returned when a serverless namespace already exists.
	ErrNamespaceAlreadyExists = errors.New("ConflictException")
	// ErrWorkgroupNotFound is returned when a serverless workgroup does not exist.
	ErrWorkgroupNotFound = errors.New("ResourceNotFoundException")
	// ErrWorkgroupAlreadyExists is returned when a serverless workgroup already exists.
	ErrWorkgroupAlreadyExists = errors.New("ConflictException")
	// ErrServerlessSnapshotNotFound is returned when a serverless snapshot does not exist.
	ErrServerlessSnapshotNotFound = errors.New("ResourceNotFoundException")
	// ErrServerlessConflict is returned when a serverless resource already exists.
	ErrServerlessConflict = errors.New("ConflictException")
	// ErrUsageLimitSLNotFound is returned when a serverless usage limit does not exist.
	ErrUsageLimitSLNotFound = errors.New("ResourceNotFoundException")
	// ErrScheduledActionSLNotFound is returned when a serverless scheduled action does not exist.
	ErrScheduledActionSLNotFound = errors.New("ResourceNotFoundException")
)
View Source
var ErrNilAppContext = errors.New("nil AppContext passed to Redshift Provider.Init")

ErrNilAppContext is returned by Init when a nil AppContext is passed.

View Source
var ErrNilAppContextSL = errors.New("nil AppContext passed to Redshift ServerlessProvider.Init")

ErrNilAppContextSL is returned by ServerlessProvider.Init when a nil AppContext is passed.

Functions

This section is empty.

Types

type AccountWithRestoreAccess

type AccountWithRestoreAccess struct {
	AccountID    string `json:"accountId"`
	AccountAlias string `json:"accountAlias"`
}

AccountWithRestoreAccess represents an account permitted to restore from a snapshot.

type AuthenticationProfile

type AuthenticationProfile struct {
	AuthenticationProfileName    string `json:"authenticationProfileName"`
	AuthenticationProfileContent string `json:"authenticationProfileContent"`
}

AuthenticationProfile represents an authentication profile for Redshift.

type Cluster

type Cluster struct {
	Tags                       *tags.Tags                    `json:"tags,omitempty"`
	PendingModifiedValues      *ClusterPendingModifiedValues `json:"pendingModifiedValues,omitempty"`
	ClusterIdentifier          string                        `json:"clusterIdentifier"`
	NodeType                   string                        `json:"nodeType"`
	ClusterType                string                        `json:"clusterType"`
	Endpoint                   string                        `json:"endpoint"`
	Status                     string                        `json:"status"`
	DBName                     string                        `json:"dbName"`
	MasterUsername             string                        `json:"masterUsername"`
	VpcID                      string                        `json:"vpcId,omitempty"`
	KmsKeyID                   string                        `json:"kmsKeyId,omitempty"`
	PreferredMaintenanceWindow string                        `json:"preferredMaintenanceWindow,omitempty"`
	IamRoles                   []string                      `json:"iamRoles,omitempty"`
	Port                       int                           `json:"port"`
	NumberOfNodes              int                           `json:"numberOfNodes"`
	Encrypted                  bool                          `json:"encrypted"`
	EnhancedVpcRouting         bool                          `json:"enhancedVpcRouting"`
}

Cluster represents a Redshift cluster.

type ClusterCredentials

type ClusterCredentials struct {
	Expiration time.Time
	DBUser     string
	DBPassword string
}

ClusterCredentials holds temporary cluster credentials.

type ClusterParameter

type ClusterParameter struct {
	ParameterName        string `json:"parameterName"`
	ParameterValue       string `json:"parameterValue"`
	Description          string `json:"description"`
	Source               string `json:"source"`
	DataType             string `json:"dataType"`
	ApplyType            string `json:"applyType"`
	MinimumEngineVersion string `json:"minimumEngineVersion"`
	IsModifiable         bool   `json:"isModifiable"`
}

ClusterParameter represents a single parameter within a cluster parameter group.

type ClusterParameterGroup

type ClusterParameterGroup struct {
	CreatedAt            time.Time          `json:"createdAt"`
	ParameterGroupName   string             `json:"parameterGroupName"`
	ParameterGroupFamily string             `json:"parameterGroupFamily"`
	Description          string             `json:"description"`
	Parameters           []ClusterParameter `json:"parameters"`
}

ClusterParameterGroup represents a Redshift cluster parameter group.

type ClusterPendingModifiedValues

type ClusterPendingModifiedValues struct {
	NodeType      string `json:"nodeType,omitempty"`
	NumberOfNodes int    `json:"numberOfNodes,omitempty"`
	Encrypted     bool   `json:"encrypted,omitempty"`
}

ClusterPendingModifiedValues holds changes queued for the next maintenance window.

type ClusterSecurityGroup

type ClusterSecurityGroup struct {
	ClusterSecurityGroupName string             `json:"clusterSecurityGroupName"`
	Description              string             `json:"description"`
	IPRanges                 []IPRange          `json:"ipRanges"`
	EC2SecurityGroups        []EC2SecurityGroup `json:"ec2SecurityGroups"`
}

ClusterSecurityGroup represents a Redshift cluster security group.

type ClusterSubnetGroup

type ClusterSubnetGroup struct {
	ClusterSubnetGroupName string   `json:"clusterSubnetGroupName"`
	Description            string   `json:"description"`
	VpcID                  string   `json:"vpcId"`
	SubnetGroupStatus      string   `json:"subnetGroupStatus"`
	Subnets                []Subnet `json:"subnets"`
}

ClusterSubnetGroup represents a Redshift cluster subnet group.

type CustomDomainAssociation

type CustomDomainAssociation struct {
	ClusterIdentifier          string `json:"clusterIdentifier"`
	CustomDomainName           string `json:"customDomainName"`
	CustomDomainCertificateArn string `json:"customDomainCertificateArn"`
}

CustomDomainAssociation represents a custom domain name associated with a Redshift cluster.

type DNSRegistrar

type DNSRegistrar interface {
	Register(hostname string)
	Deregister(hostname string)
}

DNSRegistrar can register and deregister hostnames with an embedded DNS server.

type DataShare

type DataShare struct {
	DataShareArn                     string                 `json:"dataShareArn"`
	ProducerArn                      string                 `json:"producerArn"`
	ManagedBy                        string                 `json:"managedBy"`
	DataShareAssociations            []DataShareAssociation `json:"dataShareAssociations"`
	AllowPubliclyAccessibleConsumers bool                   `json:"allowPubliclyAccessibleConsumers"`
}

DataShare represents a Redshift data share.

type DataShareAssociation

type DataShareAssociation struct {
	ConsumerIdentifier string    `json:"consumerIdentifier"`
	ConsumerRegion     string    `json:"consumerRegion"`
	CreatedDate        time.Time `json:"createdDate"`
	StatusChangeDate   time.Time `json:"statusChangeDate"`
	Status             string    `json:"status"`
	Type               string    `json:"type"`
}

DataShareAssociation represents an association between a data share and a consumer.

type EC2SecurityGroup

type EC2SecurityGroup struct {
	EC2SecurityGroupName    string `json:"ec2SecurityGroupName"`
	EC2SecurityGroupOwnerID string `json:"ec2SecurityGroupOwnerId"`
	Status                  string `json:"status"`
}

EC2SecurityGroup represents an EC2 security group within a cluster security group.

type EndpointAccess

type EndpointAccess struct {
	ClusterIdentifier  string `json:"clusterIdentifier"`
	EndpointName       string `json:"endpointName"`
	EndpointStatus     string `json:"endpointStatus"`
	EndpointCreateTime string `json:"endpointCreateTime"`
	VpcID              string `json:"vpcId"`
	Port               int    `json:"port"`
}

EndpointAccess represents a Redshift managed VPC endpoint.

type EndpointAuthorization

type EndpointAuthorization struct {
	AuthorizeTime     time.Time `json:"authorizeTime"`
	Grantor           string    `json:"grantor"`
	Grantee           string    `json:"grantee"`
	ClusterIdentifier string    `json:"clusterIdentifier"`
	ClusterStatus     string    `json:"clusterStatus"`
	Status            string    `json:"status"`
	AllowedVPCs       []string  `json:"allowedVPCs"`
	EndpointCount     int       `json:"endpointCount"`
	AllowedAllVPCs    bool      `json:"allowedAllVPCs"`
}

EndpointAuthorization represents authorization for a VPC endpoint to a cluster.

type Event

type Event struct {
	Date             time.Time `json:"date"`
	SourceIdentifier string    `json:"sourceIdentifier"`
	SourceType       string    `json:"sourceType"`
	Message          string    `json:"message"`
	EventID          string    `json:"eventId"`
	Severity         string    `json:"severity"`
}

Event represents a Redshift event.

type EventSubscription

type EventSubscription struct {
	SubscriptionCreated time.Time `json:"subscriptionCreated"`
	CustomerAwsID       string    `json:"customerAwsId"`
	CustSubscriptionID  string    `json:"custSubscriptionId"`
	SnsTopicArn         string    `json:"snsTopicArn"`
	Status              string    `json:"status"`
	SourceType          string    `json:"sourceType"`
	Severity            string    `json:"severity"`
	SourceIDs           []string  `json:"sourceIds"`
	EventCategories     []string  `json:"eventCategories"`
	Enabled             bool      `json:"enabled"`
}

EventSubscription represents a Redshift event subscription.

type Handler

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

Handler is the Echo HTTP handler for Redshift operations.

func NewHandler

func NewHandler(backend StorageBackend) *Handler

NewHandler creates a new Redshift handler.

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 Redshift 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 Redshift action from the request.

func (*Handler) ExtractResource

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

ExtractResource returns the cluster identifier from the request.

func (*Handler) GetSupportedOperations

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

GetSupportedOperations returns supported Redshift operations (sorted).

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 all backend state and rebuilds the dispatch table.

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 Redshift requests.

func (*Handler) Shutdown

func (h *Handler) Shutdown(_ context.Context)

Shutdown implements service.Shutdowner. It stops the reconciler and waits for its goroutine to exit, guaranteeing a clean, leak-free shutdown.

func (*Handler) Snapshot

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

Snapshot implements persistence.Persistable by delegating to the backend.

func (*Handler) StartWorker

func (h *Handler) StartWorker(ctx context.Context) error

StartWorker implements service.BackgroundWorker. It starts the managed cluster lifecycle reconciler using the framework-provided background context, so no context.Background() is introduced.

type HsmClientCertificate

type HsmClientCertificate struct {
	Tags                           map[string]string `json:"tags"`
	HsmClientCertificateIdentifier string            `json:"hsmClientCertificateIdentifier"`
	HsmClientCertificatePublicKey  string            `json:"hsmClientCertificatePublicKey"`
}

HsmClientCertificate represents a Redshift HSM client certificate.

type HsmConfiguration

type HsmConfiguration struct {
	Tags                       map[string]string `json:"tags"`
	HsmConfigurationIdentifier string            `json:"hsmConfigurationIdentifier"`
	Description                string            `json:"description"`
	HsmIPAddress               string            `json:"hsmIpAddress"`
	HsmPartitionName           string            `json:"hsmPartitionName"`
}

HsmConfiguration represents a Redshift HSM configuration.

type IPRange

type IPRange struct {
	CIDRIP string `json:"cidrip"`
	Status string `json:"status"`
}

IPRange represents an IP CIDR range within a cluster security group.

type IdcApplication

type IdcApplication struct {
	IdcApplicationArn  string `json:"redshiftIdcApplicationArn"`
	IdcApplicationName string `json:"redshiftIdcApplicationName"`
	IdcInstanceArn     string `json:"idcInstanceArn"`
	IdcDisplayName     string `json:"idcDisplayName"`
	IamRoleArn         string `json:"iamRoleArn"`
}

IdcApplication represents a Redshift IDC application.

type InMemoryBackend

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

InMemoryBackend is the in-memory store for Redshift clusters.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend.

func (*InMemoryBackend) AcceptReservedNodeExchange

func (b *InMemoryBackend) AcceptReservedNodeExchange(reservedNodeID, targetOfferingID string) (*ReservedNode, error)

AcceptReservedNodeExchange exchanges an existing reserved node for a new offering.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the AWS account ID this backend is configured for.

func (*InMemoryBackend) AddActiveResizeInternal

func (b *InMemoryBackend) AddActiveResizeInternal(clusterID string, resize *ResizeProgress)

AddActiveResizeInternal seeds an active resize directly into the backend.

func (*InMemoryBackend) AddDataShareInternal

func (b *InMemoryBackend) AddDataShareInternal(ds *DataShare)

AddDataShareInternal seeds a data share directly into the backend.

func (*InMemoryBackend) AddParameterGroupInternal

func (b *InMemoryBackend) AddParameterGroupInternal(pg *ClusterParameterGroup)

AddParameterGroupInternal seeds a parameter group directly into the backend.

func (*InMemoryBackend) AddPartner

func (b *InMemoryBackend) AddPartner(accountID, clusterID, databaseName, partnerName string) (*Partner, error)

AddPartner adds a partner integration to the specified cluster database.

func (*InMemoryBackend) AddReservedNodeInternal

func (b *InMemoryBackend) AddReservedNodeInternal(node *ReservedNode)

AddReservedNodeInternal seeds a reserved node directly into the backend.

func (*InMemoryBackend) AddSecurityGroupInternal

func (b *InMemoryBackend) AddSecurityGroupInternal(sg *ClusterSecurityGroup)

AddSecurityGroupInternal seeds a cluster security group directly into the backend.

func (*InMemoryBackend) AddSnapshotInternal

func (b *InMemoryBackend) AddSnapshotInternal(snap *Snapshot)

AddSnapshotInternal seeds a snapshot directly into the backend.

func (*InMemoryBackend) AddSubnetGroupInternal

func (b *InMemoryBackend) AddSubnetGroupInternal(sg *ClusterSubnetGroup)

AddSubnetGroupInternal seeds a subnet group directly into the backend.

func (*InMemoryBackend) AssociateDataShareConsumer

func (b *InMemoryBackend) AssociateDataShareConsumer(
	dataShareArn, consumerArn, consumerRegion string,
	_ bool,
) (*DataShare, error)

AssociateDataShareConsumer associates a consumer with a data share.

func (*InMemoryBackend) AuthorizeClusterSecurityGroupIngress

func (b *InMemoryBackend) AuthorizeClusterSecurityGroupIngress(
	groupName, cidrIP, ec2GroupName, ec2GroupOwnerID string,
) (*ClusterSecurityGroup, error)

AuthorizeClusterSecurityGroupIngress adds an ingress rule to a cluster security group.

func (*InMemoryBackend) AuthorizeDataShare

func (b *InMemoryBackend) AuthorizeDataShare(dataShareArn, consumerIdentifier string) (*DataShare, error)

AuthorizeDataShare authorizes a data share to a consumer.

func (*InMemoryBackend) AuthorizeEndpointAccess

func (b *InMemoryBackend) AuthorizeEndpointAccess(
	clusterID, grantee string,
	vpcIDs []string,
) (*EndpointAuthorization, error)

AuthorizeEndpointAccess authorizes an account to create a VPC endpoint to the cluster.

func (*InMemoryBackend) AuthorizeSnapshotAccess

func (b *InMemoryBackend) AuthorizeSnapshotAccess(snapshotID, accountWithRestoreAccess string) (*Snapshot, error)

AuthorizeSnapshotAccess grants another account restore access to a snapshot.

func (*InMemoryBackend) BatchDeleteClusterSnapshots

func (b *InMemoryBackend) BatchDeleteClusterSnapshots(identifiers []string) ([]SnapshotBatchError, []string)

BatchDeleteClusterSnapshots deletes multiple cluster snapshots. It returns the list of errors for snapshots that could not be deleted and the list of successfully deleted snapshot identifiers.

func (*InMemoryBackend) BatchModifyClusterSnapshots

func (b *InMemoryBackend) BatchModifyClusterSnapshots(
	identifiers []string,
	retentionPeriod int,
	_ bool,
) ([]SnapshotBatchError, []string)

BatchModifyClusterSnapshots modifies the retention period for a list of snapshots. The force parameter is accepted for API compatibility but has no effect in the in-memory backend. Returns errors and the list of successfully modified snapshot identifiers.

func (*InMemoryBackend) CancelResize

func (b *InMemoryBackend) CancelResize(clusterID string) (*ResizeProgress, error)

CancelResize cancels an active resize operation for a cluster and returns the final resize status.

func (*InMemoryBackend) CopyClusterSnapshot

func (b *InMemoryBackend) CopyClusterSnapshot(
	sourceSnapshotID, destinationSnapshotID string,
) (*Snapshot, error)

CopyClusterSnapshot copies a snapshot to a new identifier, optionally to a different region.

func (*InMemoryBackend) CreateAuthenticationProfile

func (b *InMemoryBackend) CreateAuthenticationProfile(name, content string) (*AuthenticationProfile, error)

CreateAuthenticationProfile creates a new authentication profile.

func (*InMemoryBackend) CreateCluster

func (b *InMemoryBackend) CreateCluster(id, nodeType, dbName, masterUser string) (*Cluster, error)

CreateCluster creates a new Redshift cluster.

func (*InMemoryBackend) CreateClusterParameterGroup

func (b *InMemoryBackend) CreateClusterParameterGroup(
	name, family, description string,
) (*ClusterParameterGroup, error)

CreateClusterParameterGroup creates a new cluster parameter group.

func (*InMemoryBackend) CreateClusterSecurityGroup

func (b *InMemoryBackend) CreateClusterSecurityGroup(name, description string) (*ClusterSecurityGroup, error)

CreateClusterSecurityGroup creates a new cluster security group.

func (*InMemoryBackend) CreateClusterSnapshot

func (b *InMemoryBackend) CreateClusterSnapshot(snapshotID, clusterID string) (*Snapshot, error)

CreateClusterSnapshot creates a manual snapshot of the specified cluster.

func (*InMemoryBackend) CreateClusterSubnetGroup

func (b *InMemoryBackend) CreateClusterSubnetGroup(
	name, description, vpcID string,
	subnetIDs []string,
) (*ClusterSubnetGroup, error)

CreateClusterSubnetGroup creates a new cluster subnet group.

func (*InMemoryBackend) CreateCustomDomainAssociation

func (b *InMemoryBackend) CreateCustomDomainAssociation(
	clusterID, customDomainName, customDomainCertificateArn string,
) (*CustomDomainAssociation, error)

CreateCustomDomainAssociation creates a custom domain name association for a cluster.

func (*InMemoryBackend) CreateEndpointAccess

func (b *InMemoryBackend) CreateEndpointAccess(
	clusterID, endpointName, vpcID string,
) (*EndpointAccess, error)

CreateEndpointAccess creates a new Redshift-managed VPC endpoint.

func (*InMemoryBackend) CreateEventSubscription

func (b *InMemoryBackend) CreateEventSubscription(
	subscriptionName, snsTopicArn, sourceType, severity string,
	sourceIDs, eventCategories []string,
	enabled bool,
) (*EventSubscription, error)

CreateEventSubscription creates a new event notification subscription.

func (*InMemoryBackend) CreateHsmClientCertificate

func (b *InMemoryBackend) CreateHsmClientCertificate(
	id string,
	tagMap map[string]string,
) (*HsmClientCertificate, error)

CreateHsmClientCertificate creates a new HSM client certificate.

func (*InMemoryBackend) CreateHsmConfiguration

func (b *InMemoryBackend) CreateHsmConfiguration(
	id, description, hsmIPAddress, hsmPartitionName string,
	tagMap map[string]string,
) (*HsmConfiguration, error)

CreateHsmConfiguration creates a new HSM configuration.

func (*InMemoryBackend) CreateIdcApplication

func (b *InMemoryBackend) CreateIdcApplication(
	appName, idcInstanceArn, idcDisplayName, iamRoleArn string,
) (*IdcApplication, error)

CreateIdcApplication creates a new Redshift IDC application.

func (*InMemoryBackend) CreateIntegration

func (b *InMemoryBackend) CreateIntegration(
	integrationName, sourceArn, targetArn, kmsKeyID, description string,
) (*Integration, error)

CreateIntegration creates a new zero-ETL integration.

func (*InMemoryBackend) CreateNamespace

func (b *InMemoryBackend) CreateNamespace(
	namespaceName, adminUsername, dbName, kmsKeyID string,
	iamRoles, logExports []string,
) (*Namespace, error)

CreateNamespace creates a new Redshift Serverless namespace.

func (*InMemoryBackend) CreateScheduledAction

func (b *InMemoryBackend) CreateScheduledAction(
	name, schedule, iamRole, description, targetAction string,
) (*ScheduledAction, error)

CreateScheduledAction creates a new Redshift scheduled action.

func (*InMemoryBackend) CreateServerlessScheduledAction

func (b *InMemoryBackend) CreateServerlessScheduledAction(
	scheduledActionName, namespaceName, schedule, targetAction string,
	startTime, endTime time.Time,
) (*ServerlessScheduledAction, error)

CreateServerlessScheduledAction creates a serverless scheduled action.

func (*InMemoryBackend) CreateServerlessSnapshot

func (b *InMemoryBackend) CreateServerlessSnapshot(
	snapshotName, namespaceName string,
) (*ServerlessSnapshot, error)

CreateServerlessSnapshot creates a snapshot of a serverless namespace.

func (*InMemoryBackend) CreateServerlessUsageLimit

func (b *InMemoryBackend) CreateServerlessUsageLimit(
	resourceArn, usageType, period, breachAction string,
	amount int64,
) (*ServerlessUsageLimit, error)

CreateServerlessUsageLimit creates a serverless usage limit.

func (*InMemoryBackend) CreateSnapshotCopyGrant

func (b *InMemoryBackend) CreateSnapshotCopyGrant(
	name, kmsKeyID string,
	tagMap map[string]string,
) (*SnapshotCopyGrant, error)

CreateSnapshotCopyGrant creates a KMS key grant used for cross-region snapshot copy.

func (*InMemoryBackend) CreateSnapshotSchedule

func (b *InMemoryBackend) CreateSnapshotSchedule(
	scheduleID, description string,
	definitions []string,
	tagMap map[string]string,
) (*SnapshotSchedule, error)

CreateSnapshotSchedule creates a new snapshot schedule.

func (*InMemoryBackend) CreateTableRestoreStatus

func (b *InMemoryBackend) CreateTableRestoreStatus(
	clusterID, _, sourceDatabaseName, sourceTableName, targetDatabaseName, targetTableName string,
) (*TableRestoreStatus, error)

CreateTableRestoreStatus creates a table restore status entry.

func (*InMemoryBackend) CreateTags

func (b *InMemoryBackend) CreateTags(clusterID string, kv map[string]string) error

CreateTags adds or updates tags on the specified cluster.

func (*InMemoryBackend) CreateUsageLimit

func (b *InMemoryBackend) CreateUsageLimit(
	clusterID, featureType, limitType, breachAction string,
	amount int64,
	tagMap map[string]string,
) (*UsageLimit, error)

CreateUsageLimit creates a new usage limit for a cluster feature.

func (*InMemoryBackend) CreateWorkgroup

func (b *InMemoryBackend) CreateWorkgroup(
	workgroupName, namespaceName string,
	baseCapacity int,
	subnetIDs, securityGroupIDs []string,
) (*Workgroup, error)

CreateWorkgroup creates a new Redshift Serverless workgroup.

func (*InMemoryBackend) DeauthorizeDataShare

func (b *InMemoryBackend) DeauthorizeDataShare(dataShareArn, consumerIdentifier string) (*DataShare, error)

DeauthorizeDataShare sets the association status to DEAUTHORIZED for the given consumer.

func (*InMemoryBackend) DeleteAuthenticationProfile

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

DeleteAuthenticationProfile deletes the named authentication profile.

func (*InMemoryBackend) DeleteCluster

func (b *InMemoryBackend) DeleteCluster(id string) (*Cluster, error)

DeleteCluster removes the cluster with the given identifier.

func (*InMemoryBackend) DeleteClusterParameterGroup

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

DeleteClusterParameterGroup removes a cluster parameter group.

func (*InMemoryBackend) DeleteClusterSecurityGroup

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

DeleteClusterSecurityGroup removes a cluster security group.

func (*InMemoryBackend) DeleteClusterSnapshot

func (b *InMemoryBackend) DeleteClusterSnapshot(snapshotID string) (*Snapshot, error)

DeleteClusterSnapshot removes a cluster snapshot.

func (*InMemoryBackend) DeleteClusterSubnetGroup

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

DeleteClusterSubnetGroup removes a cluster subnet group.

func (*InMemoryBackend) DeleteCustomDomainAssociation

func (b *InMemoryBackend) DeleteCustomDomainAssociation(clusterID, customDomainName string) error

DeleteCustomDomainAssociation removes the custom domain association for a cluster.

func (*InMemoryBackend) DeleteEndpointAccess

func (b *InMemoryBackend) DeleteEndpointAccess(endpointName string) (*EndpointAccess, error)

DeleteEndpointAccess deletes the named endpoint access entry.

func (*InMemoryBackend) DeleteEventSubscription

func (b *InMemoryBackend) DeleteEventSubscription(subscriptionName string) error

DeleteEventSubscription removes an event subscription.

func (*InMemoryBackend) DeleteHsmClientCertificate

func (b *InMemoryBackend) DeleteHsmClientCertificate(id string) error

DeleteHsmClientCertificate deletes the named HSM client certificate.

func (*InMemoryBackend) DeleteHsmConfiguration

func (b *InMemoryBackend) DeleteHsmConfiguration(id string) error

DeleteHsmConfiguration deletes the named HSM configuration.

func (*InMemoryBackend) DeleteIdcApplication

func (b *InMemoryBackend) DeleteIdcApplication(appArn string) error

DeleteIdcApplication deletes the named IDC application.

func (*InMemoryBackend) DeleteIntegration

func (b *InMemoryBackend) DeleteIntegration(integrationArn string) (*Integration, error)

DeleteIntegration deletes the named integration.

func (*InMemoryBackend) DeleteNamespace

func (b *InMemoryBackend) DeleteNamespace(namespaceName string) (*Namespace, error)

DeleteNamespace deletes a Redshift Serverless namespace.

func (*InMemoryBackend) DeletePartner

func (b *InMemoryBackend) DeletePartner(_, clusterID, databaseName, partnerName string) error

DeletePartner removes a partner integration from the specified cluster database.

func (*InMemoryBackend) DeleteResourcePolicy

func (b *InMemoryBackend) DeleteResourcePolicy(resourceArn string) error

DeleteResourcePolicy deletes the resource policy for the given ARN.

func (*InMemoryBackend) DeleteScheduledAction

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

DeleteScheduledAction deletes the named scheduled action.

func (*InMemoryBackend) DeleteServerlessScheduledAction

func (b *InMemoryBackend) DeleteServerlessScheduledAction(
	scheduledActionName string,
) (*ServerlessScheduledAction, error)

DeleteServerlessScheduledAction deletes a serverless scheduled action.

func (*InMemoryBackend) DeleteServerlessSnapshot

func (b *InMemoryBackend) DeleteServerlessSnapshot(
	snapshotName string,
) (*ServerlessSnapshot, error)

DeleteServerlessSnapshot deletes a serverless snapshot.

func (*InMemoryBackend) DeleteServerlessUsageLimit

func (b *InMemoryBackend) DeleteServerlessUsageLimit(
	usageLimitID string,
) (*ServerlessUsageLimit, error)

DeleteServerlessUsageLimit deletes a serverless usage limit.

func (*InMemoryBackend) DeleteSnapshotCopyGrant

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

DeleteSnapshotCopyGrant deletes the named snapshot copy grant.

func (*InMemoryBackend) DeleteSnapshotSchedule

func (b *InMemoryBackend) DeleteSnapshotSchedule(scheduleID string) error

DeleteSnapshotSchedule deletes the named snapshot schedule.

func (*InMemoryBackend) DeleteTags

func (b *InMemoryBackend) DeleteTags(clusterID string, keys []string) error

DeleteTags removes tag keys from the specified cluster.

func (*InMemoryBackend) DeleteUsageLimit

func (b *InMemoryBackend) DeleteUsageLimit(usageLimitID string) error

DeleteUsageLimit deletes the usage limit with the given ID.

func (*InMemoryBackend) DeleteWorkgroup

func (b *InMemoryBackend) DeleteWorkgroup(workgroupName string) (*Workgroup, error)

DeleteWorkgroup deletes a Redshift Serverless workgroup.

func (*InMemoryBackend) DescribeAuthenticationProfiles

func (b *InMemoryBackend) DescribeAuthenticationProfiles(name string) ([]AuthenticationProfile, error)

DescribeAuthenticationProfiles returns authentication profiles, optionally filtered by name.

func (*InMemoryBackend) DescribeClusterParameterGroups

func (b *InMemoryBackend) DescribeClusterParameterGroups(name string) ([]ClusterParameterGroup, error)

DescribeClusterParameterGroups returns all parameter groups, or a specific one if name is non-empty.

func (*InMemoryBackend) DescribeClusterParameters

func (b *InMemoryBackend) DescribeClusterParameters(groupName string) ([]ClusterParameter, error)

DescribeClusterParameters returns the parameters for a specific parameter group.

func (*InMemoryBackend) DescribeClusterSecurityGroups

func (b *InMemoryBackend) DescribeClusterSecurityGroups(name string) ([]ClusterSecurityGroup, error)

DescribeClusterSecurityGroups returns all security groups, or a specific one if name is non-empty.

func (*InMemoryBackend) DescribeClusterSnapshots

func (b *InMemoryBackend) DescribeClusterSnapshots(snapshotID, clusterID, snapshotType string) ([]Snapshot, error)

DescribeClusterSnapshots returns snapshots, optionally filtered by snapshotID, clusterID, or snapshotType ("manual" or "automated"). An empty snapshotType matches all types.

func (*InMemoryBackend) DescribeClusterSubnetGroups

func (b *InMemoryBackend) DescribeClusterSubnetGroups(name string) ([]ClusterSubnetGroup, error)

DescribeClusterSubnetGroups returns all subnet groups, or a specific one if name is non-empty.

func (*InMemoryBackend) DescribeClusters

func (b *InMemoryBackend) DescribeClusters(id, marker string, maxRecords int) ([]Cluster, string, error)

DescribeClusters returns clusters. If id is non-empty, returns only that cluster. When marker and maxRecords are used, returns a page of results sorted by ClusterIdentifier.

func (*InMemoryBackend) DescribeCustomDomainAssociations

func (b *InMemoryBackend) DescribeCustomDomainAssociations(
	clusterID, customDomainName string,
) ([]CustomDomainAssociation, error)

DescribeCustomDomainAssociations returns custom domain associations, optionally filtered.

func (*InMemoryBackend) DescribeDataShares

func (b *InMemoryBackend) DescribeDataShares(dataShareArn string) ([]DataShare, error)

DescribeDataShares returns data shares, optionally filtered by ARN.

func (*InMemoryBackend) DescribeDataSharesForConsumer

func (b *InMemoryBackend) DescribeDataSharesForConsumer(consumerArn, status string) ([]DataShare, error)

DescribeDataSharesForConsumer returns data shares with a matching consumer association.

func (*InMemoryBackend) DescribeDataSharesForProducer

func (b *InMemoryBackend) DescribeDataSharesForProducer(producerArn, status string) ([]DataShare, error)

DescribeDataSharesForProducer returns data shares matching a producer ARN.

func (*InMemoryBackend) DescribeDefaultClusterParameters

func (b *InMemoryBackend) DescribeDefaultClusterParameters(family string) ([]ClusterParameter, error)

DescribeDefaultClusterParameters returns the default parameters for a given parameter group family.

func (*InMemoryBackend) DescribeEndpointAccess

func (b *InMemoryBackend) DescribeEndpointAccess(
	clusterID, endpointName string,
) ([]EndpointAccess, error)

DescribeEndpointAccess returns endpoint accesses, optionally filtered by cluster and endpoint name.

func (*InMemoryBackend) DescribeEndpointAuthorization

func (b *InMemoryBackend) DescribeEndpointAuthorization(
	clusterID, account string,
	grantee bool,
) ([]EndpointAuthorization, error)

DescribeEndpointAuthorization returns endpoint authorizations filtered by cluster and account.

func (*InMemoryBackend) DescribeEventSubscriptions

func (b *InMemoryBackend) DescribeEventSubscriptions(subscriptionName string) ([]EventSubscription, error)

DescribeEventSubscriptions returns event subscriptions, optionally filtered by name.

func (*InMemoryBackend) DescribeEvents

func (b *InMemoryBackend) DescribeEvents(sourceIdentifier, sourceType string) ([]Event, error)

DescribeEvents returns events for a Redshift resource. This in-memory implementation returns an empty list since events are not tracked.

func (*InMemoryBackend) DescribeHsmClientCertificates

func (b *InMemoryBackend) DescribeHsmClientCertificates(id string) ([]HsmClientCertificate, error)

DescribeHsmClientCertificates returns HSM client certificates, optionally filtered by identifier.

func (*InMemoryBackend) DescribeHsmConfigurations

func (b *InMemoryBackend) DescribeHsmConfigurations(id string) ([]HsmConfiguration, error)

DescribeHsmConfigurations returns HSM configurations, optionally filtered by identifier.

func (*InMemoryBackend) DescribeIdcApplications

func (b *InMemoryBackend) DescribeIdcApplications(appArn string) ([]IdcApplication, error)

DescribeIdcApplications returns IDC applications, optionally filtered by ARN.

func (*InMemoryBackend) DescribeIntegrations

func (b *InMemoryBackend) DescribeIntegrations(integrationArn string) ([]Integration, error)

DescribeIntegrations returns integrations, optionally filtered by ARN.

func (*InMemoryBackend) DescribePartners

func (b *InMemoryBackend) DescribePartners(_, clusterID, databaseName, partnerName string) ([]Partner, error)

DescribePartners returns partner integrations filtered by cluster, database, or partner name.

func (*InMemoryBackend) DescribeReservedNodeExchangeStatus

func (b *InMemoryBackend) DescribeReservedNodeExchangeStatus(reservedNodeID string) (string, error)

DescribeReservedNodeExchangeStatus returns the exchange status for a reserved node. In this in-memory implementation it returns a placeholder active status.

func (*InMemoryBackend) DescribeReservedNodeOfferings

func (b *InMemoryBackend) DescribeReservedNodeOfferings(offeringID string) ([]ReservedNodeOffering, error)

DescribeReservedNodeOfferings returns available reserved node offerings, optionally filtered by offeringID.

func (*InMemoryBackend) DescribeReservedNodes

func (b *InMemoryBackend) DescribeReservedNodes(reservedNodeID string) ([]ReservedNode, error)

DescribeReservedNodes returns reserved nodes, optionally filtered by reservedNodeID.

func (*InMemoryBackend) DescribeResize

func (b *InMemoryBackend) DescribeResize(clusterID string) (*ResizeProgress, error)

DescribeResize returns the active resize progress for a cluster.

func (*InMemoryBackend) DescribeScheduledActions

func (b *InMemoryBackend) DescribeScheduledActions(name string) ([]ScheduledAction, error)

DescribeScheduledActions returns scheduled actions, optionally filtered by name.

func (*InMemoryBackend) DescribeSnapshotCopyGrants

func (b *InMemoryBackend) DescribeSnapshotCopyGrants(name string) ([]SnapshotCopyGrant, error)

DescribeSnapshotCopyGrants returns snapshot copy grants, optionally filtered by name.

func (*InMemoryBackend) DescribeSnapshotSchedules

func (b *InMemoryBackend) DescribeSnapshotSchedules(scheduleID string) ([]SnapshotSchedule, error)

DescribeSnapshotSchedules returns snapshot schedules, optionally filtered by identifier.

func (*InMemoryBackend) DescribeTableRestoreStatus

func (b *InMemoryBackend) DescribeTableRestoreStatus(clusterID string) ([]TableRestoreStatus, error)

DescribeTableRestoreStatus returns table restore status records for a cluster.

func (*InMemoryBackend) DescribeTags

func (b *InMemoryBackend) DescribeTags() map[string]map[string]string

DescribeTags returns all tags across all clusters.

func (*InMemoryBackend) DescribeUsageLimits

func (b *InMemoryBackend) DescribeUsageLimits(clusterID, featureType string) ([]UsageLimit, error)

DescribeUsageLimits returns usage limits, optionally filtered by cluster and feature type.

func (*InMemoryBackend) DisableLogging

func (b *InMemoryBackend) DisableLogging(clusterID string) (*LoggingStatus, error)

DisableLogging disables audit logging for the specified cluster.

func (*InMemoryBackend) DisableSnapshotCopy

func (b *InMemoryBackend) DisableSnapshotCopy(clusterID string) (*Cluster, error)

DisableSnapshotCopy disables cross-region snapshot copy for a cluster.

func (*InMemoryBackend) DisassociateDataShareConsumer

func (b *InMemoryBackend) DisassociateDataShareConsumer(
	dataShareArn, consumerArn, _ string,
	_ bool,
) (*DataShare, error)

DisassociateDataShareConsumer removes the consumer association from a data share.

func (*InMemoryBackend) EnableLogging

func (b *InMemoryBackend) EnableLogging(clusterID, bucketName, s3KeyPrefix string) (*LoggingStatus, error)

EnableLogging enables audit logging for the specified cluster.

func (*InMemoryBackend) EnableSnapshotCopy

func (b *InMemoryBackend) EnableSnapshotCopy(
	clusterID, destinationRegion, grantName string,
	retentionPeriod int,
) (*Cluster, error)

EnableSnapshotCopy enables cross-region snapshot copy for a cluster.

func (*InMemoryBackend) FailoverPrimaryCompute

func (b *InMemoryBackend) FailoverPrimaryCompute(clusterID string) (*Cluster, error)

FailoverPrimaryCompute simulates a primary compute failover by updating the cluster status.

func (*InMemoryBackend) GetClusterCredentials

func (b *InMemoryBackend) GetClusterCredentials(
	clusterID, dbUser string,
	_ bool,
) (*ClusterCredentials, error)

GetClusterCredentials generates temporary credentials for a cluster user.

func (*InMemoryBackend) GetClusterCredentialsWithIAM

func (b *InMemoryBackend) GetClusterCredentialsWithIAM(clusterID, _ string) (*ClusterCredentials, error)

GetClusterCredentialsWithIAM returns temporary cluster credentials including an IAM role.

func (*InMemoryBackend) GetCredentials

func (b *InMemoryBackend) GetCredentials(
	workgroupName, dbName string,
) (string, string, string, error)

GetCredentials returns temporary credentials for a serverless workgroup. Returns (dbUser, dbPassword, expiry, error).

func (*InMemoryBackend) GetNamespace

func (b *InMemoryBackend) GetNamespace(namespaceName string) (*Namespace, error)

GetNamespace returns a Redshift Serverless namespace by name.

func (*InMemoryBackend) GetReservedNodeExchangeOfferings

func (b *InMemoryBackend) GetReservedNodeExchangeOfferings(reservedNodeID string) ([]ReservedNodeOffering, error)

GetReservedNodeExchangeOfferings returns offerings available for exchange of a reserved node.

func (*InMemoryBackend) GetResourcePolicy

func (b *InMemoryBackend) GetResourcePolicy(resourceArn string) (*ResourcePolicy, error)

GetResourcePolicy returns the resource policy for the given resource ARN.

func (*InMemoryBackend) GetServerlessScheduledAction

func (b *InMemoryBackend) GetServerlessScheduledAction(
	scheduledActionName string,
) (*ServerlessScheduledAction, error)

GetServerlessScheduledAction returns a serverless scheduled action by name.

func (*InMemoryBackend) GetServerlessSnapshot

func (b *InMemoryBackend) GetServerlessSnapshot(snapshotName string) (*ServerlessSnapshot, error)

GetServerlessSnapshot returns a serverless snapshot by name.

func (*InMemoryBackend) GetServerlessUsageLimit

func (b *InMemoryBackend) GetServerlessUsageLimit(
	usageLimitID string,
) (*ServerlessUsageLimit, error)

GetServerlessUsageLimit returns a serverless usage limit by ID.

func (*InMemoryBackend) GetWorkgroup

func (b *InMemoryBackend) GetWorkgroup(workgroupName string) (*Workgroup, error)

GetWorkgroup returns a Redshift Serverless workgroup by name.

func (*InMemoryBackend) ListNamespaces

func (b *InMemoryBackend) ListNamespaces(maxResults int, nextToken string) ([]*Namespace, string)

ListNamespaces returns all namespaces with pagination.

func (*InMemoryBackend) ListServerlessScheduledActions

func (b *InMemoryBackend) ListServerlessScheduledActions(
	namespaceName string,
	maxResults int,
	nextToken string,
) ([]*ServerlessScheduledAction, string)

ListServerlessScheduledActions returns all serverless scheduled actions.

func (*InMemoryBackend) ListServerlessSnapshots

func (b *InMemoryBackend) ListServerlessSnapshots(
	namespaceName string,
	maxResults int,
	nextToken string,
) ([]*ServerlessSnapshot, string)

ListServerlessSnapshots returns snapshots, optionally filtered by namespace name.

func (*InMemoryBackend) ListServerlessUsageLimits

func (b *InMemoryBackend) ListServerlessUsageLimits(
	resourceArn string,
	maxResults int,
	nextToken string,
) ([]*ServerlessUsageLimit, string)

ListServerlessUsageLimits returns all serverless usage limits.

func (*InMemoryBackend) ListWorkgroups

func (b *InMemoryBackend) ListWorkgroups(maxResults int, nextToken string) ([]*Workgroup, string)

ListWorkgroups returns all workgroups with pagination.

func (*InMemoryBackend) ModifyAuthenticationProfile

func (b *InMemoryBackend) ModifyAuthenticationProfile(name, content string) (*AuthenticationProfile, error)

ModifyAuthenticationProfile updates the content of an authentication profile.

func (*InMemoryBackend) ModifyCluster

func (b *InMemoryBackend) ModifyCluster(
	id string,
	nodeType string,
	numberOfNodes int,
	_ string,
	encrypted *bool,
	enhancedVpcRouting *bool,
	applyImmediately bool,
) (*Cluster, error)

ModifyCluster modifies a cluster's attributes. When applyImmediately is false, changes are stored in PendingModifiedValues and returned without being applied to the live cluster.

encrypted and enhancedVpcRouting are tri-state (nil means "not specified, leave unchanged"): real ModifyClusterInput.Encrypted/EnhancedVpcRouting are *bool, and the SDK can explicitly send "false" to disable either setting (e.g. to decrypt a cluster). A plain bool cannot distinguish "not sent" from "explicitly false", which previously made it impossible to ever turn either setting off via ModifyCluster.

func (*InMemoryBackend) ModifyClusterIamRoles

func (b *InMemoryBackend) ModifyClusterIamRoles(id string, addRoles, removeRoles []string) (*Cluster, error)

ModifyClusterIamRoles adds and removes IAM roles on a cluster.

func (*InMemoryBackend) ModifyClusterMaintenance

func (b *InMemoryBackend) ModifyClusterMaintenance(
	id, maintenanceTrack string,
	_ bool,
) (*Cluster, error)

ModifyClusterMaintenance modifies the maintenance settings of a cluster.

func (*InMemoryBackend) ModifyClusterParameterGroup

func (b *InMemoryBackend) ModifyClusterParameterGroup(
	groupName string,
	params []ClusterParameter,
) (*ClusterParameterGroup, error)

ModifyClusterParameterGroup updates parameters within a parameter group.

func (*InMemoryBackend) ModifyClusterSnapshot

func (b *InMemoryBackend) ModifyClusterSnapshot(snapshotID string, retentionPeriod int, _ bool) (*Snapshot, error)

ModifyClusterSnapshot updates the manual retention period of a snapshot.

func (*InMemoryBackend) ModifyClusterSnapshotSchedule

func (b *InMemoryBackend) ModifyClusterSnapshotSchedule(clusterID, scheduleID string, disassociate bool) error

ModifyClusterSnapshotSchedule associates or disassociates a snapshot schedule with a cluster.

func (*InMemoryBackend) ModifyClusterSubnetGroup

func (b *InMemoryBackend) ModifyClusterSubnetGroup(
	name, description string,
	subnetIDs []string,
) (*ClusterSubnetGroup, error)

ModifyClusterSubnetGroup updates the description or subnets of a cluster subnet group.

func (*InMemoryBackend) ModifyCustomDomainAssociation

func (b *InMemoryBackend) ModifyCustomDomainAssociation(
	clusterID, customDomainName, customDomainCertificateArn string,
) (*CustomDomainAssociation, error)

ModifyCustomDomainAssociation updates the certificate ARN for an existing custom domain.

func (*InMemoryBackend) ModifyEndpointAccess

func (b *InMemoryBackend) ModifyEndpointAccess(endpointName, vpcID string) (*EndpointAccess, error)

ModifyEndpointAccess updates the VPC security groups for an endpoint.

func (*InMemoryBackend) ModifyEventSubscription

func (b *InMemoryBackend) ModifyEventSubscription(
	subscriptionName, snsTopicArn, sourceType, severity string,
	sourceIDs, eventCategories []string,
	enabled *bool,
) (*EventSubscription, error)

ModifyEventSubscription modifies an existing event subscription.

func (*InMemoryBackend) ModifyIdcApplication

func (b *InMemoryBackend) ModifyIdcApplication(
	appArn, idcDisplayName, iamRoleArn string,
) (*IdcApplication, error)

ModifyIdcApplication updates the display name and IAM role of an IDC application.

func (*InMemoryBackend) ModifyIntegration

func (b *InMemoryBackend) ModifyIntegration(integrationArn, description string) (*Integration, error)

ModifyIntegration updates the description of an integration.

func (*InMemoryBackend) ModifyScheduledAction

func (b *InMemoryBackend) ModifyScheduledAction(
	name, schedule, iamRole, description string,
) (*ScheduledAction, error)

ModifyScheduledAction updates a scheduled action's schedule, IAM role, or description.

func (*InMemoryBackend) ModifySnapshotCopyRetentionPeriod

func (b *InMemoryBackend) ModifySnapshotCopyRetentionPeriod(clusterID string, retentionPeriod int) (*Cluster, error)

ModifySnapshotCopyRetentionPeriod modifies the retention period for cross-region snapshot copy.

func (*InMemoryBackend) ModifySnapshotSchedule

func (b *InMemoryBackend) ModifySnapshotSchedule(scheduleID string, definitions []string) (*SnapshotSchedule, error)

ModifySnapshotSchedule updates the schedule definitions for an existing snapshot schedule.

func (*InMemoryBackend) ModifyUsageLimit

func (b *InMemoryBackend) ModifyUsageLimit(usageLimitID, breachAction string, amount int64) (*UsageLimit, error)

ModifyUsageLimit modifies the amount and/or breach action of a usage limit.

func (*InMemoryBackend) PauseCluster

func (b *InMemoryBackend) PauseCluster(id string) (*Cluster, error)

PauseCluster pauses the specified cluster.

func (*InMemoryBackend) PurchaseReservedNodeOffering

func (b *InMemoryBackend) PurchaseReservedNodeOffering(
	offeringID, reservedNodeID string,
	nodeCount int,
) (*ReservedNode, error)

PurchaseReservedNodeOffering creates a new reserved node from an offering.

func (*InMemoryBackend) PutResourcePolicy

func (b *InMemoryBackend) PutResourcePolicy(resourceArn, policy string) (*ResourcePolicy, error)

PutResourcePolicy creates or replaces a resource policy for the given ARN.

func (*InMemoryBackend) RebootCluster

func (b *InMemoryBackend) RebootCluster(id string) (*Cluster, error)

RebootCluster initiates a reboot of the specified cluster.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the AWS region this backend is configured for.

func (*InMemoryBackend) RejectDataShare

func (b *InMemoryBackend) RejectDataShare(dataShareArn string) (*DataShare, error)

RejectDataShare marks all associations as REJECTED and disables public access.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all backend state while preserving configuration.

func (*InMemoryBackend) ResetClusterParameterGroup

func (b *InMemoryBackend) ResetClusterParameterGroup(
	groupName string,
	resetAllParameters bool,
	params []ClusterParameter,
) (*ClusterParameterGroup, error)

ResetClusterParameterGroup resets all or specific parameters to their default values.

func (*InMemoryBackend) ResizeCluster

func (b *InMemoryBackend) ResizeCluster(
	id, nodeType, clusterType string,
	numberOfNodes int,
	_ bool,
) (*Cluster, error)

ResizeCluster initiates a resize of the specified cluster.

func (*InMemoryBackend) Restore

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

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) RestoreFromClusterSnapshot

func (b *InMemoryBackend) RestoreFromClusterSnapshot(clusterID, snapshotID string) (*Cluster, error)

RestoreFromClusterSnapshot creates a new cluster from an existing snapshot.

func (*InMemoryBackend) ResumeCluster

func (b *InMemoryBackend) ResumeCluster(id string) (*Cluster, error)

ResumeCluster resumes a paused cluster.

func (*InMemoryBackend) RevokeClusterSecurityGroupIngress

func (b *InMemoryBackend) RevokeClusterSecurityGroupIngress(
	groupName, cidrIP, ec2GroupName, ec2GroupOwnerID string,
) (*ClusterSecurityGroup, error)

RevokeClusterSecurityGroupIngress removes an ingress rule from a cluster security group.

func (*InMemoryBackend) RevokeEndpointAccess

func (b *InMemoryBackend) RevokeEndpointAccess(
	clusterID, account string,
	_ []string,
	force bool,
) (*EndpointAuthorization, error)

RevokeEndpointAccess revokes endpoint authorization for a cluster and account.

func (*InMemoryBackend) RevokeSnapshotAccess

func (b *InMemoryBackend) RevokeSnapshotAccess(snapshotID, accountWithRestoreAccess string) (*Snapshot, error)

RevokeSnapshotAccess removes restore access for the given account from a snapshot.

func (*InMemoryBackend) RotateEncryptionKey

func (b *InMemoryBackend) RotateEncryptionKey(id string) (*Cluster, error)

RotateEncryptionKey rotates the encryption key for the specified cluster.

func (*InMemoryBackend) SetDNSRegistrar

func (b *InMemoryBackend) SetDNSRegistrar(dns DNSRegistrar)

SetDNSRegistrar wires a DNS server so Redshift cluster hostnames are auto-registered.

func (*InMemoryBackend) Snapshot

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

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) StartReconciler

func (b *InMemoryBackend) StartReconciler(ctx context.Context)

StartReconciler starts the managed background reconciler that advances cluster lifecycle transitions (creating→available, modifying→available, deleting→gone). It replaces the previous per-cluster unmanaged goroutine with a single goroutine owning a stop channel and WaitGroup, so it can be cancelled deterministically via ctx or StopReconciler. Calling it while already running is a no-op.

ctx originates from the service framework's background-worker lifecycle, so no context.Background() is introduced here.

func (*InMemoryBackend) StopReconciler

func (b *InMemoryBackend) StopReconciler()

StopReconciler signals the reconciler to stop and blocks until the goroutine has exited, guaranteeing no leaked goroutine survives shutdown. It is idempotent.

func (*InMemoryBackend) UpdateNamespace

func (b *InMemoryBackend) UpdateNamespace(
	namespaceName, adminUsername, dbName, kmsKeyID string,
	iamRoles, logExports []string,
) (*Namespace, error)

UpdateNamespace updates a Redshift Serverless namespace.

func (*InMemoryBackend) UpdatePartnerStatus

func (b *InMemoryBackend) UpdatePartnerStatus(
	_, clusterID, databaseName, partnerName, status, statusMessage string,
) (*Partner, error)

UpdatePartnerStatus updates the status and status message of a partner integration.

func (*InMemoryBackend) UpdateServerlessScheduledAction

func (b *InMemoryBackend) UpdateServerlessScheduledAction(
	scheduledActionName, schedule, targetAction string,
	startTime, endTime time.Time,
) (*ServerlessScheduledAction, error)

UpdateServerlessScheduledAction updates a serverless scheduled action.

func (*InMemoryBackend) UpdateServerlessUsageLimit

func (b *InMemoryBackend) UpdateServerlessUsageLimit(
	usageLimitID, breachAction string,
	amount int64,
) (*ServerlessUsageLimit, error)

UpdateServerlessUsageLimit updates a serverless usage limit.

func (*InMemoryBackend) UpdateWorkgroup

func (b *InMemoryBackend) UpdateWorkgroup(
	workgroupName string,
	baseCapacity int,
	subnetIDs, securityGroupIDs []string,
) (*Workgroup, error)

UpdateWorkgroup updates a Redshift Serverless workgroup.

type Integration

type Integration struct {
	IntegrationArn   string `json:"integrationArn"`
	IntegrationName  string `json:"integrationName"`
	SourceArn        string `json:"sourceArn"`
	TargetArn        string `json:"targetArn"`
	Status           string `json:"status"`
	Description      string `json:"description"`
	AdditionalEncKey string `json:"additionalEncryptionContext,omitempty"`
	KmsKeyID         string `json:"kmsKeyId,omitempty"`
}

Integration represents a zero-ETL integration from Redshift.

type LoggingStatus

type LoggingStatus struct {
	LastFailureTime time.Time `json:"lastFailureTime"`
	LastSuccessTime time.Time `json:"lastSuccessTime"`
	BucketName      string    `json:"bucketName"`
	S3KeyPrefix     string    `json:"s3KeyPrefix"`
	LoggingEnabled  bool      `json:"loggingEnabled"`
}

LoggingStatus represents the logging status for a Redshift cluster.

type Namespace

type Namespace struct {
	CreationDate  time.Time `json:"creationDate"`
	NamespaceArn  string    `json:"namespaceArn"`
	NamespaceID   string    `json:"namespaceId"`
	NamespaceName string    `json:"namespaceName"`
	AdminUsername string    `json:"adminUsername,omitempty"`
	DBName        string    `json:"dbName,omitempty"`
	KmsKeyID      string    `json:"kmsKeyId,omitempty"`
	Status        string    `json:"status"`
	IamRoles      []string  `json:"iamRoles,omitempty"`
	LogExports    []string  `json:"logExports,omitempty"`
}

Namespace represents a Redshift Serverless namespace.

type Partner

type Partner struct {
	AccountID         string `json:"accountId"`
	ClusterIdentifier string `json:"clusterIdentifier"`
	DatabaseName      string `json:"databaseName"`
	PartnerName       string `json:"partnerName"`
	Status            string `json:"status"`
	StatusMessage     string `json:"statusMessage"`
}

Partner represents a partner integration for a Redshift cluster.

type Provider

type Provider struct{}

Provider implements service.Provider for Redshift.

func (*Provider) Init

Init initializes the Redshift service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type ReservedNode

type ReservedNode struct {
	StartTime              time.Time `json:"startTime"`
	ReservedNodeID         string    `json:"reservedNodeId"`
	ReservedNodeOfferingID string    `json:"reservedNodeOfferingId"`
	NodeType               string    `json:"nodeType"`
	CurrencyCode           string    `json:"currencyCode"`
	State                  string    `json:"state"`
	OfferingType           string    `json:"offeringType"`
	Duration               int       `json:"duration"`
	FixedPrice             float64   `json:"fixedPrice"`
	UsagePrice             float64   `json:"usagePrice"`
	NodeCount              int       `json:"nodeCount"`
}

ReservedNode represents an in-memory Redshift reserved node.

type ReservedNodeOffering

type ReservedNodeOffering struct {
	ReservedNodeOfferingID   string  `json:"reservedNodeOfferingId"`
	ReservedNodeOfferingType string  `json:"reservedNodeOfferingType"`
	NodeType                 string  `json:"nodeType"`
	CurrencyCode             string  `json:"currencyCode"`
	OfferingType             string  `json:"offeringType"`
	Duration                 int     `json:"duration"`
	FixedPrice               float64 `json:"fixedPrice"`
	UsagePrice               float64 `json:"usagePrice"`
}

ReservedNodeOffering represents an available Redshift reserved node offering.

type ResizeProgress

type ResizeProgress struct {
	TargetNodeType         string   `json:"targetNodeType"`
	TargetClusterType      string   `json:"targetClusterType"`
	Status                 string   `json:"status"`
	Message                string   `json:"message"`
	ResizeType             string   `json:"resizeType"`
	ImportTablesCompleted  []string `json:"importTablesCompleted"`
	ImportTablesInProgress []string `json:"importTablesInProgress"`
	ImportTablesNotStarted []string `json:"importTablesNotStarted"`
	TargetNumberOfNodes    int      `json:"targetNumberOfNodes"`
	AllowCancelResize      bool     `json:"allowCancelResize"`
}

ResizeProgress represents in-progress resize information for a cluster.

type ResourcePolicy

type ResourcePolicy struct {
	ResourceArn string `json:"resourceArn"`
	Policy      string `json:"policy"`
}

ResourcePolicy represents a resource-based policy attached to a Redshift resource.

type ScheduledAction

type ScheduledAction struct {
	ScheduledActionName        string `json:"scheduledActionName"`
	Schedule                   string `json:"schedule"`
	IamRole                    string `json:"iamRole"`
	ScheduledActionDescription string `json:"scheduledActionDescription"`
	State                      string `json:"state"`
	TargetAction               string `json:"targetAction"`
}

ScheduledAction represents a Redshift scheduled action.

type ServerlessHandler

type ServerlessHandler struct {
	Backend *InMemoryBackend
}

ServerlessHandler is a separate Echo handler for Redshift Serverless APIs. The serverless API lives at a different hostname/path prefix than the classic Redshift API, so it is registered as its own Registerable.

func NewServerlessHandler

func NewServerlessHandler(backend *InMemoryBackend) *ServerlessHandler

NewServerlessHandler creates a new Redshift Serverless handler.

func (*ServerlessHandler) ChaosOperations

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

ChaosOperations returns all supported operations.

func (*ServerlessHandler) ChaosRegions

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

ChaosRegions returns the regions for chaos.

func (*ServerlessHandler) ChaosServiceName

func (h *ServerlessHandler) ChaosServiceName() string

ChaosServiceName returns the chaos service name.

func (*ServerlessHandler) ExtractOperation

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

ExtractOperation extracts the operation name from the request. It tries each resource family's matcher in turn (namespace, workgroup, snapshot, usage limit, scheduled action) -- splitting the routing table this way keeps each matcher's cyclomatic complexity small instead of one large combined switch.

func (*ServerlessHandler) ExtractResource

func (h *ServerlessHandler) ExtractResource(_ *echo.Context) string

ExtractResource extracts a resource identifier from the request.

func (*ServerlessHandler) GetSupportedOperations

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

GetSupportedOperations returns the list of supported operations.

func (*ServerlessHandler) Handler

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

Handler returns the Echo handler function.

func (*ServerlessHandler) MatchPriority

func (h *ServerlessHandler) MatchPriority() int

MatchPriority returns the routing priority.

func (*ServerlessHandler) Name

func (h *ServerlessHandler) Name() string

Name returns the service name.

func (*ServerlessHandler) Reset

func (h *ServerlessHandler) Reset()

Reset clears all backend state.

func (*ServerlessHandler) RouteMatcher

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

RouteMatcher returns a function that matches Redshift Serverless requests.

type ServerlessProvider

type ServerlessProvider struct{}

ServerlessProvider implements service.Provider for Redshift Serverless.

func (*ServerlessProvider) Init

Init initializes the Redshift Serverless backend and handler.

func (*ServerlessProvider) Name

func (p *ServerlessProvider) Name() string

Name returns the provider name.

type ServerlessScheduledAction

type ServerlessScheduledAction struct {
	ScheduledActionArn  string    `json:"scheduledActionArn"`
	ScheduledActionName string    `json:"scheduledActionName"`
	NamespaceName       string    `json:"namespaceName"`
	Schedule            string    `json:"schedule"`
	StartTime           time.Time `json:"startTime"`
	EndTime             time.Time `json:"endTime"`
	Status              string    `json:"status"`
	TargetAction        string    `json:"targetAction"`
}

ServerlessScheduledAction represents a serverless scheduled action.

type ServerlessSnapshot

type ServerlessSnapshot struct {
	SnapshotCreateTime        time.Time `json:"snapshotCreateTime"`
	SnapshotArn               string    `json:"snapshotArn"`
	SnapshotName              string    `json:"snapshotName"`
	NamespaceName             string    `json:"namespaceName"`
	NamespaceArn              string    `json:"namespaceArn"`
	Status                    string    `json:"status"`
	AdminUsername             string    `json:"adminUsername,omitempty"`
	AccountsWithRestoreAccess []string  `json:"accountsWithRestoreAccess,omitempty"`
}

ServerlessSnapshot represents a Redshift Serverless namespace snapshot.

type ServerlessUsageLimit

type ServerlessUsageLimit struct {
	UsageLimitArn string `json:"usageLimitArn"`
	UsageLimitID  string `json:"usageLimitId"`
	ResourceArn   string `json:"resourceArn"`
	UsageType     string `json:"usageType"`
	Period        string `json:"period"`
	BreachAction  string `json:"breachAction"`
	Amount        int64  `json:"amount"`
}

ServerlessUsageLimit represents a serverless usage limit.

type Snapshot

type Snapshot struct {
	SnapshotCreateTime            time.Time                  `json:"snapshotCreateTime"`
	SnapshotIdentifier            string                     `json:"snapshotIdentifier"`
	ClusterIdentifier             string                     `json:"clusterIdentifier"`
	SnapshotType                  string                     `json:"snapshotType"`
	Status                        string                     `json:"status"`
	NodeType                      string                     `json:"nodeType,omitempty"`
	DBName                        string                     `json:"dbName,omitempty"`
	MasterUsername                string                     `json:"masterUsername,omitempty"`
	AccountsWithRestoreAccess     []AccountWithRestoreAccess `json:"accountsWithRestoreAccess"`
	ManualSnapshotRetentionPeriod int                        `json:"manualSnapshotRetentionPeriod"`
	NumberOfNodes                 int                        `json:"numberOfNodes,omitempty"`
}

Snapshot represents a Redshift cluster snapshot.

type SnapshotBatchError

type SnapshotBatchError struct {
	SnapshotIdentifier        string `json:"snapshotIdentifier"`
	SnapshotClusterIdentifier string `json:"snapshotClusterIdentifier"`
	FailureCode               string `json:"failureCode"`
	FailureReason             string `json:"failureReason"`
}

SnapshotBatchError represents an error when deleting a snapshot in a batch operation.

type SnapshotCopyConfig

type SnapshotCopyConfig struct {
	DestinationRegion     string `json:"destinationRegion"`
	SnapshotCopyGrantName string `json:"snapshotCopyGrantName"`
	RetentionPeriod       int    `json:"retentionPeriod"`
}

SnapshotCopyConfig holds the cross-region snapshot copy configuration for a cluster.

type SnapshotCopyGrant

type SnapshotCopyGrant struct {
	Tags                  map[string]string `json:"tags"`
	SnapshotCopyGrantName string            `json:"snapshotCopyGrantName"`
	KMSKeyID              string            `json:"kmsKeyId"`
}

SnapshotCopyGrant represents a KMS key grant for cross-region snapshot copy.

type SnapshotSchedule

type SnapshotSchedule struct {
	Tags                map[string]string `json:"tags"`
	ScheduleIdentifier  string            `json:"scheduleIdentifier"`
	Description         string            `json:"description"`
	ScheduleDefinitions []string          `json:"scheduleDefinitions"`
}

SnapshotSchedule represents a snapshot schedule for automated snapshots.

type StorageBackend

type StorageBackend interface {
	// Cluster operations
	CreateCluster(id, nodeType, dbName, masterUser string) (*Cluster, error)
	DeleteCluster(id string) (*Cluster, error)
	DescribeClusters(id, marker string, maxRecords int) ([]Cluster, string, error)
	ModifyCluster(
		id, nodeType string,
		numberOfNodes int,
		masterUserPassword string,
		encrypted, enhancedVpcRouting *bool,
		applyImmediately bool,
	) (*Cluster, error)
	RebootCluster(id string) (*Cluster, error)
	PauseCluster(id string) (*Cluster, error)
	ResumeCluster(id string) (*Cluster, error)
	ResizeCluster(id, nodeType, clusterType string, numberOfNodes int, classic bool) (*Cluster, error)
	RotateEncryptionKey(id string) (*Cluster, error)
	ModifyClusterIamRoles(id string, addRoles, removeRoles []string) (*Cluster, error)
	ModifyClusterMaintenance(id, maintenanceTrack string, deferMaintenance bool) (*Cluster, error)

	// Tag operations
	DescribeTags() map[string]map[string]string
	CreateTags(clusterID string, kv map[string]string) error
	DeleteTags(clusterID string, keys []string) error

	// Parameter group operations
	CreateClusterParameterGroup(name, family, description string) (*ClusterParameterGroup, error)
	DeleteClusterParameterGroup(name string) error
	DescribeClusterParameterGroups(name string) ([]ClusterParameterGroup, error)
	DescribeClusterParameters(groupName string) ([]ClusterParameter, error)
	ModifyClusterParameterGroup(groupName string, params []ClusterParameter) (*ClusterParameterGroup, error)
	ResetClusterParameterGroup(
		groupName string,
		resetAllParameters bool,
		params []ClusterParameter,
	) (*ClusterParameterGroup, error)
	DescribeDefaultClusterParameters(family string) ([]ClusterParameter, error)

	// Reserved node operations
	AcceptReservedNodeExchange(reservedNodeID, targetOfferingID string) (*ReservedNode, error)
	DescribeReservedNodes(reservedNodeID string) ([]ReservedNode, error)
	DescribeReservedNodeOfferings(offeringID string) ([]ReservedNodeOffering, error)
	PurchaseReservedNodeOffering(offeringID, reservedNodeID string, nodeCount int) (*ReservedNode, error)
	DescribeReservedNodeExchangeStatus(reservedNodeID string) (string, error)
	GetReservedNodeExchangeOfferings(reservedNodeID string) ([]ReservedNodeOffering, error)

	// Security group operations
	AuthorizeClusterSecurityGroupIngress(
		groupName, cidrIP, ec2GroupName, ec2GroupOwnerID string,
	) (*ClusterSecurityGroup, error)
	CreateClusterSecurityGroup(name, description string) (*ClusterSecurityGroup, error)
	DeleteClusterSecurityGroup(name string) error
	DescribeClusterSecurityGroups(name string) ([]ClusterSecurityGroup, error)
	RevokeClusterSecurityGroupIngress(
		groupName, cidrIP, ec2GroupName, ec2GroupOwnerID string,
	) (*ClusterSecurityGroup, error)

	// Snapshot operations
	CreateClusterSnapshot(snapshotID, clusterID string) (*Snapshot, error)
	DeleteClusterSnapshot(snapshotID string) (*Snapshot, error)
	DescribeClusterSnapshots(snapshotID, clusterID, snapshotType string) ([]Snapshot, error)
	CopyClusterSnapshot(sourceSnapshotID, destinationSnapshotID string) (*Snapshot, error)
	RestoreFromClusterSnapshot(clusterID, snapshotID string) (*Cluster, error)
	AuthorizeSnapshotAccess(snapshotID, accountWithRestoreAccess string) (*Snapshot, error)
	BatchDeleteClusterSnapshots(identifiers []string) ([]SnapshotBatchError, []string)
	BatchModifyClusterSnapshots(identifiers []string, retentionPeriod int, force bool) ([]SnapshotBatchError, []string)

	// Subnet group operations
	CreateClusterSubnetGroup(name, description, vpcID string, subnetIDs []string) (*ClusterSubnetGroup, error)
	DeleteClusterSubnetGroup(name string) error
	DescribeClusterSubnetGroups(name string) ([]ClusterSubnetGroup, error)
	ModifyClusterSubnetGroup(name, description string, subnetIDs []string) (*ClusterSubnetGroup, error)

	// Endpoint operations
	AuthorizeEndpointAccess(clusterID, grantee string, vpcIDs []string) (*EndpointAuthorization, error)
	DescribeEndpointAuthorization(clusterID, account string, grantee bool) ([]EndpointAuthorization, error)
	RevokeEndpointAccess(clusterID, account string, vpcIDs []string, force bool) (*EndpointAuthorization, error)

	// Data share operations
	AddPartner(accountID, clusterID, databaseName, partnerName string) (*Partner, error)
	AssociateDataShareConsumer(
		dataShareArn, consumerArn, consumerRegion string,
		associateEntireAccount bool,
	) (*DataShare, error)
	AuthorizeDataShare(dataShareArn, consumerIdentifier string) (*DataShare, error)
	DeauthorizeDataShare(dataShareArn, consumerIdentifier string) (*DataShare, error)
	DescribeDataShares(dataShareArn string) ([]DataShare, error)
	DescribeDataSharesForConsumer(consumerArn, status string) ([]DataShare, error)
	DescribeDataSharesForProducer(producerArn, status string) ([]DataShare, error)
	DisassociateDataShareConsumer(
		dataShareArn, consumerArn, consumerRegion string,
		disassociateEntireAccount bool,
	) (*DataShare, error)
	RejectDataShare(dataShareArn string) (*DataShare, error)

	// Partner operations
	DeletePartner(accountID, clusterID, databaseName, partnerName string) error
	DescribePartners(accountID, clusterID, databaseName, partnerName string) ([]Partner, error)
	UpdatePartnerStatus(accountID, clusterID, databaseName, partnerName, status, statusMessage string) (*Partner, error)

	// Resize operations
	CancelResize(clusterID string) (*ResizeProgress, error)
	DescribeResize(clusterID string) (*ResizeProgress, error)

	// Snapshot management
	ModifyClusterSnapshot(snapshotID string, retentionPeriod int, force bool) (*Snapshot, error)
	RevokeSnapshotAccess(snapshotID, accountWithRestoreAccess string) (*Snapshot, error)

	// Credentials
	GetClusterCredentials(clusterID, dbUser string, autoCreate bool) (*ClusterCredentials, error)

	// Logging operations
	EnableLogging(clusterID, bucketName, s3KeyPrefix string) (*LoggingStatus, error)
	DisableLogging(clusterID string) (*LoggingStatus, error)

	// Event operations
	DescribeEvents(sourceIdentifier, sourceType string) ([]Event, error)
	CreateEventSubscription(
		subscriptionName, snsTopicArn, sourceType, severity string,
		sourceIDs, eventCategories []string,
		enabled bool,
	) (*EventSubscription, error)
	DeleteEventSubscription(subscriptionName string) error
	DescribeEventSubscriptions(subscriptionName string) ([]EventSubscription, error)
	ModifyEventSubscription(
		subscriptionName, snsTopicArn, sourceType, severity string,
		sourceIDs, eventCategories []string,
		enabled *bool,
	) (*EventSubscription, error)

	// Seed helpers for tests
	AddReservedNodeInternal(node *ReservedNode)
	AddDataShareInternal(ds *DataShare)
	AddSecurityGroupInternal(sg *ClusterSecurityGroup)
	AddSnapshotInternal(snap *Snapshot)
	AddActiveResizeInternal(clusterID string, resize *ResizeProgress)
	AddParameterGroupInternal(pg *ClusterParameterGroup)
	AddSubnetGroupInternal(sg *ClusterSubnetGroup)

	// Snapshot copy grant operations
	CreateSnapshotCopyGrant(name, kmsKeyID string, tags map[string]string) (*SnapshotCopyGrant, error)
	DeleteSnapshotCopyGrant(name string) error
	DescribeSnapshotCopyGrants(name string) ([]SnapshotCopyGrant, error)

	// Snapshot copy operations
	EnableSnapshotCopy(clusterID, destinationRegion, grantName string, retentionPeriod int) (*Cluster, error)
	DisableSnapshotCopy(clusterID string) (*Cluster, error)
	ModifySnapshotCopyRetentionPeriod(clusterID string, retentionPeriod int) (*Cluster, error)

	// Snapshot schedule operations
	CreateSnapshotSchedule(
		scheduleID, description string,
		definitions []string,
		tags map[string]string,
	) (*SnapshotSchedule, error)
	DeleteSnapshotSchedule(scheduleID string) error
	DescribeSnapshotSchedules(scheduleID string) ([]SnapshotSchedule, error)
	ModifySnapshotSchedule(scheduleID string, definitions []string) (*SnapshotSchedule, error)
	ModifyClusterSnapshotSchedule(clusterID, scheduleID string, disassociate bool) error

	// Usage limit operations
	CreateUsageLimit(
		clusterID, featureType, limitType, breachAction string,
		amount int64,
		tags map[string]string,
	) (*UsageLimit, error)
	DeleteUsageLimit(usageLimitID string) error
	DescribeUsageLimits(clusterID, featureType string) ([]UsageLimit, error)
	ModifyUsageLimit(usageLimitID, breachAction string, amount int64) (*UsageLimit, error)

	// Authentication profile operations
	CreateAuthenticationProfile(name, content string) (*AuthenticationProfile, error)
	DeleteAuthenticationProfile(name string) error
	DescribeAuthenticationProfiles(name string) ([]AuthenticationProfile, error)
	ModifyAuthenticationProfile(name, content string) (*AuthenticationProfile, error)

	// Resource policy operations
	GetResourcePolicy(resourceArn string) (*ResourcePolicy, error)
	PutResourcePolicy(resourceArn, policy string) (*ResourcePolicy, error)
	DeleteResourcePolicy(resourceArn string) error

	// Additional operations
	GetClusterCredentialsWithIAM(clusterID, dbName string) (*ClusterCredentials, error)
	FailoverPrimaryCompute(clusterID string) (*Cluster, error)
	DescribeTableRestoreStatus(clusterID string) ([]TableRestoreStatus, error)
	CreateTableRestoreStatus(
		clusterID, snapshotID, sourceDatabaseName, sourceTableName, targetDatabaseName, targetTableName string,
	) (*TableRestoreStatus, error)

	// HSM client certificate operations
	CreateHsmClientCertificate(id string, tags map[string]string) (*HsmClientCertificate, error)
	DeleteHsmClientCertificate(id string) error
	DescribeHsmClientCertificates(id string) ([]HsmClientCertificate, error)

	// HSM configuration operations
	CreateHsmConfiguration(
		id, description, hsmIPAddress, hsmPartitionName string, tags map[string]string,
	) (*HsmConfiguration, error)
	DeleteHsmConfiguration(id string) error
	DescribeHsmConfigurations(id string) ([]HsmConfiguration, error)

	// Scheduled action operations (regular Redshift)
	CreateScheduledAction(name, schedule, iamRole, description, targetAction string) (*ScheduledAction, error)
	DeleteScheduledAction(name string) error
	DescribeScheduledActions(name string) ([]ScheduledAction, error)
	ModifyScheduledAction(name, schedule, iamRole, description string) (*ScheduledAction, error)

	// Custom domain association operations
	CreateCustomDomainAssociation(
		clusterID, customDomainName, customDomainCertificateArn string,
	) (*CustomDomainAssociation, error)
	DeleteCustomDomainAssociation(clusterID, customDomainName string) error
	DescribeCustomDomainAssociations(clusterID, customDomainName string) ([]CustomDomainAssociation, error)
	ModifyCustomDomainAssociation(
		clusterID, customDomainName, customDomainCertificateArn string,
	) (*CustomDomainAssociation, error)

	// Endpoint access operations
	CreateEndpointAccess(clusterID, endpointName, vpcID string) (*EndpointAccess, error)
	DeleteEndpointAccess(endpointName string) (*EndpointAccess, error)
	DescribeEndpointAccess(clusterID, endpointName string) ([]EndpointAccess, error)
	ModifyEndpointAccess(endpointName, vpcID string) (*EndpointAccess, error)

	// Integration operations
	CreateIntegration(integrationName, sourceArn, targetArn, kmsKeyID, description string) (*Integration, error)
	DeleteIntegration(integrationArn string) (*Integration, error)
	DescribeIntegrations(integrationArn string) ([]Integration, error)
	ModifyIntegration(integrationArn, description string) (*Integration, error)

	// IDC application operations
	CreateIdcApplication(
		appName, idcInstanceArn, idcDisplayName, iamRoleArn string,
	) (*IdcApplication, error)
	DeleteIdcApplication(appArn string) error
	DescribeIdcApplications(appArn string) ([]IdcApplication, error)
	ModifyIdcApplication(appArn, idcDisplayName, iamRoleArn string) (*IdcApplication, error)

	// Lifecycle
	Reset()
	Region() string
	AccountID() string
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error
	SetDNSRegistrar(dns DNSRegistrar)

	// StartReconciler starts the managed background reconciler that advances
	// cluster lifecycle state (creating→available, deleting→gone).
	StartReconciler(ctx context.Context)
	// StopReconciler stops the reconciler and waits for its goroutine to exit.
	StopReconciler()
}

StorageBackend defines the interface for Redshift backend implementations. All mutating methods must be safe for concurrent use.

type Subnet

type Subnet struct {
	SubnetIdentifier string `json:"subnetIdentifier"`
	SubnetStatus     string `json:"subnetStatus"`
}

Subnet represents a single subnet within a cluster subnet group.

type TableRestoreStatus

type TableRestoreStatus struct {
	RequestTime           time.Time `json:"requestTime"`
	TableRestoreRequestID string    `json:"tableRestoreRequestId"`
	ClusterIdentifier     string    `json:"clusterIdentifier"`
	Status                string    `json:"status"`
	Message               string    `json:"message"`
	SourceDatabaseName    string    `json:"sourceDatabaseName"`
	SourceTableName       string    `json:"sourceTableName"`
	TargetDatabaseName    string    `json:"targetDatabaseName"`
	TargetTableName       string    `json:"targetTableName"`
}

TableRestoreStatus represents the status of a table-level restore operation.

type UsageLimit

type UsageLimit struct {
	Tags              map[string]string `json:"tags"`
	UsageLimitID      string            `json:"usageLimitId"`
	ClusterIdentifier string            `json:"clusterIdentifier"`
	FeatureType       string            `json:"featureType"`
	LimitType         string            `json:"limitType"`
	BreachAction      string            `json:"breachAction"`
	Amount            int64             `json:"amount"`
}

UsageLimit represents a usage limit for a Redshift feature.

type Workgroup

type Workgroup struct {
	CreationDate     time.Time         `json:"creationDate"`
	WorkgroupArn     string            `json:"workgroupArn"`
	WorkgroupID      string            `json:"workgroupId"`
	WorkgroupName    string            `json:"workgroupName"`
	NamespaceName    string            `json:"namespaceName"`
	Status           string            `json:"status"`
	Endpoint         WorkgroupEndpoint `json:"endpoint"`
	SubnetIDs        []string          `json:"subnetIds,omitempty"`
	SecurityGroupIDs []string          `json:"securityGroupIds,omitempty"`
	BaseCapacity     int               `json:"baseCapacity"`
}

Workgroup represents a Redshift Serverless workgroup.

type WorkgroupEndpoint

type WorkgroupEndpoint struct {
	Address string `json:"address"`
	Port    int    `json:"port"`
}

WorkgroupEndpoint holds the endpoint address and port.

Jump to

Keyboard shortcuts

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