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 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package docdbelastic
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/docdbelastic/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Copies a snapshot of an elastic cluster.
func (c *Client) CopyClusterSnapshot(ctx context.Context, params *CopyClusterSnapshotInput, optFns ...func(*Options)) (*CopyClusterSnapshotOutput, error) {
if params == nil {
params = &CopyClusterSnapshotInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CopyClusterSnapshot", params, optFns, c.addOperationCopyClusterSnapshotMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CopyClusterSnapshotOutput)
out.ResultMetadata = metadata
return out, nil
}
type CopyClusterSnapshotInput struct {
// The Amazon Resource Name (ARN) identifier of the elastic cluster snapshot.
//
// This member is required.
SnapshotArn *string
// The identifier of the new elastic cluster snapshot to create from the source
// cluster snapshot. This parameter is not case sensitive.
//
// Constraints:
//
// - Must contain from 1 to 63 letters, numbers, or hyphens.
//
// - The first character must be a letter.
//
// - Cannot end with a hyphen or contain two consecutive hyphens.
//
// Example: elastic-cluster-snapshot-5
//
// This member is required.
TargetSnapshotName *string
// Set to true to copy all tags from the source cluster snapshot to the target
// elastic cluster snapshot. The default is false .
CopyTags *bool
// The Amazon Web Services KMS key ID for an encrypted elastic cluster snapshot.
// The Amazon Web Services KMS key ID is the Amazon Resource Name (ARN), Amazon Web
// Services KMS key identifier, or the Amazon Web Services KMS key alias for the
// Amazon Web Services KMS encryption key.
//
// If you copy an encrypted elastic cluster snapshot from your Amazon Web Services
// account, you can specify a value for KmsKeyId to encrypt the copy with a new
// Amazon Web ServicesS KMS encryption key. If you don't specify a value for
// KmsKeyId , then the copy of the elastic cluster snapshot is encrypted with the
// same AWS KMS key as the source elastic cluster snapshot.
//
// To copy an encrypted elastic cluster snapshot to another Amazon Web Services
// region, set KmsKeyId to the Amazon Web Services KMS key ID that you want to use
// to encrypt the copy of the elastic cluster snapshot in the destination region.
// Amazon Web Services KMS encryption keys are specific to the Amazon Web Services
// region that they are created in, and you can't use encryption keys from one
// Amazon Web Services region in another Amazon Web Services region.
//
// If you copy an unencrypted elastic cluster snapshot and specify a value for the
// KmsKeyId parameter, an error is returned.
KmsKeyId *string
// The tags to be assigned to the elastic cluster snapshot.
Tags map[string]string
noSmithyDocumentSerde
}
type CopyClusterSnapshotOutput struct {
// Returns information about a specific elastic cluster snapshot.
//
// This member is required.
Snapshot *types.ClusterSnapshot
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCopyClusterSnapshotMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpCopyClusterSnapshot{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCopyClusterSnapshot{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CopyClusterSnapshot"); 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 = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = 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 = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addOpCopyClusterSnapshotValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCopyClusterSnapshot(options.Region), middleware.Before); err != nil {
return err
}
if err = 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_opCopyClusterSnapshot(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CopyClusterSnapshot",
}
}
|