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,230 @@
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 DBClusterParameterGroup
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 :db_cluster_parameter_group_name :name
34
+
35
+ # Provides the name of the DB parameter group family that this DB
36
+ # cluster parameter group is compatible with.
37
+ # @return [String]
38
+ def db_parameter_group_family
39
+ data.db_parameter_group_family
40
+ end
41
+
42
+ # Provides the customer-specified description for this DB cluster
43
+ # parameter group.
44
+ # @return [String]
45
+ def description
46
+ data.description
47
+ end
48
+
49
+ # The Amazon Resource Name (ARN) for the DB cluster parameter group.
50
+ # @return [String]
51
+ def db_cluster_parameter_group_arn
52
+ data.db_cluster_parameter_group_arn
53
+ end
54
+
55
+ # @!endgroup
56
+
57
+ # @return [Client]
58
+ def client
59
+ @client
60
+ end
61
+
62
+ # Loads, or reloads {#data} for the current {DBClusterParameterGroup}.
63
+ # Returns `self` making it possible to chain methods.
64
+ #
65
+ # db_cluster_parameter_group.reload.data
66
+ #
67
+ # @return [self]
68
+ def load
69
+ resp = @client.describe_db_cluster_parameter_groups(db_cluster_parameter_group_name: @name)
70
+ @data = resp.dbclusterparametergroups[0]
71
+ self
72
+ end
73
+ alias :reload :load
74
+
75
+ # @return [Types::DBClusterParameterGroup]
76
+ # Returns the data for this {DBClusterParameterGroup}. Calls
77
+ # {Client#describe_db_cluster_parameter_groups} if {#data_loaded?} is `false`.
78
+ def data
79
+ load unless @data
80
+ @data
81
+ end
82
+
83
+ # @return [Boolean]
84
+ # Returns `true` if this resource is loaded. Accessing attributes or
85
+ # {#data} on an unloaded resource will trigger a call to {#load}.
86
+ def data_loaded?
87
+ !!@data
88
+ end
89
+
90
+ # @!group Actions
91
+
92
+ # @example Request syntax with placeholder values
93
+ #
94
+ # dbclusterparametergroup = db_cluster_parameter_group.create({
95
+ # db_parameter_group_family: "String", # required
96
+ # description: "String", # required
97
+ # tags: [
98
+ # {
99
+ # key: "String",
100
+ # value: "String",
101
+ # },
102
+ # ],
103
+ # })
104
+ # @param [Hash] options ({})
105
+ # @option options [required, String] :db_parameter_group_family
106
+ # The DB cluster parameter group family name. A DB cluster parameter
107
+ # group can be associated with one and only one DB cluster parameter
108
+ # group family, and can be applied only to a DB cluster running a
109
+ # database engine and engine version compatible with that DB cluster
110
+ # parameter group family.
111
+ # @option options [required, String] :description
112
+ # The description for the DB cluster parameter group.
113
+ # @option options [Array<Types::Tag>] :tags
114
+ # A list of tags.
115
+ # @return [DBClusterParameterGroup]
116
+ def create(options = {})
117
+ options = options.merge(db_cluster_parameter_group_name: @name)
118
+ resp = @client.create_db_cluster_parameter_group(options)
119
+ DBClusterParameterGroup.new(
120
+ name: resp.data.db_cluster_parameter_group.db_cluster_parameter_group_name,
121
+ data: resp.data.db_cluster_parameter_group,
122
+ client: @client
123
+ )
124
+ end
125
+
126
+ # @example Request syntax with placeholder values
127
+ #
128
+ # db_cluster_parameter_group.delete()
129
+ # @param [Hash] options ({})
130
+ # @return [EmptyStructure]
131
+ def delete(options = {})
132
+ options = options.merge(db_cluster_parameter_group_name: @name)
133
+ resp = @client.delete_db_cluster_parameter_group(options)
134
+ resp.data
135
+ end
136
+
137
+ # @example Request syntax with placeholder values
138
+ #
139
+ # dbclusterparametergroup = db_cluster_parameter_group.modify({
140
+ # parameters: [ # required
141
+ # {
142
+ # parameter_name: "String",
143
+ # parameter_value: "String",
144
+ # description: "String",
145
+ # source: "String",
146
+ # apply_type: "String",
147
+ # data_type: "String",
148
+ # allowed_values: "String",
149
+ # is_modifiable: false,
150
+ # minimum_engine_version: "String",
151
+ # apply_method: "immediate", # accepts immediate, pending-reboot
152
+ # },
153
+ # ],
154
+ # })
155
+ # @param [Hash] options ({})
156
+ # @option options [required, Array<Types::Parameter>] :parameters
157
+ # A list of parameters in the DB cluster parameter group to modify.
158
+ # @return [DBClusterParameterGroup]
159
+ def modify(options = {})
160
+ options = options.merge(db_cluster_parameter_group_name: @name)
161
+ resp = @client.modify_db_cluster_parameter_group(options)
162
+ DBClusterParameterGroup.new(
163
+ name: resp.data.db_cluster_parameter_group_name,
164
+ client: @client
165
+ )
166
+ end
167
+
168
+ # @example Request syntax with placeholder values
169
+ #
170
+ # dbclusterparametergroup = db_cluster_parameter_group.reset({
171
+ # reset_all_parameters: false,
172
+ # parameters: [
173
+ # {
174
+ # parameter_name: "String",
175
+ # parameter_value: "String",
176
+ # description: "String",
177
+ # source: "String",
178
+ # apply_type: "String",
179
+ # data_type: "String",
180
+ # allowed_values: "String",
181
+ # is_modifiable: false,
182
+ # minimum_engine_version: "String",
183
+ # apply_method: "immediate", # accepts immediate, pending-reboot
184
+ # },
185
+ # ],
186
+ # })
187
+ # @param [Hash] options ({})
188
+ # @option options [Boolean] :reset_all_parameters
189
+ # A value that is set to `true` to reset all parameters in the DB
190
+ # cluster parameter group to their default values, and `false`
191
+ # otherwise. You cannot use this parameter if there is a list of
192
+ # parameter names specified for the `Parameters` parameter.
193
+ # @option options [Array<Types::Parameter>] :parameters
194
+ # A list of parameter names in the DB cluster parameter group to reset
195
+ # to the default values. You cannot use this parameter if the
196
+ # `ResetAllParameters` parameter is set to `true`.
197
+ # @return [DBClusterParameterGroup]
198
+ def reset(options = {})
199
+ options = options.merge(db_cluster_parameter_group_name: @name)
200
+ resp = @client.reset_db_cluster_parameter_group(options)
201
+ DBClusterParameterGroup.new(
202
+ name: resp.data.db_cluster_parameter_group_name,
203
+ client: @client
204
+ )
205
+ end
206
+
207
+ # @deprecated
208
+ # @api private
209
+ def identifiers
210
+ { name: @name }
211
+ end
212
+ deprecated(:identifiers)
213
+
214
+ private
215
+
216
+ def extract_name(args, options)
217
+ value = args[0] || options.delete(:name)
218
+ case value
219
+ when String then value
220
+ when nil then raise ArgumentError, "missing required option :name"
221
+ else
222
+ msg = "expected :name to be a String, got #{value.class}"
223
+ raise ArgumentError, msg
224
+ end
225
+ end
226
+
227
+ class Collection < Aws::Resources::Collection; end
228
+ end
229
+ end
230
+ end
@@ -0,0 +1,478 @@
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 DBClusterSnapshot
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(cluster_id, snapshot_id, options = {})
15
+ # @param [String] cluster_id
16
+ # @param [String] snapshot_id
17
+ # @option options [Client] :client
18
+ # @overload def initialize(options = {})
19
+ # @option options [required, String] :cluster_id
20
+ # @option options [required, String] :snapshot_id
21
+ # @option options [Client] :client
22
+ def initialize(*args)
23
+ options = Hash === args.last ? args.pop.dup : {}
24
+ @cluster_id = extract_cluster_id(args, options)
25
+ @snapshot_id = extract_snapshot_id(args, options)
26
+ @data = options.delete(:data)
27
+ @client = options.delete(:client) || Client.new(options)
28
+ end
29
+
30
+ # @!group Read-Only Attributes
31
+
32
+ # @return [String]
33
+ def cluster_id
34
+ @cluster_id
35
+ end
36
+ alias :db_cluster_identifier :cluster_id
37
+
38
+ # @return [String]
39
+ def snapshot_id
40
+ @snapshot_id
41
+ end
42
+ alias :db_cluster_snapshot_identifier :snapshot_id
43
+
44
+ # Provides the list of EC2 Availability Zones that instances in the DB
45
+ # cluster snapshot can be restored in.
46
+ # @return [Array<String>]
47
+ def availability_zones
48
+ data.availability_zones
49
+ end
50
+
51
+ # Provides the time when the snapshot was taken, in Universal
52
+ # Coordinated Time (UTC).
53
+ # @return [Time]
54
+ def snapshot_create_time
55
+ data.snapshot_create_time
56
+ end
57
+
58
+ # Specifies the name of the database engine.
59
+ # @return [String]
60
+ def engine
61
+ data.engine
62
+ end
63
+
64
+ # Specifies the allocated storage size in gigabytes (GB).
65
+ # @return [Integer]
66
+ def allocated_storage
67
+ data.allocated_storage
68
+ end
69
+
70
+ # Specifies the status of this DB cluster snapshot.
71
+ # @return [String]
72
+ def status
73
+ data.status
74
+ end
75
+
76
+ # Specifies the port that the DB cluster was listening on at the time of
77
+ # the snapshot.
78
+ # @return [Integer]
79
+ def port
80
+ data.port
81
+ end
82
+
83
+ # Provides the VPC ID associated with the DB cluster snapshot.
84
+ # @return [String]
85
+ def vpc_id
86
+ data.vpc_id
87
+ end
88
+
89
+ # Specifies the time when the DB cluster was created, in Universal
90
+ # Coordinated Time (UTC).
91
+ # @return [Time]
92
+ def cluster_create_time
93
+ data.cluster_create_time
94
+ end
95
+
96
+ # Provides the master username for the DB cluster snapshot.
97
+ # @return [String]
98
+ def master_username
99
+ data.master_username
100
+ end
101
+
102
+ # Provides the version of the database engine for this DB cluster
103
+ # snapshot.
104
+ # @return [String]
105
+ def engine_version
106
+ data.engine_version
107
+ end
108
+
109
+ # Provides the license model information for this DB cluster snapshot.
110
+ # @return [String]
111
+ def license_model
112
+ data.license_model
113
+ end
114
+
115
+ # Provides the type of the DB cluster snapshot.
116
+ # @return [String]
117
+ def snapshot_type
118
+ data.snapshot_type
119
+ end
120
+
121
+ # Specifies the percentage of the estimated data that has been
122
+ # transferred.
123
+ # @return [Integer]
124
+ def percent_progress
125
+ data.percent_progress
126
+ end
127
+
128
+ # Specifies whether the DB cluster snapshot is encrypted.
129
+ # @return [Boolean]
130
+ def storage_encrypted
131
+ data.storage_encrypted
132
+ end
133
+
134
+ # If `StorageEncrypted` is true, the KMS key identifier for the
135
+ # encrypted DB cluster snapshot.
136
+ # @return [String]
137
+ def kms_key_id
138
+ data.kms_key_id
139
+ end
140
+
141
+ # The Amazon Resource Name (ARN) for the DB cluster snapshot.
142
+ # @return [String]
143
+ def db_cluster_snapshot_arn
144
+ data.db_cluster_snapshot_arn
145
+ end
146
+
147
+ # @!endgroup
148
+
149
+ # @return [Client]
150
+ def client
151
+ @client
152
+ end
153
+
154
+ # Loads, or reloads {#data} for the current {DBClusterSnapshot}.
155
+ # Returns `self` making it possible to chain methods.
156
+ #
157
+ # db_cluster_snapshot.reload.data
158
+ #
159
+ # @return [self]
160
+ def load
161
+ resp = @client.describe_db_cluster_snapshots(db_cluster_snapshot_identifier: @snapshot_id)
162
+ @data = resp.dbclustersnapshots[0]
163
+ self
164
+ end
165
+ alias :reload :load
166
+
167
+ # @return [Types::DBClusterSnapshot]
168
+ # Returns the data for this {DBClusterSnapshot}. Calls
169
+ # {Client#describe_db_cluster_snapshots} if {#data_loaded?} is `false`.
170
+ def data
171
+ load unless @data
172
+ @data
173
+ end
174
+
175
+ # @return [Boolean]
176
+ # Returns `true` if this resource is loaded. Accessing attributes or
177
+ # {#data} on an unloaded resource will trigger a call to {#load}.
178
+ def data_loaded?
179
+ !!@data
180
+ end
181
+
182
+ # @!group Actions
183
+
184
+ # @example Request syntax with placeholder values
185
+ #
186
+ # dbclustersnapshot = db_cluster_snapshot.create({
187
+ # tags: [
188
+ # {
189
+ # key: "String",
190
+ # value: "String",
191
+ # },
192
+ # ],
193
+ # })
194
+ # @param [Hash] options ({})
195
+ # @option options [Array<Types::Tag>] :tags
196
+ # The tags to be assigned to the DB cluster snapshot.
197
+ # @return [DBClusterSnapshot]
198
+ def create(options = {})
199
+ options = options.merge(
200
+ db_cluster_identifier: @cluster_id,
201
+ db_cluster_snapshot_identifier: @snapshot_id
202
+ )
203
+ resp = @client.create_db_cluster_snapshot(options)
204
+ DBClusterSnapshot.new(
205
+ cluster_id: resp.data.db_cluster_snapshot.db_cluster_identifier,
206
+ snapshot_id: resp.data.db_cluster_snapshot.db_cluster_snapshot_identifier,
207
+ data: resp.data.db_cluster_snapshot,
208
+ client: @client
209
+ )
210
+ end
211
+
212
+ # @example Request syntax with placeholder values
213
+ #
214
+ # dbclustersnapshot = db_cluster_snapshot.copy({
215
+ # target_db_cluster_snapshot_identifier: "String", # required
216
+ # tags: [
217
+ # {
218
+ # key: "String",
219
+ # value: "String",
220
+ # },
221
+ # ],
222
+ # })
223
+ # @param [Hash] options ({})
224
+ # @option options [required, String] :target_db_cluster_snapshot_identifier
225
+ # The identifier of the new DB cluster snapshot to create from the
226
+ # source DB cluster snapshot. This parameter is not case-sensitive.
227
+ #
228
+ # Constraints:
229
+ #
230
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens.
231
+ #
232
+ # * First character must be a letter.
233
+ #
234
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
235
+ #
236
+ # Example: `my-cluster-snapshot2`
237
+ # @option options [Array<Types::Tag>] :tags
238
+ # A list of tags.
239
+ # @return [DBClusterSnapshot]
240
+ def copy(options = {})
241
+ options = options.merge(source_db_cluster_snapshot_identifier: @snapshot_id)
242
+ resp = @client.copy_db_cluster_snapshot(options)
243
+ DBClusterSnapshot.new(
244
+ cluster_id: resp.data.db_cluster_snapshot.db_cluster_identifier,
245
+ snapshot_id: resp.data.db_cluster_snapshot.db_cluster_snapshot_identifier,
246
+ data: resp.data.db_cluster_snapshot,
247
+ client: @client
248
+ )
249
+ end
250
+
251
+ # @example Request syntax with placeholder values
252
+ #
253
+ # dbclustersnapshot = db_cluster_snapshot.delete()
254
+ # @param [Hash] options ({})
255
+ # @return [DBClusterSnapshot]
256
+ def delete(options = {})
257
+ options = options.merge(db_cluster_snapshot_identifier: @snapshot_id)
258
+ resp = @client.delete_db_cluster_snapshot(options)
259
+ DBClusterSnapshot.new(
260
+ cluster_id: resp.data.db_cluster_snapshot.db_cluster_identifier,
261
+ snapshot_id: resp.data.db_cluster_snapshot.db_cluster_snapshot_identifier,
262
+ data: resp.data.db_cluster_snapshot,
263
+ client: @client
264
+ )
265
+ end
266
+
267
+ # @example Request syntax with placeholder values
268
+ #
269
+ # dbcluster = db_cluster_snapshot.restore({
270
+ # availability_zones: ["String"],
271
+ # db_cluster_identifier: "String", # required
272
+ # engine: "String", # required
273
+ # engine_version: "String",
274
+ # port: 1,
275
+ # db_subnet_group_name: "String",
276
+ # database_name: "String",
277
+ # option_group_name: "String",
278
+ # vpc_security_group_ids: ["String"],
279
+ # tags: [
280
+ # {
281
+ # key: "String",
282
+ # value: "String",
283
+ # },
284
+ # ],
285
+ # kms_key_id: "String",
286
+ # })
287
+ # @param [Hash] options ({})
288
+ # @option options [Array<String>] :availability_zones
289
+ # Provides the list of EC2 Availability Zones that instances in the
290
+ # restored DB cluster can be created in.
291
+ # @option options [required, String] :db_cluster_identifier
292
+ # The name of the DB cluster to create from the DB cluster snapshot.
293
+ # This parameter isn't case-sensitive.
294
+ #
295
+ # Constraints:
296
+ #
297
+ # * Must contain from 1 to 255 alphanumeric characters or hyphens
298
+ #
299
+ # * First character must be a letter
300
+ #
301
+ # * Cannot end with a hyphen or contain two consecutive hyphens
302
+ #
303
+ # Example: `my-snapshot-id`
304
+ # @option options [required, String] :engine
305
+ # The database engine to use for the new DB cluster.
306
+ #
307
+ # Default: The same as source
308
+ #
309
+ # Constraint: Must be compatible with the engine of the source
310
+ # @option options [String] :engine_version
311
+ # The version of the database engine to use for the new DB cluster.
312
+ # @option options [Integer] :port
313
+ # The port number on which the new DB cluster accepts connections.
314
+ #
315
+ # Constraints: Value must be `1150-65535`
316
+ #
317
+ # Default: The same port as the original DB cluster.
318
+ # @option options [String] :db_subnet_group_name
319
+ # The name of the DB subnet group to use for the new DB cluster.
320
+ #
321
+ # Constraints: Must contain no more than 255 alphanumeric characters,
322
+ # periods, underscores, spaces, or hyphens. Must not be default.
323
+ #
324
+ # Example: `mySubnetgroup`
325
+ # @option options [String] :database_name
326
+ # The database name for the restored DB cluster.
327
+ # @option options [String] :option_group_name
328
+ # The name of the option group to use for the restored DB cluster.
329
+ # @option options [Array<String>] :vpc_security_group_ids
330
+ # A list of VPC security groups that the new DB cluster will belong to.
331
+ # @option options [Array<Types::Tag>] :tags
332
+ # The tags to be assigned to the restored DB cluster.
333
+ # @option options [String] :kms_key_id
334
+ # The KMS key identifier to use when restoring an encrypted DB cluster
335
+ # from a DB cluster snapshot.
336
+ #
337
+ # The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
338
+ # encryption key. If you are restoring a DB cluster with the same AWS
339
+ # account that owns the KMS encryption key used to encrypt the new DB
340
+ # cluster, then you can use the KMS key alias instead of the ARN for the
341
+ # KMS encryption key.
342
+ #
343
+ # If you do not specify a value for the `KmsKeyId` parameter, then the
344
+ # following will occur:
345
+ #
346
+ # * If the DB cluster snapshot is encrypted, then the restored DB
347
+ # cluster is encrypted using the KMS key that was used to encrypt the
348
+ # DB cluster snapshot.
349
+ #
350
+ # * If the DB cluster snapshot is not encrypted, then the restored DB
351
+ # cluster is encrypted using the specified encryption key.
352
+ # @return [DBCluster]
353
+ def restore(options = {})
354
+ options = options.merge(snapshot_identifier: @snapshot_id)
355
+ resp = @client.restore_db_cluster_from_snapshot(options)
356
+ DBCluster.new(
357
+ id: resp.data.db_cluster.db_cluster_identifier,
358
+ data: resp.data.db_cluster,
359
+ client: @client
360
+ )
361
+ end
362
+
363
+ # @!group Associations
364
+
365
+ # @return [DBCluster]
366
+ def cluster
367
+ DBCluster.new(
368
+ id: @cluster_id,
369
+ client: @client
370
+ )
371
+ end
372
+
373
+ # @example Request syntax with placeholder values
374
+ #
375
+ # events = db_cluster_snapshot.events({
376
+ # start_time: Time.now,
377
+ # end_time: Time.now,
378
+ # duration: 1,
379
+ # event_categories: ["String"],
380
+ # filters: [
381
+ # {
382
+ # name: "String", # required
383
+ # values: ["String"], # required
384
+ # },
385
+ # ],
386
+ # })
387
+ # @param [Hash] options ({})
388
+ # @option options [Time,DateTime,Date,Integer,String] :start_time
389
+ # The beginning of the time interval to retrieve events for, specified
390
+ # in ISO 8601 format. For more information about ISO 8601, go to the
391
+ # [ISO8601 Wikipedia page.][1]
392
+ #
393
+ # Example: 2009-07-08T18:00Z
394
+ #
395
+ #
396
+ #
397
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
398
+ # @option options [Time,DateTime,Date,Integer,String] :end_time
399
+ # The end of the time interval for which to retrieve events, specified
400
+ # in ISO 8601 format. For more information about ISO 8601, go to the
401
+ # [ISO8601 Wikipedia page.][1]
402
+ #
403
+ # Example: 2009-07-08T18:00Z
404
+ #
405
+ #
406
+ #
407
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
408
+ # @option options [Integer] :duration
409
+ # The number of minutes to retrieve events for.
410
+ #
411
+ # Default: 60
412
+ # @option options [Array<String>] :event_categories
413
+ # A list of event categories that trigger notifications for a event
414
+ # notification subscription.
415
+ # @option options [Array<Types::Filter>] :filters
416
+ # This parameter is not currently supported.
417
+ # @return [Event::Collection]
418
+ def events(options = {})
419
+ batches = Enumerator.new do |y|
420
+ options = options.merge(
421
+ source_type: "db-cluster-snapshot",
422
+ source_identifier: @snapshot_id
423
+ )
424
+ resp = @client.describe_events(options)
425
+ resp.each_page do |page|
426
+ batch = []
427
+ page.data.events.each do |e|
428
+ batch << Event.new(
429
+ source_id: e.source_identifier,
430
+ date: e.date,
431
+ data: e,
432
+ client: @client
433
+ )
434
+ end
435
+ y.yield(batch)
436
+ end
437
+ end
438
+ Event::Collection.new(batches)
439
+ end
440
+
441
+ # @deprecated
442
+ # @api private
443
+ def identifiers
444
+ {
445
+ cluster_id: @cluster_id,
446
+ snapshot_id: @snapshot_id
447
+ }
448
+ end
449
+ deprecated(:identifiers)
450
+
451
+ private
452
+
453
+ def extract_cluster_id(args, options)
454
+ value = args[0] || options.delete(:cluster_id)
455
+ case value
456
+ when String then value
457
+ when nil then raise ArgumentError, "missing required option :cluster_id"
458
+ else
459
+ msg = "expected :cluster_id to be a String, got #{value.class}"
460
+ raise ArgumentError, msg
461
+ end
462
+ end
463
+
464
+ def extract_snapshot_id(args, options)
465
+ value = args[1] || options.delete(:snapshot_id)
466
+ case value
467
+ when String then value
468
+ when nil then raise ArgumentError, "missing required option :snapshot_id"
469
+ else
470
+ msg = "expected :snapshot_id to be a String, got #{value.class}"
471
+ raise ArgumentError, msg
472
+ end
473
+ end
474
+
475
+ class Collection < Aws::Resources::Collection; end
476
+ end
477
+ end
478
+ end