lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb
module Fog
module AWS
class AutoScaling
class Real
require 'fog/aws/parsers/auto_scaling/basic'
# Creates a scheduled scaling action for a Auto Scaling group. If you
# leave a parameter unspecified, the corresponding value remains
# unchanged in the affected Auto Scaling group.
#
# ==== Parameters
# * auto_scaling_group_name<~String> - The name or ARN of the Auto
# Scaling Group.
# * scheduled_action_name<~String> - Name of this scaling action.
# * time<~Datetime> - The time for this action to start (deprecated:
# use StartTime, EndTime and Recurrence).
# * options<~Hash>:
# * 'DesiredCapacity'<~Integer> - The number of EC2 instances that
# should be running in this group.
# * 'EndTime'<~DateTime> - The time for this action to end.
# * 'MaxSize'<~Integer> - The maximum size for the Auto Scaling
# group.
# * 'MinSize'<~Integer> - The minimum size for the Auto Scaling
# group.
# * 'Recurrence'<~String> - The time when recurring future actions
# will start. Start time is specified by the user following the
# Unix cron syntax format. When StartTime and EndTime are specified
# with Recurrence, they form the boundaries of when the recurring
# action will start and stop.
# * 'StartTime'<~DateTime> - The time for this action to start
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'ResponseMetadata'<~Hash>:
# * 'RequestId'<~String> - Id of request
#
# ==== See Also
# http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutScheduledUpdateGroupAction.html
#
def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_action_name, time=nil, options = {})
# The 'Time' parameter is now an alias for StartTime and needs to be identical if specified.
time = options['StartTime'].nil? ? time : options['StartTime']
if !time.nil?
time = time.class == Time ? time.utc.iso8601 : Time.parse(time).utc.iso8601
end
request({
'Action' => 'PutScheduledUpdateGroupAction',
'AutoScalingGroupName' => auto_scaling_group_name,
'ScheduledActionName' => scheduled_action_name,
'Time' => time,
:parser => Fog::Parsers::AWS::AutoScaling::Basic.new
}.merge!(options))
end
end
class Mock
def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_policy_name, time, options = {})
Fog::Mock.not_implemented
end
end
end
end
end