aws-sdk-rds 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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,191 @@
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 ReservedDBInstance
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(id, options = {})
15
+ # @param [String] id
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :id
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @id = extract_id(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 id
31
+ @id
32
+ end
33
+ alias :reserved_db_instance_id :id
34
+
35
+ # The offering identifier.
36
+ # @return [String]
37
+ def reserved_db_instances_offering_id
38
+ data.reserved_db_instances_offering_id
39
+ end
40
+
41
+ # The DB instance class for the reserved DB instance.
42
+ # @return [String]
43
+ def db_instance_class
44
+ data.db_instance_class
45
+ end
46
+
47
+ # The time the reservation started.
48
+ # @return [Time]
49
+ def start_time
50
+ data.start_time
51
+ end
52
+
53
+ # The duration of the reservation in seconds.
54
+ # @return [Integer]
55
+ def duration
56
+ data.duration
57
+ end
58
+
59
+ # The fixed price charged for this reserved DB instance.
60
+ # @return [Float]
61
+ def fixed_price
62
+ data.fixed_price
63
+ end
64
+
65
+ # The hourly price charged for this reserved DB instance.
66
+ # @return [Float]
67
+ def usage_price
68
+ data.usage_price
69
+ end
70
+
71
+ # The currency code for the reserved DB instance.
72
+ # @return [String]
73
+ def currency_code
74
+ data.currency_code
75
+ end
76
+
77
+ # The number of reserved DB instances.
78
+ # @return [Integer]
79
+ def db_instance_count
80
+ data.db_instance_count
81
+ end
82
+
83
+ # The description of the reserved DB instance.
84
+ # @return [String]
85
+ def product_description
86
+ data.product_description
87
+ end
88
+
89
+ # The offering type of this reserved DB instance.
90
+ # @return [String]
91
+ def offering_type
92
+ data.offering_type
93
+ end
94
+
95
+ # Indicates if the reservation applies to Multi-AZ deployments.
96
+ # @return [Boolean]
97
+ def multi_az
98
+ data.multi_az
99
+ end
100
+
101
+ # The state of the reserved DB instance.
102
+ # @return [String]
103
+ def state
104
+ data.state
105
+ end
106
+
107
+ # The recurring price charged to run this reserved DB instance.
108
+ # @return [Array<Types::RecurringCharge>]
109
+ def recurring_charges
110
+ data.recurring_charges
111
+ end
112
+
113
+ # The Amazon Resource Name (ARN) for the reserved DB instance.
114
+ # @return [String]
115
+ def reserved_db_instance_arn
116
+ data.reserved_db_instance_arn
117
+ end
118
+
119
+ # @!endgroup
120
+
121
+ # @return [Client]
122
+ def client
123
+ @client
124
+ end
125
+
126
+ # Loads, or reloads {#data} for the current {ReservedDBInstance}.
127
+ # Returns `self` making it possible to chain methods.
128
+ #
129
+ # reserved_db_instance.reload.data
130
+ #
131
+ # @return [self]
132
+ def load
133
+ resp = @client.describe_reserved_db_instances(reserved_db_instance_id: @id)
134
+ @data = resp.reserveddbinstances[0]
135
+ self
136
+ end
137
+ alias :reload :load
138
+
139
+ # @return [Types::ReservedDBInstance]
140
+ # Returns the data for this {ReservedDBInstance}. Calls
141
+ # {Client#describe_reserved_db_instances} if {#data_loaded?} is `false`.
142
+ def data
143
+ load unless @data
144
+ @data
145
+ end
146
+
147
+ # @return [Boolean]
148
+ # Returns `true` if this resource is loaded. Accessing attributes or
149
+ # {#data} on an unloaded resource will trigger a call to {#load}.
150
+ def data_loaded?
151
+ !!@data
152
+ end
153
+
154
+ # @!group Associations
155
+
156
+ # @return [ReservedDBInstancesOffering, nil]
157
+ def offering
158
+ if data.reserved_db_instances_offering_id
159
+ ReservedDBInstancesOffering.new(
160
+ id: data.reserved_db_instances_offering_id,
161
+ client: @client
162
+ )
163
+ else
164
+ nil
165
+ end
166
+ end
167
+
168
+ # @deprecated
169
+ # @api private
170
+ def identifiers
171
+ { id: @id }
172
+ end
173
+ deprecated(:identifiers)
174
+
175
+ private
176
+
177
+ def extract_id(args, options)
178
+ value = args[0] || options.delete(:id)
179
+ case value
180
+ when String then value
181
+ when nil then raise ArgumentError, "missing required option :id"
182
+ else
183
+ msg = "expected :id to be a String, got #{value.class}"
184
+ raise ArgumentError, msg
185
+ end
186
+ end
187
+
188
+ class Collection < Aws::Resources::Collection; end
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,183 @@
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 ReservedDBInstancesOffering
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(id, options = {})
15
+ # @param [String] id
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :id
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @id = extract_id(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 id
31
+ @id
32
+ end
33
+ alias :reserved_db_instances_offering_id :id
34
+
35
+ # The DB instance class for the reserved DB instance.
36
+ # @return [String]
37
+ def db_instance_class
38
+ data.db_instance_class
39
+ end
40
+
41
+ # The duration of the offering in seconds.
42
+ # @return [Integer]
43
+ def duration
44
+ data.duration
45
+ end
46
+
47
+ # The fixed price charged for this offering.
48
+ # @return [Float]
49
+ def fixed_price
50
+ data.fixed_price
51
+ end
52
+
53
+ # The hourly price charged for this offering.
54
+ # @return [Float]
55
+ def usage_price
56
+ data.usage_price
57
+ end
58
+
59
+ # The currency code for the reserved DB instance offering.
60
+ # @return [String]
61
+ def currency_code
62
+ data.currency_code
63
+ end
64
+
65
+ # The database engine used by the offering.
66
+ # @return [String]
67
+ def product_description
68
+ data.product_description
69
+ end
70
+
71
+ # The offering type.
72
+ # @return [String]
73
+ def offering_type
74
+ data.offering_type
75
+ end
76
+
77
+ # Indicates if the offering applies to Multi-AZ deployments.
78
+ # @return [Boolean]
79
+ def multi_az
80
+ data.multi_az
81
+ end
82
+
83
+ # The recurring price charged to run this reserved DB instance.
84
+ # @return [Array<Types::RecurringCharge>]
85
+ def recurring_charges
86
+ data.recurring_charges
87
+ end
88
+
89
+ # @!endgroup
90
+
91
+ # @return [Client]
92
+ def client
93
+ @client
94
+ end
95
+
96
+ # Loads, or reloads {#data} for the current {ReservedDBInstancesOffering}.
97
+ # Returns `self` making it possible to chain methods.
98
+ #
99
+ # reserved_db_instances_offering.reload.data
100
+ #
101
+ # @return [self]
102
+ def load
103
+ resp = @client.describe_reserved_db_instances_offerings(reserved_db_instances_offering_id: @id)
104
+ @data = resp.reserveddbinstancesofferings[0]
105
+ self
106
+ end
107
+ alias :reload :load
108
+
109
+ # @return [Types::ReservedDBInstancesOffering]
110
+ # Returns the data for this {ReservedDBInstancesOffering}. Calls
111
+ # {Client#describe_reserved_db_instances_offerings} if {#data_loaded?} is `false`.
112
+ def data
113
+ load unless @data
114
+ @data
115
+ end
116
+
117
+ # @return [Boolean]
118
+ # Returns `true` if this resource is loaded. Accessing attributes or
119
+ # {#data} on an unloaded resource will trigger a call to {#load}.
120
+ def data_loaded?
121
+ !!@data
122
+ end
123
+
124
+ # @!group Actions
125
+
126
+ # @example Request syntax with placeholder values
127
+ #
128
+ # reserveddbinstance = reserved_db_instances_offering.purchase({
129
+ # reserved_db_instance_id: "String",
130
+ # db_instance_count: 1,
131
+ # tags: [
132
+ # {
133
+ # key: "String",
134
+ # value: "String",
135
+ # },
136
+ # ],
137
+ # })
138
+ # @param [Hash] options ({})
139
+ # @option options [String] :reserved_db_instance_id
140
+ # Customer-specified identifier to track this reservation.
141
+ #
142
+ # Example: myreservationID
143
+ # @option options [Integer] :db_instance_count
144
+ # The number of instances to reserve.
145
+ #
146
+ # Default: `1`
147
+ # @option options [Array<Types::Tag>] :tags
148
+ # A list of tags.
149
+ # @return [ReservedDBInstance]
150
+ def purchase(options = {})
151
+ options = options.merge(reserved_db_instances_offering_id: @id)
152
+ resp = @client.purchase_reserved_db_instances_offering(options)
153
+ ReservedDBInstance.new(
154
+ id: resp.data.reserved_db_instance.reserved_db_instance_id,
155
+ data: resp.data.reserved_db_instance,
156
+ client: @client
157
+ )
158
+ end
159
+
160
+ # @deprecated
161
+ # @api private
162
+ def identifiers
163
+ { id: @id }
164
+ end
165
+ deprecated(:identifiers)
166
+
167
+ private
168
+
169
+ def extract_id(args, options)
170
+ value = args[0] || options.delete(:id)
171
+ case value
172
+ when String then value
173
+ when nil then raise ArgumentError, "missing required option :id"
174
+ else
175
+ msg = "expected :id to be a String, got #{value.class}"
176
+ raise ArgumentError, msg
177
+ end
178
+ end
179
+
180
+ class Collection < Aws::Resources::Collection; end
181
+ end
182
+ end
183
+ end
@@ -0,0 +1,2384 @@
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 Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ # @!group Actions
24
+
25
+ # @example Request syntax with placeholder values
26
+ #
27
+ # dbcluster = rds.create_db_cluster({
28
+ # availability_zones: ["String"],
29
+ # backup_retention_period: 1,
30
+ # character_set_name: "String",
31
+ # database_name: "String",
32
+ # db_cluster_identifier: "String", # required
33
+ # db_cluster_parameter_group_name: "String",
34
+ # vpc_security_group_ids: ["String"],
35
+ # db_subnet_group_name: "String",
36
+ # engine: "String", # required
37
+ # engine_version: "String",
38
+ # port: 1,
39
+ # master_username: "String",
40
+ # master_user_password: "String",
41
+ # option_group_name: "String",
42
+ # preferred_backup_window: "String",
43
+ # preferred_maintenance_window: "String",
44
+ # replication_source_identifier: "String",
45
+ # tags: [
46
+ # {
47
+ # key: "String",
48
+ # value: "String",
49
+ # },
50
+ # ],
51
+ # storage_encrypted: false,
52
+ # kms_key_id: "String",
53
+ # })
54
+ # @param [Hash] options ({})
55
+ # @option options [Array<String>] :availability_zones
56
+ # A list of EC2 Availability Zones that instances in the DB cluster can
57
+ # be created in. For information on regions and Availability Zones, see
58
+ # [Regions and Availability Zones][1].
59
+ #
60
+ #
61
+ #
62
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
63
+ # @option options [Integer] :backup_retention_period
64
+ # The number of days for which automated backups are retained. You must
65
+ # specify a minimum value of 1.
66
+ #
67
+ # Default: 1
68
+ #
69
+ # Constraints:
70
+ #
71
+ # * Must be a value from 1 to 35
72
+ #
73
+ # ^
74
+ # @option options [String] :character_set_name
75
+ # A value that indicates that the DB cluster should be associated with
76
+ # the specified CharacterSet.
77
+ # @option options [String] :database_name
78
+ # The name for your database of up to 8 alpha-numeric characters. If you
79
+ # do not provide a name, Amazon RDS will not create a database in the DB
80
+ # cluster you are creating.
81
+ # @option options [required, String] :db_cluster_identifier
82
+ # The DB cluster identifier. This parameter is stored as a lowercase
83
+ # string.
84
+ #
85
+ # Constraints:
86
+ #
87
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens.
88
+ #
89
+ # * First character must be a letter.
90
+ #
91
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
92
+ #
93
+ # Example: `my-cluster1`
94
+ # @option options [String] :db_cluster_parameter_group_name
95
+ # The name of the DB cluster parameter group to associate with this DB
96
+ # cluster. If this argument is omitted, `default.aurora5.6` will be
97
+ # used.
98
+ #
99
+ # Constraints:
100
+ #
101
+ # * Must be 1 to 255 alphanumeric characters
102
+ #
103
+ # * First character must be a letter
104
+ #
105
+ # * Cannot end with a hyphen or contain two consecutive hyphens
106
+ # @option options [Array<String>] :vpc_security_group_ids
107
+ # A list of EC2 VPC security groups to associate with this DB cluster.
108
+ # @option options [String] :db_subnet_group_name
109
+ # A DB subnet group to associate with this DB cluster.
110
+ #
111
+ # Constraints: Must contain no more than 255 alphanumeric characters,
112
+ # periods, underscores, spaces, or hyphens. Must not be default.
113
+ #
114
+ # Example: `mySubnetgroup`
115
+ # @option options [required, String] :engine
116
+ # The name of the database engine to be used for this DB cluster.
117
+ #
118
+ # Valid Values: `aurora`
119
+ # @option options [String] :engine_version
120
+ # The version number of the database engine to use.
121
+ #
122
+ # **Aurora**
123
+ #
124
+ # Example: `5.6.10a`
125
+ # @option options [Integer] :port
126
+ # The port number on which the instances in the DB cluster accept
127
+ # connections.
128
+ #
129
+ # Default: `3306`
130
+ # @option options [String] :master_username
131
+ # The name of the master user for the DB cluster.
132
+ #
133
+ # Constraints:
134
+ #
135
+ # * Must be 1 to 16 alphanumeric characters.
136
+ #
137
+ # * First character must be a letter.
138
+ #
139
+ # * Cannot be a reserved word for the chosen database engine.
140
+ # @option options [String] :master_user_password
141
+ # The password for the master database user. This password can contain
142
+ # any printable ASCII character except "/", """, or "@".
143
+ #
144
+ # Constraints: Must contain from 8 to 41 characters.
145
+ # @option options [String] :option_group_name
146
+ # A value that indicates that the DB cluster should be associated with
147
+ # the specified option group.
148
+ #
149
+ # Permanent options cannot be removed from an option group. The option
150
+ # group cannot be removed from a DB cluster once it is associated with a
151
+ # DB cluster.
152
+ # @option options [String] :preferred_backup_window
153
+ # The daily time range during which automated backups are created if
154
+ # automated backups are enabled using the `BackupRetentionPeriod`
155
+ # parameter.
156
+ #
157
+ # Default: A 30-minute window selected at random from an 8-hour block of
158
+ # time per region. To see the time blocks available, see [ Adjusting the
159
+ # Preferred Maintenance Window][1] in the *Amazon RDS User Guide.*
160
+ #
161
+ # Constraints:
162
+ #
163
+ # * Must be in the format `hh24:mi-hh24:mi`.
164
+ #
165
+ # * Times should be in Universal Coordinated Time (UTC).
166
+ #
167
+ # * Must not conflict with the preferred maintenance window.
168
+ #
169
+ # * Must be at least 30 minutes.
170
+ #
171
+ #
172
+ #
173
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
174
+ # @option options [String] :preferred_maintenance_window
175
+ # The weekly time range during which system maintenance can occur, in
176
+ # Universal Coordinated Time (UTC).
177
+ #
178
+ # Format: `ddd:hh24:mi-ddd:hh24:mi`
179
+ #
180
+ # Default: A 30-minute window selected at random from an 8-hour block of
181
+ # time per region, occurring on a random day of the week. To see the
182
+ # time blocks available, see [ Adjusting the Preferred Maintenance
183
+ # Window][1] in the *Amazon RDS User Guide.*
184
+ #
185
+ # Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
186
+ #
187
+ # Constraints: Minimum 30-minute window.
188
+ #
189
+ #
190
+ #
191
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
192
+ # @option options [String] :replication_source_identifier
193
+ # The Amazon Resource Name (ARN) of the source DB cluster if this DB
194
+ # cluster is created as a Read Replica.
195
+ # @option options [Array<Types::Tag>] :tags
196
+ # A list of tags.
197
+ # @option options [Boolean] :storage_encrypted
198
+ # Specifies whether the DB cluster is encrypted.
199
+ # @option options [String] :kms_key_id
200
+ # The KMS key identifier for an encrypted DB cluster.
201
+ #
202
+ # The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
203
+ # encryption key. If you are creating a DB cluster with the same AWS
204
+ # account that owns the KMS encryption key used to encrypt the new DB
205
+ # cluster, then you can use the KMS key alias instead of the ARN for the
206
+ # KM encryption key.
207
+ #
208
+ # If the `StorageEncrypted` parameter is true, and you do not specify a
209
+ # value for the `KmsKeyId` parameter, then Amazon RDS will use your
210
+ # default encryption key. AWS KMS creates the default encryption key for
211
+ # your AWS account. Your AWS account has a different default encryption
212
+ # key for each AWS region.
213
+ # @return [DBCluster]
214
+ def create_db_cluster(options = {})
215
+ resp = @client.create_db_cluster(options)
216
+ DBCluster.new(
217
+ id: options[:db_cluster][:db_cluster_identifier],
218
+ data: resp.data.db_cluster,
219
+ client: @client
220
+ )
221
+ end
222
+
223
+ # @example Request syntax with placeholder values
224
+ #
225
+ # dbclusterparametergroup = rds.create_db_cluster_parameter_group({
226
+ # db_cluster_parameter_group_name: "String", # required
227
+ # db_parameter_group_family: "String", # required
228
+ # description: "String", # required
229
+ # tags: [
230
+ # {
231
+ # key: "String",
232
+ # value: "String",
233
+ # },
234
+ # ],
235
+ # })
236
+ # @param [Hash] options ({})
237
+ # @option options [required, String] :db_cluster_parameter_group_name
238
+ # The name of the DB cluster parameter group.
239
+ #
240
+ # Constraints:
241
+ #
242
+ # * Must be 1 to 255 alphanumeric characters
243
+ #
244
+ # * First character must be a letter
245
+ #
246
+ # * Cannot end with a hyphen or contain two consecutive hyphens
247
+ #
248
+ # <note markdown="1"> This value is stored as a lowercase string.
249
+ #
250
+ # </note>
251
+ # @option options [required, String] :db_parameter_group_family
252
+ # The DB cluster parameter group family name. A DB cluster parameter
253
+ # group can be associated with one and only one DB cluster parameter
254
+ # group family, and can be applied only to a DB cluster running a
255
+ # database engine and engine version compatible with that DB cluster
256
+ # parameter group family.
257
+ # @option options [required, String] :description
258
+ # The description for the DB cluster parameter group.
259
+ # @option options [Array<Types::Tag>] :tags
260
+ # A list of tags.
261
+ # @return [DBClusterParameterGroup]
262
+ def create_db_cluster_parameter_group(options = {})
263
+ resp = @client.create_db_cluster_parameter_group(options)
264
+ DBClusterParameterGroup.new(
265
+ name: resp.data.db_cluster_parameter_group.db_cluster_parameter_group_name,
266
+ data: resp.data.db_cluster_parameter_group,
267
+ client: @client
268
+ )
269
+ end
270
+
271
+ # @example Request syntax with placeholder values
272
+ #
273
+ # dbinstance = rds.create_db_instance({
274
+ # db_name: "String",
275
+ # db_instance_identifier: "String", # required
276
+ # allocated_storage: 1,
277
+ # db_instance_class: "String", # required
278
+ # engine: "String", # required
279
+ # master_username: "String",
280
+ # master_user_password: "String",
281
+ # db_security_groups: ["String"],
282
+ # vpc_security_group_ids: ["String"],
283
+ # availability_zone: "String",
284
+ # db_subnet_group_name: "String",
285
+ # preferred_maintenance_window: "String",
286
+ # db_parameter_group_name: "String",
287
+ # backup_retention_period: 1,
288
+ # preferred_backup_window: "String",
289
+ # port: 1,
290
+ # multi_az: false,
291
+ # engine_version: "String",
292
+ # auto_minor_version_upgrade: false,
293
+ # license_model: "String",
294
+ # iops: 1,
295
+ # option_group_name: "String",
296
+ # character_set_name: "String",
297
+ # publicly_accessible: false,
298
+ # tags: [
299
+ # {
300
+ # key: "String",
301
+ # value: "String",
302
+ # },
303
+ # ],
304
+ # db_cluster_identifier: "String",
305
+ # storage_type: "String",
306
+ # tde_credential_arn: "String",
307
+ # tde_credential_password: "String",
308
+ # storage_encrypted: false,
309
+ # kms_key_id: "String",
310
+ # domain: "String",
311
+ # copy_tags_to_snapshot: false,
312
+ # monitoring_interval: 1,
313
+ # monitoring_role_arn: "String",
314
+ # domain_iam_role_name: "String",
315
+ # promotion_tier: 1,
316
+ # timezone: "String",
317
+ # })
318
+ # @param [Hash] options ({})
319
+ # @option options [String] :db_name
320
+ # The meaning of this parameter differs according to the database engine
321
+ # you use.
322
+ #
323
+ # Type: String
324
+ #
325
+ # **MySQL**
326
+ #
327
+ # The name of the database to create when the DB instance is created. If
328
+ # this parameter is not specified, no database is created in the DB
329
+ # instance.
330
+ #
331
+ # Constraints:
332
+ #
333
+ # * Must contain 1 to 64 alphanumeric characters
334
+ #
335
+ # * Cannot be a word reserved by the specified database engine
336
+ #
337
+ # **MariaDB**
338
+ #
339
+ # The name of the database to create when the DB instance is created. If
340
+ # this parameter is not specified, no database is created in the DB
341
+ # instance.
342
+ #
343
+ # Constraints:
344
+ #
345
+ # * Must contain 1 to 64 alphanumeric characters
346
+ #
347
+ # * Cannot be a word reserved by the specified database engine
348
+ #
349
+ # **PostgreSQL**
350
+ #
351
+ # The name of the database to create when the DB instance is created. If
352
+ # this parameter is not specified, the default "postgres" database is
353
+ # created in the DB instance.
354
+ #
355
+ # Constraints:
356
+ #
357
+ # * Must contain 1 to 63 alphanumeric characters
358
+ #
359
+ # * Must begin with a letter or an underscore. Subsequent characters can
360
+ # be letters, underscores, or digits (0-9).
361
+ #
362
+ # * Cannot be a word reserved by the specified database engine
363
+ #
364
+ # **Oracle**
365
+ #
366
+ # The Oracle System ID (SID) of the created DB instance.
367
+ #
368
+ # Default: `ORCL`
369
+ #
370
+ # Constraints:
371
+ #
372
+ # * Cannot be longer than 8 characters
373
+ #
374
+ # ^
375
+ #
376
+ # **SQL Server**
377
+ #
378
+ # Not applicable. Must be null.
379
+ #
380
+ # **Amazon Aurora**
381
+ #
382
+ # The name of the database to create when the primary instance of the DB
383
+ # cluster is created. If this parameter is not specified, no database is
384
+ # created in the DB instance.
385
+ #
386
+ # Constraints:
387
+ #
388
+ # * Must contain 1 to 64 alphanumeric characters
389
+ #
390
+ # * Cannot be a word reserved by the specified database engine
391
+ # @option options [required, String] :db_instance_identifier
392
+ # The DB instance identifier. This parameter is stored as a lowercase
393
+ # string.
394
+ #
395
+ # Constraints:
396
+ #
397
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens (1 to
398
+ # 15 for SQL Server).
399
+ #
400
+ # * First character must be a letter.
401
+ #
402
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
403
+ #
404
+ # Example: `mydbinstance`
405
+ # @option options [Integer] :allocated_storage
406
+ # The amount of storage (in gigabytes) to be initially allocated for the
407
+ # database instance.
408
+ #
409
+ # Type: Integer
410
+ #
411
+ # **MySQL**
412
+ #
413
+ # Constraints: Must be an integer from 5 to 6144.
414
+ #
415
+ # **MariaDB**
416
+ #
417
+ # Constraints: Must be an integer from 5 to 6144.
418
+ #
419
+ # **PostgreSQL**
420
+ #
421
+ # Constraints: Must be an integer from 5 to 6144.
422
+ #
423
+ # **Oracle**
424
+ #
425
+ # Constraints: Must be an integer from 10 to 6144.
426
+ #
427
+ # **SQL Server**
428
+ #
429
+ # Constraints: Must be an integer from 200 to 4096 (Standard Edition and
430
+ # Enterprise Edition) or from 20 to 4096 (Express Edition and Web
431
+ # Edition)
432
+ # @option options [required, String] :db_instance_class
433
+ # The compute and memory capacity of the DB instance.
434
+ #
435
+ # Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large
436
+ # | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge |
437
+ # db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge |
438
+ # db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge |
439
+ # db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge |
440
+ # db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small |
441
+ # db.t2.medium | db.t2.large`
442
+ # @option options [required, String] :engine
443
+ # The name of the database engine to be used for this instance.
444
+ #
445
+ # Valid Values: `mysql` \| `mariadb` \| `oracle-se1` \| `oracle-se2` \|
446
+ # `oracle-se` \| `oracle-ee` \| `sqlserver-ee` \| `sqlserver-se` \|
447
+ # `sqlserver-ex` \| `sqlserver-web` \| `postgres` \| `aurora`
448
+ #
449
+ # Not every database engine is available for every AWS region.
450
+ # @option options [String] :master_username
451
+ # The name of master user for the client DB instance.
452
+ #
453
+ # **MySQL**
454
+ #
455
+ # Constraints:
456
+ #
457
+ # * Must be 1 to 16 alphanumeric characters.
458
+ #
459
+ # * First character must be a letter.
460
+ #
461
+ # * Cannot be a reserved word for the chosen database engine.
462
+ #
463
+ # **MariaDB**
464
+ #
465
+ # Constraints:
466
+ #
467
+ # * Must be 1 to 16 alphanumeric characters.
468
+ #
469
+ # * Cannot be a reserved word for the chosen database engine.
470
+ #
471
+ # Type: String
472
+ #
473
+ # **Oracle**
474
+ #
475
+ # Constraints:
476
+ #
477
+ # * Must be 1 to 30 alphanumeric characters.
478
+ #
479
+ # * First character must be a letter.
480
+ #
481
+ # * Cannot be a reserved word for the chosen database engine.
482
+ #
483
+ # **SQL Server**
484
+ #
485
+ # Constraints:
486
+ #
487
+ # * Must be 1 to 128 alphanumeric characters.
488
+ #
489
+ # * First character must be a letter.
490
+ #
491
+ # * Cannot be a reserved word for the chosen database engine.
492
+ #
493
+ # **PostgreSQL**
494
+ #
495
+ # Constraints:
496
+ #
497
+ # * Must be 1 to 63 alphanumeric characters.
498
+ #
499
+ # * First character must be a letter.
500
+ #
501
+ # * Cannot be a reserved word for the chosen database engine.
502
+ # @option options [String] :master_user_password
503
+ # The password for the master database user. Can be any printable ASCII
504
+ # character except "/", """, or "@".
505
+ #
506
+ # Type: String
507
+ #
508
+ # **MySQL**
509
+ #
510
+ # Constraints: Must contain from 8 to 41 characters.
511
+ #
512
+ # **MariaDB**
513
+ #
514
+ # Constraints: Must contain from 8 to 41 characters.
515
+ #
516
+ # **Oracle**
517
+ #
518
+ # Constraints: Must contain from 8 to 30 characters.
519
+ #
520
+ # **SQL Server**
521
+ #
522
+ # Constraints: Must contain from 8 to 128 characters.
523
+ #
524
+ # **PostgreSQL**
525
+ #
526
+ # Constraints: Must contain from 8 to 128 characters.
527
+ #
528
+ # **Amazon Aurora**
529
+ #
530
+ # Constraints: Must contain from 8 to 41 characters.
531
+ # @option options [Array<String>] :db_security_groups
532
+ # A list of DB security groups to associate with this DB instance.
533
+ #
534
+ # Default: The default DB security group for the database engine.
535
+ # @option options [Array<String>] :vpc_security_group_ids
536
+ # A list of EC2 VPC security groups to associate with this DB instance.
537
+ #
538
+ # Default: The default EC2 VPC security group for the DB subnet group's
539
+ # VPC.
540
+ # @option options [String] :availability_zone
541
+ # The EC2 Availability Zone that the database instance will be created
542
+ # in. For information on regions and Availability Zones, see [Regions
543
+ # and Availability Zones][1].
544
+ #
545
+ # Default: A random, system-chosen Availability Zone in the endpoint's
546
+ # region.
547
+ #
548
+ # Example: `us-east-1d`
549
+ #
550
+ # Constraint: The AvailabilityZone parameter cannot be specified if the
551
+ # MultiAZ parameter is set to `true`. The specified Availability Zone
552
+ # must be in the same region as the current endpoint.
553
+ #
554
+ #
555
+ #
556
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
557
+ # @option options [String] :db_subnet_group_name
558
+ # A DB subnet group to associate with this DB instance.
559
+ #
560
+ # If there is no DB subnet group, then it is a non-VPC DB instance.
561
+ # @option options [String] :preferred_maintenance_window
562
+ # The weekly time range during which system maintenance can occur, in
563
+ # Universal Coordinated Time (UTC). For more information, see [DB
564
+ # Instance Maintenance][1].
565
+ #
566
+ # Format: `ddd:hh24:mi-ddd:hh24:mi`
567
+ #
568
+ # Default: A 30-minute window selected at random from an 8-hour block of
569
+ # time per region, occurring on a random day of the week. To see the
570
+ # time blocks available, see [ Adjusting the Preferred Maintenance
571
+ # Window][2] in the *Amazon RDS User Guide.*
572
+ #
573
+ # Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
574
+ #
575
+ # Constraints: Minimum 30-minute window.
576
+ #
577
+ #
578
+ #
579
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBMaintenance.html
580
+ # [2]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
581
+ # @option options [String] :db_parameter_group_name
582
+ # The name of the DB parameter group to associate with this DB instance.
583
+ # If this argument is omitted, the default DBParameterGroup for the
584
+ # specified engine will be used.
585
+ #
586
+ # Constraints:
587
+ #
588
+ # * Must be 1 to 255 alphanumeric characters
589
+ #
590
+ # * First character must be a letter
591
+ #
592
+ # * Cannot end with a hyphen or contain two consecutive hyphens
593
+ # @option options [Integer] :backup_retention_period
594
+ # The number of days for which automated backups are retained. Setting
595
+ # this parameter to a positive number enables backups. Setting this
596
+ # parameter to 0 disables automated backups.
597
+ #
598
+ # Default: 1
599
+ #
600
+ # Constraints:
601
+ #
602
+ # * Must be a value from 0 to 35
603
+ #
604
+ # * Cannot be set to 0 if the DB instance is a source to Read Replicas
605
+ # @option options [String] :preferred_backup_window
606
+ # The daily time range during which automated backups are created if
607
+ # automated backups are enabled, using the `BackupRetentionPeriod`
608
+ # parameter. For more information, see [DB Instance Backups][1].
609
+ #
610
+ # Default: A 30-minute window selected at random from an 8-hour block of
611
+ # time per region. To see the time blocks available, see [ Adjusting the
612
+ # Preferred Maintenance Window][2] in the *Amazon RDS User Guide.*
613
+ #
614
+ # Constraints:
615
+ #
616
+ # * Must be in the format `hh24:mi-hh24:mi`.
617
+ #
618
+ # * Times should be in Universal Coordinated Time (UTC).
619
+ #
620
+ # * Must not conflict with the preferred maintenance window.
621
+ #
622
+ # * Must be at least 30 minutes.
623
+ #
624
+ #
625
+ #
626
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.BackingUpAndRestoringAmazonRDSInstances.html
627
+ # [2]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
628
+ # @option options [Integer] :port
629
+ # The port number on which the database accepts connections.
630
+ #
631
+ # **MySQL**
632
+ #
633
+ # Default: `3306`
634
+ #
635
+ # Valid Values: `1150-65535`
636
+ #
637
+ # Type: Integer
638
+ #
639
+ # **MariaDB**
640
+ #
641
+ # Default: `3306`
642
+ #
643
+ # Valid Values: `1150-65535`
644
+ #
645
+ # Type: Integer
646
+ #
647
+ # **PostgreSQL**
648
+ #
649
+ # Default: `5432`
650
+ #
651
+ # Valid Values: `1150-65535`
652
+ #
653
+ # Type: Integer
654
+ #
655
+ # **Oracle**
656
+ #
657
+ # Default: `1521`
658
+ #
659
+ # Valid Values: `1150-65535`
660
+ #
661
+ # **SQL Server**
662
+ #
663
+ # Default: `1433`
664
+ #
665
+ # Valid Values: `1150-65535` except for `1434`, `3389`, `47001`,
666
+ # `49152`, and `49152` through `49156`.
667
+ #
668
+ # **Amazon Aurora**
669
+ #
670
+ # Default: `3306`
671
+ #
672
+ # Valid Values: `1150-65535`
673
+ #
674
+ # Type: Integer
675
+ # @option options [Boolean] :multi_az
676
+ # Specifies if the DB instance is a Multi-AZ deployment. You cannot set
677
+ # the AvailabilityZone parameter if the MultiAZ parameter is set to
678
+ # true.
679
+ # @option options [String] :engine_version
680
+ # The version number of the database engine to use.
681
+ #
682
+ # The following are the database engines and major and minor versions
683
+ # that are available with Amazon RDS. Not every database engine is
684
+ # available for every AWS region.
685
+ #
686
+ # **Amazon Aurora**
687
+ #
688
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
689
+ # ap-northeast-2, ap-south-1, ap-southeast-2, eu-west-1, us-east-1,
690
+ # us-west-2):** ` 5.6.10a`
691
+ #
692
+ # ^
693
+ #
694
+ # **MariaDB**
695
+ #
696
+ # * **Version 10.1 (available in these AWS regions: ap-northeast-1,
697
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
698
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
699
+ # us-west-2):** ` 10.1.14`
700
+ #
701
+ # * **Version 10.0 (available in all AWS regions):** ` 10.0.17 |
702
+ # 10.0.24`
703
+ #
704
+ # **MySQL**
705
+ #
706
+ # * **Version 5.7 (available in all AWS regions):** ` 5.7.10 | 5.7.11`
707
+ #
708
+ # * **Version 5.6 (available in all AWS regions):** ` 5.6.27 | 5.6.29`
709
+ #
710
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
711
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
712
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
713
+ # us-west-2):** ` 5.6.23`
714
+ #
715
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
716
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
717
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 5.6.19a |
718
+ # 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22`
719
+ #
720
+ # * **Version 5.5 (available in all AWS regions):** ` 5.5.46`
721
+ #
722
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
723
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
724
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
725
+ # us-west-2):** ` 5.5.42`
726
+ #
727
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
728
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
729
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 5.5.40b |
730
+ # 5.5.41`
731
+ #
732
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
733
+ # ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-east-1,
734
+ # us-gov-west-1, us-west-1, us-west-2):** ` 5.5.40 | 5.5.40a`
735
+ #
736
+ # **Oracle Database Enterprise Edition (oracle-ee)**
737
+ #
738
+ # * **Version 12.1.0.2 (available in these AWS regions: ap-northeast-1,
739
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
740
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
741
+ # us-west-2):** ` 12.1.0.2.v5`
742
+ #
743
+ # * **Version 12.1.0.2 (available in all AWS regions):** ` 12.1.0.2.v1 |
744
+ # 12.1.0.2.v2 | 12.1.0.2.v3 | 12.1.0.2.v4`
745
+ #
746
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
747
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
748
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
749
+ #
750
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
751
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
752
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
753
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
754
+ #
755
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
756
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
757
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
758
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
759
+ #
760
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
761
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
762
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
763
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
764
+ #
765
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
766
+ # 11.2.0.4.v3 | 11.2.0.4.v4 | 11.2.0.4.v5 | 11.2.0.4.v7 | 11.2.0.4.v8`
767
+ #
768
+ # **Oracle Database Standard Edition Two (oracle-se2)**
769
+ #
770
+ # * **Version 12.1.0.2 (available in these AWS regions: ap-northeast-1,
771
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
772
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
773
+ # us-west-2):** ` 12.1.0.2.v5`
774
+ #
775
+ # * **Version 12.1.0.2 (available in all AWS regions):** ` 12.1.0.2.v2 |
776
+ # 12.1.0.2.v3 | 12.1.0.2.v4`
777
+ #
778
+ # **Oracle Database Standard Edition One (oracle-se1)**
779
+ #
780
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
781
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
782
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
783
+ #
784
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
785
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
786
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
787
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
788
+ #
789
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
790
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
791
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
792
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
793
+ #
794
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
795
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
796
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
797
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
798
+ #
799
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
800
+ # 11.2.0.4.v3 | 11.2.0.4.v4 | 11.2.0.4.v5 | 11.2.0.4.v7 | 11.2.0.4.v8`
801
+ #
802
+ # **Oracle Database Standard Edition (oracle-se)**
803
+ #
804
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
805
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
806
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
807
+ #
808
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
809
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
810
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
811
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
812
+ #
813
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
814
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
815
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
816
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
817
+ #
818
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
819
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
820
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
821
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
822
+ #
823
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
824
+ # 11.2.0.4.v3 | 11.2.0.4.v4 | 11.2.0.4.v5 | 11.2.0.4.v7 | 11.2.0.4.v8`
825
+ #
826
+ # **PostgreSQL**
827
+ #
828
+ # * **Version 9.5 (available in these AWS regions: ap-northeast-1,
829
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
830
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
831
+ # us-west-2):** ` 9.5.2 | 9.5.4`
832
+ #
833
+ # * **Version 9.4 (available in these AWS regions: ap-northeast-1,
834
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
835
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
836
+ # us-west-2):** ` 9.4.7 | 9.4.9`
837
+ #
838
+ # * **Version 9.4 (available in all AWS regions):** ` 9.4.5`
839
+ #
840
+ # * **Version 9.4 (available in these AWS regions: ap-northeast-1,
841
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
842
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
843
+ # us-west-2):** ` 9.4.1 | 9.4.4`
844
+ #
845
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
846
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
847
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 9.3.10 | 9.3.3
848
+ # | 9.3.5 | 9.3.6 | 9.3.9`
849
+ #
850
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
851
+ # ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-east-1,
852
+ # us-gov-west-1, us-west-1, us-west-2):** ` 9.3.1 | 9.3.2`
853
+ #
854
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
855
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
856
+ # us-east-1, us-west-1, us-west-2):** ` 9.3.12 | 9.3.14`
857
+ #
858
+ # **Microsoft SQL Server Enterprise Edition (sqlserver-ee)**
859
+ #
860
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
861
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
862
+ #
863
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
864
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
865
+ #
866
+ # **Microsoft SQL Server Express Edition (sqlserver-ex)**
867
+ #
868
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
869
+ #
870
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
871
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
872
+ #
873
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
874
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
875
+ #
876
+ # **Microsoft SQL Server Standard Edition (sqlserver-se)**
877
+ #
878
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
879
+ #
880
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
881
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
882
+ #
883
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
884
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
885
+ #
886
+ # **Microsoft SQL Server Web Edition (sqlserver-web)**
887
+ #
888
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
889
+ #
890
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
891
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
892
+ #
893
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
894
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
895
+ # @option options [Boolean] :auto_minor_version_upgrade
896
+ # Indicates that minor engine upgrades will be applied automatically to
897
+ # the DB instance during the maintenance window.
898
+ #
899
+ # Default: `true`
900
+ # @option options [String] :license_model
901
+ # License model information for this DB instance.
902
+ #
903
+ # Valid values: `license-included` \| `bring-your-own-license` \|
904
+ # `general-public-license`
905
+ # @option options [Integer] :iops
906
+ # The amount of Provisioned IOPS (input/output operations per second) to
907
+ # be initially allocated for the DB instance.
908
+ #
909
+ # Constraints: Must be a multiple between 3 and 10 of the storage amount
910
+ # for the DB instance. Must also be an integer multiple of 1000. For
911
+ # example, if the size of your DB instance is 500 GB, then your `Iops`
912
+ # value can be 2000, 3000, 4000, or 5000.
913
+ # @option options [String] :option_group_name
914
+ # Indicates that the DB instance should be associated with the specified
915
+ # option group.
916
+ #
917
+ # Permanent options, such as the TDE option for Oracle Advanced Security
918
+ # TDE, cannot be removed from an option group, and that option group
919
+ # cannot be removed from a DB instance once it is associated with a DB
920
+ # instance
921
+ # @option options [String] :character_set_name
922
+ # For supported engines, indicates that the DB instance should be
923
+ # associated with the specified CharacterSet.
924
+ # @option options [Boolean] :publicly_accessible
925
+ # Specifies the accessibility options for the DB instance. A value of
926
+ # true specifies an Internet-facing instance with a publicly resolvable
927
+ # DNS name, which resolves to a public IP address. A value of false
928
+ # specifies an internal instance with a DNS name that resolves to a
929
+ # private IP address.
930
+ #
931
+ # Default: The default behavior varies depending on whether a VPC has
932
+ # been requested or not. The following list shows the default behavior
933
+ # in each case.
934
+ #
935
+ # * **Default VPC:** true
936
+ #
937
+ # * **VPC:** false
938
+ #
939
+ # If no DB subnet group has been specified as part of the request and
940
+ # the PubliclyAccessible value has not been set, the DB instance will be
941
+ # publicly accessible. If a specific DB subnet group has been specified
942
+ # as part of the request and the PubliclyAccessible value has not been
943
+ # set, the DB instance will be private.
944
+ # @option options [Array<Types::Tag>] :tags
945
+ # A list of tags.
946
+ # @option options [String] :db_cluster_identifier
947
+ # The identifier of the DB cluster that the instance will belong to.
948
+ #
949
+ # For information on creating a DB cluster, see CreateDBCluster.
950
+ #
951
+ # Type: String
952
+ # @option options [String] :storage_type
953
+ # Specifies the storage type to be associated with the DB instance.
954
+ #
955
+ # Valid values: `standard | gp2 | io1`
956
+ #
957
+ # If you specify `io1`, you must also include a value for the `Iops`
958
+ # parameter.
959
+ #
960
+ # Default: `io1` if the `Iops` parameter is specified; otherwise
961
+ # `standard`
962
+ # @option options [String] :tde_credential_arn
963
+ # The ARN from the Key Store with which to associate the instance for
964
+ # TDE encryption.
965
+ # @option options [String] :tde_credential_password
966
+ # The password for the given ARN from the Key Store in order to access
967
+ # the device.
968
+ # @option options [Boolean] :storage_encrypted
969
+ # Specifies whether the DB instance is encrypted.
970
+ #
971
+ # Default: false
972
+ # @option options [String] :kms_key_id
973
+ # The KMS key identifier for an encrypted DB instance.
974
+ #
975
+ # The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
976
+ # encryption key. If you are creating a DB instance with the same AWS
977
+ # account that owns the KMS encryption key used to encrypt the new DB
978
+ # instance, then you can use the KMS key alias instead of the ARN for
979
+ # the KM encryption key.
980
+ #
981
+ # If the `StorageEncrypted` parameter is true, and you do not specify a
982
+ # value for the `KmsKeyId` parameter, then Amazon RDS will use your
983
+ # default encryption key. AWS KMS creates the default encryption key for
984
+ # your AWS account. Your AWS account has a different default encryption
985
+ # key for each AWS region.
986
+ # @option options [String] :domain
987
+ # Specify the Active Directory Domain to create the instance in.
988
+ # @option options [Boolean] :copy_tags_to_snapshot
989
+ # True to copy all tags from the DB instance to snapshots of the DB
990
+ # instance; otherwise false. The default is false.
991
+ # @option options [Integer] :monitoring_interval
992
+ # The interval, in seconds, between points when Enhanced Monitoring
993
+ # metrics are collected for the DB instance. To disable collecting
994
+ # Enhanced Monitoring metrics, specify 0. The default is 0.
995
+ #
996
+ # If `MonitoringRoleArn` is specified, then you must also set
997
+ # `MonitoringInterval` to a value other than 0.
998
+ #
999
+ # Valid Values: `0, 1, 5, 10, 15, 30, 60`
1000
+ # @option options [String] :monitoring_role_arn
1001
+ # The ARN for the IAM role that permits RDS to send enhanced monitoring
1002
+ # metrics to CloudWatch Logs. For example,
1003
+ # `arn:aws:iam:123456789012:role/emaccess`. For information on creating
1004
+ # a monitoring role, go to [To create an IAM role for Amazon RDS
1005
+ # Enhanced Monitoring][1].
1006
+ #
1007
+ # If `MonitoringInterval` is set to a value other than 0, then you must
1008
+ # supply a `MonitoringRoleArn` value.
1009
+ #
1010
+ #
1011
+ #
1012
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
1013
+ # @option options [String] :domain_iam_role_name
1014
+ # Specify the name of the IAM role to be used when making API calls to
1015
+ # the Directory Service.
1016
+ # @option options [Integer] :promotion_tier
1017
+ # A value that specifies the order in which an Aurora Replica is
1018
+ # promoted to the primary instance after a failure of the existing
1019
+ # primary instance. For more information, see [ Fault Tolerance for an
1020
+ # Aurora DB Cluster][1].
1021
+ #
1022
+ # Default: 1
1023
+ #
1024
+ # Valid Values: 0 - 15
1025
+ #
1026
+ #
1027
+ #
1028
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html#Aurora.Managing.FaultTolerance
1029
+ # @option options [String] :timezone
1030
+ # The time zone of the DB instance. The time zone parameter is currently
1031
+ # supported only by [Microsoft SQL Server][1].
1032
+ #
1033
+ #
1034
+ #
1035
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone
1036
+ # @return [DBInstance]
1037
+ def create_db_instance(options = {})
1038
+ resp = @client.create_db_instance(options)
1039
+ DBInstance.new(
1040
+ id: resp.data.db_instance.db_instance_identifier,
1041
+ data: resp.data.db_instance,
1042
+ client: @client
1043
+ )
1044
+ end
1045
+
1046
+ # @example Request syntax with placeholder values
1047
+ #
1048
+ # dbparametergroup = rds.create_db_parameter_group({
1049
+ # db_parameter_group_name: "String", # required
1050
+ # db_parameter_group_family: "String", # required
1051
+ # description: "String", # required
1052
+ # tags: [
1053
+ # {
1054
+ # key: "String",
1055
+ # value: "String",
1056
+ # },
1057
+ # ],
1058
+ # })
1059
+ # @param [Hash] options ({})
1060
+ # @option options [required, String] :db_parameter_group_name
1061
+ # The name of the DB parameter group.
1062
+ #
1063
+ # Constraints:
1064
+ #
1065
+ # * Must be 1 to 255 alphanumeric characters
1066
+ #
1067
+ # * First character must be a letter
1068
+ #
1069
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1070
+ #
1071
+ # <note markdown="1"> This value is stored as a lowercase string.
1072
+ #
1073
+ # </note>
1074
+ # @option options [required, String] :db_parameter_group_family
1075
+ # The DB parameter group family name. A DB parameter group can be
1076
+ # associated with one and only one DB parameter group family, and can be
1077
+ # applied only to a DB instance running a database engine and engine
1078
+ # version compatible with that DB parameter group family.
1079
+ # @option options [required, String] :description
1080
+ # The description for the DB parameter group.
1081
+ # @option options [Array<Types::Tag>] :tags
1082
+ # A list of tags.
1083
+ # @return [DBParameterGroup]
1084
+ def create_db_parameter_group(options = {})
1085
+ resp = @client.create_db_parameter_group(options)
1086
+ DBParameterGroup.new(
1087
+ name: resp.data.db_parameter_group.db_parameter_group_name,
1088
+ data: resp.data.db_parameter_group,
1089
+ client: @client
1090
+ )
1091
+ end
1092
+
1093
+ # @example Request syntax with placeholder values
1094
+ #
1095
+ # dbsecuritygroup = rds.create_db_security_group({
1096
+ # db_security_group_name: "String", # required
1097
+ # db_security_group_description: "String", # required
1098
+ # tags: [
1099
+ # {
1100
+ # key: "String",
1101
+ # value: "String",
1102
+ # },
1103
+ # ],
1104
+ # })
1105
+ # @param [Hash] options ({})
1106
+ # @option options [required, String] :db_security_group_name
1107
+ # The name for the DB security group. This value is stored as a
1108
+ # lowercase string.
1109
+ #
1110
+ # Constraints:
1111
+ #
1112
+ # * Must be 1 to 255 alphanumeric characters
1113
+ #
1114
+ # * First character must be a letter
1115
+ #
1116
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1117
+ #
1118
+ # * Must not be "Default"
1119
+ #
1120
+ # Example: `mysecuritygroup`
1121
+ # @option options [required, String] :db_security_group_description
1122
+ # The description for the DB security group.
1123
+ # @option options [Array<Types::Tag>] :tags
1124
+ # A list of tags.
1125
+ # @return [DBSecurityGroup]
1126
+ def create_db_security_group(options = {})
1127
+ resp = @client.create_db_security_group(options)
1128
+ DBSecurityGroup.new(
1129
+ name: resp.data.db_security_group.db_security_group_name,
1130
+ data: resp.data.db_security_group,
1131
+ client: @client
1132
+ )
1133
+ end
1134
+
1135
+ # @example Request syntax with placeholder values
1136
+ #
1137
+ # dbsubnetgroup = rds.create_db_subnet_group({
1138
+ # db_subnet_group_name: "String", # required
1139
+ # db_subnet_group_description: "String", # required
1140
+ # subnet_ids: ["String"], # required
1141
+ # tags: [
1142
+ # {
1143
+ # key: "String",
1144
+ # value: "String",
1145
+ # },
1146
+ # ],
1147
+ # })
1148
+ # @param [Hash] options ({})
1149
+ # @option options [required, String] :db_subnet_group_name
1150
+ # The name for the DB subnet group. This value is stored as a lowercase
1151
+ # string.
1152
+ #
1153
+ # Constraints: Must contain no more than 255 alphanumeric characters,
1154
+ # periods, underscores, spaces, or hyphens. Must not be default.
1155
+ #
1156
+ # Example: `mySubnetgroup`
1157
+ # @option options [required, String] :db_subnet_group_description
1158
+ # The description for the DB subnet group.
1159
+ # @option options [required, Array<String>] :subnet_ids
1160
+ # The EC2 Subnet IDs for the DB subnet group.
1161
+ # @option options [Array<Types::Tag>] :tags
1162
+ # A list of tags.
1163
+ # @return [DBSubnetGroup]
1164
+ def create_db_subnet_group(options = {})
1165
+ resp = @client.create_db_subnet_group(options)
1166
+ DBSubnetGroup.new(
1167
+ name: resp.data.db_subnet_group.db_subnet_group_name,
1168
+ data: resp.data.db_subnet_group,
1169
+ client: @client
1170
+ )
1171
+ end
1172
+
1173
+ # @example Request syntax with placeholder values
1174
+ #
1175
+ # eventsubscription = rds.create_event_subscription({
1176
+ # subscription_name: "String", # required
1177
+ # sns_topic_arn: "String", # required
1178
+ # source_type: "String",
1179
+ # event_categories: ["String"],
1180
+ # source_ids: ["String"],
1181
+ # enabled: false,
1182
+ # tags: [
1183
+ # {
1184
+ # key: "String",
1185
+ # value: "String",
1186
+ # },
1187
+ # ],
1188
+ # })
1189
+ # @param [Hash] options ({})
1190
+ # @option options [required, String] :subscription_name
1191
+ # The name of the subscription.
1192
+ #
1193
+ # Constraints: The name must be less than 255 characters.
1194
+ # @option options [required, String] :sns_topic_arn
1195
+ # The Amazon Resource Name (ARN) of the SNS topic created for event
1196
+ # notification. The ARN is created by Amazon SNS when you create a topic
1197
+ # and subscribe to it.
1198
+ # @option options [String] :source_type
1199
+ # The type of source that will be generating the events. For example, if
1200
+ # you want to be notified of events generated by a DB instance, you
1201
+ # would set this parameter to db-instance. if this value is not
1202
+ # specified, all events are returned.
1203
+ #
1204
+ # Valid values: `db-instance` \| `db-cluster` \| `db-parameter-group` \|
1205
+ # `db-security-group` \| `db-snapshot` \| `db-cluster-snapshot`
1206
+ # @option options [Array<String>] :event_categories
1207
+ # A list of event categories for a SourceType that you want to subscribe
1208
+ # to. You can see a list of the categories for a given SourceType in the
1209
+ # [Events][1] topic in the Amazon RDS User Guide or by using the
1210
+ # **DescribeEventCategories** action.
1211
+ #
1212
+ #
1213
+ #
1214
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html
1215
+ # @option options [Array<String>] :source_ids
1216
+ # The list of identifiers of the event sources for which events will be
1217
+ # returned. If not specified, then all sources are included in the
1218
+ # response. An identifier must begin with a letter and must contain only
1219
+ # ASCII letters, digits, and hyphens; it cannot end with a hyphen or
1220
+ # contain two consecutive hyphens.
1221
+ #
1222
+ # Constraints:
1223
+ #
1224
+ # * If SourceIds are supplied, SourceType must also be provided.
1225
+ #
1226
+ # * If the source type is a DB instance, then a `DBInstanceIdentifier`
1227
+ # must be supplied.
1228
+ #
1229
+ # * If the source type is a DB security group, a `DBSecurityGroupName`
1230
+ # must be supplied.
1231
+ #
1232
+ # * If the source type is a DB parameter group, a `DBParameterGroupName`
1233
+ # must be supplied.
1234
+ #
1235
+ # * If the source type is a DB snapshot, a `DBSnapshotIdentifier` must
1236
+ # be supplied.
1237
+ # @option options [Boolean] :enabled
1238
+ # A Boolean value; set to **true** to activate the subscription, set to
1239
+ # **false** to create the subscription but not active it.
1240
+ # @option options [Array<Types::Tag>] :tags
1241
+ # A list of tags.
1242
+ # @return [EventSubscription]
1243
+ def create_event_subscription(options = {})
1244
+ resp = @client.create_event_subscription(options)
1245
+ EventSubscription.new(
1246
+ name: resp.data.event_subscription.cust_subscription_id,
1247
+ data: resp.data.event_subscription,
1248
+ client: @client
1249
+ )
1250
+ end
1251
+
1252
+ # @example Request syntax with placeholder values
1253
+ #
1254
+ # optiongroup = rds.create_option_group({
1255
+ # option_group_name: "String", # required
1256
+ # engine_name: "String", # required
1257
+ # major_engine_version: "String", # required
1258
+ # option_group_description: "String", # required
1259
+ # tags: [
1260
+ # {
1261
+ # key: "String",
1262
+ # value: "String",
1263
+ # },
1264
+ # ],
1265
+ # })
1266
+ # @param [Hash] options ({})
1267
+ # @option options [required, String] :option_group_name
1268
+ # Specifies the name of the option group to be created.
1269
+ #
1270
+ # Constraints:
1271
+ #
1272
+ # * Must be 1 to 255 alphanumeric characters or hyphens
1273
+ #
1274
+ # * First character must be a letter
1275
+ #
1276
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1277
+ #
1278
+ # Example: `myoptiongroup`
1279
+ # @option options [required, String] :engine_name
1280
+ # Specifies the name of the engine that this option group should be
1281
+ # associated with.
1282
+ # @option options [required, String] :major_engine_version
1283
+ # Specifies the major version of the engine that this option group
1284
+ # should be associated with.
1285
+ # @option options [required, String] :option_group_description
1286
+ # The description of the option group.
1287
+ # @option options [Array<Types::Tag>] :tags
1288
+ # A list of tags.
1289
+ # @return [OptionGroup]
1290
+ def create_option_group(options = {})
1291
+ resp = @client.create_option_group(options)
1292
+ OptionGroup.new(
1293
+ name: resp.data.option_group.option_group_name,
1294
+ data: resp.data.option_group,
1295
+ client: @client
1296
+ )
1297
+ end
1298
+
1299
+ # @!group Associations
1300
+
1301
+ # @example Request syntax with placeholder values
1302
+ #
1303
+ # accountquotas = rds.account_quotas()
1304
+ # @param [Hash] options ({})
1305
+ # @return [AccountQuota::Collection]
1306
+ def account_quotas(options = {})
1307
+ batches = Enumerator.new do |y|
1308
+ batch = []
1309
+ resp = @client.describe_account_attributes(options)
1310
+ resp.data.account_quotas.each do |a|
1311
+ batch << AccountQuota.new(
1312
+ name: a.account_quota_name,
1313
+ data: a,
1314
+ client: @client
1315
+ )
1316
+ end
1317
+ y.yield(batch)
1318
+ end
1319
+ AccountQuota::Collection.new(batches)
1320
+ end
1321
+
1322
+ # @param [String] id
1323
+ # @return [Certificate]
1324
+ def certificate(id)
1325
+ Certificate.new(
1326
+ id: id,
1327
+ client: @client
1328
+ )
1329
+ end
1330
+
1331
+ # @example Request syntax with placeholder values
1332
+ #
1333
+ # certificates = rds.certificates({
1334
+ # certificate_identifier: "String",
1335
+ # filters: [
1336
+ # {
1337
+ # name: "String", # required
1338
+ # values: ["String"], # required
1339
+ # },
1340
+ # ],
1341
+ # max_records: 1,
1342
+ # marker: "String",
1343
+ # })
1344
+ # @param [Hash] options ({})
1345
+ # @option options [String] :certificate_identifier
1346
+ # The user-supplied certificate identifier. If this parameter is
1347
+ # specified, information for only the identified certificate is
1348
+ # returned. This parameter isn't case-sensitive.
1349
+ #
1350
+ # Constraints:
1351
+ #
1352
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
1353
+ #
1354
+ # * First character must be a letter
1355
+ #
1356
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1357
+ # @option options [Array<Types::Filter>] :filters
1358
+ # This parameter is not currently supported.
1359
+ # @option options [Integer] :max_records
1360
+ # The maximum number of records to include in the response. If more
1361
+ # records exist than the specified `MaxRecords` value, a pagination
1362
+ # token called a marker is included in the response so that the
1363
+ # remaining results can be retrieved.
1364
+ #
1365
+ # Default: 100
1366
+ #
1367
+ # Constraints: Minimum 20, maximum 100.
1368
+ # @option options [String] :marker
1369
+ # An optional pagination token provided by a previous
1370
+ # DescribeCertificates request. If this parameter is specified, the
1371
+ # response includes only records beyond the marker, up to the value
1372
+ # specified by `MaxRecords`.
1373
+ # @return [Certificate::Collection]
1374
+ def certificates(options = {})
1375
+ batches = Enumerator.new do |y|
1376
+ batch = []
1377
+ resp = @client.describe_certificates(options)
1378
+ resp.data.certificates.each do |c|
1379
+ batch << Certificate.new(
1380
+ id: c.certificate_identifier,
1381
+ data: c,
1382
+ client: @client
1383
+ )
1384
+ end
1385
+ y.yield(batch)
1386
+ end
1387
+ Certificate::Collection.new(batches)
1388
+ end
1389
+
1390
+ # @param [String] id
1391
+ # @return [DBCluster]
1392
+ def db_cluster(id)
1393
+ DBCluster.new(
1394
+ id: id,
1395
+ client: @client
1396
+ )
1397
+ end
1398
+
1399
+ # @param [String] name
1400
+ # @return [DBClusterParameterGroup]
1401
+ def db_cluster_parameter_group(name)
1402
+ DBClusterParameterGroup.new(
1403
+ name: name,
1404
+ client: @client
1405
+ )
1406
+ end
1407
+
1408
+ # @example Request syntax with placeholder values
1409
+ #
1410
+ # dbclusterparametergroups = rds.db_cluster_parameter_groups({
1411
+ # db_cluster_parameter_group_name: "String",
1412
+ # filters: [
1413
+ # {
1414
+ # name: "String", # required
1415
+ # values: ["String"], # required
1416
+ # },
1417
+ # ],
1418
+ # max_records: 1,
1419
+ # marker: "String",
1420
+ # })
1421
+ # @param [Hash] options ({})
1422
+ # @option options [String] :db_cluster_parameter_group_name
1423
+ # The name of a specific DB cluster parameter group to return details
1424
+ # for.
1425
+ #
1426
+ # Constraints:
1427
+ #
1428
+ # * Must be 1 to 255 alphanumeric characters
1429
+ #
1430
+ # * First character must be a letter
1431
+ #
1432
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1433
+ # @option options [Array<Types::Filter>] :filters
1434
+ # This parameter is not currently supported.
1435
+ # @option options [Integer] :max_records
1436
+ # The maximum number of records to include in the response. If more
1437
+ # records exist than the specified `MaxRecords` value, a pagination
1438
+ # token called a marker is included in the response so that the
1439
+ # remaining results can be retrieved.
1440
+ #
1441
+ # Default: 100
1442
+ #
1443
+ # Constraints: Minimum 20, maximum 100.
1444
+ # @option options [String] :marker
1445
+ # An optional pagination token provided by a previous
1446
+ # `DescribeDBClusterParameterGroups` request. If this parameter is
1447
+ # specified, the response includes only records beyond the marker, up to
1448
+ # the value specified by `MaxRecords`.
1449
+ # @return [DBClusterParameterGroup::Collection]
1450
+ def db_cluster_parameter_groups(options = {})
1451
+ batches = Enumerator.new do |y|
1452
+ batch = []
1453
+ resp = @client.describe_db_cluster_parameter_groups(options)
1454
+ resp.data.db_cluster_parameter_groups.each do |d|
1455
+ batch << DBClusterParameterGroup.new(
1456
+ name: d.db_cluster_parameter_group_name,
1457
+ data: d,
1458
+ client: @client
1459
+ )
1460
+ end
1461
+ y.yield(batch)
1462
+ end
1463
+ DBClusterParameterGroup::Collection.new(batches)
1464
+ end
1465
+
1466
+ # @example Request syntax with placeholder values
1467
+ #
1468
+ # dbclusters = rds.db_clusters({
1469
+ # db_cluster_identifier: "String",
1470
+ # filters: [
1471
+ # {
1472
+ # name: "String", # required
1473
+ # values: ["String"], # required
1474
+ # },
1475
+ # ],
1476
+ # max_records: 1,
1477
+ # marker: "String",
1478
+ # })
1479
+ # @param [Hash] options ({})
1480
+ # @option options [String] :db_cluster_identifier
1481
+ # The user-supplied DB cluster identifier. If this parameter is
1482
+ # specified, information from only the specific DB cluster is returned.
1483
+ # This parameter isn't case-sensitive.
1484
+ #
1485
+ # Constraints:
1486
+ #
1487
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
1488
+ #
1489
+ # * First character must be a letter
1490
+ #
1491
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1492
+ # @option options [Array<Types::Filter>] :filters
1493
+ # This parameter is not currently supported.
1494
+ # @option options [Integer] :max_records
1495
+ # The maximum number of records to include in the response. If more
1496
+ # records exist than the specified `MaxRecords` value, a pagination
1497
+ # token called a marker is included in the response so that the
1498
+ # remaining results can be retrieved.
1499
+ #
1500
+ # Default: 100
1501
+ #
1502
+ # Constraints: Minimum 20, maximum 100.
1503
+ # @option options [String] :marker
1504
+ # An optional pagination token provided by a previous DescribeDBClusters
1505
+ # request. If this parameter is specified, the response includes only
1506
+ # records beyond the marker, up to the value specified by `MaxRecords`.
1507
+ # @return [DBCluster::Collection]
1508
+ def db_clusters(options = {})
1509
+ batches = Enumerator.new do |y|
1510
+ batch = []
1511
+ resp = @client.describe_db_clusters(options)
1512
+ resp.data.db_clusters.each do |d|
1513
+ batch << DBCluster.new(
1514
+ id: d.db_cluster_identifier,
1515
+ data: d,
1516
+ client: @client
1517
+ )
1518
+ end
1519
+ y.yield(batch)
1520
+ end
1521
+ DBCluster::Collection.new(batches)
1522
+ end
1523
+
1524
+ # @param [String] name
1525
+ # @return [DBEngine]
1526
+ def db_engine(name)
1527
+ DBEngine.new(
1528
+ name: name,
1529
+ client: @client
1530
+ )
1531
+ end
1532
+
1533
+ # @param [String] engine_name
1534
+ # @param [String] version
1535
+ # @return [DBEngineVersion]
1536
+ def db_engine_version(engine_name, version)
1537
+ DBEngineVersion.new(
1538
+ engine_name: engine_name,
1539
+ version: version,
1540
+ client: @client
1541
+ )
1542
+ end
1543
+
1544
+ # @example Request syntax with placeholder values
1545
+ #
1546
+ # dbengineversions = rds.db_engine_versions({
1547
+ # engine: "String",
1548
+ # engine_version: "String",
1549
+ # db_parameter_group_family: "String",
1550
+ # filters: [
1551
+ # {
1552
+ # name: "String", # required
1553
+ # values: ["String"], # required
1554
+ # },
1555
+ # ],
1556
+ # default_only: false,
1557
+ # list_supported_character_sets: false,
1558
+ # list_supported_timezones: false,
1559
+ # })
1560
+ # @param [Hash] options ({})
1561
+ # @option options [String] :engine
1562
+ # The database engine to return.
1563
+ # @option options [String] :engine_version
1564
+ # The database engine version to return.
1565
+ #
1566
+ # Example: `5.1.49`
1567
+ # @option options [String] :db_parameter_group_family
1568
+ # The name of a specific DB parameter group family to return details
1569
+ # for.
1570
+ #
1571
+ # Constraints:
1572
+ #
1573
+ # * Must be 1 to 255 alphanumeric characters
1574
+ #
1575
+ # * First character must be a letter
1576
+ #
1577
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1578
+ # @option options [Array<Types::Filter>] :filters
1579
+ # Not currently supported.
1580
+ # @option options [Boolean] :default_only
1581
+ # Indicates that only the default version of the specified engine or
1582
+ # engine and major version combination is returned.
1583
+ # @option options [Boolean] :list_supported_character_sets
1584
+ # If this parameter is specified and the requested engine supports the
1585
+ # `CharacterSetName` parameter for `CreateDBInstance`, the response
1586
+ # includes a list of supported character sets for each engine version.
1587
+ # @option options [Boolean] :list_supported_timezones
1588
+ # If this parameter is specified and the requested engine supports the
1589
+ # `TimeZone` parameter for `CreateDBInstance`, the response includes a
1590
+ # list of supported time zones for each engine version.
1591
+ # @return [DBEngineVersion::Collection]
1592
+ def db_engine_versions(options = {})
1593
+ batches = Enumerator.new do |y|
1594
+ resp = @client.describe_db_engine_versions(options)
1595
+ resp.each_page do |page|
1596
+ batch = []
1597
+ page.data.db_engine_versions.each do |d|
1598
+ batch << DBEngineVersion.new(
1599
+ engine_name: d.engine,
1600
+ version: d.engine_version,
1601
+ data: d,
1602
+ client: @client
1603
+ )
1604
+ end
1605
+ y.yield(batch)
1606
+ end
1607
+ end
1608
+ DBEngineVersion::Collection.new(batches)
1609
+ end
1610
+
1611
+ # @param [String] id
1612
+ # @return [DBInstance]
1613
+ def db_instance(id)
1614
+ DBInstance.new(
1615
+ id: id,
1616
+ client: @client
1617
+ )
1618
+ end
1619
+
1620
+ # @example Request syntax with placeholder values
1621
+ #
1622
+ # dbinstances = rds.db_instances({
1623
+ # db_instance_identifier: "String",
1624
+ # filters: [
1625
+ # {
1626
+ # name: "String", # required
1627
+ # values: ["String"], # required
1628
+ # },
1629
+ # ],
1630
+ # })
1631
+ # @param [Hash] options ({})
1632
+ # @option options [String] :db_instance_identifier
1633
+ # The user-supplied instance identifier. If this parameter is specified,
1634
+ # information from only the specific DB instance is returned. This
1635
+ # parameter isn't case-sensitive.
1636
+ #
1637
+ # Constraints:
1638
+ #
1639
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
1640
+ #
1641
+ # * First character must be a letter
1642
+ #
1643
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1644
+ # @option options [Array<Types::Filter>] :filters
1645
+ # This parameter is not currently supported.
1646
+ # @return [DBInstance::Collection]
1647
+ def db_instances(options = {})
1648
+ batches = Enumerator.new do |y|
1649
+ resp = @client.describe_db_instances(options)
1650
+ resp.each_page do |page|
1651
+ batch = []
1652
+ page.data.db_instances.each do |d|
1653
+ batch << DBInstance.new(
1654
+ id: d.db_instance_identifier,
1655
+ data: d,
1656
+ client: @client
1657
+ )
1658
+ end
1659
+ y.yield(batch)
1660
+ end
1661
+ end
1662
+ DBInstance::Collection.new(batches)
1663
+ end
1664
+
1665
+ # @param [String] name
1666
+ # @return [DBParameterGroup]
1667
+ def db_parameter_group(name)
1668
+ DBParameterGroup.new(
1669
+ name: name,
1670
+ client: @client
1671
+ )
1672
+ end
1673
+
1674
+ # @param [String] name
1675
+ # @return [DBParameterGroupFamily]
1676
+ def db_parameter_group_family(name)
1677
+ DBParameterGroupFamily.new(
1678
+ name: name,
1679
+ client: @client
1680
+ )
1681
+ end
1682
+
1683
+ # @example Request syntax with placeholder values
1684
+ #
1685
+ # dbparametergroups = rds.db_parameter_groups({
1686
+ # db_parameter_group_name: "String",
1687
+ # filters: [
1688
+ # {
1689
+ # name: "String", # required
1690
+ # values: ["String"], # required
1691
+ # },
1692
+ # ],
1693
+ # })
1694
+ # @param [Hash] options ({})
1695
+ # @option options [String] :db_parameter_group_name
1696
+ # The name of a specific DB parameter group to return details for.
1697
+ #
1698
+ # Constraints:
1699
+ #
1700
+ # * Must be 1 to 255 alphanumeric characters
1701
+ #
1702
+ # * First character must be a letter
1703
+ #
1704
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1705
+ # @option options [Array<Types::Filter>] :filters
1706
+ # This parameter is not currently supported.
1707
+ # @return [DBParameterGroup::Collection]
1708
+ def db_parameter_groups(options = {})
1709
+ batches = Enumerator.new do |y|
1710
+ resp = @client.describe_db_parameter_groups(options)
1711
+ resp.each_page do |page|
1712
+ batch = []
1713
+ page.data.db_parameter_groups.each do |d|
1714
+ batch << DBParameterGroup.new(
1715
+ name: d.db_parameter_group_name,
1716
+ data: d,
1717
+ client: @client
1718
+ )
1719
+ end
1720
+ y.yield(batch)
1721
+ end
1722
+ end
1723
+ DBParameterGroup::Collection.new(batches)
1724
+ end
1725
+
1726
+ # @param [String] name
1727
+ # @return [DBSecurityGroup]
1728
+ def db_security_group(name)
1729
+ DBSecurityGroup.new(
1730
+ name: name,
1731
+ client: @client
1732
+ )
1733
+ end
1734
+
1735
+ # @example Request syntax with placeholder values
1736
+ #
1737
+ # dbsecuritygroups = rds.db_security_groups({
1738
+ # db_security_group_name: "String",
1739
+ # filters: [
1740
+ # {
1741
+ # name: "String", # required
1742
+ # values: ["String"], # required
1743
+ # },
1744
+ # ],
1745
+ # })
1746
+ # @param [Hash] options ({})
1747
+ # @option options [String] :db_security_group_name
1748
+ # The name of the DB security group to return details for.
1749
+ # @option options [Array<Types::Filter>] :filters
1750
+ # This parameter is not currently supported.
1751
+ # @return [DBSecurityGroup::Collection]
1752
+ def db_security_groups(options = {})
1753
+ batches = Enumerator.new do |y|
1754
+ resp = @client.describe_db_security_groups(options)
1755
+ resp.each_page do |page|
1756
+ batch = []
1757
+ page.data.db_security_groups.each do |d|
1758
+ batch << DBSecurityGroup.new(
1759
+ name: d.db_security_group_name,
1760
+ data: d,
1761
+ client: @client
1762
+ )
1763
+ end
1764
+ y.yield(batch)
1765
+ end
1766
+ end
1767
+ DBSecurityGroup::Collection.new(batches)
1768
+ end
1769
+
1770
+ # @example Request syntax with placeholder values
1771
+ #
1772
+ # dbsnapshots = rds.db_snapshots({
1773
+ # db_instance_identifier: "String",
1774
+ # db_snapshot_identifier: "String",
1775
+ # snapshot_type: "String",
1776
+ # filters: [
1777
+ # {
1778
+ # name: "String", # required
1779
+ # values: ["String"], # required
1780
+ # },
1781
+ # ],
1782
+ # include_shared: false,
1783
+ # include_public: false,
1784
+ # })
1785
+ # @param [Hash] options ({})
1786
+ # @option options [String] :db_instance_identifier
1787
+ # The ID of the DB instance to retrieve the list of DB snapshots for.
1788
+ # This parameter cannot be used in conjunction with
1789
+ # `DBSnapshotIdentifier`. This parameter is not case-sensitive.
1790
+ #
1791
+ # Constraints:
1792
+ #
1793
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
1794
+ #
1795
+ # * First character must be a letter
1796
+ #
1797
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1798
+ # @option options [String] :db_snapshot_identifier
1799
+ # A specific DB snapshot identifier to describe. This parameter cannot
1800
+ # be used in conjunction with `DBInstanceIdentifier`. This value is
1801
+ # stored as a lowercase string.
1802
+ #
1803
+ # Constraints:
1804
+ #
1805
+ # * Must be 1 to 255 alphanumeric characters.
1806
+ #
1807
+ # * First character must be a letter.
1808
+ #
1809
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
1810
+ #
1811
+ # * If this identifier is for an automated snapshot, the `SnapshotType`
1812
+ # parameter must also be specified.
1813
+ # @option options [String] :snapshot_type
1814
+ # The type of snapshots to be returned. You can specify one of the
1815
+ # following values:
1816
+ #
1817
+ # * `automated` - Return all DB snapshots that have been automatically
1818
+ # taken by Amazon RDS for my AWS account.
1819
+ #
1820
+ # * `manual` - Return all DB snapshots that have been taken by my AWS
1821
+ # account.
1822
+ #
1823
+ # * `shared` - Return all manual DB snapshots that have been shared to
1824
+ # my AWS account.
1825
+ #
1826
+ # * `public` - Return all DB snapshots that have been marked as public.
1827
+ #
1828
+ # If you don't specify a `SnapshotType` value, then both automated and
1829
+ # manual snapshots are returned. Shared and public DB snapshots are not
1830
+ # included in the returned results by default. You can include shared
1831
+ # snapshots with these results by setting the `IncludeShared` parameter
1832
+ # to `true`. You can include public snapshots with these results by
1833
+ # setting the `IncludePublic` parameter to `true`.
1834
+ #
1835
+ # The `IncludeShared` and `IncludePublic` parameters don't apply for
1836
+ # `SnapshotType` values of `manual` or `automated`. The `IncludePublic`
1837
+ # parameter doesn't apply when `SnapshotType` is set to `shared`. The
1838
+ # `IncludeShared` parameter doesn't apply when `SnapshotType` is set to
1839
+ # `public`.
1840
+ # @option options [Array<Types::Filter>] :filters
1841
+ # This parameter is not currently supported.
1842
+ # @option options [Boolean] :include_shared
1843
+ # Set this value to `true` to include shared manual DB snapshots from
1844
+ # other AWS accounts that this AWS account has been given permission to
1845
+ # copy or restore, otherwise set this value to `false`. The default is
1846
+ # `false`.
1847
+ #
1848
+ # You can give an AWS account permission to restore a manual DB snapshot
1849
+ # from another AWS account by using the ModifyDBSnapshotAttribute API
1850
+ # action.
1851
+ # @option options [Boolean] :include_public
1852
+ # Set this value to `true` to include manual DB snapshots that are
1853
+ # public and can be copied or restored by any AWS account, otherwise set
1854
+ # this value to `false`. The default is `false`.
1855
+ #
1856
+ # You can share a manual DB snapshot as public by using the
1857
+ # ModifyDBSnapshotAttribute API.
1858
+ # @return [DBSnapshot::Collection]
1859
+ def db_snapshots(options = {})
1860
+ batches = Enumerator.new do |y|
1861
+ resp = @client.describe_db_snapshots(options)
1862
+ resp.each_page do |page|
1863
+ batch = []
1864
+ page.data.db_snapshots.each do |d|
1865
+ batch << DBSnapshot.new(
1866
+ instance_id: d.db_instance_identifier,
1867
+ snapshot_id: d.db_snapshot_identifier,
1868
+ data: d,
1869
+ client: @client
1870
+ )
1871
+ end
1872
+ y.yield(batch)
1873
+ end
1874
+ end
1875
+ DBSnapshot::Collection.new(batches)
1876
+ end
1877
+
1878
+ # @param [String] name
1879
+ # @return [DBSubnetGroup]
1880
+ def db_subnet_group(name)
1881
+ DBSubnetGroup.new(
1882
+ name: name,
1883
+ client: @client
1884
+ )
1885
+ end
1886
+
1887
+ # @example Request syntax with placeholder values
1888
+ #
1889
+ # dbsubnetgroups = rds.db_subnet_groups({
1890
+ # db_subnet_group_name: "String",
1891
+ # filters: [
1892
+ # {
1893
+ # name: "String", # required
1894
+ # values: ["String"], # required
1895
+ # },
1896
+ # ],
1897
+ # })
1898
+ # @param [Hash] options ({})
1899
+ # @option options [String] :db_subnet_group_name
1900
+ # The name of the DB subnet group to return details for.
1901
+ # @option options [Array<Types::Filter>] :filters
1902
+ # This parameter is not currently supported.
1903
+ # @return [DBSubnetGroup::Collection]
1904
+ def db_subnet_groups(options = {})
1905
+ batches = Enumerator.new do |y|
1906
+ resp = @client.describe_db_subnet_groups(options)
1907
+ resp.each_page do |page|
1908
+ batch = []
1909
+ page.data.db_subnet_groups.each do |d|
1910
+ batch << DBSubnetGroup.new(
1911
+ name: d.db_subnet_group_name,
1912
+ data: d,
1913
+ client: @client
1914
+ )
1915
+ end
1916
+ y.yield(batch)
1917
+ end
1918
+ end
1919
+ DBSubnetGroup::Collection.new(batches)
1920
+ end
1921
+
1922
+ # @param [String] source_type
1923
+ # @return [EventCategoryMap]
1924
+ def event_category_map(source_type)
1925
+ EventCategoryMap.new(
1926
+ source_type: source_type,
1927
+ client: @client
1928
+ )
1929
+ end
1930
+
1931
+ # @example Request syntax with placeholder values
1932
+ #
1933
+ # eventcategorymaps = rds.event_category_maps({
1934
+ # source_type: "String",
1935
+ # filters: [
1936
+ # {
1937
+ # name: "String", # required
1938
+ # values: ["String"], # required
1939
+ # },
1940
+ # ],
1941
+ # })
1942
+ # @param [Hash] options ({})
1943
+ # @option options [String] :source_type
1944
+ # The type of source that will be generating the events.
1945
+ #
1946
+ # Valid values: db-instance \| db-parameter-group \| db-security-group
1947
+ # \| db-snapshot
1948
+ # @option options [Array<Types::Filter>] :filters
1949
+ # This parameter is not currently supported.
1950
+ # @return [EventCategoryMap::Collection]
1951
+ def event_category_maps(options = {})
1952
+ batches = Enumerator.new do |y|
1953
+ batch = []
1954
+ resp = @client.describe_event_categories(options)
1955
+ resp.data.event_categories_map_list.each do |e|
1956
+ batch << EventCategoryMap.new(
1957
+ source_type: e.source_type,
1958
+ data: e,
1959
+ client: @client
1960
+ )
1961
+ end
1962
+ y.yield(batch)
1963
+ end
1964
+ EventCategoryMap::Collection.new(batches)
1965
+ end
1966
+
1967
+ # @param [String] name
1968
+ # @return [EventSubscription]
1969
+ def event_subscription(name)
1970
+ EventSubscription.new(
1971
+ name: name,
1972
+ client: @client
1973
+ )
1974
+ end
1975
+
1976
+ # @example Request syntax with placeholder values
1977
+ #
1978
+ # eventsubscriptions = rds.event_subscriptions({
1979
+ # subscription_name: "String",
1980
+ # filters: [
1981
+ # {
1982
+ # name: "String", # required
1983
+ # values: ["String"], # required
1984
+ # },
1985
+ # ],
1986
+ # })
1987
+ # @param [Hash] options ({})
1988
+ # @option options [String] :subscription_name
1989
+ # The name of the RDS event notification subscription you want to
1990
+ # describe.
1991
+ # @option options [Array<Types::Filter>] :filters
1992
+ # This parameter is not currently supported.
1993
+ # @return [EventSubscription::Collection]
1994
+ def event_subscriptions(options = {})
1995
+ batches = Enumerator.new do |y|
1996
+ resp = @client.describe_event_subscriptions(options)
1997
+ resp.each_page do |page|
1998
+ batch = []
1999
+ page.data.event_subscriptions_list.each do |e|
2000
+ batch << EventSubscription.new(
2001
+ name: e.cust_subscription_id,
2002
+ data: e,
2003
+ client: @client
2004
+ )
2005
+ end
2006
+ y.yield(batch)
2007
+ end
2008
+ end
2009
+ EventSubscription::Collection.new(batches)
2010
+ end
2011
+
2012
+ # @example Request syntax with placeholder values
2013
+ #
2014
+ # events = rds.events({
2015
+ # source_identifier: "String",
2016
+ # source_type: "db-instance", # accepts db-instance, db-parameter-group, db-security-group, db-snapshot, db-cluster, db-cluster-snapshot
2017
+ # start_time: Time.now,
2018
+ # end_time: Time.now,
2019
+ # duration: 1,
2020
+ # event_categories: ["String"],
2021
+ # filters: [
2022
+ # {
2023
+ # name: "String", # required
2024
+ # values: ["String"], # required
2025
+ # },
2026
+ # ],
2027
+ # })
2028
+ # @param [Hash] options ({})
2029
+ # @option options [String] :source_identifier
2030
+ # The identifier of the event source for which events will be returned.
2031
+ # If not specified, then all sources are included in the response.
2032
+ #
2033
+ # Constraints:
2034
+ #
2035
+ # * If SourceIdentifier is supplied, SourceType must also be provided.
2036
+ #
2037
+ # * If the source type is `DBInstance`, then a `DBInstanceIdentifier`
2038
+ # must be supplied.
2039
+ #
2040
+ # * If the source type is `DBSecurityGroup`, a `DBSecurityGroupName`
2041
+ # must be supplied.
2042
+ #
2043
+ # * If the source type is `DBParameterGroup`, a `DBParameterGroupName`
2044
+ # must be supplied.
2045
+ #
2046
+ # * If the source type is `DBSnapshot`, a `DBSnapshotIdentifier` must be
2047
+ # supplied.
2048
+ #
2049
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
2050
+ # @option options [String] :source_type
2051
+ # The event source to retrieve events for. If no value is specified, all
2052
+ # events are returned.
2053
+ # @option options [Time,DateTime,Date,Integer,String] :start_time
2054
+ # The beginning of the time interval to retrieve events for, specified
2055
+ # in ISO 8601 format. For more information about ISO 8601, go to the
2056
+ # [ISO8601 Wikipedia page.][1]
2057
+ #
2058
+ # Example: 2009-07-08T18:00Z
2059
+ #
2060
+ #
2061
+ #
2062
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
2063
+ # @option options [Time,DateTime,Date,Integer,String] :end_time
2064
+ # The end of the time interval for which to retrieve events, specified
2065
+ # in ISO 8601 format. For more information about ISO 8601, go to the
2066
+ # [ISO8601 Wikipedia page.][1]
2067
+ #
2068
+ # Example: 2009-07-08T18:00Z
2069
+ #
2070
+ #
2071
+ #
2072
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
2073
+ # @option options [Integer] :duration
2074
+ # The number of minutes to retrieve events for.
2075
+ #
2076
+ # Default: 60
2077
+ # @option options [Array<String>] :event_categories
2078
+ # A list of event categories that trigger notifications for a event
2079
+ # notification subscription.
2080
+ # @option options [Array<Types::Filter>] :filters
2081
+ # This parameter is not currently supported.
2082
+ # @return [Event::Collection]
2083
+ def events(options = {})
2084
+ batches = Enumerator.new do |y|
2085
+ resp = @client.describe_events(options)
2086
+ resp.each_page do |page|
2087
+ batch = []
2088
+ page.data.events.each do |e|
2089
+ batch << Event.new(
2090
+ source_id: e.source_identifier,
2091
+ date: e.date,
2092
+ data: e,
2093
+ client: @client
2094
+ )
2095
+ end
2096
+ y.yield(batch)
2097
+ end
2098
+ end
2099
+ Event::Collection.new(batches)
2100
+ end
2101
+
2102
+ # @param [String] name
2103
+ # @return [OptionGroup]
2104
+ def option_group(name)
2105
+ OptionGroup.new(
2106
+ name: name,
2107
+ client: @client
2108
+ )
2109
+ end
2110
+
2111
+ # @example Request syntax with placeholder values
2112
+ #
2113
+ # optiongroups = rds.option_groups({
2114
+ # option_group_name: "String",
2115
+ # filters: [
2116
+ # {
2117
+ # name: "String", # required
2118
+ # values: ["String"], # required
2119
+ # },
2120
+ # ],
2121
+ # engine_name: "String",
2122
+ # major_engine_version: "String",
2123
+ # })
2124
+ # @param [Hash] options ({})
2125
+ # @option options [String] :option_group_name
2126
+ # The name of the option group to describe. Cannot be supplied together
2127
+ # with EngineName or MajorEngineVersion.
2128
+ # @option options [Array<Types::Filter>] :filters
2129
+ # This parameter is not currently supported.
2130
+ # @option options [String] :engine_name
2131
+ # Filters the list of option groups to only include groups associated
2132
+ # with a specific database engine.
2133
+ # @option options [String] :major_engine_version
2134
+ # Filters the list of option groups to only include groups associated
2135
+ # with a specific database engine version. If specified, then EngineName
2136
+ # must also be specified.
2137
+ # @return [OptionGroup::Collection]
2138
+ def option_groups(options = {})
2139
+ batches = Enumerator.new do |y|
2140
+ resp = @client.describe_option_groups(options)
2141
+ resp.each_page do |page|
2142
+ batch = []
2143
+ page.data.option_groups_list.each do |o|
2144
+ batch << OptionGroup.new(
2145
+ name: o.option_group_name,
2146
+ data: o,
2147
+ client: @client
2148
+ )
2149
+ end
2150
+ y.yield(batch)
2151
+ end
2152
+ end
2153
+ OptionGroup::Collection.new(batches)
2154
+ end
2155
+
2156
+ # @param [String] target_arn
2157
+ # @param [String] name
2158
+ # @return [PendingMaintenanceAction]
2159
+ def pending_maintenance_action(target_arn, name)
2160
+ PendingMaintenanceAction.new(
2161
+ target_arn: target_arn,
2162
+ name: name,
2163
+ client: @client
2164
+ )
2165
+ end
2166
+
2167
+ # @param [String] id
2168
+ # @return [ReservedDBInstance]
2169
+ def reserved_db_instance(id)
2170
+ ReservedDBInstance.new(
2171
+ id: id,
2172
+ client: @client
2173
+ )
2174
+ end
2175
+
2176
+ # @example Request syntax with placeholder values
2177
+ #
2178
+ # reserveddbinstances = rds.reserved_db_instances({
2179
+ # reserved_db_instance_id: "String",
2180
+ # reserved_db_instances_offering_id: "String",
2181
+ # db_instance_class: "String",
2182
+ # duration: "String",
2183
+ # product_description: "String",
2184
+ # offering_type: "String",
2185
+ # multi_az: false,
2186
+ # filters: [
2187
+ # {
2188
+ # name: "String", # required
2189
+ # values: ["String"], # required
2190
+ # },
2191
+ # ],
2192
+ # })
2193
+ # @param [Hash] options ({})
2194
+ # @option options [String] :reserved_db_instance_id
2195
+ # The reserved DB instance identifier filter value. Specify this
2196
+ # parameter to show only the reservation that matches the specified
2197
+ # reservation ID.
2198
+ # @option options [String] :reserved_db_instances_offering_id
2199
+ # The offering identifier filter value. Specify this parameter to show
2200
+ # only purchased reservations matching the specified offering
2201
+ # identifier.
2202
+ # @option options [String] :db_instance_class
2203
+ # The DB instance class filter value. Specify this parameter to show
2204
+ # only those reservations matching the specified DB instances class.
2205
+ # @option options [String] :duration
2206
+ # The duration filter value, specified in years or seconds. Specify this
2207
+ # parameter to show only reservations for this duration.
2208
+ #
2209
+ # Valid Values: `1 | 3 | 31536000 | 94608000`
2210
+ # @option options [String] :product_description
2211
+ # The product description filter value. Specify this parameter to show
2212
+ # only those reservations matching the specified product description.
2213
+ # @option options [String] :offering_type
2214
+ # The offering type filter value. Specify this parameter to show only
2215
+ # the available offerings matching the specified offering type.
2216
+ #
2217
+ # Valid Values: `"Partial Upfront" | "All Upfront" | "No Upfront" `
2218
+ # @option options [Boolean] :multi_az
2219
+ # The Multi-AZ filter value. Specify this parameter to show only those
2220
+ # reservations matching the specified Multi-AZ parameter.
2221
+ # @option options [Array<Types::Filter>] :filters
2222
+ # This parameter is not currently supported.
2223
+ # @return [ReservedDBInstance::Collection]
2224
+ def reserved_db_instances(options = {})
2225
+ batches = Enumerator.new do |y|
2226
+ resp = @client.describe_reserved_db_instances(options)
2227
+ resp.each_page do |page|
2228
+ batch = []
2229
+ page.data.reserved_db_instances.each do |r|
2230
+ batch << ReservedDBInstance.new(
2231
+ id: r.reserved_db_instance_id,
2232
+ data: r,
2233
+ client: @client
2234
+ )
2235
+ end
2236
+ y.yield(batch)
2237
+ end
2238
+ end
2239
+ ReservedDBInstance::Collection.new(batches)
2240
+ end
2241
+
2242
+ # @param [String] id
2243
+ # @return [ReservedDBInstancesOffering]
2244
+ def reserved_db_instances_offering(id)
2245
+ ReservedDBInstancesOffering.new(
2246
+ id: id,
2247
+ client: @client
2248
+ )
2249
+ end
2250
+
2251
+ # @example Request syntax with placeholder values
2252
+ #
2253
+ # reserveddbinstancesofferings = rds.reserved_db_instances_offerings({
2254
+ # reserved_db_instances_offering_id: "String",
2255
+ # db_instance_class: "String",
2256
+ # duration: "String",
2257
+ # product_description: "String",
2258
+ # offering_type: "String",
2259
+ # multi_az: false,
2260
+ # filters: [
2261
+ # {
2262
+ # name: "String", # required
2263
+ # values: ["String"], # required
2264
+ # },
2265
+ # ],
2266
+ # })
2267
+ # @param [Hash] options ({})
2268
+ # @option options [String] :reserved_db_instances_offering_id
2269
+ # The offering identifier filter value. Specify this parameter to show
2270
+ # only the available offering that matches the specified reservation
2271
+ # identifier.
2272
+ #
2273
+ # Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706`
2274
+ # @option options [String] :db_instance_class
2275
+ # The DB instance class filter value. Specify this parameter to show
2276
+ # only the available offerings matching the specified DB instance class.
2277
+ # @option options [String] :duration
2278
+ # Duration filter value, specified in years or seconds. Specify this
2279
+ # parameter to show only reservations for this duration.
2280
+ #
2281
+ # Valid Values: `1 | 3 | 31536000 | 94608000`
2282
+ # @option options [String] :product_description
2283
+ # Product description filter value. Specify this parameter to show only
2284
+ # the available offerings matching the specified product description.
2285
+ # @option options [String] :offering_type
2286
+ # The offering type filter value. Specify this parameter to show only
2287
+ # the available offerings matching the specified offering type.
2288
+ #
2289
+ # Valid Values: `"Partial Upfront" | "All Upfront" | "No Upfront" `
2290
+ # @option options [Boolean] :multi_az
2291
+ # The Multi-AZ filter value. Specify this parameter to show only the
2292
+ # available offerings matching the specified Multi-AZ parameter.
2293
+ # @option options [Array<Types::Filter>] :filters
2294
+ # This parameter is not currently supported.
2295
+ # @return [ReservedDBInstancesOffering::Collection]
2296
+ def reserved_db_instances_offerings(options = {})
2297
+ batches = Enumerator.new do |y|
2298
+ resp = @client.describe_reserved_db_instances_offerings(options)
2299
+ resp.each_page do |page|
2300
+ batch = []
2301
+ page.data.reserved_db_instances_offerings.each do |r|
2302
+ batch << ReservedDBInstancesOffering.new(
2303
+ id: r.reserved_db_instances_offering_id,
2304
+ data: r,
2305
+ client: @client
2306
+ )
2307
+ end
2308
+ y.yield(batch)
2309
+ end
2310
+ end
2311
+ ReservedDBInstancesOffering::Collection.new(batches)
2312
+ end
2313
+
2314
+ # @param [String] arn
2315
+ # @return [ResourcePendingMaintenanceActionList]
2316
+ def resource_with_pending_maintenance_actions(arn)
2317
+ ResourcePendingMaintenanceActionList.new(
2318
+ arn: arn,
2319
+ client: @client
2320
+ )
2321
+ end
2322
+
2323
+ # @example Request syntax with placeholder values
2324
+ #
2325
+ # resourceswithpendingmaintenanceactions = rds.resources_with_pending_maintenance_actions({
2326
+ # resource_identifier: "String",
2327
+ # filters: [
2328
+ # {
2329
+ # name: "String", # required
2330
+ # values: ["String"], # required
2331
+ # },
2332
+ # ],
2333
+ # marker: "String",
2334
+ # max_records: 1,
2335
+ # })
2336
+ # @param [Hash] options ({})
2337
+ # @option options [String] :resource_identifier
2338
+ # The ARN of a resource to return pending maintenance actions for.
2339
+ # @option options [Array<Types::Filter>] :filters
2340
+ # A filter that specifies one or more resources to return pending
2341
+ # maintenance actions for.
2342
+ #
2343
+ # Supported filters:
2344
+ #
2345
+ # * `db-instance-id` - Accepts DB instance identifiers and DB instance
2346
+ # Amazon Resource Names (ARNs). The results list will only include
2347
+ # pending maintenance actions for the DB instances identified by these
2348
+ # ARNs.
2349
+ #
2350
+ # ^
2351
+ # @option options [String] :marker
2352
+ # An optional pagination token provided by a previous
2353
+ # `DescribePendingMaintenanceActions` request. If this parameter is
2354
+ # specified, the response includes only records beyond the marker, up to
2355
+ # a number of records specified by `MaxRecords`.
2356
+ # @option options [Integer] :max_records
2357
+ # The maximum number of records to include in the response. If more
2358
+ # records exist than the specified `MaxRecords` value, a pagination
2359
+ # token called a marker is included in the response so that the
2360
+ # remaining results can be retrieved.
2361
+ #
2362
+ # Default: 100
2363
+ #
2364
+ # Constraints: Minimum 20, maximum 100.
2365
+ # @return [ResourcePendingMaintenanceActionList::Collection]
2366
+ def resources_with_pending_maintenance_actions(options = {})
2367
+ batches = Enumerator.new do |y|
2368
+ batch = []
2369
+ resp = @client.describe_pending_maintenance_actions(options)
2370
+ resp.data.pending_maintenance_actions.each do |p|
2371
+ batch << ResourcePendingMaintenanceActionList.new(
2372
+ arn: p.resource_identifier,
2373
+ data: p,
2374
+ client: @client
2375
+ )
2376
+ end
2377
+ y.yield(batch)
2378
+ end
2379
+ ResourcePendingMaintenanceActionList::Collection.new(batches)
2380
+ end
2381
+
2382
+ end
2383
+ end
2384
+ end