aws-sdk-rds 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/lib/aws-sdk-rds.rb +73 -0
  3. data/lib/aws-sdk-rds/account_quota.rb +100 -0
  4. data/lib/aws-sdk-rds/certificate.rb +123 -0
  5. data/lib/aws-sdk-rds/client.rb +9214 -0
  6. data/lib/aws-sdk-rds/client_api.rb +3027 -0
  7. data/lib/aws-sdk-rds/customizations.rb +7 -0
  8. data/lib/aws-sdk-rds/db_cluster.rb +1074 -0
  9. data/lib/aws-sdk-rds/db_cluster_parameter_group.rb +230 -0
  10. data/lib/aws-sdk-rds/db_cluster_snapshot.rb +478 -0
  11. data/lib/aws-sdk-rds/db_engine.rb +241 -0
  12. data/lib/aws-sdk-rds/db_engine_version.rb +263 -0
  13. data/lib/aws-sdk-rds/db_instance.rb +2680 -0
  14. data/lib/aws-sdk-rds/db_log_file.rb +170 -0
  15. data/lib/aws-sdk-rds/db_parameter_group.rb +455 -0
  16. data/lib/aws-sdk-rds/db_parameter_group_family.rb +167 -0
  17. data/lib/aws-sdk-rds/db_security_group.rb +358 -0
  18. data/lib/aws-sdk-rds/db_snapshot.rb +714 -0
  19. data/lib/aws-sdk-rds/db_snapshot_attribute.rb +160 -0
  20. data/lib/aws-sdk-rds/db_subnet_group.rb +188 -0
  21. data/lib/aws-sdk-rds/errors.rb +23 -0
  22. data/lib/aws-sdk-rds/event.rb +134 -0
  23. data/lib/aws-sdk-rds/event_category_map.rb +98 -0
  24. data/lib/aws-sdk-rds/event_subscription.rb +352 -0
  25. data/lib/aws-sdk-rds/option_group.rb +283 -0
  26. data/lib/aws-sdk-rds/option_group_option.rb +166 -0
  27. data/lib/aws-sdk-rds/parameter.rb +144 -0
  28. data/lib/aws-sdk-rds/pending_maintenance_action.rb +211 -0
  29. data/lib/aws-sdk-rds/reserved_db_instance.rb +191 -0
  30. data/lib/aws-sdk-rds/reserved_db_instances_offering.rb +183 -0
  31. data/lib/aws-sdk-rds/resource.rb +2384 -0
  32. data/lib/aws-sdk-rds/resource_pending_maintenance_action_list.rb +111 -0
  33. data/lib/aws-sdk-rds/types.rb +10965 -0
  34. data/lib/aws-sdk-rds/waiters.rb +149 -0
  35. metadata +106 -0
@@ -0,0 +1,2680 @@
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 DBInstance
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 :db_instance_identifier :id
34
+
35
+ # Contains the name of the compute and memory capacity class of the DB
36
+ # instance.
37
+ # @return [String]
38
+ def db_instance_class
39
+ data.db_instance_class
40
+ end
41
+
42
+ # Provides the name of the database engine to be used for this DB
43
+ # instance.
44
+ # @return [String]
45
+ def engine
46
+ data.engine
47
+ end
48
+
49
+ # Specifies the current state of this database.
50
+ # @return [String]
51
+ def db_instance_status
52
+ data.db_instance_status
53
+ end
54
+
55
+ # Contains the master username for the DB instance.
56
+ # @return [String]
57
+ def master_username
58
+ data.master_username
59
+ end
60
+
61
+ # The meaning of this parameter differs according to the database engine
62
+ # you use. For example, this value returns MySQL, MariaDB, or PostgreSQL
63
+ # information when returning values from CreateDBInstanceReadReplica
64
+ # since Read Replicas are only supported for these engines.
65
+ #
66
+ # **MySQL, MariaDB, SQL Server, PostgreSQL, Amazon Aurora**
67
+ #
68
+ # Contains the name of the initial database of this instance that was
69
+ # provided at create time, if one was specified when the DB instance was
70
+ # created. This same name is returned for the life of the DB instance.
71
+ #
72
+ # Type: String
73
+ #
74
+ # **Oracle**
75
+ #
76
+ # Contains the Oracle System ID (SID) of the created DB instance. Not
77
+ # shown when the returned parameters do not apply to an Oracle DB
78
+ # instance.
79
+ # @return [String]
80
+ def db_name
81
+ data.db_name
82
+ end
83
+
84
+ # Specifies the connection endpoint.
85
+ # @return [Types::Endpoint]
86
+ def endpoint
87
+ data.endpoint
88
+ end
89
+
90
+ # Specifies the allocated storage size specified in gigabytes.
91
+ # @return [Integer]
92
+ def allocated_storage
93
+ data.allocated_storage
94
+ end
95
+
96
+ # Provides the date and time the DB instance was created.
97
+ # @return [Time]
98
+ def instance_create_time
99
+ data.instance_create_time
100
+ end
101
+
102
+ # Specifies the daily time range during which automated backups are
103
+ # created if automated backups are enabled, as determined by the
104
+ # `BackupRetentionPeriod`.
105
+ # @return [String]
106
+ def preferred_backup_window
107
+ data.preferred_backup_window
108
+ end
109
+
110
+ # Specifies the number of days for which automatic DB snapshots are
111
+ # retained.
112
+ # @return [Integer]
113
+ def backup_retention_period
114
+ data.backup_retention_period
115
+ end
116
+
117
+ # Provides List of DB security group elements containing only
118
+ # `DBSecurityGroup.Name` and `DBSecurityGroup.Status` subelements.
119
+ # @return [Array<Types::DBSecurityGroupMembership>]
120
+ def db_security_groups
121
+ data.db_security_groups
122
+ end
123
+
124
+ # Provides a list of VPC security group elements that the DB instance
125
+ # belongs to.
126
+ # @return [Array<Types::VpcSecurityGroupMembership>]
127
+ def vpc_security_groups
128
+ data.vpc_security_groups
129
+ end
130
+
131
+ # Provides the list of DB parameter groups applied to this DB instance.
132
+ # @return [Array<Types::DBParameterGroupStatus>]
133
+ def db_parameter_groups
134
+ data.db_parameter_groups
135
+ end
136
+
137
+ # Specifies the name of the Availability Zone the DB instance is located
138
+ # in.
139
+ # @return [String]
140
+ def availability_zone
141
+ data.availability_zone
142
+ end
143
+
144
+ # Specifies information on the subnet group associated with the DB
145
+ # instance, including the name, description, and subnets in the subnet
146
+ # group.
147
+ # @return [Types::DBSubnetGroup]
148
+ def db_subnet_group
149
+ data.db_subnet_group
150
+ end
151
+
152
+ # Specifies the weekly time range during which system maintenance can
153
+ # occur, in Universal Coordinated Time (UTC).
154
+ # @return [String]
155
+ def preferred_maintenance_window
156
+ data.preferred_maintenance_window
157
+ end
158
+
159
+ # Specifies that changes to the DB instance are pending. This element is
160
+ # only included when changes are pending. Specific changes are
161
+ # identified by subelements.
162
+ # @return [Types::PendingModifiedValues]
163
+ def pending_modified_values
164
+ data.pending_modified_values
165
+ end
166
+
167
+ # Specifies the latest time to which a database can be restored with
168
+ # point-in-time restore.
169
+ # @return [Time]
170
+ def latest_restorable_time
171
+ data.latest_restorable_time
172
+ end
173
+
174
+ # Specifies if the DB instance is a Multi-AZ deployment.
175
+ # @return [Boolean]
176
+ def multi_az
177
+ data.multi_az
178
+ end
179
+
180
+ # Indicates the database engine version.
181
+ # @return [String]
182
+ def engine_version
183
+ data.engine_version
184
+ end
185
+
186
+ # Indicates that minor version patches are applied automatically.
187
+ # @return [Boolean]
188
+ def auto_minor_version_upgrade
189
+ data.auto_minor_version_upgrade
190
+ end
191
+
192
+ # Contains the identifier of the source DB instance if this DB instance
193
+ # is a Read Replica.
194
+ # @return [String]
195
+ def read_replica_source_db_instance_identifier
196
+ data.read_replica_source_db_instance_identifier
197
+ end
198
+
199
+ # Contains one or more identifiers of the Read Replicas associated with
200
+ # this DB instance.
201
+ # @return [Array<String>]
202
+ def read_replica_db_instance_identifiers
203
+ data.read_replica_db_instance_identifiers
204
+ end
205
+
206
+ # License model information for this DB instance.
207
+ # @return [String]
208
+ def license_model
209
+ data.license_model
210
+ end
211
+
212
+ # Specifies the Provisioned IOPS (I/O operations per second) value.
213
+ # @return [Integer]
214
+ def iops
215
+ data.iops
216
+ end
217
+
218
+ # Provides the list of option group memberships for this DB instance.
219
+ # @return [Array<Types::OptionGroupMembership>]
220
+ def option_group_memberships
221
+ data.option_group_memberships
222
+ end
223
+
224
+ # If present, specifies the name of the character set that this instance
225
+ # is associated with.
226
+ # @return [String]
227
+ def character_set_name
228
+ data.character_set_name
229
+ end
230
+
231
+ # If present, specifies the name of the secondary Availability Zone for
232
+ # a DB instance with multi-AZ support.
233
+ # @return [String]
234
+ def secondary_availability_zone
235
+ data.secondary_availability_zone
236
+ end
237
+
238
+ # Specifies the accessibility options for the DB instance. A value of
239
+ # true specifies an Internet-facing instance with a publicly resolvable
240
+ # DNS name, which resolves to a public IP address. A value of false
241
+ # specifies an internal instance with a DNS name that resolves to a
242
+ # private IP address.
243
+ #
244
+ # Default: The default behavior varies depending on whether a VPC has
245
+ # been requested or not. The following list shows the default behavior
246
+ # in each case.
247
+ #
248
+ # * **Default VPC:**true
249
+ #
250
+ # * **VPC:**false
251
+ #
252
+ # If no DB subnet group has been specified as part of the request and
253
+ # the PubliclyAccessible value has not been set, the DB instance will be
254
+ # publicly accessible. If a specific DB subnet group has been specified
255
+ # as part of the request and the PubliclyAccessible value has not been
256
+ # set, the DB instance will be private.
257
+ # @return [Boolean]
258
+ def publicly_accessible
259
+ data.publicly_accessible
260
+ end
261
+
262
+ # The status of a Read Replica. If the instance is not a Read Replica,
263
+ # this will be blank.
264
+ # @return [Array<Types::DBInstanceStatusInfo>]
265
+ def status_infos
266
+ data.status_infos
267
+ end
268
+
269
+ # Specifies the storage type associated with DB instance.
270
+ # @return [String]
271
+ def storage_type
272
+ data.storage_type
273
+ end
274
+
275
+ # The ARN from the key store with which the instance is associated for
276
+ # TDE encryption.
277
+ # @return [String]
278
+ def tde_credential_arn
279
+ data.tde_credential_arn
280
+ end
281
+
282
+ # Specifies the port that the DB instance listens on. If the DB instance
283
+ # is part of a DB cluster, this can be a different port than the DB
284
+ # cluster port.
285
+ # @return [Integer]
286
+ def db_instance_port
287
+ data.db_instance_port
288
+ end
289
+
290
+ # If the DB instance is a member of a DB cluster, contains the name of
291
+ # the DB cluster that the DB instance is a member of.
292
+ # @return [String]
293
+ def db_cluster_identifier
294
+ data.db_cluster_identifier
295
+ end
296
+
297
+ # Specifies whether the DB instance is encrypted.
298
+ # @return [Boolean]
299
+ def storage_encrypted
300
+ data.storage_encrypted
301
+ end
302
+
303
+ # If `StorageEncrypted` is true, the KMS key identifier for the
304
+ # encrypted DB instance.
305
+ # @return [String]
306
+ def kms_key_id
307
+ data.kms_key_id
308
+ end
309
+
310
+ # The region-unique, immutable identifier for the DB instance. This
311
+ # identifier is found in AWS CloudTrail log entries whenever the KMS key
312
+ # for the DB instance is accessed.
313
+ # @return [String]
314
+ def dbi_resource_id
315
+ data.dbi_resource_id
316
+ end
317
+
318
+ # The identifier of the CA certificate for this DB instance.
319
+ # @return [String]
320
+ def ca_certificate_identifier
321
+ data.ca_certificate_identifier
322
+ end
323
+
324
+ # The Active Directory Domain membership records associated with the DB
325
+ # instance.
326
+ # @return [Array<Types::DomainMembership>]
327
+ def domain_memberships
328
+ data.domain_memberships
329
+ end
330
+
331
+ # Specifies whether tags are copied from the DB instance to snapshots of
332
+ # the DB instance.
333
+ # @return [Boolean]
334
+ def copy_tags_to_snapshot
335
+ data.copy_tags_to_snapshot
336
+ end
337
+
338
+ # The interval, in seconds, between points when Enhanced Monitoring
339
+ # metrics are collected for the DB instance.
340
+ # @return [Integer]
341
+ def monitoring_interval
342
+ data.monitoring_interval
343
+ end
344
+
345
+ # The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log
346
+ # stream that receives the Enhanced Monitoring metrics data for the DB
347
+ # instance.
348
+ # @return [String]
349
+ def enhanced_monitoring_resource_arn
350
+ data.enhanced_monitoring_resource_arn
351
+ end
352
+
353
+ # The ARN for the IAM role that permits RDS to send Enhanced Monitoring
354
+ # metrics to CloudWatch Logs.
355
+ # @return [String]
356
+ def monitoring_role_arn
357
+ data.monitoring_role_arn
358
+ end
359
+
360
+ # A value that specifies the order in which an Aurora Replica is
361
+ # promoted to the primary instance after a failure of the existing
362
+ # primary instance. For more information, see [ Fault Tolerance for an
363
+ # Aurora DB Cluster][1].
364
+ #
365
+ #
366
+ #
367
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html#Aurora.Managing.FaultTolerance
368
+ # @return [Integer]
369
+ def promotion_tier
370
+ data.promotion_tier
371
+ end
372
+
373
+ # The Amazon Resource Name (ARN) for the DB instance.
374
+ # @return [String]
375
+ def db_instance_arn
376
+ data.db_instance_arn
377
+ end
378
+
379
+ # The time zone of the DB instance. In most cases, the `Timezone`
380
+ # element is empty. `Timezone` content appears only for Microsoft SQL
381
+ # Server DB instances that were created with a time zone specified.
382
+ # @return [String]
383
+ def timezone
384
+ data.timezone
385
+ end
386
+
387
+ # @!endgroup
388
+
389
+ # @return [Client]
390
+ def client
391
+ @client
392
+ end
393
+
394
+ # Loads, or reloads {#data} for the current {DBInstance}.
395
+ # Returns `self` making it possible to chain methods.
396
+ #
397
+ # db_instance.reload.data
398
+ #
399
+ # @return [self]
400
+ def load
401
+ resp = @client.describe_db_instances(db_instance_identifier: @id)
402
+ @data = resp.dbinstances[0]
403
+ self
404
+ end
405
+ alias :reload :load
406
+
407
+ # @return [Types::DBInstance]
408
+ # Returns the data for this {DBInstance}. Calls
409
+ # {Client#describe_db_instances} if {#data_loaded?} is `false`.
410
+ def data
411
+ load unless @data
412
+ @data
413
+ end
414
+
415
+ # @return [Boolean]
416
+ # Returns `true` if this resource is loaded. Accessing attributes or
417
+ # {#data} on an unloaded resource will trigger a call to {#load}.
418
+ def data_loaded?
419
+ !!@data
420
+ end
421
+
422
+ # @!group Actions
423
+
424
+ # @example Request syntax with placeholder values
425
+ #
426
+ # dbinstance = db_instance.create({
427
+ # db_name: "String",
428
+ # allocated_storage: 1,
429
+ # db_instance_class: "String", # required
430
+ # engine: "String", # required
431
+ # master_username: "String",
432
+ # master_user_password: "String",
433
+ # db_security_groups: ["String"],
434
+ # vpc_security_group_ids: ["String"],
435
+ # availability_zone: "String",
436
+ # db_subnet_group_name: "String",
437
+ # preferred_maintenance_window: "String",
438
+ # db_parameter_group_name: "String",
439
+ # backup_retention_period: 1,
440
+ # preferred_backup_window: "String",
441
+ # port: 1,
442
+ # multi_az: false,
443
+ # engine_version: "String",
444
+ # auto_minor_version_upgrade: false,
445
+ # license_model: "String",
446
+ # iops: 1,
447
+ # option_group_name: "String",
448
+ # character_set_name: "String",
449
+ # publicly_accessible: false,
450
+ # tags: [
451
+ # {
452
+ # key: "String",
453
+ # value: "String",
454
+ # },
455
+ # ],
456
+ # db_cluster_identifier: "String",
457
+ # storage_type: "String",
458
+ # tde_credential_arn: "String",
459
+ # tde_credential_password: "String",
460
+ # storage_encrypted: false,
461
+ # kms_key_id: "String",
462
+ # domain: "String",
463
+ # copy_tags_to_snapshot: false,
464
+ # monitoring_interval: 1,
465
+ # monitoring_role_arn: "String",
466
+ # domain_iam_role_name: "String",
467
+ # promotion_tier: 1,
468
+ # timezone: "String",
469
+ # })
470
+ # @param [Hash] options ({})
471
+ # @option options [String] :db_name
472
+ # The meaning of this parameter differs according to the database engine
473
+ # you use.
474
+ #
475
+ # Type: String
476
+ #
477
+ # **MySQL**
478
+ #
479
+ # The name of the database to create when the DB instance is created. If
480
+ # this parameter is not specified, no database is created in the DB
481
+ # instance.
482
+ #
483
+ # Constraints:
484
+ #
485
+ # * Must contain 1 to 64 alphanumeric characters
486
+ #
487
+ # * Cannot be a word reserved by the specified database engine
488
+ #
489
+ # **MariaDB**
490
+ #
491
+ # The name of the database to create when the DB instance is created. If
492
+ # this parameter is not specified, no database is created in the DB
493
+ # instance.
494
+ #
495
+ # Constraints:
496
+ #
497
+ # * Must contain 1 to 64 alphanumeric characters
498
+ #
499
+ # * Cannot be a word reserved by the specified database engine
500
+ #
501
+ # **PostgreSQL**
502
+ #
503
+ # The name of the database to create when the DB instance is created. If
504
+ # this parameter is not specified, the default "postgres" database is
505
+ # created in the DB instance.
506
+ #
507
+ # Constraints:
508
+ #
509
+ # * Must contain 1 to 63 alphanumeric characters
510
+ #
511
+ # * Must begin with a letter or an underscore. Subsequent characters can
512
+ # be letters, underscores, or digits (0-9).
513
+ #
514
+ # * Cannot be a word reserved by the specified database engine
515
+ #
516
+ # **Oracle**
517
+ #
518
+ # The Oracle System ID (SID) of the created DB instance.
519
+ #
520
+ # Default: `ORCL`
521
+ #
522
+ # Constraints:
523
+ #
524
+ # * Cannot be longer than 8 characters
525
+ #
526
+ # ^
527
+ #
528
+ # **SQL Server**
529
+ #
530
+ # Not applicable. Must be null.
531
+ #
532
+ # **Amazon Aurora**
533
+ #
534
+ # The name of the database to create when the primary instance of the DB
535
+ # cluster is created. If this parameter is not specified, no database is
536
+ # created in the DB instance.
537
+ #
538
+ # Constraints:
539
+ #
540
+ # * Must contain 1 to 64 alphanumeric characters
541
+ #
542
+ # * Cannot be a word reserved by the specified database engine
543
+ # @option options [Integer] :allocated_storage
544
+ # The amount of storage (in gigabytes) to be initially allocated for the
545
+ # database instance.
546
+ #
547
+ # Type: Integer
548
+ #
549
+ # **MySQL**
550
+ #
551
+ # Constraints: Must be an integer from 5 to 6144.
552
+ #
553
+ # **MariaDB**
554
+ #
555
+ # Constraints: Must be an integer from 5 to 6144.
556
+ #
557
+ # **PostgreSQL**
558
+ #
559
+ # Constraints: Must be an integer from 5 to 6144.
560
+ #
561
+ # **Oracle**
562
+ #
563
+ # Constraints: Must be an integer from 10 to 6144.
564
+ #
565
+ # **SQL Server**
566
+ #
567
+ # Constraints: Must be an integer from 200 to 4096 (Standard Edition and
568
+ # Enterprise Edition) or from 20 to 4096 (Express Edition and Web
569
+ # Edition)
570
+ # @option options [required, String] :db_instance_class
571
+ # The compute and memory capacity of the DB instance.
572
+ #
573
+ # Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large
574
+ # | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge |
575
+ # db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge |
576
+ # db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge |
577
+ # db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge |
578
+ # db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small |
579
+ # db.t2.medium | db.t2.large`
580
+ # @option options [required, String] :engine
581
+ # The name of the database engine to be used for this instance.
582
+ #
583
+ # Valid Values: `mysql` \| `mariadb` \| `oracle-se1` \| `oracle-se2` \|
584
+ # `oracle-se` \| `oracle-ee` \| `sqlserver-ee` \| `sqlserver-se` \|
585
+ # `sqlserver-ex` \| `sqlserver-web` \| `postgres` \| `aurora`
586
+ #
587
+ # Not every database engine is available for every AWS region.
588
+ # @option options [String] :master_username
589
+ # The name of master user for the client DB instance.
590
+ #
591
+ # **MySQL**
592
+ #
593
+ # Constraints:
594
+ #
595
+ # * Must be 1 to 16 alphanumeric characters.
596
+ #
597
+ # * First character must be a letter.
598
+ #
599
+ # * Cannot be a reserved word for the chosen database engine.
600
+ #
601
+ # **MariaDB**
602
+ #
603
+ # Constraints:
604
+ #
605
+ # * Must be 1 to 16 alphanumeric characters.
606
+ #
607
+ # * Cannot be a reserved word for the chosen database engine.
608
+ #
609
+ # Type: String
610
+ #
611
+ # **Oracle**
612
+ #
613
+ # Constraints:
614
+ #
615
+ # * Must be 1 to 30 alphanumeric characters.
616
+ #
617
+ # * First character must be a letter.
618
+ #
619
+ # * Cannot be a reserved word for the chosen database engine.
620
+ #
621
+ # **SQL Server**
622
+ #
623
+ # Constraints:
624
+ #
625
+ # * Must be 1 to 128 alphanumeric characters.
626
+ #
627
+ # * First character must be a letter.
628
+ #
629
+ # * Cannot be a reserved word for the chosen database engine.
630
+ #
631
+ # **PostgreSQL**
632
+ #
633
+ # Constraints:
634
+ #
635
+ # * Must be 1 to 63 alphanumeric characters.
636
+ #
637
+ # * First character must be a letter.
638
+ #
639
+ # * Cannot be a reserved word for the chosen database engine.
640
+ # @option options [String] :master_user_password
641
+ # The password for the master database user. Can be any printable ASCII
642
+ # character except "/", """, or "@".
643
+ #
644
+ # Type: String
645
+ #
646
+ # **MySQL**
647
+ #
648
+ # Constraints: Must contain from 8 to 41 characters.
649
+ #
650
+ # **MariaDB**
651
+ #
652
+ # Constraints: Must contain from 8 to 41 characters.
653
+ #
654
+ # **Oracle**
655
+ #
656
+ # Constraints: Must contain from 8 to 30 characters.
657
+ #
658
+ # **SQL Server**
659
+ #
660
+ # Constraints: Must contain from 8 to 128 characters.
661
+ #
662
+ # **PostgreSQL**
663
+ #
664
+ # Constraints: Must contain from 8 to 128 characters.
665
+ #
666
+ # **Amazon Aurora**
667
+ #
668
+ # Constraints: Must contain from 8 to 41 characters.
669
+ # @option options [Array<String>] :db_security_groups
670
+ # A list of DB security groups to associate with this DB instance.
671
+ #
672
+ # Default: The default DB security group for the database engine.
673
+ # @option options [Array<String>] :vpc_security_group_ids
674
+ # A list of EC2 VPC security groups to associate with this DB instance.
675
+ #
676
+ # Default: The default EC2 VPC security group for the DB subnet group's
677
+ # VPC.
678
+ # @option options [String] :availability_zone
679
+ # The EC2 Availability Zone that the database instance will be created
680
+ # in. For information on regions and Availability Zones, see [Regions
681
+ # and Availability Zones][1].
682
+ #
683
+ # Default: A random, system-chosen Availability Zone in the endpoint's
684
+ # region.
685
+ #
686
+ # Example: `us-east-1d`
687
+ #
688
+ # Constraint: The AvailabilityZone parameter cannot be specified if the
689
+ # MultiAZ parameter is set to `true`. The specified Availability Zone
690
+ # must be in the same region as the current endpoint.
691
+ #
692
+ #
693
+ #
694
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
695
+ # @option options [String] :db_subnet_group_name
696
+ # A DB subnet group to associate with this DB instance.
697
+ #
698
+ # If there is no DB subnet group, then it is a non-VPC DB instance.
699
+ # @option options [String] :preferred_maintenance_window
700
+ # The weekly time range during which system maintenance can occur, in
701
+ # Universal Coordinated Time (UTC). For more information, see [DB
702
+ # Instance Maintenance][1].
703
+ #
704
+ # Format: `ddd:hh24:mi-ddd:hh24:mi`
705
+ #
706
+ # Default: A 30-minute window selected at random from an 8-hour block of
707
+ # time per region, occurring on a random day of the week. To see the
708
+ # time blocks available, see [ Adjusting the Preferred Maintenance
709
+ # Window][2] in the *Amazon RDS User Guide.*
710
+ #
711
+ # Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
712
+ #
713
+ # Constraints: Minimum 30-minute window.
714
+ #
715
+ #
716
+ #
717
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBMaintenance.html
718
+ # [2]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
719
+ # @option options [String] :db_parameter_group_name
720
+ # The name of the DB parameter group to associate with this DB instance.
721
+ # If this argument is omitted, the default DBParameterGroup for the
722
+ # specified engine will be used.
723
+ #
724
+ # Constraints:
725
+ #
726
+ # * Must be 1 to 255 alphanumeric characters
727
+ #
728
+ # * First character must be a letter
729
+ #
730
+ # * Cannot end with a hyphen or contain two consecutive hyphens
731
+ # @option options [Integer] :backup_retention_period
732
+ # The number of days for which automated backups are retained. Setting
733
+ # this parameter to a positive number enables backups. Setting this
734
+ # parameter to 0 disables automated backups.
735
+ #
736
+ # Default: 1
737
+ #
738
+ # Constraints:
739
+ #
740
+ # * Must be a value from 0 to 35
741
+ #
742
+ # * Cannot be set to 0 if the DB instance is a source to Read Replicas
743
+ # @option options [String] :preferred_backup_window
744
+ # The daily time range during which automated backups are created if
745
+ # automated backups are enabled, using the `BackupRetentionPeriod`
746
+ # parameter. For more information, see [DB Instance Backups][1].
747
+ #
748
+ # Default: A 30-minute window selected at random from an 8-hour block of
749
+ # time per region. To see the time blocks available, see [ Adjusting the
750
+ # Preferred Maintenance Window][2] in the *Amazon RDS User Guide.*
751
+ #
752
+ # Constraints:
753
+ #
754
+ # * Must be in the format `hh24:mi-hh24:mi`.
755
+ #
756
+ # * Times should be in Universal Coordinated Time (UTC).
757
+ #
758
+ # * Must not conflict with the preferred maintenance window.
759
+ #
760
+ # * Must be at least 30 minutes.
761
+ #
762
+ #
763
+ #
764
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.BackingUpAndRestoringAmazonRDSInstances.html
765
+ # [2]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
766
+ # @option options [Integer] :port
767
+ # The port number on which the database accepts connections.
768
+ #
769
+ # **MySQL**
770
+ #
771
+ # Default: `3306`
772
+ #
773
+ # Valid Values: `1150-65535`
774
+ #
775
+ # Type: Integer
776
+ #
777
+ # **MariaDB**
778
+ #
779
+ # Default: `3306`
780
+ #
781
+ # Valid Values: `1150-65535`
782
+ #
783
+ # Type: Integer
784
+ #
785
+ # **PostgreSQL**
786
+ #
787
+ # Default: `5432`
788
+ #
789
+ # Valid Values: `1150-65535`
790
+ #
791
+ # Type: Integer
792
+ #
793
+ # **Oracle**
794
+ #
795
+ # Default: `1521`
796
+ #
797
+ # Valid Values: `1150-65535`
798
+ #
799
+ # **SQL Server**
800
+ #
801
+ # Default: `1433`
802
+ #
803
+ # Valid Values: `1150-65535` except for `1434`, `3389`, `47001`,
804
+ # `49152`, and `49152` through `49156`.
805
+ #
806
+ # **Amazon Aurora**
807
+ #
808
+ # Default: `3306`
809
+ #
810
+ # Valid Values: `1150-65535`
811
+ #
812
+ # Type: Integer
813
+ # @option options [Boolean] :multi_az
814
+ # Specifies if the DB instance is a Multi-AZ deployment. You cannot set
815
+ # the AvailabilityZone parameter if the MultiAZ parameter is set to
816
+ # true.
817
+ # @option options [String] :engine_version
818
+ # The version number of the database engine to use.
819
+ #
820
+ # The following are the database engines and major and minor versions
821
+ # that are available with Amazon RDS. Not every database engine is
822
+ # available for every AWS region.
823
+ #
824
+ # **Amazon Aurora**
825
+ #
826
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
827
+ # ap-northeast-2, ap-south-1, ap-southeast-2, eu-west-1, us-east-1,
828
+ # us-west-2):** ` 5.6.10a`
829
+ #
830
+ # ^
831
+ #
832
+ # **MariaDB**
833
+ #
834
+ # * **Version 10.1 (available in these AWS regions: ap-northeast-1,
835
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
836
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
837
+ # us-west-2):** ` 10.1.14`
838
+ #
839
+ # * **Version 10.0 (available in all AWS regions):** ` 10.0.17 |
840
+ # 10.0.24`
841
+ #
842
+ # **MySQL**
843
+ #
844
+ # * **Version 5.7 (available in all AWS regions):** ` 5.7.10 | 5.7.11`
845
+ #
846
+ # * **Version 5.6 (available in all AWS regions):** ` 5.6.27 | 5.6.29`
847
+ #
848
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
849
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
850
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
851
+ # us-west-2):** ` 5.6.23`
852
+ #
853
+ # * **Version 5.6 (available in these AWS regions: ap-northeast-1,
854
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
855
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 5.6.19a |
856
+ # 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22`
857
+ #
858
+ # * **Version 5.5 (available in all AWS regions):** ` 5.5.46`
859
+ #
860
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
861
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
862
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
863
+ # us-west-2):** ` 5.5.42`
864
+ #
865
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
866
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
867
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 5.5.40b |
868
+ # 5.5.41`
869
+ #
870
+ # * **Version 5.5 (available in these AWS regions: ap-northeast-1,
871
+ # ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-east-1,
872
+ # us-gov-west-1, us-west-1, us-west-2):** ` 5.5.40 | 5.5.40a`
873
+ #
874
+ # **Oracle Database Enterprise Edition (oracle-ee)**
875
+ #
876
+ # * **Version 12.1.0.2 (available in these AWS regions: ap-northeast-1,
877
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
878
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
879
+ # us-west-2):** ` 12.1.0.2.v5`
880
+ #
881
+ # * **Version 12.1.0.2 (available in all AWS regions):** ` 12.1.0.2.v1 |
882
+ # 12.1.0.2.v2 | 12.1.0.2.v3 | 12.1.0.2.v4`
883
+ #
884
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
885
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
886
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
887
+ #
888
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
889
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
890
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
891
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
892
+ #
893
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
894
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
895
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
896
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
897
+ #
898
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
899
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
900
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
901
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
902
+ #
903
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
904
+ # 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`
905
+ #
906
+ # **Oracle Database Standard Edition Two (oracle-se2)**
907
+ #
908
+ # * **Version 12.1.0.2 (available in these AWS regions: ap-northeast-1,
909
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
910
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
911
+ # us-west-2):** ` 12.1.0.2.v5`
912
+ #
913
+ # * **Version 12.1.0.2 (available in all AWS regions):** ` 12.1.0.2.v2 |
914
+ # 12.1.0.2.v3 | 12.1.0.2.v4`
915
+ #
916
+ # **Oracle Database Standard Edition One (oracle-se1)**
917
+ #
918
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
919
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
920
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
921
+ #
922
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
923
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
924
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
925
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
926
+ #
927
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
928
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
929
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
930
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
931
+ #
932
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
933
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
934
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
935
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
936
+ #
937
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
938
+ # 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`
939
+ #
940
+ # **Oracle Database Standard Edition (oracle-se)**
941
+ #
942
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
943
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
944
+ # us-east-1, us-west-1, us-west-2):** ` 12.1.0.1.v6`
945
+ #
946
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
947
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
948
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 12.1.0.1.v3 |
949
+ # 12.1.0.1.v4 | 12.1.0.1.v5`
950
+ #
951
+ # * **Version 12.1.0.1 (available in these AWS regions: ap-northeast-1,
952
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
953
+ # us-east-1, us-gov-west-1, us-gov-west-1, us-west-1, us-west-2):** `
954
+ # 12.1.0.1.v1 | 12.1.0.1.v2`
955
+ #
956
+ # * **Version 11.2.0.4 (available in these AWS regions: ap-northeast-1,
957
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
958
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
959
+ # us-west-2):** ` 11.2.0.4.v6 | 11.2.0.4.v9`
960
+ #
961
+ # * **Version 11.2.0.4 (available in all AWS regions):** ` 11.2.0.4.v1 |
962
+ # 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`
963
+ #
964
+ # **PostgreSQL**
965
+ #
966
+ # * **Version 9.5 (available in these AWS regions: ap-northeast-1,
967
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
968
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
969
+ # us-west-2):** ` 9.5.2 | 9.5.4`
970
+ #
971
+ # * **Version 9.4 (available in these AWS regions: ap-northeast-1,
972
+ # ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
973
+ # eu-central-1, eu-west-1, sa-east-1, us-east-1, us-west-1,
974
+ # us-west-2):** ` 9.4.7 | 9.4.9`
975
+ #
976
+ # * **Version 9.4 (available in all AWS regions):** ` 9.4.5`
977
+ #
978
+ # * **Version 9.4 (available in these AWS regions: ap-northeast-1,
979
+ # ap-northeast-2, ap-southeast-1, ap-southeast-2, eu-central-1,
980
+ # eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
981
+ # us-west-2):** ` 9.4.1 | 9.4.4`
982
+ #
983
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
984
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
985
+ # us-east-1, us-gov-west-1, us-west-1, us-west-2):** ` 9.3.10 | 9.3.3
986
+ # | 9.3.5 | 9.3.6 | 9.3.9`
987
+ #
988
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
989
+ # ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-east-1,
990
+ # us-gov-west-1, us-west-1, us-west-2):** ` 9.3.1 | 9.3.2`
991
+ #
992
+ # * **Version 9.3 (available in these AWS regions: ap-northeast-1,
993
+ # ap-southeast-1, ap-southeast-2, eu-central-1, eu-west-1, sa-east-1,
994
+ # us-east-1, us-west-1, us-west-2):** ` 9.3.12 | 9.3.14`
995
+ #
996
+ # **Microsoft SQL Server Enterprise Edition (sqlserver-ee)**
997
+ #
998
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
999
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
1000
+ #
1001
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
1002
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
1003
+ #
1004
+ # **Microsoft SQL Server Express Edition (sqlserver-ex)**
1005
+ #
1006
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
1007
+ #
1008
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
1009
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
1010
+ #
1011
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
1012
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
1013
+ #
1014
+ # **Microsoft SQL Server Standard Edition (sqlserver-se)**
1015
+ #
1016
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
1017
+ #
1018
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
1019
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
1020
+ #
1021
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
1022
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
1023
+ #
1024
+ # **Microsoft SQL Server Web Edition (sqlserver-web)**
1025
+ #
1026
+ # * **Version 12.00 (available in all AWS regions):** ` 12.00.4422.0.v1`
1027
+ #
1028
+ # * **Version 11.00 (available in all AWS regions):** ` 11.00.2100.60.v1
1029
+ # | 11.00.5058.0.v1 | 11.00.6020.0.v1`
1030
+ #
1031
+ # * **Version 10.50 (available in all AWS regions):** ` 10.50.2789.0.v1
1032
+ # | 10.50.6000.34.v1 | 10.50.6529.0.v1`
1033
+ # @option options [Boolean] :auto_minor_version_upgrade
1034
+ # Indicates that minor engine upgrades will be applied automatically to
1035
+ # the DB instance during the maintenance window.
1036
+ #
1037
+ # Default: `true`
1038
+ # @option options [String] :license_model
1039
+ # License model information for this DB instance.
1040
+ #
1041
+ # Valid values: `license-included` \| `bring-your-own-license` \|
1042
+ # `general-public-license`
1043
+ # @option options [Integer] :iops
1044
+ # The amount of Provisioned IOPS (input/output operations per second) to
1045
+ # be initially allocated for the DB instance.
1046
+ #
1047
+ # Constraints: Must be a multiple between 3 and 10 of the storage amount
1048
+ # for the DB instance. Must also be an integer multiple of 1000. For
1049
+ # example, if the size of your DB instance is 500 GB, then your `Iops`
1050
+ # value can be 2000, 3000, 4000, or 5000.
1051
+ # @option options [String] :option_group_name
1052
+ # Indicates that the DB instance should be associated with the specified
1053
+ # option group.
1054
+ #
1055
+ # Permanent options, such as the TDE option for Oracle Advanced Security
1056
+ # TDE, cannot be removed from an option group, and that option group
1057
+ # cannot be removed from a DB instance once it is associated with a DB
1058
+ # instance
1059
+ # @option options [String] :character_set_name
1060
+ # For supported engines, indicates that the DB instance should be
1061
+ # associated with the specified CharacterSet.
1062
+ # @option options [Boolean] :publicly_accessible
1063
+ # Specifies the accessibility options for the DB instance. A value of
1064
+ # true specifies an Internet-facing instance with a publicly resolvable
1065
+ # DNS name, which resolves to a public IP address. A value of false
1066
+ # specifies an internal instance with a DNS name that resolves to a
1067
+ # private IP address.
1068
+ #
1069
+ # Default: The default behavior varies depending on whether a VPC has
1070
+ # been requested or not. The following list shows the default behavior
1071
+ # in each case.
1072
+ #
1073
+ # * **Default VPC:** true
1074
+ #
1075
+ # * **VPC:** false
1076
+ #
1077
+ # If no DB subnet group has been specified as part of the request and
1078
+ # the PubliclyAccessible value has not been set, the DB instance will be
1079
+ # publicly accessible. If a specific DB subnet group has been specified
1080
+ # as part of the request and the PubliclyAccessible value has not been
1081
+ # set, the DB instance will be private.
1082
+ # @option options [Array<Types::Tag>] :tags
1083
+ # A list of tags.
1084
+ # @option options [String] :db_cluster_identifier
1085
+ # The identifier of the DB cluster that the instance will belong to.
1086
+ #
1087
+ # For information on creating a DB cluster, see CreateDBCluster.
1088
+ #
1089
+ # Type: String
1090
+ # @option options [String] :storage_type
1091
+ # Specifies the storage type to be associated with the DB instance.
1092
+ #
1093
+ # Valid values: `standard | gp2 | io1`
1094
+ #
1095
+ # If you specify `io1`, you must also include a value for the `Iops`
1096
+ # parameter.
1097
+ #
1098
+ # Default: `io1` if the `Iops` parameter is specified; otherwise
1099
+ # `standard`
1100
+ # @option options [String] :tde_credential_arn
1101
+ # The ARN from the Key Store with which to associate the instance for
1102
+ # TDE encryption.
1103
+ # @option options [String] :tde_credential_password
1104
+ # The password for the given ARN from the Key Store in order to access
1105
+ # the device.
1106
+ # @option options [Boolean] :storage_encrypted
1107
+ # Specifies whether the DB instance is encrypted.
1108
+ #
1109
+ # Default: false
1110
+ # @option options [String] :kms_key_id
1111
+ # The KMS key identifier for an encrypted DB instance.
1112
+ #
1113
+ # The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
1114
+ # encryption key. If you are creating a DB instance with the same AWS
1115
+ # account that owns the KMS encryption key used to encrypt the new DB
1116
+ # instance, then you can use the KMS key alias instead of the ARN for
1117
+ # the KM encryption key.
1118
+ #
1119
+ # If the `StorageEncrypted` parameter is true, and you do not specify a
1120
+ # value for the `KmsKeyId` parameter, then Amazon RDS will use your
1121
+ # default encryption key. AWS KMS creates the default encryption key for
1122
+ # your AWS account. Your AWS account has a different default encryption
1123
+ # key for each AWS region.
1124
+ # @option options [String] :domain
1125
+ # Specify the Active Directory Domain to create the instance in.
1126
+ # @option options [Boolean] :copy_tags_to_snapshot
1127
+ # True to copy all tags from the DB instance to snapshots of the DB
1128
+ # instance; otherwise false. The default is false.
1129
+ # @option options [Integer] :monitoring_interval
1130
+ # The interval, in seconds, between points when Enhanced Monitoring
1131
+ # metrics are collected for the DB instance. To disable collecting
1132
+ # Enhanced Monitoring metrics, specify 0. The default is 0.
1133
+ #
1134
+ # If `MonitoringRoleArn` is specified, then you must also set
1135
+ # `MonitoringInterval` to a value other than 0.
1136
+ #
1137
+ # Valid Values: `0, 1, 5, 10, 15, 30, 60`
1138
+ # @option options [String] :monitoring_role_arn
1139
+ # The ARN for the IAM role that permits RDS to send enhanced monitoring
1140
+ # metrics to CloudWatch Logs. For example,
1141
+ # `arn:aws:iam:123456789012:role/emaccess`. For information on creating
1142
+ # a monitoring role, go to [To create an IAM role for Amazon RDS
1143
+ # Enhanced Monitoring][1].
1144
+ #
1145
+ # If `MonitoringInterval` is set to a value other than 0, then you must
1146
+ # supply a `MonitoringRoleArn` value.
1147
+ #
1148
+ #
1149
+ #
1150
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
1151
+ # @option options [String] :domain_iam_role_name
1152
+ # Specify the name of the IAM role to be used when making API calls to
1153
+ # the Directory Service.
1154
+ # @option options [Integer] :promotion_tier
1155
+ # A value that specifies the order in which an Aurora Replica is
1156
+ # promoted to the primary instance after a failure of the existing
1157
+ # primary instance. For more information, see [ Fault Tolerance for an
1158
+ # Aurora DB Cluster][1].
1159
+ #
1160
+ # Default: 1
1161
+ #
1162
+ # Valid Values: 0 - 15
1163
+ #
1164
+ #
1165
+ #
1166
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html#Aurora.Managing.FaultTolerance
1167
+ # @option options [String] :timezone
1168
+ # The time zone of the DB instance. The time zone parameter is currently
1169
+ # supported only by [Microsoft SQL Server][1].
1170
+ #
1171
+ #
1172
+ #
1173
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone
1174
+ # @return [DBInstance]
1175
+ def create(options = {})
1176
+ options = options.merge(db_instance_identifier: @id)
1177
+ resp = @client.create_db_instance(options)
1178
+ DBInstance.new(
1179
+ id: resp.data.db_instance.db_instance_identifier,
1180
+ data: resp.data.db_instance,
1181
+ client: @client
1182
+ )
1183
+ end
1184
+
1185
+ # @example Request syntax with placeholder values
1186
+ #
1187
+ # dbinstance = db_instance.create_read_replica({
1188
+ # db_instance_identifier: "String", # required
1189
+ # db_instance_class: "String",
1190
+ # availability_zone: "String",
1191
+ # port: 1,
1192
+ # auto_minor_version_upgrade: false,
1193
+ # iops: 1,
1194
+ # option_group_name: "String",
1195
+ # publicly_accessible: false,
1196
+ # tags: [
1197
+ # {
1198
+ # key: "String",
1199
+ # value: "String",
1200
+ # },
1201
+ # ],
1202
+ # db_subnet_group_name: "String",
1203
+ # storage_type: "String",
1204
+ # copy_tags_to_snapshot: false,
1205
+ # monitoring_interval: 1,
1206
+ # monitoring_role_arn: "String",
1207
+ # })
1208
+ # @param [Hash] options ({})
1209
+ # @option options [required, String] :db_instance_identifier
1210
+ # The DB instance identifier of the Read Replica. This identifier is the
1211
+ # unique key that identifies a DB instance. This parameter is stored as
1212
+ # a lowercase string.
1213
+ # @option options [String] :db_instance_class
1214
+ # The compute and memory capacity of the Read Replica.
1215
+ #
1216
+ # Valid Values: `db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge
1217
+ # | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium |
1218
+ # db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large |
1219
+ # db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge |
1220
+ # db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge |
1221
+ # db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium |
1222
+ # db.t2.large`
1223
+ #
1224
+ # Default: Inherits from the source DB instance.
1225
+ # @option options [String] :availability_zone
1226
+ # The Amazon EC2 Availability Zone that the Read Replica will be created
1227
+ # in.
1228
+ #
1229
+ # Default: A random, system-chosen Availability Zone in the endpoint's
1230
+ # region.
1231
+ #
1232
+ # Example: `us-east-1d`
1233
+ # @option options [Integer] :port
1234
+ # The port number that the DB instance uses for connections.
1235
+ #
1236
+ # Default: Inherits from the source DB instance
1237
+ #
1238
+ # Valid Values: `1150-65535`
1239
+ # @option options [Boolean] :auto_minor_version_upgrade
1240
+ # Indicates that minor engine upgrades will be applied automatically to
1241
+ # the Read Replica during the maintenance window.
1242
+ #
1243
+ # Default: Inherits from the source DB instance
1244
+ # @option options [Integer] :iops
1245
+ # The amount of Provisioned IOPS (input/output operations per second) to
1246
+ # be initially allocated for the DB instance.
1247
+ # @option options [String] :option_group_name
1248
+ # The option group the DB instance will be associated with. If omitted,
1249
+ # the default option group for the engine specified will be used.
1250
+ # @option options [Boolean] :publicly_accessible
1251
+ # Specifies the accessibility options for the DB instance. A value of
1252
+ # true specifies an Internet-facing instance with a publicly resolvable
1253
+ # DNS name, which resolves to a public IP address. A value of false
1254
+ # specifies an internal instance with a DNS name that resolves to a
1255
+ # private IP address.
1256
+ #
1257
+ # Default: The default behavior varies depending on whether a VPC has
1258
+ # been requested or not. The following list shows the default behavior
1259
+ # in each case.
1260
+ #
1261
+ # * **Default VPC:**true
1262
+ #
1263
+ # * **VPC:**false
1264
+ #
1265
+ # If no DB subnet group has been specified as part of the request and
1266
+ # the PubliclyAccessible value has not been set, the DB instance will be
1267
+ # publicly accessible. If a specific DB subnet group has been specified
1268
+ # as part of the request and the PubliclyAccessible value has not been
1269
+ # set, the DB instance will be private.
1270
+ # @option options [Array<Types::Tag>] :tags
1271
+ # A list of tags.
1272
+ # @option options [String] :db_subnet_group_name
1273
+ # Specifies a DB subnet group for the DB instance. The new DB instance
1274
+ # will be created in the VPC associated with the DB subnet group. If no
1275
+ # DB subnet group is specified, then the new DB instance is not created
1276
+ # in a VPC.
1277
+ #
1278
+ # Constraints:
1279
+ #
1280
+ # * Can only be specified if the source DB instance identifier specifies
1281
+ # a DB instance in another region.
1282
+ #
1283
+ # * The specified DB subnet group must be in the same region in which
1284
+ # the operation is running.
1285
+ #
1286
+ # * All Read Replicas in one region that are created from the same
1287
+ # source DB instance must either:&gt;
1288
+ #
1289
+ # * Specify DB subnet groups from the same VPC. All these Read
1290
+ # Replicas will be created in the same VPC.
1291
+ #
1292
+ # * Not specify a DB subnet group. All these Read Replicas will be
1293
+ # created outside of any VPC.
1294
+ #
1295
+ # Constraints: Must contain no more than 255 alphanumeric characters,
1296
+ # periods, underscores, spaces, or hyphens. Must not be default.
1297
+ #
1298
+ # Example: `mySubnetgroup`
1299
+ # @option options [String] :storage_type
1300
+ # Specifies the storage type to be associated with the Read Replica.
1301
+ #
1302
+ # Valid values: `standard | gp2 | io1`
1303
+ #
1304
+ # If you specify `io1`, you must also include a value for the `Iops`
1305
+ # parameter.
1306
+ #
1307
+ # Default: `io1` if the `Iops` parameter is specified; otherwise
1308
+ # `standard`
1309
+ # @option options [Boolean] :copy_tags_to_snapshot
1310
+ # True to copy all tags from the Read Replica to snapshots of the Read
1311
+ # Replica; otherwise false. The default is false.
1312
+ # @option options [Integer] :monitoring_interval
1313
+ # The interval, in seconds, between points when Enhanced Monitoring
1314
+ # metrics are collected for the Read Replica. To disable collecting
1315
+ # Enhanced Monitoring metrics, specify 0. The default is 0.
1316
+ #
1317
+ # If `MonitoringRoleArn` is specified, then you must also set
1318
+ # `MonitoringInterval` to a value other than 0.
1319
+ #
1320
+ # Valid Values: `0, 1, 5, 10, 15, 30, 60`
1321
+ # @option options [String] :monitoring_role_arn
1322
+ # The ARN for the IAM role that permits RDS to send enhanced monitoring
1323
+ # metrics to CloudWatch Logs. For example,
1324
+ # `arn:aws:iam:123456789012:role/emaccess`. For information on creating
1325
+ # a monitoring role, go to [To create an IAM role for Amazon RDS
1326
+ # Enhanced Monitoring][1].
1327
+ #
1328
+ # If `MonitoringInterval` is set to a value other than 0, then you must
1329
+ # supply a `MonitoringRoleArn` value.
1330
+ #
1331
+ #
1332
+ #
1333
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
1334
+ # @return [DBInstance]
1335
+ def create_read_replica(options = {})
1336
+ options = options.merge(source_db_instance_identifier: @id)
1337
+ resp = @client.create_db_instance_read_replica(options)
1338
+ DBInstance.new(
1339
+ id: resp.data.db_instance.db_instance_identifier,
1340
+ data: resp.data.db_instance,
1341
+ client: @client
1342
+ )
1343
+ end
1344
+
1345
+ # @example Request syntax with placeholder values
1346
+ #
1347
+ # dbsnapshot = db_instance.create_snapshot({
1348
+ # db_snapshot_identifier: "String", # required
1349
+ # tags: [
1350
+ # {
1351
+ # key: "String",
1352
+ # value: "String",
1353
+ # },
1354
+ # ],
1355
+ # })
1356
+ # @param [Hash] options ({})
1357
+ # @option options [required, String] :db_snapshot_identifier
1358
+ # The identifier for the DB snapshot.
1359
+ #
1360
+ # Constraints:
1361
+ #
1362
+ # * Cannot be null, empty, or blank
1363
+ #
1364
+ # * Must contain from 1 to 255 alphanumeric characters or hyphens
1365
+ #
1366
+ # * First character must be a letter
1367
+ #
1368
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1369
+ #
1370
+ # Example: `my-snapshot-id`
1371
+ # @option options [Array<Types::Tag>] :tags
1372
+ # A list of tags.
1373
+ # @return [DBSnapshot]
1374
+ def create_snapshot(options = {})
1375
+ options = options.merge(db_instance_identifier: @id)
1376
+ resp = @client.create_db_snapshot(options)
1377
+ DBSnapshot.new(
1378
+ instance_id: resp.data.db_snapshot.db_instance_identifier,
1379
+ snapshot_id: resp.data.db_snapshot.db_snapshot_identifier,
1380
+ data: resp.data.db_snapshot,
1381
+ client: @client
1382
+ )
1383
+ end
1384
+
1385
+ # @example Request syntax with placeholder values
1386
+ #
1387
+ # dbinstance = db_instance.delete({
1388
+ # skip_final_snapshot: false,
1389
+ # final_db_snapshot_identifier: "String",
1390
+ # })
1391
+ # @param [Hash] options ({})
1392
+ # @option options [Boolean] :skip_final_snapshot
1393
+ # Determines whether a final DB snapshot is created before the DB
1394
+ # instance is deleted. If `true` is specified, no DBSnapshot is created.
1395
+ # If `false` is specified, a DB snapshot is created before the DB
1396
+ # instance is deleted.
1397
+ #
1398
+ # Note that when a DB instance is in a failure state and has a status of
1399
+ # 'failed', 'incompatible-restore', or 'incompatible-network', it
1400
+ # can only be deleted when the SkipFinalSnapshot parameter is set to
1401
+ # "true".
1402
+ #
1403
+ # Specify `true` when deleting a Read Replica.
1404
+ #
1405
+ # <note markdown="1"> The FinalDBSnapshotIdentifier parameter must be specified if
1406
+ # SkipFinalSnapshot is `false`.
1407
+ #
1408
+ # </note>
1409
+ #
1410
+ # Default: `false`
1411
+ # @option options [String] :final_db_snapshot_identifier
1412
+ # The DBSnapshotIdentifier of the new DBSnapshot created when
1413
+ # SkipFinalSnapshot is set to `false`.
1414
+ #
1415
+ # <note markdown="1"> Specifying this parameter and also setting the SkipFinalShapshot
1416
+ # parameter to true results in an error.
1417
+ #
1418
+ # </note>
1419
+ #
1420
+ # Constraints:
1421
+ #
1422
+ # * Must be 1 to 255 alphanumeric characters
1423
+ #
1424
+ # * First character must be a letter
1425
+ #
1426
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1427
+ #
1428
+ # * Cannot be specified when deleting a Read Replica.
1429
+ # @return [DBInstance]
1430
+ def delete(options = {})
1431
+ options = options.merge(db_instance_identifier: @id)
1432
+ resp = @client.delete_db_instance(options)
1433
+ DBInstance.new(
1434
+ id: resp.data.db_instance.db_instance_identifier,
1435
+ data: resp.data.db_instance,
1436
+ client: @client
1437
+ )
1438
+ end
1439
+
1440
+ # @example Request syntax with placeholder values
1441
+ #
1442
+ # dbinstance = db_instance.modify({
1443
+ # allocated_storage: 1,
1444
+ # db_instance_class: "String",
1445
+ # db_subnet_group_name: "String",
1446
+ # db_security_groups: ["String"],
1447
+ # vpc_security_group_ids: ["String"],
1448
+ # apply_immediately: false,
1449
+ # master_user_password: "String",
1450
+ # db_parameter_group_name: "String",
1451
+ # backup_retention_period: 1,
1452
+ # preferred_backup_window: "String",
1453
+ # preferred_maintenance_window: "String",
1454
+ # multi_az: false,
1455
+ # engine_version: "String",
1456
+ # allow_major_version_upgrade: false,
1457
+ # auto_minor_version_upgrade: false,
1458
+ # license_model: "String",
1459
+ # iops: 1,
1460
+ # option_group_name: "String",
1461
+ # new_db_instance_identifier: "String",
1462
+ # storage_type: "String",
1463
+ # tde_credential_arn: "String",
1464
+ # tde_credential_password: "String",
1465
+ # ca_certificate_identifier: "String",
1466
+ # domain: "String",
1467
+ # copy_tags_to_snapshot: false,
1468
+ # monitoring_interval: 1,
1469
+ # db_port_number: 1,
1470
+ # publicly_accessible: false,
1471
+ # monitoring_role_arn: "String",
1472
+ # domain_iam_role_name: "String",
1473
+ # promotion_tier: 1,
1474
+ # })
1475
+ # @param [Hash] options ({})
1476
+ # @option options [Integer] :allocated_storage
1477
+ # The new storage capacity of the RDS instance. Changing this setting
1478
+ # does not result in an outage and the change is applied during the next
1479
+ # maintenance window unless `ApplyImmediately` is set to `true` for this
1480
+ # request.
1481
+ #
1482
+ # **MySQL**
1483
+ #
1484
+ # Default: Uses existing setting
1485
+ #
1486
+ # Valid Values: 5-6144
1487
+ #
1488
+ # Constraints: Value supplied must be at least 10% greater than the
1489
+ # current value. Values that are not at least 10% greater than the
1490
+ # existing value are rounded up so that they are 10% greater than the
1491
+ # current value.
1492
+ #
1493
+ # Type: Integer
1494
+ #
1495
+ # **MariaDB**
1496
+ #
1497
+ # Default: Uses existing setting
1498
+ #
1499
+ # Valid Values: 5-6144
1500
+ #
1501
+ # Constraints: Value supplied must be at least 10% greater than the
1502
+ # current value. Values that are not at least 10% greater than the
1503
+ # existing value are rounded up so that they are 10% greater than the
1504
+ # current value.
1505
+ #
1506
+ # Type: Integer
1507
+ #
1508
+ # **PostgreSQL**
1509
+ #
1510
+ # Default: Uses existing setting
1511
+ #
1512
+ # Valid Values: 5-6144
1513
+ #
1514
+ # Constraints: Value supplied must be at least 10% greater than the
1515
+ # current value. Values that are not at least 10% greater than the
1516
+ # existing value are rounded up so that they are 10% greater than the
1517
+ # current value.
1518
+ #
1519
+ # Type: Integer
1520
+ #
1521
+ # **Oracle**
1522
+ #
1523
+ # Default: Uses existing setting
1524
+ #
1525
+ # Valid Values: 10-6144
1526
+ #
1527
+ # Constraints: Value supplied must be at least 10% greater than the
1528
+ # current value. Values that are not at least 10% greater than the
1529
+ # existing value are rounded up so that they are 10% greater than the
1530
+ # current value.
1531
+ #
1532
+ # **SQL Server**
1533
+ #
1534
+ # Cannot be modified.
1535
+ #
1536
+ # If you choose to migrate your DB instance from using standard storage
1537
+ # to using Provisioned IOPS, or from using Provisioned IOPS to using
1538
+ # standard storage, the process can take time. The duration of the
1539
+ # migration depends on several factors such as database load, storage
1540
+ # size, storage type (standard or Provisioned IOPS), amount of IOPS
1541
+ # provisioned (if any), and the number of prior scale storage
1542
+ # operations. Typical migration times are under 24 hours, but the
1543
+ # process can take up to several days in some cases. During the
1544
+ # migration, the DB instance will be available for use, but might
1545
+ # experience performance degradation. While the migration takes place,
1546
+ # nightly backups for the instance will be suspended. No other Amazon
1547
+ # RDS operations can take place for the instance, including modifying
1548
+ # the instance, rebooting the instance, deleting the instance, creating
1549
+ # a Read Replica for the instance, and creating a DB snapshot of the
1550
+ # instance.
1551
+ # @option options [String] :db_instance_class
1552
+ # The new compute and memory capacity of the DB instance. To determine
1553
+ # the instance classes that are available for a particular DB engine,
1554
+ # use the DescribeOrderableDBInstanceOptions action.
1555
+ #
1556
+ # Passing a value for this setting causes an outage during the change
1557
+ # and is applied during the next maintenance window, unless
1558
+ # `ApplyImmediately` is specified as `true` for this request.
1559
+ #
1560
+ # Default: Uses existing setting
1561
+ #
1562
+ # Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large
1563
+ # | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge |
1564
+ # db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge |
1565
+ # db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge |
1566
+ # db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge |
1567
+ # db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small |
1568
+ # db.t2.medium | db.t2.large`
1569
+ # @option options [String] :db_subnet_group_name
1570
+ # The new DB subnet group for the DB instance. You can use this
1571
+ # parameter to move your DB instance to a different VPC. If your DB
1572
+ # instance is not in a VPC, you can also use this parameter to move your
1573
+ # DB instance into a VPC. For more information, see [Updating the VPC
1574
+ # for a DB Instance][1].
1575
+ #
1576
+ # Changing the subnet group causes an outage during the change. The
1577
+ # change is applied during the next maintenance window, unless you
1578
+ # specify `true` for the `ApplyImmediately` parameter.
1579
+ #
1580
+ # Constraints: Must contain no more than 255 alphanumeric characters,
1581
+ # periods, underscores, spaces, or hyphens.
1582
+ #
1583
+ # Example: `mySubnetGroup`
1584
+ #
1585
+ #
1586
+ #
1587
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC
1588
+ # @option options [Array<String>] :db_security_groups
1589
+ # A list of DB security groups to authorize on this DB instance.
1590
+ # Changing this setting does not result in an outage and the change is
1591
+ # asynchronously applied as soon as possible.
1592
+ #
1593
+ # Constraints:
1594
+ #
1595
+ # * Must be 1 to 255 alphanumeric characters
1596
+ #
1597
+ # * First character must be a letter
1598
+ #
1599
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1600
+ # @option options [Array<String>] :vpc_security_group_ids
1601
+ # A list of EC2 VPC security groups to authorize on this DB instance.
1602
+ # This change is asynchronously applied as soon as possible.
1603
+ #
1604
+ # Constraints:
1605
+ #
1606
+ # * Must be 1 to 255 alphanumeric characters
1607
+ #
1608
+ # * First character must be a letter
1609
+ #
1610
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1611
+ # @option options [Boolean] :apply_immediately
1612
+ # Specifies whether the modifications in this request and any pending
1613
+ # modifications are asynchronously applied as soon as possible,
1614
+ # regardless of the `PreferredMaintenanceWindow` setting for the DB
1615
+ # instance.
1616
+ #
1617
+ # If this parameter is set to `false`, changes to the DB instance are
1618
+ # applied during the next maintenance window. Some parameter changes can
1619
+ # cause an outage and will be applied on the next call to
1620
+ # RebootDBInstance, or the next failure reboot. Review the table of
1621
+ # parameters in [Modifying a DB Instance and Using the Apply Immediately
1622
+ # Parameter][1] to see the impact that setting `ApplyImmediately` to
1623
+ # `true` or `false` has for each modified parameter and to determine
1624
+ # when the changes will be applied.
1625
+ #
1626
+ # Default: `false`
1627
+ #
1628
+ #
1629
+ #
1630
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html
1631
+ # @option options [String] :master_user_password
1632
+ # The new password for the DB instance master user. Can be any printable
1633
+ # ASCII character except "/", """, or "@".
1634
+ #
1635
+ # Changing this parameter does not result in an outage and the change is
1636
+ # asynchronously applied as soon as possible. Between the time of the
1637
+ # request and the completion of the request, the `MasterUserPassword`
1638
+ # element exists in the `PendingModifiedValues` element of the operation
1639
+ # response.
1640
+ #
1641
+ # Default: Uses existing setting
1642
+ #
1643
+ # Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB,
1644
+ # and Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to
1645
+ # 128 alphanumeric characters (SQL Server).
1646
+ #
1647
+ # <note markdown="1"> Amazon RDS API actions never return the password, so this action
1648
+ # provides a way to regain access to a primary instance user if the
1649
+ # password is lost. This includes restoring privileges that might have
1650
+ # been accidentally revoked.
1651
+ #
1652
+ # </note>
1653
+ # @option options [String] :db_parameter_group_name
1654
+ # The name of the DB parameter group to apply to the DB instance.
1655
+ # Changing this setting does not result in an outage. The parameter
1656
+ # group name itself is changed immediately, but the actual parameter
1657
+ # changes are not applied until you reboot the instance without
1658
+ # failover. The db instance will NOT be rebooted automatically and the
1659
+ # parameter changes will NOT be applied during the next maintenance
1660
+ # window.
1661
+ #
1662
+ # Default: Uses existing setting
1663
+ #
1664
+ # Constraints: The DB parameter group must be in the same DB parameter
1665
+ # group family as this DB instance.
1666
+ # @option options [Integer] :backup_retention_period
1667
+ # The number of days to retain automated backups. Setting this parameter
1668
+ # to a positive number enables backups. Setting this parameter to 0
1669
+ # disables automated backups.
1670
+ #
1671
+ # Changing this parameter can result in an outage if you change from 0
1672
+ # to a non-zero value or from a non-zero value to 0. These changes are
1673
+ # applied during the next maintenance window unless the
1674
+ # `ApplyImmediately` parameter is set to `true` for this request. If you
1675
+ # change the parameter from one non-zero value to another non-zero
1676
+ # value, the change is asynchronously applied as soon as possible.
1677
+ #
1678
+ # Default: Uses existing setting
1679
+ #
1680
+ # Constraints:
1681
+ #
1682
+ # * Must be a value from 0 to 35
1683
+ #
1684
+ # * Can be specified for a MySQL Read Replica only if the source is
1685
+ # running MySQL 5.6
1686
+ #
1687
+ # * Can be specified for a PostgreSQL Read Replica only if the source is
1688
+ # running PostgreSQL 9.3.5
1689
+ #
1690
+ # * Cannot be set to 0 if the DB instance is a source to Read Replicas
1691
+ # @option options [String] :preferred_backup_window
1692
+ # The daily time range during which automated backups are created if
1693
+ # automated backups are enabled, as determined by the
1694
+ # `BackupRetentionPeriod` parameter. Changing this parameter does not
1695
+ # result in an outage and the change is asynchronously applied as soon
1696
+ # as possible.
1697
+ #
1698
+ # Constraints:
1699
+ #
1700
+ # * Must be in the format hh24:mi-hh24:mi
1701
+ #
1702
+ # * Times should be in Universal Time Coordinated (UTC)
1703
+ #
1704
+ # * Must not conflict with the preferred maintenance window
1705
+ #
1706
+ # * Must be at least 30 minutes
1707
+ # @option options [String] :preferred_maintenance_window
1708
+ # The weekly time range (in UTC) during which system maintenance can
1709
+ # occur, which might result in an outage. Changing this parameter does
1710
+ # not result in an outage, except in the following situation, and the
1711
+ # change is asynchronously applied as soon as possible. If there are
1712
+ # pending actions that cause a reboot, and the maintenance window is
1713
+ # changed to include the current time, then changing this parameter will
1714
+ # cause a reboot of the DB instance. If moving this window to the
1715
+ # current time, there must be at least 30 minutes between the current
1716
+ # time and end of the window to ensure pending changes are applied.
1717
+ #
1718
+ # Default: Uses existing setting
1719
+ #
1720
+ # Format: ddd:hh24:mi-ddd:hh24:mi
1721
+ #
1722
+ # Valid Days: Mon \| Tue \| Wed \| Thu \| Fri \| Sat \| Sun
1723
+ #
1724
+ # Constraints: Must be at least 30 minutes
1725
+ # @option options [Boolean] :multi_az
1726
+ # Specifies if the DB instance is a Multi-AZ deployment. Changing this
1727
+ # parameter does not result in an outage and the change is applied
1728
+ # during the next maintenance window unless the `ApplyImmediately`
1729
+ # parameter is set to `true` for this request.
1730
+ #
1731
+ # Constraints: Cannot be specified if the DB instance is a Read Replica.
1732
+ # @option options [String] :engine_version
1733
+ # The version number of the database engine to upgrade to. Changing this
1734
+ # parameter results in an outage and the change is applied during the
1735
+ # next maintenance window unless the `ApplyImmediately` parameter is set
1736
+ # to `true` for this request.
1737
+ #
1738
+ # For major version upgrades, if a non-default DB parameter group is
1739
+ # currently in use, a new DB parameter group in the DB parameter group
1740
+ # family for the new engine version must be specified. The new DB
1741
+ # parameter group can be the default for that DB parameter group family.
1742
+ #
1743
+ # For a list of valid engine versions, see CreateDBInstance.
1744
+ # @option options [Boolean] :allow_major_version_upgrade
1745
+ # Indicates that major version upgrades are allowed. Changing this
1746
+ # parameter does not result in an outage and the change is
1747
+ # asynchronously applied as soon as possible.
1748
+ #
1749
+ # Constraints: This parameter must be set to true when specifying a
1750
+ # value for the EngineVersion parameter that is a different major
1751
+ # version than the DB instance's current version.
1752
+ # @option options [Boolean] :auto_minor_version_upgrade
1753
+ # Indicates that minor version upgrades will be applied automatically to
1754
+ # the DB instance during the maintenance window. Changing this parameter
1755
+ # does not result in an outage except in the following case and the
1756
+ # change is asynchronously applied as soon as possible. An outage will
1757
+ # result if this parameter is set to `true` during the maintenance
1758
+ # window, and a newer minor version is available, and RDS has enabled
1759
+ # auto patching for that engine version.
1760
+ # @option options [String] :license_model
1761
+ # The license model for the DB instance.
1762
+ #
1763
+ # Valid values: `license-included` \| `bring-your-own-license` \|
1764
+ # `general-public-license`
1765
+ # @option options [Integer] :iops
1766
+ # The new Provisioned IOPS (I/O operations per second) value for the RDS
1767
+ # instance. Changing this setting does not result in an outage and the
1768
+ # change is applied during the next maintenance window unless the
1769
+ # `ApplyImmediately` parameter is set to `true` for this request.
1770
+ #
1771
+ # Default: Uses existing setting
1772
+ #
1773
+ # Constraints: Value supplied must be at least 10% greater than the
1774
+ # current value. Values that are not at least 10% greater than the
1775
+ # existing value are rounded up so that they are 10% greater than the
1776
+ # current value. If you are migrating from Provisioned IOPS to standard
1777
+ # storage, set this value to 0. The DB instance will require a reboot
1778
+ # for the change in storage type to take effect.
1779
+ #
1780
+ # **SQL Server**
1781
+ #
1782
+ # Setting the IOPS value for the SQL Server database engine is not
1783
+ # supported.
1784
+ #
1785
+ # Type: Integer
1786
+ #
1787
+ # If you choose to migrate your DB instance from using standard storage
1788
+ # to using Provisioned IOPS, or from using Provisioned IOPS to using
1789
+ # standard storage, the process can take time. The duration of the
1790
+ # migration depends on several factors such as database load, storage
1791
+ # size, storage type (standard or Provisioned IOPS), amount of IOPS
1792
+ # provisioned (if any), and the number of prior scale storage
1793
+ # operations. Typical migration times are under 24 hours, but the
1794
+ # process can take up to several days in some cases. During the
1795
+ # migration, the DB instance will be available for use, but might
1796
+ # experience performance degradation. While the migration takes place,
1797
+ # nightly backups for the instance will be suspended. No other Amazon
1798
+ # RDS operations can take place for the instance, including modifying
1799
+ # the instance, rebooting the instance, deleting the instance, creating
1800
+ # a Read Replica for the instance, and creating a DB snapshot of the
1801
+ # instance.
1802
+ # @option options [String] :option_group_name
1803
+ # Indicates that the DB instance should be associated with the specified
1804
+ # option group. Changing this parameter does not result in an outage
1805
+ # except in the following case and the change is applied during the next
1806
+ # maintenance window unless the `ApplyImmediately` parameter is set to
1807
+ # `true` for this request. If the parameter change results in an option
1808
+ # group that enables OEM, this change can cause a brief (sub-second)
1809
+ # period during which new connections are rejected but existing
1810
+ # connections are not interrupted.
1811
+ #
1812
+ # Permanent options, such as the TDE option for Oracle Advanced Security
1813
+ # TDE, cannot be removed from an option group, and that option group
1814
+ # cannot be removed from a DB instance once it is associated with a DB
1815
+ # instance
1816
+ # @option options [String] :new_db_instance_identifier
1817
+ # The new DB instance identifier for the DB instance when renaming a DB
1818
+ # instance. When you change the DB instance identifier, an instance
1819
+ # reboot will occur immediately if you set `Apply Immediately` to true,
1820
+ # or will occur during the next maintenance window if `Apply
1821
+ # Immediately` to false. This value is stored as a lowercase string.
1822
+ #
1823
+ # Constraints:
1824
+ #
1825
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
1826
+ #
1827
+ # * First character must be a letter
1828
+ #
1829
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1830
+ # @option options [String] :storage_type
1831
+ # Specifies the storage type to be associated with the DB instance.
1832
+ #
1833
+ # Valid values: `standard | gp2 | io1`
1834
+ #
1835
+ # If you specify `io1`, you must also include a value for the `Iops`
1836
+ # parameter.
1837
+ #
1838
+ # Default: `io1` if the `Iops` parameter is specified; otherwise
1839
+ # `standard`
1840
+ # @option options [String] :tde_credential_arn
1841
+ # The ARN from the Key Store with which to associate the instance for
1842
+ # TDE encryption.
1843
+ # @option options [String] :tde_credential_password
1844
+ # The password for the given ARN from the Key Store in order to access
1845
+ # the device.
1846
+ # @option options [String] :ca_certificate_identifier
1847
+ # Indicates the certificate that needs to be associated with the
1848
+ # instance.
1849
+ # @option options [String] :domain
1850
+ # The Active Directory Domain to move the instance to. Specify `none` to
1851
+ # remove the instance from its current domain. The domain must be
1852
+ # created prior to this operation. Currently only a Microsoft SQL Server
1853
+ # instance can be created in a Active Directory Domain.
1854
+ # @option options [Boolean] :copy_tags_to_snapshot
1855
+ # True to copy all tags from the DB instance to snapshots of the DB
1856
+ # instance; otherwise false. The default is false.
1857
+ # @option options [Integer] :monitoring_interval
1858
+ # The interval, in seconds, between points when Enhanced Monitoring
1859
+ # metrics are collected for the DB instance. To disable collecting
1860
+ # Enhanced Monitoring metrics, specify 0. The default is 0.
1861
+ #
1862
+ # If `MonitoringRoleArn` is specified, then you must also set
1863
+ # `MonitoringInterval` to a value other than 0.
1864
+ #
1865
+ # Valid Values: `0, 1, 5, 10, 15, 30, 60`
1866
+ # @option options [Integer] :db_port_number
1867
+ # The port number on which the database accepts connections.
1868
+ #
1869
+ # The value of the `DBPortNumber` parameter must not match any of the
1870
+ # port values specified for options in the option group for the DB
1871
+ # instance.
1872
+ #
1873
+ # Your database will restart when you change the `DBPortNumber` value
1874
+ # regardless of the value of the `ApplyImmediately` parameter.
1875
+ #
1876
+ # **MySQL**
1877
+ #
1878
+ # Default: `3306`
1879
+ #
1880
+ # Valid Values: `1150-65535`
1881
+ #
1882
+ # **MariaDB**
1883
+ #
1884
+ # Default: `3306`
1885
+ #
1886
+ # Valid Values: `1150-65535`
1887
+ #
1888
+ # **PostgreSQL**
1889
+ #
1890
+ # Default: `5432`
1891
+ #
1892
+ # Valid Values: `1150-65535`
1893
+ #
1894
+ # Type: Integer
1895
+ #
1896
+ # **Oracle**
1897
+ #
1898
+ # Default: `1521`
1899
+ #
1900
+ # Valid Values: `1150-65535`
1901
+ #
1902
+ # **SQL Server**
1903
+ #
1904
+ # Default: `1433`
1905
+ #
1906
+ # Valid Values: `1150-65535` except for `1434`, `3389`, `47001`,
1907
+ # `49152`, and `49152` through `49156`.
1908
+ #
1909
+ # **Amazon Aurora**
1910
+ #
1911
+ # Default: `3306`
1912
+ #
1913
+ # Valid Values: `1150-65535`
1914
+ # @option options [Boolean] :publicly_accessible
1915
+ # Boolean value that indicates if the DB instance has a publicly
1916
+ # resolvable DNS name. Set to `True` to make the DB instance
1917
+ # Internet-facing with a publicly resolvable DNS name, which resolves to
1918
+ # a public IP address. Set to `False` to make the DB instance internal
1919
+ # with a DNS name that resolves to a private IP address.
1920
+ #
1921
+ # `PubliclyAccessible` only applies to DB instances in a VPC. The DB
1922
+ # instance must be part of a public subnet and `PubliclyAccessible` must
1923
+ # be true in order for it to be publicly accessible.
1924
+ #
1925
+ # Changes to the `PubliclyAccessible` parameter are applied immediately
1926
+ # regardless of the value of the `ApplyImmediately` parameter.
1927
+ #
1928
+ # Default: false
1929
+ # @option options [String] :monitoring_role_arn
1930
+ # The ARN for the IAM role that permits RDS to send enhanced monitoring
1931
+ # metrics to CloudWatch Logs. For example,
1932
+ # `arn:aws:iam:123456789012:role/emaccess`. For information on creating
1933
+ # a monitoring role, go to [To create an IAM role for Amazon RDS
1934
+ # Enhanced Monitoring][1].
1935
+ #
1936
+ # If `MonitoringInterval` is set to a value other than 0, then you must
1937
+ # supply a `MonitoringRoleArn` value.
1938
+ #
1939
+ #
1940
+ #
1941
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
1942
+ # @option options [String] :domain_iam_role_name
1943
+ # The name of the IAM role to use when making API calls to the Directory
1944
+ # Service.
1945
+ # @option options [Integer] :promotion_tier
1946
+ # A value that specifies the order in which an Aurora Replica is
1947
+ # promoted to the primary instance after a failure of the existing
1948
+ # primary instance. For more information, see [ Fault Tolerance for an
1949
+ # Aurora DB Cluster][1].
1950
+ #
1951
+ # Default: 1
1952
+ #
1953
+ # Valid Values: 0 - 15
1954
+ #
1955
+ #
1956
+ #
1957
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html#Aurora.Managing.FaultTolerance
1958
+ # @return [DBInstance]
1959
+ def modify(options = {})
1960
+ options = options.merge(db_instance_identifier: @id)
1961
+ resp = @client.modify_db_instance(options)
1962
+ DBInstance.new(
1963
+ id: resp.data.db_instance.db_instance_identifier,
1964
+ data: resp.data.db_instance,
1965
+ client: @client
1966
+ )
1967
+ end
1968
+
1969
+ # @example Request syntax with placeholder values
1970
+ #
1971
+ # dbinstance = db_instance.promote({
1972
+ # backup_retention_period: 1,
1973
+ # preferred_backup_window: "String",
1974
+ # })
1975
+ # @param [Hash] options ({})
1976
+ # @option options [Integer] :backup_retention_period
1977
+ # The number of days to retain automated backups. Setting this parameter
1978
+ # to a positive number enables backups. Setting this parameter to 0
1979
+ # disables automated backups.
1980
+ #
1981
+ # Default: 1
1982
+ #
1983
+ # Constraints:
1984
+ #
1985
+ # * Must be a value from 0 to 8
1986
+ #
1987
+ # ^
1988
+ # @option options [String] :preferred_backup_window
1989
+ # The daily time range during which automated backups are created if
1990
+ # automated backups are enabled, using the `BackupRetentionPeriod`
1991
+ # parameter.
1992
+ #
1993
+ # Default: A 30-minute window selected at random from an 8-hour block of
1994
+ # time per region. To see the time blocks available, see [ Adjusting the
1995
+ # Preferred Maintenance Window][1] in the *Amazon RDS User Guide.*
1996
+ #
1997
+ # Constraints:
1998
+ #
1999
+ # * Must be in the format `hh24:mi-hh24:mi`.
2000
+ #
2001
+ # * Times should be in Universal Coordinated Time (UTC).
2002
+ #
2003
+ # * Must not conflict with the preferred maintenance window.
2004
+ #
2005
+ # * Must be at least 30 minutes.
2006
+ #
2007
+ #
2008
+ #
2009
+ # [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
2010
+ # @return [DBInstance]
2011
+ def promote(options = {})
2012
+ options = options.merge(db_instance_identifier: @id)
2013
+ resp = @client.promote_read_replica(options)
2014
+ DBInstance.new(
2015
+ id: resp.data.db_instance.db_instance_identifier,
2016
+ data: resp.data.db_instance,
2017
+ client: @client
2018
+ )
2019
+ end
2020
+
2021
+ # @example Request syntax with placeholder values
2022
+ #
2023
+ # dbinstance = db_instance.reboot({
2024
+ # force_failover: false,
2025
+ # })
2026
+ # @param [Hash] options ({})
2027
+ # @option options [Boolean] :force_failover
2028
+ # When `true`, the reboot will be conducted through a MultiAZ failover.
2029
+ #
2030
+ # Constraint: You cannot specify `true` if the instance is not
2031
+ # configured for MultiAZ.
2032
+ # @return [DBInstance]
2033
+ def reboot(options = {})
2034
+ options = options.merge(db_instance_identifier: @id)
2035
+ resp = @client.reboot_db_instance(options)
2036
+ DBInstance.new(
2037
+ id: resp.data.db_instance.db_instance_identifier,
2038
+ data: resp.data.db_instance,
2039
+ client: @client
2040
+ )
2041
+ end
2042
+
2043
+ # @example Request syntax with placeholder values
2044
+ #
2045
+ # dbinstance = db_instance.restore({
2046
+ # target_db_instance_identifier: "String", # required
2047
+ # restore_time: Time.now,
2048
+ # use_latest_restorable_time: false,
2049
+ # db_instance_class: "String",
2050
+ # port: 1,
2051
+ # availability_zone: "String",
2052
+ # db_subnet_group_name: "String",
2053
+ # multi_az: false,
2054
+ # publicly_accessible: false,
2055
+ # auto_minor_version_upgrade: false,
2056
+ # license_model: "String",
2057
+ # db_name: "String",
2058
+ # engine: "String",
2059
+ # iops: 1,
2060
+ # option_group_name: "String",
2061
+ # copy_tags_to_snapshot: false,
2062
+ # tags: [
2063
+ # {
2064
+ # key: "String",
2065
+ # value: "String",
2066
+ # },
2067
+ # ],
2068
+ # storage_type: "String",
2069
+ # tde_credential_arn: "String",
2070
+ # tde_credential_password: "String",
2071
+ # domain: "String",
2072
+ # domain_iam_role_name: "String",
2073
+ # })
2074
+ # @param [Hash] options ({})
2075
+ # @option options [required, String] :target_db_instance_identifier
2076
+ # The name of the new database instance to be created.
2077
+ #
2078
+ # Constraints:
2079
+ #
2080
+ # * Must contain from 1 to 63 alphanumeric characters or hyphens
2081
+ #
2082
+ # * First character must be a letter
2083
+ #
2084
+ # * Cannot end with a hyphen or contain two consecutive hyphens
2085
+ # @option options [Time,DateTime,Date,Integer,String] :restore_time
2086
+ # The date and time to restore from.
2087
+ #
2088
+ # Valid Values: Value must be a time in Universal Coordinated Time (UTC)
2089
+ # format
2090
+ #
2091
+ # Constraints:
2092
+ #
2093
+ # * Must be before the latest restorable time for the DB instance
2094
+ #
2095
+ # * Cannot be specified if UseLatestRestorableTime parameter is true
2096
+ #
2097
+ # Example: `2009-09-07T23:45:00Z`
2098
+ # @option options [Boolean] :use_latest_restorable_time
2099
+ # Specifies whether (`true`) or not (`false`) the DB instance is
2100
+ # restored from the latest backup time.
2101
+ #
2102
+ # Default: `false`
2103
+ #
2104
+ # Constraints: Cannot be specified if RestoreTime parameter is provided.
2105
+ # @option options [String] :db_instance_class
2106
+ # The compute and memory capacity of the Amazon RDS DB instance.
2107
+ #
2108
+ # Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large
2109
+ # | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium |
2110
+ # db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large |
2111
+ # db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge |
2112
+ # db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge |
2113
+ # db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium |
2114
+ # db.t2.large`
2115
+ #
2116
+ # Default: The same DBInstanceClass as the original DB instance.
2117
+ # @option options [Integer] :port
2118
+ # The port number on which the database accepts connections.
2119
+ #
2120
+ # Constraints: Value must be `1150-65535`
2121
+ #
2122
+ # Default: The same port as the original DB instance.
2123
+ # @option options [String] :availability_zone
2124
+ # The EC2 Availability Zone that the database instance will be created
2125
+ # in.
2126
+ #
2127
+ # Default: A random, system-chosen Availability Zone.
2128
+ #
2129
+ # Constraint: You cannot specify the AvailabilityZone parameter if the
2130
+ # MultiAZ parameter is set to true.
2131
+ #
2132
+ # Example: `us-east-1a`
2133
+ # @option options [String] :db_subnet_group_name
2134
+ # The DB subnet group name to use for the new instance.
2135
+ #
2136
+ # Constraints: Must contain no more than 255 alphanumeric characters,
2137
+ # periods, underscores, spaces, or hyphens. Must not be default.
2138
+ #
2139
+ # Example: `mySubnetgroup`
2140
+ # @option options [Boolean] :multi_az
2141
+ # Specifies if the DB instance is a Multi-AZ deployment.
2142
+ #
2143
+ # Constraint: You cannot specify the AvailabilityZone parameter if the
2144
+ # MultiAZ parameter is set to `true`.
2145
+ # @option options [Boolean] :publicly_accessible
2146
+ # Specifies the accessibility options for the DB instance. A value of
2147
+ # true specifies an Internet-facing instance with a publicly resolvable
2148
+ # DNS name, which resolves to a public IP address. A value of false
2149
+ # specifies an internal instance with a DNS name that resolves to a
2150
+ # private IP address.
2151
+ #
2152
+ # Default: The default behavior varies depending on whether a VPC has
2153
+ # been requested or not. The following list shows the default behavior
2154
+ # in each case.
2155
+ #
2156
+ # * **Default VPC:**true
2157
+ #
2158
+ # * **VPC:**false
2159
+ #
2160
+ # If no DB subnet group has been specified as part of the request and
2161
+ # the PubliclyAccessible value has not been set, the DB instance will be
2162
+ # publicly accessible. If a specific DB subnet group has been specified
2163
+ # as part of the request and the PubliclyAccessible value has not been
2164
+ # set, the DB instance will be private.
2165
+ # @option options [Boolean] :auto_minor_version_upgrade
2166
+ # Indicates that minor version upgrades will be applied automatically to
2167
+ # the DB instance during the maintenance window.
2168
+ # @option options [String] :license_model
2169
+ # License model information for the restored DB instance.
2170
+ #
2171
+ # Default: Same as source.
2172
+ #
2173
+ # Valid values: `license-included` \| `bring-your-own-license` \|
2174
+ # `general-public-license`
2175
+ # @option options [String] :db_name
2176
+ # The database name for the restored DB instance.
2177
+ #
2178
+ # <note markdown="1"> This parameter is not used for the MySQL or MariaDB engines.
2179
+ #
2180
+ # </note>
2181
+ # @option options [String] :engine
2182
+ # The database engine to use for the new instance.
2183
+ #
2184
+ # Default: The same as source
2185
+ #
2186
+ # Constraint: Must be compatible with the engine of the source
2187
+ #
2188
+ # Valid Values: `MySQL` \| `mariadb` \| `oracle-se1` \| `oracle-se` \|
2189
+ # `oracle-ee` \| `sqlserver-ee` \| `sqlserver-se` \| `sqlserver-ex` \|
2190
+ # `sqlserver-web` \| `postgres` \| `aurora`
2191
+ # @option options [Integer] :iops
2192
+ # The amount of Provisioned IOPS (input/output operations per second) to
2193
+ # be initially allocated for the DB instance.
2194
+ #
2195
+ # Constraints: Must be an integer greater than 1000.
2196
+ #
2197
+ # **SQL Server**
2198
+ #
2199
+ # Setting the IOPS value for the SQL Server database engine is not
2200
+ # supported.
2201
+ # @option options [String] :option_group_name
2202
+ # The name of the option group to be used for the restored DB instance.
2203
+ #
2204
+ # Permanent options, such as the TDE option for Oracle Advanced Security
2205
+ # TDE, cannot be removed from an option group, and that option group
2206
+ # cannot be removed from a DB instance once it is associated with a DB
2207
+ # instance
2208
+ # @option options [Boolean] :copy_tags_to_snapshot
2209
+ # True to copy all tags from the restored DB instance to snapshots of
2210
+ # the DB instance; otherwise false. The default is false.
2211
+ # @option options [Array<Types::Tag>] :tags
2212
+ # A list of tags.
2213
+ # @option options [String] :storage_type
2214
+ # Specifies the storage type to be associated with the DB instance.
2215
+ #
2216
+ # Valid values: `standard | gp2 | io1`
2217
+ #
2218
+ # If you specify `io1`, you must also include a value for the `Iops`
2219
+ # parameter.
2220
+ #
2221
+ # Default: `io1` if the `Iops` parameter is specified; otherwise
2222
+ # `standard`
2223
+ # @option options [String] :tde_credential_arn
2224
+ # The ARN from the Key Store with which to associate the instance for
2225
+ # TDE encryption.
2226
+ # @option options [String] :tde_credential_password
2227
+ # The password for the given ARN from the Key Store in order to access
2228
+ # the device.
2229
+ # @option options [String] :domain
2230
+ # Specify the Active Directory Domain to restore the instance in.
2231
+ # @option options [String] :domain_iam_role_name
2232
+ # Specify the name of the IAM role to be used when making API calls to
2233
+ # the Directory Service.
2234
+ # @return [DBInstance]
2235
+ def restore(options = {})
2236
+ options = options.merge(source_db_instance_identifier: @id)
2237
+ resp = @client.restore_db_instance_to_point_in_time(options)
2238
+ DBInstance.new(
2239
+ id: resp.data.db_instance.db_instance_identifier,
2240
+ data: resp.data.db_instance,
2241
+ client: @client
2242
+ )
2243
+ end
2244
+
2245
+ # @example Request syntax with placeholder values
2246
+ #
2247
+ # eventsubscription = db_instance.subscribe_to({
2248
+ # subscription_name: "String", # required
2249
+ # })
2250
+ # @param [Hash] options ({})
2251
+ # @option options [required, String] :subscription_name
2252
+ # The name of the RDS event notification subscription you want to add a
2253
+ # source identifier to.
2254
+ # @return [EventSubscription]
2255
+ def subscribe_to(options = {})
2256
+ options = options.merge(source_identifier: @id)
2257
+ resp = @client.add_source_identifier_to_subscription(options)
2258
+ EventSubscription.new(
2259
+ name: resp.data.event_subscription.cust_subscription_id,
2260
+ data: resp.data.event_subscription,
2261
+ client: @client
2262
+ )
2263
+ end
2264
+
2265
+ # @example Request syntax with placeholder values
2266
+ #
2267
+ # eventsubscription = db_instance.unsubscribe_from({
2268
+ # subscription_name: "String", # required
2269
+ # })
2270
+ # @param [Hash] options ({})
2271
+ # @option options [required, String] :subscription_name
2272
+ # The name of the RDS event notification subscription you want to remove
2273
+ # a source identifier from.
2274
+ # @return [EventSubscription]
2275
+ def unsubscribe_from(options = {})
2276
+ options = options.merge(source_identifier: @id)
2277
+ resp = @client.remove_source_identifier_from_subscription(options)
2278
+ EventSubscription.new(
2279
+ name: resp.data.event_subscription.cust_subscription_id,
2280
+ data: resp.data.event_subscription,
2281
+ client: @client
2282
+ )
2283
+ end
2284
+
2285
+ # @!group Associations
2286
+
2287
+ # @return [Certificate, nil]
2288
+ def certificate
2289
+ if data.ca_certificate_identifier
2290
+ Certificate.new(
2291
+ id: data.ca_certificate_identifier,
2292
+ client: @client
2293
+ )
2294
+ else
2295
+ nil
2296
+ end
2297
+ end
2298
+
2299
+ # @return [DBCluster, nil]
2300
+ def cluster
2301
+ if data.db_cluster_identifier
2302
+ DBCluster.new(
2303
+ id: data.db_cluster_identifier,
2304
+ client: @client
2305
+ )
2306
+ else
2307
+ nil
2308
+ end
2309
+ end
2310
+
2311
+ # @example Request syntax with placeholder values
2312
+ #
2313
+ # events = db_instance.events({
2314
+ # start_time: Time.now,
2315
+ # end_time: Time.now,
2316
+ # duration: 1,
2317
+ # event_categories: ["String"],
2318
+ # filters: [
2319
+ # {
2320
+ # name: "String", # required
2321
+ # values: ["String"], # required
2322
+ # },
2323
+ # ],
2324
+ # })
2325
+ # @param [Hash] options ({})
2326
+ # @option options [Time,DateTime,Date,Integer,String] :start_time
2327
+ # The beginning of the time interval to retrieve events for, specified
2328
+ # in ISO 8601 format. For more information about ISO 8601, go to the
2329
+ # [ISO8601 Wikipedia page.][1]
2330
+ #
2331
+ # Example: 2009-07-08T18:00Z
2332
+ #
2333
+ #
2334
+ #
2335
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
2336
+ # @option options [Time,DateTime,Date,Integer,String] :end_time
2337
+ # The end of the time interval for which to retrieve events, specified
2338
+ # in ISO 8601 format. For more information about ISO 8601, go to the
2339
+ # [ISO8601 Wikipedia page.][1]
2340
+ #
2341
+ # Example: 2009-07-08T18:00Z
2342
+ #
2343
+ #
2344
+ #
2345
+ # [1]: http://en.wikipedia.org/wiki/ISO_8601
2346
+ # @option options [Integer] :duration
2347
+ # The number of minutes to retrieve events for.
2348
+ #
2349
+ # Default: 60
2350
+ # @option options [Array<String>] :event_categories
2351
+ # A list of event categories that trigger notifications for a event
2352
+ # notification subscription.
2353
+ # @option options [Array<Types::Filter>] :filters
2354
+ # This parameter is not currently supported.
2355
+ # @return [Event::Collection]
2356
+ def events(options = {})
2357
+ batches = Enumerator.new do |y|
2358
+ options = options.merge(
2359
+ source_type: "db-instance",
2360
+ source_identifier: @id
2361
+ )
2362
+ resp = @client.describe_events(options)
2363
+ resp.each_page do |page|
2364
+ batch = []
2365
+ page.data.events.each do |e|
2366
+ batch << Event.new(
2367
+ source_id: e.source_identifier,
2368
+ date: e.date,
2369
+ data: e,
2370
+ client: @client
2371
+ )
2372
+ end
2373
+ y.yield(batch)
2374
+ end
2375
+ end
2376
+ Event::Collection.new(batches)
2377
+ end
2378
+
2379
+ # @example Request syntax with placeholder values
2380
+ #
2381
+ # logfiles = db_instance.log_files({
2382
+ # filename_contains: "String",
2383
+ # file_last_written: 1,
2384
+ # file_size: 1,
2385
+ # filters: [
2386
+ # {
2387
+ # name: "String", # required
2388
+ # values: ["String"], # required
2389
+ # },
2390
+ # ],
2391
+ # })
2392
+ # @param [Hash] options ({})
2393
+ # @option options [String] :filename_contains
2394
+ # Filters the available log files for log file names that contain the
2395
+ # specified string.
2396
+ # @option options [Integer] :file_last_written
2397
+ # Filters the available log files for files written since the specified
2398
+ # date, in POSIX timestamp format with milliseconds.
2399
+ # @option options [Integer] :file_size
2400
+ # Filters the available log files for files larger than the specified
2401
+ # size.
2402
+ # @option options [Array<Types::Filter>] :filters
2403
+ # This parameter is not currently supported.
2404
+ # @return [DBLogFile::Collection]
2405
+ def log_files(options = {})
2406
+ batches = Enumerator.new do |y|
2407
+ options = options.merge(db_instance_identifier: @id)
2408
+ resp = @client.describe_db_log_files(options)
2409
+ resp.each_page do |page|
2410
+ batch = []
2411
+ page.data.describe_db_log_files.each do |d|
2412
+ batch << DBLogFile.new(
2413
+ instance_id: @id,
2414
+ name: d.log_file_name,
2415
+ data: d,
2416
+ client: @client
2417
+ )
2418
+ end
2419
+ y.yield(batch)
2420
+ end
2421
+ end
2422
+ DBLogFile::Collection.new(batches)
2423
+ end
2424
+
2425
+ # @return [OptionGroup::Collection]
2426
+ def option_groups
2427
+ batch = []
2428
+ data.option_group_memberships.each do |o|
2429
+ batch << OptionGroup.new(
2430
+ name: o.option_group_name,
2431
+ client: @client
2432
+ )
2433
+ end
2434
+ OptionGroup::Collection.new([batch], size: batch.size)
2435
+ end
2436
+
2437
+ # @return [DBParameterGroup::Collection]
2438
+ def parameter_groups
2439
+ batch = []
2440
+ data.db_parameter_groups.each do |d|
2441
+ batch << DBParameterGroup.new(
2442
+ name: d.db_parameter_group_name,
2443
+ client: @client
2444
+ )
2445
+ end
2446
+ DBParameterGroup::Collection.new([batch], size: batch.size)
2447
+ end
2448
+
2449
+ # @example Request syntax with placeholder values
2450
+ #
2451
+ # pendingmaintenanceactions = db_instance.pending_maintenance_actions({
2452
+ # resource_identifier: "String",
2453
+ # filters: [
2454
+ # {
2455
+ # name: "String", # required
2456
+ # values: ["String"], # required
2457
+ # },
2458
+ # ],
2459
+ # marker: "String",
2460
+ # max_records: 1,
2461
+ # })
2462
+ # @param [Hash] options ({})
2463
+ # @option options [String] :resource_identifier
2464
+ # The ARN of a resource to return pending maintenance actions for.
2465
+ # @option options [Array<Types::Filter>] :filters
2466
+ # A filter that specifies one or more resources to return pending
2467
+ # maintenance actions for.
2468
+ #
2469
+ # Supported filters:
2470
+ #
2471
+ # * `db-instance-id` - Accepts DB instance identifiers and DB instance
2472
+ # Amazon Resource Names (ARNs). The results list will only include
2473
+ # pending maintenance actions for the DB instances identified by these
2474
+ # ARNs.
2475
+ #
2476
+ # ^
2477
+ # @option options [String] :marker
2478
+ # An optional pagination token provided by a previous
2479
+ # `DescribePendingMaintenanceActions` request. If this parameter is
2480
+ # specified, the response includes only records beyond the marker, up to
2481
+ # a number of records specified by `MaxRecords`.
2482
+ # @option options [Integer] :max_records
2483
+ # The maximum number of records to include in the response. If more
2484
+ # records exist than the specified `MaxRecords` value, a pagination
2485
+ # token called a marker is included in the response so that the
2486
+ # remaining results can be retrieved.
2487
+ #
2488
+ # Default: 100
2489
+ #
2490
+ # Constraints: Minimum 20, maximum 100.
2491
+ # @return [PendingMaintenanceAction::Collection]
2492
+ def pending_maintenance_actions(options = {})
2493
+ batches = Enumerator.new do |y|
2494
+ batch = []
2495
+ options = Aws::Util.deep_merge(options, filters: [{
2496
+ name: "db-instance-id",
2497
+ values: [@id]
2498
+ }])
2499
+ resp = @client.describe_pending_maintenance_actions(options)
2500
+ resp.data.pending_maintenance_actions_0.pending_maintenance_action_details.each do |p|
2501
+ batch << PendingMaintenanceAction.new(
2502
+ target_arn: resp.data.pending_maintenance_actions[0].resource_identifier,
2503
+ name: p.action,
2504
+ data: p,
2505
+ client: @client
2506
+ )
2507
+ end
2508
+ y.yield(batch)
2509
+ end
2510
+ PendingMaintenanceAction::Collection.new(batches)
2511
+ end
2512
+
2513
+ # @return [DBInstance::Collection]
2514
+ def read_replicas
2515
+ batch = []
2516
+ data.read_replica_db_instance_identifiers.each do |r|
2517
+ batch << DBInstance.new(
2518
+ id: r,
2519
+ client: @client
2520
+ )
2521
+ end
2522
+ DBInstance::Collection.new([batch], size: batch.size)
2523
+ end
2524
+
2525
+ # @return [DBSecurityGroup::Collection]
2526
+ def security_groups
2527
+ batch = []
2528
+ data.db_security_groups.each do |d|
2529
+ batch << DBSecurityGroup.new(
2530
+ name: d.db_security_group_name,
2531
+ client: @client
2532
+ )
2533
+ end
2534
+ DBSecurityGroup::Collection.new([batch], size: batch.size)
2535
+ end
2536
+
2537
+ # @example Request syntax with placeholder values
2538
+ #
2539
+ # snapshots = db_instance.snapshots({
2540
+ # db_snapshot_identifier: "String",
2541
+ # snapshot_type: "String",
2542
+ # filters: [
2543
+ # {
2544
+ # name: "String", # required
2545
+ # values: ["String"], # required
2546
+ # },
2547
+ # ],
2548
+ # include_shared: false,
2549
+ # include_public: false,
2550
+ # })
2551
+ # @param [Hash] options ({})
2552
+ # @option options [String] :db_snapshot_identifier
2553
+ # A specific DB snapshot identifier to describe. This parameter cannot
2554
+ # be used in conjunction with `DBInstanceIdentifier`. This value is
2555
+ # stored as a lowercase string.
2556
+ #
2557
+ # Constraints:
2558
+ #
2559
+ # * Must be 1 to 255 alphanumeric characters.
2560
+ #
2561
+ # * First character must be a letter.
2562
+ #
2563
+ # * Cannot end with a hyphen or contain two consecutive hyphens.
2564
+ #
2565
+ # * If this identifier is for an automated snapshot, the `SnapshotType`
2566
+ # parameter must also be specified.
2567
+ # @option options [String] :snapshot_type
2568
+ # The type of snapshots to be returned. You can specify one of the
2569
+ # following values:
2570
+ #
2571
+ # * `automated` - Return all DB snapshots that have been automatically
2572
+ # taken by Amazon RDS for my AWS account.
2573
+ #
2574
+ # * `manual` - Return all DB snapshots that have been taken by my AWS
2575
+ # account.
2576
+ #
2577
+ # * `shared` - Return all manual DB snapshots that have been shared to
2578
+ # my AWS account.
2579
+ #
2580
+ # * `public` - Return all DB snapshots that have been marked as public.
2581
+ #
2582
+ # If you don't specify a `SnapshotType` value, then both automated and
2583
+ # manual snapshots are returned. Shared and public DB snapshots are not
2584
+ # included in the returned results by default. You can include shared
2585
+ # snapshots with these results by setting the `IncludeShared` parameter
2586
+ # to `true`. You can include public snapshots with these results by
2587
+ # setting the `IncludePublic` parameter to `true`.
2588
+ #
2589
+ # The `IncludeShared` and `IncludePublic` parameters don't apply for
2590
+ # `SnapshotType` values of `manual` or `automated`. The `IncludePublic`
2591
+ # parameter doesn't apply when `SnapshotType` is set to `shared`. The
2592
+ # `IncludeShared` parameter doesn't apply when `SnapshotType` is set to
2593
+ # `public`.
2594
+ # @option options [Array<Types::Filter>] :filters
2595
+ # This parameter is not currently supported.
2596
+ # @option options [Boolean] :include_shared
2597
+ # Set this value to `true` to include shared manual DB snapshots from
2598
+ # other AWS accounts that this AWS account has been given permission to
2599
+ # copy or restore, otherwise set this value to `false`. The default is
2600
+ # `false`.
2601
+ #
2602
+ # You can give an AWS account permission to restore a manual DB snapshot
2603
+ # from another AWS account by using the ModifyDBSnapshotAttribute API
2604
+ # action.
2605
+ # @option options [Boolean] :include_public
2606
+ # Set this value to `true` to include manual DB snapshots that are
2607
+ # public and can be copied or restored by any AWS account, otherwise set
2608
+ # this value to `false`. The default is `false`.
2609
+ #
2610
+ # You can share a manual DB snapshot as public by using the
2611
+ # ModifyDBSnapshotAttribute API.
2612
+ # @return [DBSnapshot::Collection]
2613
+ def snapshots(options = {})
2614
+ batches = Enumerator.new do |y|
2615
+ options = options.merge(db_instance_identifier: @id)
2616
+ resp = @client.describe_db_snapshots(options)
2617
+ resp.each_page do |page|
2618
+ batch = []
2619
+ page.data.db_snapshots.each do |d|
2620
+ batch << DBSnapshot.new(
2621
+ instance_id: options[:db_instance_identifier],
2622
+ snapshot_id: d.db_snapshot_identifier,
2623
+ data: d,
2624
+ client: @client
2625
+ )
2626
+ end
2627
+ y.yield(batch)
2628
+ end
2629
+ end
2630
+ DBSnapshot::Collection.new(batches)
2631
+ end
2632
+
2633
+ # @return [DBInstance, nil]
2634
+ def source
2635
+ if data.read_replica_source_db_instance_identifier
2636
+ DBInstance.new(
2637
+ id: data.read_replica_source_db_instance_identifier,
2638
+ client: @client
2639
+ )
2640
+ else
2641
+ nil
2642
+ end
2643
+ end
2644
+
2645
+ # @return [DBSubnetGroup, nil]
2646
+ def subnet_group
2647
+ if data.db_subnet_group.db_subnet_group_name
2648
+ DBSubnetGroup.new(
2649
+ name: data.db_subnet_group.db_subnet_group_name,
2650
+ client: @client
2651
+ )
2652
+ else
2653
+ nil
2654
+ end
2655
+ end
2656
+
2657
+ # @deprecated
2658
+ # @api private
2659
+ def identifiers
2660
+ { id: @id }
2661
+ end
2662
+ deprecated(:identifiers)
2663
+
2664
+ private
2665
+
2666
+ def extract_id(args, options)
2667
+ value = args[0] || options.delete(:id)
2668
+ case value
2669
+ when String then value
2670
+ when nil then raise ArgumentError, "missing required option :id"
2671
+ else
2672
+ msg = "expected :id to be a String, got #{value.class}"
2673
+ raise ArgumentError, msg
2674
+ end
2675
+ end
2676
+
2677
+ class Collection < Aws::Resources::Collection; end
2678
+ end
2679
+ end
2680
+ end