module AWS::SimpleWorkflow::OptionFormatters

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