-
Notifications
You must be signed in to change notification settings - Fork 626
/
api_op_SetTopicAttributes.go
152 lines (127 loc) · 4.94 KB
/
api_op_SetTopicAttributes.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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package sns
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
"github.com/aws/aws-sdk-go-v2/private/protocol"
"github.com/aws/aws-sdk-go-v2/private/protocol/query"
)
// Input for SetTopicAttributes action.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetTopicAttributesInput
type SetTopicAttributesInput struct {
_ struct{} `type:"structure"`
// A map of attributes with their corresponding values.
//
// The following lists the names, descriptions, and values of the special request
// parameters that the SetTopicAttributes action uses:
//
// * DeliveryPolicy – The policy that defines how Amazon SNS retries failed
// deliveries to HTTP/S endpoints.
//
// * DisplayName – The display name to use for a topic with SMS subscriptions.
//
// * Policy – The policy that defines who can access your topic. By default,
// only the topic owner can publish or subscribe to the topic.
//
// The following attribute applies only to server-side-encryption (https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html):
//
// * KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK)
// for Amazon SNS or a custom CMK. For more information, see Key Terms (https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).
// For more examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)
// in the AWS Key Management Service API Reference.
//
// AttributeName is a required field
AttributeName *string `type:"string" required:"true"`
// The new value for the attribute.
AttributeValue *string `type:"string"`
// The ARN of the topic to modify.
//
// TopicArn is a required field
TopicArn *string `type:"string" required:"true"`
}
// String returns the string representation
func (s SetTopicAttributesInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *SetTopicAttributesInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "SetTopicAttributesInput"}
if s.AttributeName == nil {
invalidParams.Add(aws.NewErrParamRequired("AttributeName"))
}
if s.TopicArn == nil {
invalidParams.Add(aws.NewErrParamRequired("TopicArn"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetTopicAttributesOutput
type SetTopicAttributesOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s SetTopicAttributesOutput) String() string {
return awsutil.Prettify(s)
}
const opSetTopicAttributes = "SetTopicAttributes"
// SetTopicAttributesRequest returns a request value for making API operation for
// Amazon Simple Notification Service.
//
// Allows a topic owner to set an attribute of the topic to a new value.
//
// // Example sending a request using SetTopicAttributesRequest.
// req := client.SetTopicAttributesRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetTopicAttributes
func (c *Client) SetTopicAttributesRequest(input *SetTopicAttributesInput) SetTopicAttributesRequest {
op := &aws.Operation{
Name: opSetTopicAttributes,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &SetTopicAttributesInput{}
}
req := c.newRequest(op, input, &SetTopicAttributesOutput{})
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
return SetTopicAttributesRequest{Request: req, Input: input, Copy: c.SetTopicAttributesRequest}
}
// SetTopicAttributesRequest is the request type for the
// SetTopicAttributes API operation.
type SetTopicAttributesRequest struct {
*aws.Request
Input *SetTopicAttributesInput
Copy func(*SetTopicAttributesInput) SetTopicAttributesRequest
}
// Send marshals and sends the SetTopicAttributes API request.
func (r SetTopicAttributesRequest) Send(ctx context.Context) (*SetTopicAttributesResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &SetTopicAttributesResponse{
SetTopicAttributesOutput: r.Request.Data.(*SetTopicAttributesOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// SetTopicAttributesResponse is the response type for the
// SetTopicAttributes API operation.
type SetTopicAttributesResponse struct {
*SetTopicAttributesOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// SetTopicAttributes request.
func (r *SetTopicAttributesResponse) SDKResponseMetdata() *aws.Response {
return r.response
}