aws-sdk-rds 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/lib/aws-sdk-rds.rb +73 -0
  3. data/lib/aws-sdk-rds/account_quota.rb +100 -0
  4. data/lib/aws-sdk-rds/certificate.rb +123 -0
  5. data/lib/aws-sdk-rds/client.rb +9214 -0
  6. data/lib/aws-sdk-rds/client_api.rb +3027 -0
  7. data/lib/aws-sdk-rds/customizations.rb +7 -0
  8. data/lib/aws-sdk-rds/db_cluster.rb +1074 -0
  9. data/lib/aws-sdk-rds/db_cluster_parameter_group.rb +230 -0
  10. data/lib/aws-sdk-rds/db_cluster_snapshot.rb +478 -0
  11. data/lib/aws-sdk-rds/db_engine.rb +241 -0
  12. data/lib/aws-sdk-rds/db_engine_version.rb +263 -0
  13. data/lib/aws-sdk-rds/db_instance.rb +2680 -0
  14. data/lib/aws-sdk-rds/db_log_file.rb +170 -0
  15. data/lib/aws-sdk-rds/db_parameter_group.rb +455 -0
  16. data/lib/aws-sdk-rds/db_parameter_group_family.rb +167 -0
  17. data/lib/aws-sdk-rds/db_security_group.rb +358 -0
  18. data/lib/aws-sdk-rds/db_snapshot.rb +714 -0
  19. data/lib/aws-sdk-rds/db_snapshot_attribute.rb +160 -0
  20. data/lib/aws-sdk-rds/db_subnet_group.rb +188 -0
  21. data/lib/aws-sdk-rds/errors.rb +23 -0
  22. data/lib/aws-sdk-rds/event.rb +134 -0
  23. data/lib/aws-sdk-rds/event_category_map.rb +98 -0
  24. data/lib/aws-sdk-rds/event_subscription.rb +352 -0
  25. data/lib/aws-sdk-rds/option_group.rb +283 -0
  26. data/lib/aws-sdk-rds/option_group_option.rb +166 -0
  27. data/lib/aws-sdk-rds/parameter.rb +144 -0
  28. data/lib/aws-sdk-rds/pending_maintenance_action.rb +211 -0
  29. data/lib/aws-sdk-rds/reserved_db_instance.rb +191 -0
  30. data/lib/aws-sdk-rds/reserved_db_instances_offering.rb +183 -0
  31. data/lib/aws-sdk-rds/resource.rb +2384 -0
  32. data/lib/aws-sdk-rds/resource_pending_maintenance_action_list.rb +111 -0
  33. data/lib/aws-sdk-rds/types.rb +10965 -0
  34. data/lib/aws-sdk-rds/waiters.rb +149 -0
  35. metadata +106 -0
@@ -0,0 +1,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