# File lib/rhc/rest/domain.rb, line 38
      def add_application(name, options)
        debug "Adding application #{name} to domain #{id}"

        payload = {:name => name}
        options.each{ |key, value| payload[key.to_sym] = value }

        cartridges = Array(payload.delete(:cartridge)).concat(Array(payload.delete(:cartridges))).map do |cart|
            if cart.is_a? String or cart.respond_to? :[]
              cart
            else
              cart.url ? {:url => cart.url} : cart.name
            end
          end.compact.uniq

        if cartridges.any?{ |c| c.is_a?(Hash) and c[:url] } and !has_param?('ADD_APPLICATION', 'cartridges[][url]')
          raise RHC::Rest::DownloadingCartridgesNotSupported, "The server does not support downloading cartridges."
        end

        if client.api_version_negotiated >= 1.3
          payload[:cartridges] = cartridges
        else
          raise RHC::Rest::MultipleCartridgeCreationNotSupported, "The server only supports creating an application with a single web cartridge." if cartridges.length > 1
          payload[:cartridge] = cartridges.first
        end

        if payload[:initial_git_url] and !has_param?('ADD_APPLICATION', 'initial_git_url')
          raise RHC::Rest::InitialGitUrlNotSupported, "The server does not support creating applications from a source repository."
        end

        options = {:timeout => options[:scale] && 0 || nil}
        rest_method "ADD_APPLICATION", payload, options
      end