1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package elasticache 4 5import ( 6 "context" 7 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 8 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 9 "github.com/aws/aws-sdk-go-v2/service/elasticache/types" 10 "github.com/aws/smithy-go/middleware" 11 smithyhttp "github.com/aws/smithy-go/transport/http" 12) 13 14// Deleting a Global datastore is a two-step process: 15// 16// * First, you must 17// DisassociateGlobalReplicationGroup to remove the secondary clusters in the 18// Global datastore. 19// 20// * Once the Global datastore contains only the primary 21// cluster, you can use the DeleteGlobalReplicationGroup API to delete the Global 22// datastore while retainining the primary cluster using 23// RetainPrimaryReplicationGroup=true. 24// 25// Since the Global Datastore has only a 26// primary cluster, you can delete the Global Datastore while retaining the primary 27// by setting RetainPrimaryReplicationGroup=true. The primary cluster is never 28// deleted when deleting a Global Datastore. It can only be deleted when it no 29// longer is associated with any Global Datastore. When you receive a successful 30// response from this operation, Amazon ElastiCache immediately begins deleting the 31// selected resources; you cannot cancel or revert this operation. 32func (c *Client) DeleteGlobalReplicationGroup(ctx context.Context, params *DeleteGlobalReplicationGroupInput, optFns ...func(*Options)) (*DeleteGlobalReplicationGroupOutput, error) { 33 if params == nil { 34 params = &DeleteGlobalReplicationGroupInput{} 35 } 36 37 result, metadata, err := c.invokeOperation(ctx, "DeleteGlobalReplicationGroup", params, optFns, addOperationDeleteGlobalReplicationGroupMiddlewares) 38 if err != nil { 39 return nil, err 40 } 41 42 out := result.(*DeleteGlobalReplicationGroupOutput) 43 out.ResultMetadata = metadata 44 return out, nil 45} 46 47type DeleteGlobalReplicationGroupInput struct { 48 49 // The name of the Global datastore 50 // 51 // This member is required. 52 GlobalReplicationGroupId *string 53 54 // The primary replication group is retained as a standalone replication group. 55 // 56 // This member is required. 57 RetainPrimaryReplicationGroup bool 58} 59 60type DeleteGlobalReplicationGroupOutput struct { 61 62 // Consists of a primary cluster that accepts writes and an associated secondary 63 // cluster that resides in a different AWS region. The secondary cluster accepts 64 // only reads. The primary cluster automatically replicates updates to the 65 // secondary cluster. 66 // 67 // * The GlobalReplicationGroupIdSuffix represents the name of 68 // the Global datastore, which is what you use to associate a secondary cluster. 69 GlobalReplicationGroup *types.GlobalReplicationGroup 70 71 // Metadata pertaining to the operation's result. 72 ResultMetadata middleware.Metadata 73} 74 75func addOperationDeleteGlobalReplicationGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { 76 err = stack.Serialize.Add(&awsAwsquery_serializeOpDeleteGlobalReplicationGroup{}, middleware.After) 77 if err != nil { 78 return err 79 } 80 err = stack.Deserialize.Add(&awsAwsquery_deserializeOpDeleteGlobalReplicationGroup{}, middleware.After) 81 if err != nil { 82 return err 83 } 84 if err = addSetLoggerMiddleware(stack, options); err != nil { 85 return err 86 } 87 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 88 return err 89 } 90 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 91 return err 92 } 93 if err = addResolveEndpointMiddleware(stack, options); err != nil { 94 return err 95 } 96 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 97 return err 98 } 99 if err = addRetryMiddlewares(stack, options); err != nil { 100 return err 101 } 102 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 103 return err 104 } 105 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 106 return err 107 } 108 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 109 return err 110 } 111 if err = addClientUserAgent(stack); err != nil { 112 return err 113 } 114 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 115 return err 116 } 117 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 118 return err 119 } 120 if err = addOpDeleteGlobalReplicationGroupValidationMiddleware(stack); err != nil { 121 return err 122 } 123 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteGlobalReplicationGroup(options.Region), middleware.Before); err != nil { 124 return err 125 } 126 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 127 return err 128 } 129 if err = addResponseErrorMiddleware(stack); err != nil { 130 return err 131 } 132 if err = addRequestResponseLogging(stack, options); err != nil { 133 return err 134 } 135 return nil 136} 137 138func newServiceMetadataMiddleware_opDeleteGlobalReplicationGroup(region string) *awsmiddleware.RegisterServiceMetadata { 139 return &awsmiddleware.RegisterServiceMetadata{ 140 Region: region, 141 ServiceID: ServiceID, 142 SigningName: "elasticache", 143 OperationName: "DeleteGlobalReplicationGroup", 144 } 145} 146