-
Notifications
You must be signed in to change notification settings - Fork 598
/
api_op_DecreaseReplicaCount.go
165 lines (137 loc) · 5.53 KB
/
api_op_DecreaseReplicaCount.go
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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package elasticache
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// Please also see https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DecreaseReplicaCountMessage
type DecreaseReplicaCountInput struct {
_ struct{} `type:"structure"`
// If True, the number of replica nodes is decreased immediately. ApplyImmediately=False
// is not currently supported.
//
// ApplyImmediately is a required field
ApplyImmediately *bool `type:"boolean" required:"true"`
// The number of read replica nodes you want at the completion of this operation.
// For Redis (cluster mode disabled) replication groups, this is the number
// of replica nodes in the replication group. For Redis (cluster mode enabled)
// replication groups, this is the number of replica nodes in each of the replication
// group's node groups.
//
// The minimum number of replicas in a shard or replication group is:
//
// * Redis (cluster mode disabled) If Multi-AZ with Automatic Failover is
// enabled: 1 If Multi-AZ with Automatic Failover is not enabled: 0
//
// * Redis (cluster mode enabled): 0 (though you will not be able to failover
// to a replica if your primary node fails)
NewReplicaCount *int64 `type:"integer"`
// A list of ConfigureShard objects that can be used to configure each shard
// in a Redis (cluster mode enabled) replication group. The ConfigureShard has
// three members: NewReplicaCount, NodeGroupId, and PreferredAvailabilityZones.
ReplicaConfiguration []ConfigureShard `locationNameList:"ConfigureShard" type:"list"`
// A list of the node ids to remove from the replication group or node group
// (shard).
ReplicasToRemove []string `type:"list"`
// The id of the replication group from which you want to remove replica nodes.
//
// ReplicationGroupId is a required field
ReplicationGroupId *string `type:"string" required:"true"`
}
// String returns the string representation
func (s DecreaseReplicaCountInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DecreaseReplicaCountInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "DecreaseReplicaCountInput"}
if s.ApplyImmediately == nil {
invalidParams.Add(aws.NewErrParamRequired("ApplyImmediately"))
}
if s.ReplicationGroupId == nil {
invalidParams.Add(aws.NewErrParamRequired("ReplicationGroupId"))
}
if s.ReplicaConfiguration != nil {
for i, v := range s.ReplicaConfiguration {
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaConfiguration", i), err.(aws.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Please also see https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DecreaseReplicaCountResult
type DecreaseReplicaCountOutput struct {
_ struct{} `type:"structure"`
// Contains all of the attributes of a specific Redis replication group.
ReplicationGroup *ReplicationGroup `type:"structure"`
}
// String returns the string representation
func (s DecreaseReplicaCountOutput) String() string {
return awsutil.Prettify(s)
}
const opDecreaseReplicaCount = "DecreaseReplicaCount"
// DecreaseReplicaCountRequest returns a request value for making API operation for
// Amazon ElastiCache.
//
// Dynamically decreases the number of replics in a Redis (cluster mode disabled)
// replication group or the number of replica nodes in one or more node groups
// (shards) of a Redis (cluster mode enabled) replication group. This operation
// is performed with no cluster down time.
//
// // Example sending a request using DecreaseReplicaCountRequest.
// req := client.DecreaseReplicaCountRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DecreaseReplicaCount
func (c *Client) DecreaseReplicaCountRequest(input *DecreaseReplicaCountInput) DecreaseReplicaCountRequest {
op := &aws.Operation{
Name: opDecreaseReplicaCount,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &DecreaseReplicaCountInput{}
}
req := c.newRequest(op, input, &DecreaseReplicaCountOutput{})
return DecreaseReplicaCountRequest{Request: req, Input: input, Copy: c.DecreaseReplicaCountRequest}
}
// DecreaseReplicaCountRequest is the request type for the
// DecreaseReplicaCount API operation.
type DecreaseReplicaCountRequest struct {
*aws.Request
Input *DecreaseReplicaCountInput
Copy func(*DecreaseReplicaCountInput) DecreaseReplicaCountRequest
}
// Send marshals and sends the DecreaseReplicaCount API request.
func (r DecreaseReplicaCountRequest) Send(ctx context.Context) (*DecreaseReplicaCountResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &DecreaseReplicaCountResponse{
DecreaseReplicaCountOutput: r.Request.Data.(*DecreaseReplicaCountOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// DecreaseReplicaCountResponse is the response type for the
// DecreaseReplicaCount API operation.
type DecreaseReplicaCountResponse struct {
*DecreaseReplicaCountOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// DecreaseReplicaCount request.
func (r *DecreaseReplicaCountResponse) SDKResponseMetdata() *aws.Response {
return r.response
}