def create_provider(name = nil, url = nil, username = nil, box_name = nil, version_number = nil)
      update_data = !(username && version_number && provider_name && box_name)
      name ||= @name
      url ||= @url
      username ||= @username
      box_name ||= @box_name
      version_number ||= @version

      params = { name: name, url: url }.delete_if { |_, v| v.nil? }
      data = @client.request('post', create_provider_path(username, box_name, version_number), provider: params)

      @data = data if update_data
      data
    end
def create_provider(name = nil, url = nil, username = nil, box_name = nil, version_number = nil)
      update_data = !(username && version_number && provider_name && box_name)
      name ||= @name
      url ||= @url
      username ||= @username
      box_name ||= @box_name
      version_number ||= @version

      params = { name: name, url: url }.delete_if { |_, v| v.nil? }
      data = @client.request('post', create_provider_path(username, box_name, version_number), provider: params)

      @data = data if update_data
      data
    end
Creates a provider for *this* Provider object, or if all params are given,
 will make a one-off request to create a Provider and return its data

 @param [String] name
 @param [String] url
 @param [String] username
 @param [String] box_name
 @param [String] version_number