# File lib/aws/core/configuration.rb, line 372
        def add_option_with_needs name, needs, &create_block

          accepted_options << name

          define_method(name) do

            return supplied[name] if supplied.has_key?(name)

            needed = needs.inject({}) {|h,need| h.merge(need => send(need)) }

            unless @created.key?(name) and @created[name][:needed] == needed
              created = {}
              created[:object] = create_block.call(self,needed)
              created[:needed] = needed
              @created[name] = created
            end

            @created[name][:object]

          end

        end