/
api_op_CreateEventSubscription.go
181 lines (160 loc) · 6.28 KB
/
api_op_CreateEventSubscription.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
// Code generated by smithy-go-codegen DO NOT EDIT.
package databasemigrationservice
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/databasemigrationservice/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates an DMS event notification subscription. You can specify the type of
// source ( SourceType ) you want to be notified of, provide a list of DMS source
// IDs ( SourceIds ) that triggers the events, and provide a list of event
// categories ( EventCategories ) for events you want to be notified of. If you
// specify both the SourceType and SourceIds , such as SourceType =
// replication-instance and SourceIdentifier = my-replinstance , you will be
// notified of all the replication instance events for the specified source. If you
// specify a SourceType but don't specify a SourceIdentifier , you receive notice
// of the events for that source type for all your DMS sources. If you don't
// specify either SourceType nor SourceIdentifier , you will be notified of events
// generated from all DMS sources belonging to your customer account. For more
// information about DMS events, see Working with Events and Notifications (https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html)
// in the Database Migration Service User Guide.
func (c *Client) CreateEventSubscription(ctx context.Context, params *CreateEventSubscriptionInput, optFns ...func(*Options)) (*CreateEventSubscriptionOutput, error) {
if params == nil {
params = &CreateEventSubscriptionInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateEventSubscription", params, optFns, c.addOperationCreateEventSubscriptionMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateEventSubscriptionOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateEventSubscriptionInput struct {
// The Amazon Resource Name (ARN) of the Amazon SNS topic created for event
// notification. The ARN is created by Amazon SNS when you create a topic and
// subscribe to it.
//
// This member is required.
SnsTopicArn *string
// The name of the DMS event notification subscription. This name must be less
// than 255 characters.
//
// This member is required.
SubscriptionName *string
// A Boolean value; set to true to activate the subscription, or set to false to
// create the subscription but not activate it.
Enabled *bool
// A list of event categories for a source type that you want to subscribe to. For
// more information, see Working with Events and Notifications (https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html)
// in the Database Migration Service User Guide.
EventCategories []string
// A list of identifiers for which DMS provides notification events. If you don't
// specify a value, notifications are provided for all sources. If you specify
// multiple values, they must be of the same type. For example, if you specify a
// database instance ID, then all of the other values must be database instance
// IDs.
SourceIds []string
// The type of DMS resource that generates the events. For example, if you want to
// be notified of events generated by a replication instance, you set this
// parameter to replication-instance . If this value isn't specified, all events
// are returned. Valid values: replication-instance | replication-task
SourceType *string
// One or more tags to be assigned to the event subscription.
Tags []types.Tag
noSmithyDocumentSerde
}
type CreateEventSubscriptionOutput struct {
// The event subscription that was created.
EventSubscription *types.EventSubscription
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateEventSubscriptionMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateEventSubscription{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateEventSubscription{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateEventSubscription"); 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 = addOpCreateEventSubscriptionValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateEventSubscription(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_opCreateEventSubscription(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateEventSubscription",
}
}