478: def restore_db_instance_to_point_in_time( options = {} )
479: raise ArgumentError, "No :source_db_instance_identifier provided" if options.does_not_have?(:source_db_instance_identifier)
480: raise ArgumentError, "No :target_db_instance_identifier provided" if options.does_not_have?(:target_db_instance_identifier)
481:
482: params = {}
483: params['SourceDBInstanceIdentifier'] = options[:source_db_instance_identifier]
484: params['TargetDBInstanceIdentifier'] = options[:target_db_instance_identifier]
485:
486: if options.has?(:use_latest_restorable_time) && options.has?(:restore_time)
487: raise ArgumentError, "You cannot provide both :use_latest_restorable_time and :restore_time"
488: elsif options.has?(:use_latest_restorable_time)
489: params['UseLatestRestorableTime'] = case options[:use_latest_restorable_time]
490: when 'true', 'false'
491: options[:use_latest_restorable_time]
492: when true
493: 'true'
494: when false
495: 'false'
496: else
497: raise ArgumentError, "Invalid value provided for :use_latest_restorable_time. Expected boolean."
498: end
499: elsif options.has?(:restore_time)
500: params['RestoreTime'] = options[:restore_time]
501: end
502:
503: params['DBInstanceClass'] = options[:db_instance_class] if options.has?(:db_instance_class)
504: params['Port'] = options[:port].to_s if options.has?(:port)
505: params['AvailabilityZone'] = options[:availability_zone] if options.has?(:availability_zone)
506:
507: return response_generator(:action => "RestoreDBInstanceToPointInTime", :params => params)
508: end