-
Notifications
You must be signed in to change notification settings - Fork 623
/
api_op_DeregisterScalableTarget.go
221 lines (197 loc) · 8.48 KB
/
api_op_DeregisterScalableTarget.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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package applicationautoscaling
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
type DeregisterScalableTargetInput struct {
_ struct{} `type:"structure"`
// The identifier of the resource associated with the scalable target. This
// string consists of the resource type and unique identifier.
//
// * ECS service - The resource type is service and the unique identifier
// is the cluster name and service name. Example: service/default/sample-webapp.
//
// * Spot Fleet request - The resource type is spot-fleet-request and the
// unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
//
// * EMR cluster - The resource type is instancegroup and the unique identifier
// is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
//
// * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
// is the fleet name. Example: fleet/sample-fleet.
//
// * DynamoDB table - The resource type is table and the unique identifier
// is the table name. Example: table/my-table.
//
// * DynamoDB global secondary index - The resource type is index and the
// unique identifier is the index name. Example: table/my-table/index/my-table-index.
//
// * Aurora DB cluster - The resource type is cluster and the unique identifier
// is the cluster name. Example: cluster:my-db-cluster.
//
// * Amazon SageMaker endpoint variant - The resource type is variant and
// the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
//
// * Custom resources are not supported with a resource type. This parameter
// must specify the OutputValue from the CloudFormation template stack used
// to access the resources. The unique identifier is defined by the service
// provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource).
//
// * Amazon Comprehend document classification endpoint - The resource type
// and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
//
// * Lambda provisioned concurrency - The resource type is function and the
// unique identifier is the function name with a function version or alias
// name suffix that is not $LATEST. Example: function:my-function:prod or
// function:my-function:1.
//
// ResourceId is a required field
ResourceId *string `min:"1" type:"string" required:"true"`
// The scalable dimension associated with the scalable target. This string consists
// of the service namespace, resource type, and scaling property.
//
// * ecs:service:DesiredCount - The desired task count of an ECS service.
//
// * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
// Fleet request.
//
// * elasticmapreduce:instancegroup:InstanceCount - The instance count of
// an EMR Instance Group.
//
// * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
// 2.0 fleet.
//
// * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
// a DynamoDB table.
//
// * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
// a DynamoDB table.
//
// * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
// a DynamoDB global secondary index.
//
// * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
// a DynamoDB global secondary index.
//
// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
// DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
// edition.
//
// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
// for an Amazon SageMaker model endpoint variant.
//
// * custom-resource:ResourceType:Property - The scalable dimension for a
// custom resource provided by your own application or service.
//
// * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
// number of inference units for an Amazon Comprehend document classification
// endpoint.
//
// * lambda:function:ProvisionedConcurrency - The provisioned concurrency
// for a Lambda function.
//
// ScalableDimension is a required field
ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"`
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
// see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
ServiceNamespace ServiceNamespace `type:"string" required:"true" enum:"true"`
}
// String returns the string representation
func (s DeregisterScalableTargetInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DeregisterScalableTargetInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "DeregisterScalableTargetInput"}
if s.ResourceId == nil {
invalidParams.Add(aws.NewErrParamRequired("ResourceId"))
}
if s.ResourceId != nil && len(*s.ResourceId) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("ResourceId", 1))
}
if len(s.ScalableDimension) == 0 {
invalidParams.Add(aws.NewErrParamRequired("ScalableDimension"))
}
if len(s.ServiceNamespace) == 0 {
invalidParams.Add(aws.NewErrParamRequired("ServiceNamespace"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type DeregisterScalableTargetOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s DeregisterScalableTargetOutput) String() string {
return awsutil.Prettify(s)
}
const opDeregisterScalableTarget = "DeregisterScalableTarget"
// DeregisterScalableTargetRequest returns a request value for making API operation for
// Application Auto Scaling.
//
// Deregisters an Application Auto Scaling scalable target.
//
// Deregistering a scalable target deletes the scaling policies that are associated
// with it.
//
// To create a scalable target or update an existing one, see RegisterScalableTarget.
//
// // Example sending a request using DeregisterScalableTargetRequest.
// req := client.DeregisterScalableTargetRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTarget
func (c *Client) DeregisterScalableTargetRequest(input *DeregisterScalableTargetInput) DeregisterScalableTargetRequest {
op := &aws.Operation{
Name: opDeregisterScalableTarget,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &DeregisterScalableTargetInput{}
}
req := c.newRequest(op, input, &DeregisterScalableTargetOutput{})
return DeregisterScalableTargetRequest{Request: req, Input: input, Copy: c.DeregisterScalableTargetRequest}
}
// DeregisterScalableTargetRequest is the request type for the
// DeregisterScalableTarget API operation.
type DeregisterScalableTargetRequest struct {
*aws.Request
Input *DeregisterScalableTargetInput
Copy func(*DeregisterScalableTargetInput) DeregisterScalableTargetRequest
}
// Send marshals and sends the DeregisterScalableTarget API request.
func (r DeregisterScalableTargetRequest) Send(ctx context.Context) (*DeregisterScalableTargetResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &DeregisterScalableTargetResponse{
DeregisterScalableTargetOutput: r.Request.Data.(*DeregisterScalableTargetOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// DeregisterScalableTargetResponse is the response type for the
// DeregisterScalableTarget API operation.
type DeregisterScalableTargetResponse struct {
*DeregisterScalableTargetOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// DeregisterScalableTarget request.
func (r *DeregisterScalableTargetResponse) SDKResponseMetdata() *aws.Response {
return r.response
}