aws-sdk-rds 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/lib/aws-sdk-rds.rb +73 -0
  3. data/lib/aws-sdk-rds/account_quota.rb +100 -0
  4. data/lib/aws-sdk-rds/certificate.rb +123 -0
  5. data/lib/aws-sdk-rds/client.rb +9214 -0
  6. data/lib/aws-sdk-rds/client_api.rb +3027 -0
  7. data/lib/aws-sdk-rds/customizations.rb +7 -0
  8. data/lib/aws-sdk-rds/db_cluster.rb +1074 -0
  9. data/lib/aws-sdk-rds/db_cluster_parameter_group.rb +230 -0
  10. data/lib/aws-sdk-rds/db_cluster_snapshot.rb +478 -0
  11. data/lib/aws-sdk-rds/db_engine.rb +241 -0
  12. data/lib/aws-sdk-rds/db_engine_version.rb +263 -0
  13. data/lib/aws-sdk-rds/db_instance.rb +2680 -0
  14. data/lib/aws-sdk-rds/db_log_file.rb +170 -0
  15. data/lib/aws-sdk-rds/db_parameter_group.rb +455 -0
  16. data/lib/aws-sdk-rds/db_parameter_group_family.rb +167 -0
  17. data/lib/aws-sdk-rds/db_security_group.rb +358 -0
  18. data/lib/aws-sdk-rds/db_snapshot.rb +714 -0
  19. data/lib/aws-sdk-rds/db_snapshot_attribute.rb +160 -0
  20. data/lib/aws-sdk-rds/db_subnet_group.rb +188 -0
  21. data/lib/aws-sdk-rds/errors.rb +23 -0
  22. data/lib/aws-sdk-rds/event.rb +134 -0
  23. data/lib/aws-sdk-rds/event_category_map.rb +98 -0
  24. data/lib/aws-sdk-rds/event_subscription.rb +352 -0
  25. data/lib/aws-sdk-rds/option_group.rb +283 -0
  26. data/lib/aws-sdk-rds/option_group_option.rb +166 -0
  27. data/lib/aws-sdk-rds/parameter.rb +144 -0
  28. data/lib/aws-sdk-rds/pending_maintenance_action.rb +211 -0
  29. data/lib/aws-sdk-rds/reserved_db_instance.rb +191 -0
  30. data/lib/aws-sdk-rds/reserved_db_instances_offering.rb +183 -0
  31. data/lib/aws-sdk-rds/resource.rb +2384 -0
  32. data/lib/aws-sdk-rds/resource_pending_maintenance_action_list.rb +111 -0
  33. data/lib/aws-sdk-rds/types.rb +10965 -0
  34. data/lib/aws-sdk-rds/waiters.rb +149 -0
  35. metadata +106 -0
@@ -0,0 +1,98 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module RDS
10
+ class EventCategoryMap
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(source_type, options = {})
15
+ # @param [String] source_type
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :source_type
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @source_type = extract_source_type(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def source_type
31
+ @source_type
32
+ end
33
+
34
+ # The event categories for the specified source type
35
+ # @return [Array<String>]
36
+ def event_categories
37
+ data.event_categories
38
+ end
39
+
40
+ # @!endgroup
41
+
42
+ # @return [Client]
43
+ def client
44
+ @client
45
+ end
46
+
47
+ # Loads, or reloads {#data} for the current {EventCategoryMap}.
48
+ # Returns `self` making it possible to chain methods.
49
+ #
50
+ # event_category_map.reload.data
51
+ #
52
+ # @return [self]
53
+ def load
54
+ resp = @client.describe_event_categories(source_type: @name)
55
+ @data = resp.eventcategoriesmaplist[0]
56
+ self
57
+ end
58
+ alias :reload :load
59
+
60
+ # @return [Types::EventCategoriesMap]
61
+ # Returns the data for this {EventCategoryMap}. Calls
62
+ # {Client#describe_event_categories} if {#data_loaded?} is `false`.
63
+ def data
64
+ load unless @data
65
+ @data
66
+ end
67
+
68
+ # @return [Boolean]
69
+ # Returns `true` if this resource is loaded. Accessing attributes or
70
+ # {#data} on an unloaded resource will trigger a call to {#load}.
71
+ def data_loaded?
72
+ !!@data
73
+ end
74
+
75
+ # @deprecated
76
+ # @api private
77
+ def identifiers
78
+ { source_type: @source_type }
79
+ end
80
+ deprecated(:identifiers)
81
+
82
+ private
83
+
84
+ def extract_source_type(args, options)
85
+ value = args[0] || options.delete(:source_type)
86
+ case value
87
+ when String then value
88
+ when nil then raise ArgumentError, "missing required option :source_type"
89
+ else
90
+ msg = "expected :source_type to be a String, got #{value.class}"
91
+ raise ArgumentError, msg
92
+ end
93
+ end
94
+
95
+ class Collection < Aws::Resources::Collection; end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,352 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module RDS
10
+ class EventSubscription
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(name, options = {})
15
+ # @param [String] name
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :name
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @name = extract_name(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def name
31
+ @name
32
+ end
33
+ alias :cust_subscription_id :name
34
+
35
+ # The AWS customer account associated with the RDS event notification
36
+ # subscription.
37
+ # @return [String]
38
+ def customer_aws_id
39
+ data.customer_aws_id
40
+ end
41
+
42
+ # The topic ARN of the RDS event notification subscription.
43
+ # @return [String]
44
+ def sns_topic_arn
45
+ data.sns_topic_arn
46
+ end
47
+
48
+ # The status of the RDS event notification subscription.
49
+ #
50
+ # Constraints:
51
+ #
52
+ # Can be one of the following: creating \| modifying \| deleting \|
53
+ # active \| no-permission \| topic-not-exist
54
+ #
55
+ # The status "no-permission" indicates that RDS no longer has
56
+ # permission to post to the SNS topic. The status "topic-not-exist"
57
+ # indicates that the topic was deleted after the subscription was
58
+ # created.
59
+ # @return [String]
60
+ def status
61
+ data.status
62
+ end
63
+
64
+ # The time the RDS event notification subscription was created.
65
+ # @return [String]
66
+ def subscription_creation_time
67
+ data.subscription_creation_time
68
+ end
69
+
70
+ # The source type for the RDS event notification subscription.
71
+ # @return [String]
72
+ def source_type
73
+ data.source_type
74
+ end
75
+
76
+ # A list of source IDs for the RDS event notification subscription.
77
+ # @return [Array<String>]
78
+ def source_ids_list
79
+ data.source_ids_list
80
+ end
81
+
82
+ # A list of event categories for the RDS event notification
83
+ # subscription.
84
+ # @return [Array<String>]
85
+ def event_categories_list
86
+ data.event_categories_list
87
+ end
88
+
89
+ # A Boolean value indicating if the subscription is enabled. True
90
+ # indicates the subscription is enabled.
91
+ # @return [Boolean]
92
+ def enabled
93
+ data.enabled
94
+ end
95
+
96
+ # The Amazon Resource Name (ARN) for the event subscription.
97
+ # @return [String]
98
+ def event_subscription_arn
99
+ data.event_subscription_arn
100
+ end
101
+
102
+ # @!endgroup
103
+
104
+ # @return [Client]
105
+ def client
106
+ @client
107
+ end
108
+
109
+ # Loads, or reloads {#data} for the current {EventSubscription}.
110
+ # Returns `self` making it possible to chain methods.
111
+ #
112
+ # event_subscription.reload.data
113
+ #
114
+ # @return [self]
115
+ def load
116
+ resp = @client.describe_event_subscriptions(subscription_name: @name)
117
+ @data = resp.eventsubscriptionslist[0]
118
+ self
119
+ end
120
+ alias :reload :load
121
+
122
+ # @return [Types::EventSubscription]
123
+ # Returns the data for this {EventSubscription}. Calls
124
+ # {Client#describe_event_subscriptions} if {#data_loaded?} is `false`.
125
+ def data
126
+ load unless @data
127
+ @data
128
+ end
129
+
130
+ # @return [Boolean]
131
+ # Returns `true` if this resource is loaded. Accessing attributes or
132
+ # {#data} on an unloaded resource will trigger a call to {#load}.
133
+ def data_loaded?
134
+ !!@data
135
+ end
136
+
137
+ # @!group Actions
138
+
139
+ # @example Request syntax with placeholder values
140
+ #
141
+ # eventsubscription = event_subscription.add_subscriber({
142
+ # source_identifier: "String", # required
143
+ # })
144
+ # @param [Hash] options ({})
145
+ # @option options [required, String] :source_identifier
146
+ # The identifier of the event source to be added. An identifier must
147
+ # begin with a letter and must contain only ASCII letters, digits, and
148
+ # hyphens; it cannot end with a hyphen or contain two consecutive
149
+ # hyphens.
150
+ #
151
+ # Constraints:
152
+ #
153
+ # * If the source type is a DB instance, then a `DBInstanceIdentifier`
154
+ # must be supplied.
155
+ #
156
+ # * If the source type is a DB security group, a `DBSecurityGroupName`
157
+ # must be supplied.
158
+ #
159
+ # * If the source type is a DB parameter group, a `DBParameterGroupName`
160
+ # must be supplied.
161
+ #
162
+ # * If the source type is a DB snapshot, a `DBSnapshotIdentifier` must
163
+ # be supplied.
164
+ # @return [EventSubscription]
165
+ def add_subscriber(options = {})
166
+ options = options.merge(subscription_name: @name)
167
+ resp = @client.add_source_identifier_to_subscription(options)
168
+ EventSubscription.new(
169
+ name: resp.data.event_subscription.cust_subscription_id,
170
+ data: resp.data.event_subscription,
171
+ client: @client
172
+ )
173
+ end
174
+
175
+ # @example Request syntax with placeholder values
176
+ #
177
+ # eventsubscription = event_subscription.create({
178
+ # sns_topic_arn: "String", # required
179
+ # source_type: "String",
180
+ # event_categories: ["String"],
181
+ # source_ids: ["String"],
182
+ # enabled: false,
183
+ # tags: [
184
+ # {
185
+ # key: "String",
186
+ # value: "String",
187
+ # },
188
+ # ],
189
+ # })
190
+ # @param [Hash] options ({})
191
+ # @option options [required, String] :sns_topic_arn
192
+ # The Amazon Resource Name (ARN) of the SNS topic created for event
193
+ # notification. The ARN is created by Amazon SNS when you create a topic
194
+ # and subscribe to it.
195
+ # @option options [String] :source_type
196
+ # The type of source that will be generating the events. For example, if
197
+ # you want to be notified of events generated by a DB instance, you
198
+ # would set this parameter to db-instance. if this value is not
199
+ # specified, all events are returned.
200
+ #
201
+ # Valid values: `db-instance` \| `db-cluster` \| `db-parameter-group` \|
202
+ # `db-security-group` \| `db-snapshot` \| `db-cluster-snapshot`
203
+ # @option options [Array<String>] :event_categories
204
+ # A list of event categories for a SourceType that you want to subscribe
205
+ # to. You can see a list of the categories for a given SourceType in the
206
+ # [Events][1] topic in the Amazon RDS User Guide or by using the
207
+ # **DescribeEventCategories** action.
208
+ #
209
+ #
210
+ #
211
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html
212
+ # @option options [Array<String>] :source_ids
213
+ # The list of identifiers of the event sources for which events will be
214
+ # returned. If not specified, then all sources are included in the
215
+ # response. An identifier must begin with a letter and must contain only
216
+ # ASCII letters, digits, and hyphens; it cannot end with a hyphen or
217
+ # contain two consecutive hyphens.
218
+ #
219
+ # Constraints:
220
+ #
221
+ # * If SourceIds are supplied, SourceType must also be provided.
222
+ #
223
+ # * If the source type is a DB instance, then a `DBInstanceIdentifier`
224
+ # must be supplied.
225
+ #
226
+ # * If the source type is a DB security group, a `DBSecurityGroupName`
227
+ # must be supplied.
228
+ #
229
+ # * If the source type is a DB parameter group, a `DBParameterGroupName`
230
+ # must be supplied.
231
+ #
232
+ # * If the source type is a DB snapshot, a `DBSnapshotIdentifier` must
233
+ # be supplied.
234
+ # @option options [Boolean] :enabled
235
+ # A Boolean value; set to **true** to activate the subscription, set to
236
+ # **false** to create the subscription but not active it.
237
+ # @option options [Array<Types::Tag>] :tags
238
+ # A list of tags.
239
+ # @return [EventSubscription]
240
+ def create(options = {})
241
+ options = options.merge(subscription_name: @name)
242
+ resp = @client.create_event_subscription(options)
243
+ EventSubscription.new(
244
+ name: resp.data.event_subscription.cust_subscription_id,
245
+ data: resp.data.event_subscription,
246
+ client: @client
247
+ )
248
+ end
249
+
250
+ # @example Request syntax with placeholder values
251
+ #
252
+ # eventsubscription = event_subscription.delete()
253
+ # @param [Hash] options ({})
254
+ # @return [EventSubscription]
255
+ def delete(options = {})
256
+ options = options.merge(subscription_name: @name)
257
+ resp = @client.delete_event_subscription(options)
258
+ EventSubscription.new(
259
+ name: resp.data.event_subscription.cust_subscription_id,
260
+ data: resp.data.event_subscription,
261
+ client: @client
262
+ )
263
+ end
264
+
265
+ # @example Request syntax with placeholder values
266
+ #
267
+ # eventsubscription = event_subscription.modify({
268
+ # sns_topic_arn: "String",
269
+ # source_type: "String",
270
+ # event_categories: ["String"],
271
+ # enabled: false,
272
+ # })
273
+ # @param [Hash] options ({})
274
+ # @option options [String] :sns_topic_arn
275
+ # The Amazon Resource Name (ARN) of the SNS topic created for event
276
+ # notification. The ARN is created by Amazon SNS when you create a topic
277
+ # and subscribe to it.
278
+ # @option options [String] :source_type
279
+ # The type of source that will be generating the events. For example, if
280
+ # you want to be notified of events generated by a DB instance, you
281
+ # would set this parameter to db-instance. if this value is not
282
+ # specified, all events are returned.
283
+ #
284
+ # Valid values: db-instance \| db-parameter-group \| db-security-group
285
+ # \| db-snapshot
286
+ # @option options [Array<String>] :event_categories
287
+ # A list of event categories for a SourceType that you want to subscribe
288
+ # to. You can see a list of the categories for a given SourceType in the
289
+ # [Events][1] topic in the Amazon RDS User Guide or by using the
290
+ # **DescribeEventCategories** action.
291
+ #
292
+ #
293
+ #
294
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html
295
+ # @option options [Boolean] :enabled
296
+ # A Boolean value; set to **true** to activate the subscription.
297
+ # @return [EventSubscription]
298
+ def modify(options = {})
299
+ options = options.merge(subscription_name: @name)
300
+ resp = @client.modify_event_subscription(options)
301
+ EventSubscription.new(
302
+ name: resp.data.event_subscription.cust_subscription_id,
303
+ data: resp.data.event_subscription,
304
+ client: @client
305
+ )
306
+ end
307
+
308
+ # @example Request syntax with placeholder values
309
+ #
310
+ # eventsubscription = event_subscription.remove_subscriber({
311
+ # source_identifier: "String", # required
312
+ # })
313
+ # @param [Hash] options ({})
314
+ # @option options [required, String] :source_identifier
315
+ # The source identifier to be removed from the subscription, such as the
316
+ # **DB instance identifier** for a DB instance or the name of a security
317
+ # group.
318
+ # @return [EventSubscription]
319
+ def remove_subscriber(options = {})
320
+ options = options.merge(subscription_name: @name)
321
+ resp = @client.remove_source_identifier_from_subscription(options)
322
+ EventSubscription.new(
323
+ name: resp.data.event_subscription.cust_subscription_id,
324
+ data: resp.data.event_subscription,
325
+ client: @client
326
+ )
327
+ end
328
+
329
+ # @deprecated
330
+ # @api private
331
+ def identifiers
332
+ { name: @name }
333
+ end
334
+ deprecated(:identifiers)
335
+
336
+ private
337
+
338
+ def extract_name(args, options)
339
+ value = args[0] || options.delete(:name)
340
+ case value
341
+ when String then value
342
+ when nil then raise ArgumentError, "missing required option :name"
343
+ else
344
+ msg = "expected :name to be a String, got #{value.class}"
345
+ raise ArgumentError, msg
346
+ end
347
+ end
348
+
349
+ class Collection < Aws::Resources::Collection; end
350
+ end
351
+ end
352
+ end
@@ -0,0 +1,283 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module RDS
10
+ class OptionGroup
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(name, options = {})
15
+ # @param [String] name
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :name
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @name = extract_name(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def name
31
+ @name
32
+ end
33
+ alias :option_group_name :name
34
+
35
+ # Provides a description of the option group.
36
+ # @return [String]
37
+ def option_group_description
38
+ data.option_group_description
39
+ end
40
+
41
+ # Indicates the name of the engine that this option group can be applied
42
+ # to.
43
+ # @return [String]
44
+ def engine_name
45
+ data.engine_name
46
+ end
47
+
48
+ # Indicates the major engine version associated with this option group.
49
+ # @return [String]
50
+ def major_engine_version
51
+ data.major_engine_version
52
+ end
53
+
54
+ # Indicates what options are available in the option group.
55
+ # @return [Array<Types::Option>]
56
+ def options
57
+ data.options
58
+ end
59
+
60
+ # Indicates whether this option group can be applied to both VPC and
61
+ # non-VPC instances. The value `true` indicates the option group can be
62
+ # applied to both VPC and non-VPC instances.
63
+ # @return [Boolean]
64
+ def allows_vpc_and_non_vpc_instance_memberships
65
+ data.allows_vpc_and_non_vpc_instance_memberships
66
+ end
67
+
68
+ # If **AllowsVpcAndNonVpcInstanceMemberships** is `false`, this field is
69
+ # blank. If **AllowsVpcAndNonVpcInstanceMemberships** is `true` and this
70
+ # field is blank, then this option group can be applied to both VPC and
71
+ # non-VPC instances. If this field contains a value, then this option
72
+ # group can only be applied to instances that are in the VPC indicated
73
+ # by this field.
74
+ # @return [String]
75
+ def vpc_id
76
+ data.vpc_id
77
+ end
78
+
79
+ # The Amazon Resource Name (ARN) for the option group.
80
+ # @return [String]
81
+ def option_group_arn
82
+ data.option_group_arn
83
+ end
84
+
85
+ # @!endgroup
86
+
87
+ # @return [Client]
88
+ def client
89
+ @client
90
+ end
91
+
92
+ # Loads, or reloads {#data} for the current {OptionGroup}.
93
+ # Returns `self` making it possible to chain methods.
94
+ #
95
+ # option_group.reload.data
96
+ #
97
+ # @return [self]
98
+ def load
99
+ resp = @client.describe_option_groups(option_group_name: @name)
100
+ @data = resp.optiongroupslist[0]
101
+ self
102
+ end
103
+ alias :reload :load
104
+
105
+ # @return [Types::OptionGroup]
106
+ # Returns the data for this {OptionGroup}. Calls
107
+ # {Client#describe_option_groups} if {#data_loaded?} is `false`.
108
+ def data
109
+ load unless @data
110
+ @data
111
+ end
112
+
113
+ # @return [Boolean]
114
+ # Returns `true` if this resource is loaded. Accessing attributes or
115
+ # {#data} on an unloaded resource will trigger a call to {#load}.
116
+ def data_loaded?
117
+ !!@data
118
+ end
119
+
120
+ # @!group Actions
121
+
122
+ # @example Request syntax with placeholder values
123
+ #
124
+ # optiongroup = option_group.create({
125
+ # engine_name: "String", # required
126
+ # major_engine_version: "String", # required
127
+ # option_group_description: "String", # required
128
+ # tags: [
129
+ # {
130
+ # key: "String",
131
+ # value: "String",
132
+ # },
133
+ # ],
134
+ # })
135
+ # @param [Hash] options ({})
136
+ # @option options [required, String] :engine_name
137
+ # Specifies the name of the engine that this option group should be
138
+ # associated with.
139
+ # @option options [required, String] :major_engine_version
140
+ # Specifies the major version of the engine that this option group
141
+ # should be associated with.
142
+ # @option options [required, String] :option_group_description
143
+ # The description of the option group.
144
+ # @option options [Array<Types::Tag>] :tags
145
+ # A list of tags.
146
+ # @return [OptionGroup]
147
+ def create(options = {})
148
+ options = options.merge(option_group_name: @name)
149
+ resp = @client.create_option_group(options)
150
+ OptionGroup.new(
151
+ name: resp.data.option_group.option_group_name,
152
+ data: resp.data.option_group,
153
+ client: @client
154
+ )
155
+ end
156
+
157
+ # @example Request syntax with placeholder values
158
+ #
159
+ # optiongroup = option_group.copy({
160
+ # target_option_group_identifier: "String", # required
161
+ # target_option_group_description: "String", # required
162
+ # tags: [
163
+ # {
164
+ # key: "String",
165
+ # value: "String",
166
+ # },
167
+ # ],
168
+ # })
169
+ # @param [Hash] options ({})
170
+ # @option options [required, String] :target_option_group_identifier
171
+ # The identifier for the copied option group.
172
+ #
173
+ # Constraints:
174
+ #
175
+ # * Cannot be null, empty, or blank
176
+ #
177
+ # * Must contain from 1 to 255 alphanumeric characters or hyphens
178
+ #
179
+ # * First character must be a letter
180
+ #
181
+ # * Cannot end with a hyphen or contain two consecutive hyphens
182
+ #
183
+ # Example: `my-option-group`
184
+ # @option options [required, String] :target_option_group_description
185
+ # The description for the copied option group.
186
+ # @option options [Array<Types::Tag>] :tags
187
+ # A list of tags.
188
+ # @return [OptionGroup]
189
+ def copy(options = {})
190
+ options = options.merge(source_option_group_identifier: @name)
191
+ resp = @client.copy_option_group(options)
192
+ OptionGroup.new(
193
+ name: resp.data.option_group.option_group_name,
194
+ data: resp.data.option_group,
195
+ client: @client
196
+ )
197
+ end
198
+
199
+ # @example Request syntax with placeholder values
200
+ #
201
+ # option_group.delete()
202
+ # @param [Hash] options ({})
203
+ # @return [EmptyStructure]
204
+ def delete(options = {})
205
+ options = options.merge(option_group_name: @name)
206
+ resp = @client.delete_option_group(options)
207
+ resp.data
208
+ end
209
+
210
+ # @example Request syntax with placeholder values
211
+ #
212
+ # optiongroup = option_group.modify({
213
+ # options_to_include: [
214
+ # {
215
+ # option_name: "String", # required
216
+ # port: 1,
217
+ # option_version: "String",
218
+ # db_security_group_memberships: ["String"],
219
+ # vpc_security_group_memberships: ["String"],
220
+ # option_settings: [
221
+ # {
222
+ # name: "String",
223
+ # value: "String",
224
+ # default_value: "String",
225
+ # description: "String",
226
+ # apply_type: "String",
227
+ # data_type: "String",
228
+ # allowed_values: "String",
229
+ # is_modifiable: false,
230
+ # is_collection: false,
231
+ # },
232
+ # ],
233
+ # },
234
+ # ],
235
+ # options_to_remove: ["String"],
236
+ # apply_immediately: false,
237
+ # })
238
+ # @param [Hash] options ({})
239
+ # @option options [Array<Types::OptionConfiguration>] :options_to_include
240
+ # Options in this list are added to the option group or, if already
241
+ # present, the specified configuration is used to update the existing
242
+ # configuration.
243
+ # @option options [Array<String>] :options_to_remove
244
+ # Options in this list are removed from the option group.
245
+ # @option options [Boolean] :apply_immediately
246
+ # Indicates whether the changes should be applied immediately, or during
247
+ # the next maintenance window for each instance associated with the
248
+ # option group.
249
+ # @return [OptionGroup]
250
+ def modify(options = {})
251
+ options = options.merge(option_group_name: @name)
252
+ resp = @client.modify_option_group(options)
253
+ OptionGroup.new(
254
+ name: resp.data.option_group.option_group_name,
255
+ data: resp.data.option_group,
256
+ client: @client
257
+ )
258
+ end
259
+
260
+ # @deprecated
261
+ # @api private
262
+ def identifiers
263
+ { name: @name }
264
+ end
265
+ deprecated(:identifiers)
266
+
267
+ private
268
+
269
+ def extract_name(args, options)
270
+ value = args[0] || options.delete(:name)
271
+ case value
272
+ when String then value
273
+ when nil then raise ArgumentError, "missing required option :name"
274
+ else
275
+ msg = "expected :name to be a String, got #{value.class}"
276
+ raise ArgumentError, msg
277
+ end
278
+ end
279
+
280
+ class Collection < Aws::Resources::Collection; end
281
+ end
282
+ end
283
+ end