def describe_image(url, max_candidates:1, language:nil, custom_headers:nil)
      response = describe_image_async(url, max_candidates:max_candidates, language:language, custom_headers:custom_headers).value!
      response.body unless response.nil?
    end
def describe_image(url, max_candidates:1, language:nil, custom_headers:nil)
      response = describe_image_async(url, max_candidates:max_candidates, language:language, custom_headers:custom_headers).value!
      response.body unless response.nil?
    end
This operation generates a description of an image in human readable language
 with complete sentences. The description is based on a collection of content
 tags, which are also returned by the operation. More than one description can
 be generated for each image. Descriptions are ordered by their confidence
 score. All descriptions are in English.
 Two input methods are supported -- (1) Uploading an image or (2) specifying
 an image URL.
 A successful response will be returned in JSON. If the request failed, the
 response will contain an error code and a message to help understand what
 went wrong.

 @param url [String] Publicly reachable URL of an image.
 @param max_candidates [Integer] Maximum number of candidate descriptions to
 be returned.  The default is 1.
 @param language [Enum] The desired language for output generation. If this
 parameter is not specified, the default value is &quot;en&quot;.Supported
 languages:en - English, Default. es - Spanish, ja - Japanese, pt -
 Portuguese, zh - Simplified Chinese. Possible values include: 'en', 'es',
 'ja', 'pt', 'zh'
 @param custom_headers [Hash{String => String}] A hash of custom headers that
 will be added to the HTTP request.

 @return [ImageDescription] operation results.