module AWS::SimpleWorkflow::OptionFormatters

def duration_opts options, *opt_names

def duration_opts options, *opt_names
  opt_names.each do |opt|
    options[opt] = options[opt].to_s.upcase if options[opt]
  end
end

def start_execution_opts options, workflow_type = nil

def start_execution_opts options, workflow_type = nil
  if workflow_type
    options[:workflow_id] ||= UUIDTools::UUID.random_create.to_s
    
    if workflow_type.is_a?(WorkflowType)
      options[:workflow_type] = {}
      options[:workflow_type][:name] = workflow_type.name
      options[:workflow_type][:version] = workflow_type.version
    elsif 
      workflow_type.is_a?(Hash) and
      workflow_type[:name].is_a?(String) and
      workflow_type[:version] .is_a?(String)and
      workflow_type.keys.length == 2
    then
      options[:workflow_type] = workflow_type
    else
      msg = "expected workflow_type to be a WorkflowType object or " +
        "a hash with :name and :version"
      raise ArgumentError, msg
    end
  end
  upcase_opts(options, :child_policy)
  duration_opts(options, 
    :execution_start_to_close_timeout,
    :task_start_to_close_timeout)
  if options.has_key?(:task_list)
    options[:task_list] = { :name => options[:task_list].to_s }
  end
end

def upcase_opts options, *opt_names

def upcase_opts options, *opt_names
  opt_names.each do |opt|
    if options.has_key?(opt)
      options[opt] = options[opt].to_s.upcase
    end
  end
end