1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package redshift
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/redshift/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Deletes a previously provisioned cluster without its final snapshot being
// created. A successful response from the web service indicates that the request
// was received correctly. Use DescribeClusters to monitor the status of the
// deletion. The delete operation cannot be canceled or reverted once submitted.
// For more information about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
// in the Amazon Redshift Cluster Management Guide. If you want to shut down the
// cluster and retain it for future use, set SkipFinalClusterSnapshot to false and
// specify a name for FinalClusterSnapshotIdentifier. You can later restore this
// snapshot to resume using the cluster. If a final cluster snapshot is requested,
// the status of the cluster will be "final-snapshot" while the snapshot is being
// taken, then it's "deleting" once Amazon Redshift begins deleting the cluster.
// For more information about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
// in the Amazon Redshift Cluster Management Guide.
func (c *Client) DeleteCluster(ctx context.Context, params *DeleteClusterInput, optFns ...func(*Options)) (*DeleteClusterOutput, error) {
if params == nil {
params = &DeleteClusterInput{}
}
result, metadata, err := c.invokeOperation(ctx, "DeleteCluster", params, optFns, c.addOperationDeleteClusterMiddlewares)
if err != nil {
return nil, err
}
out := result.(*DeleteClusterOutput)
out.ResultMetadata = metadata
return out, nil
}
type DeleteClusterInput struct {
// The identifier of the cluster to be deleted. Constraints:
// - Must contain lowercase characters.
// - Must contain from 1 to 63 alphanumeric characters or hyphens.
// - First character must be a letter.
// - Cannot end with a hyphen or contain two consecutive hyphens.
//
// This member is required.
ClusterIdentifier *string
// The identifier of the final snapshot that is to be created immediately before
// deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot
// must be false . Constraints:
// - Must be 1 to 255 alphanumeric characters.
// - First character must be a letter.
// - Cannot end with a hyphen or contain two consecutive hyphens.
FinalClusterSnapshotIdentifier *string
// The number of days that a manual snapshot is retained. If the value is -1, the
// manual snapshot is retained indefinitely. The value must be either -1 or an
// integer between 1 and 3,653. The default value is -1.
FinalClusterSnapshotRetentionPeriod *int32
// Determines whether a final snapshot of the cluster is created before Amazon
// Redshift deletes the cluster. If true , a final cluster snapshot is not created.
// If false , a final cluster snapshot is created before the cluster is deleted.
// The FinalClusterSnapshotIdentifier parameter must be specified if
// SkipFinalClusterSnapshot is false . Default: false
SkipFinalClusterSnapshot *bool
noSmithyDocumentSerde
}
type DeleteClusterOutput struct {
// Describes a cluster.
Cluster *types.Cluster
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationDeleteClusterMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsquery_serializeOpDeleteCluster{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsquery_deserializeOpDeleteCluster{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteCluster"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpDeleteClusterValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteCluster(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opDeleteCluster(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "DeleteCluster",
}
}
|