code: def place(client, place_id, session_token=None, fields=None, language=None):
      
      params = {"placeid": place_id}
  
      if fields:
          invalid_fields = set(fields) - PLACES_DETAIL_FIELDS
          if invalid_fields:
              raise ValueError("Valid values for the `fields` param for "
                               "`place` are '%s', these given field(s) "
                               "are invalid: '%s'" % (
                                  "', '".join(PLACES_DETAIL_FIELDS),
                                  "', '".join(invalid_fields)))
          params["fields"] = convert.join_list(",", fields)
  
      if language:
          params["language"] = language
      if session_token:
          params["sessiontoken"] = session_token
  
      return client._request("/maps/api/place/details/json", params)
docs: Comprehensive details for an individual place.
  
      :param place_id: A textual identifier that uniquely identifies a place,
          returned from a Places search.
      :type place_id: string
  
      :param session_token: A random string which identifies an autocomplete
                            session for billing purposes.
      :type session_token: string
  
      :param fields: The fields specifying the types of place data to return,
                     separated by a comma. For full details see:
                     https://cloud.google.com/maps-platform/user-guide/product-changes/#places
      :type input: list
  
      :param language: The language in which to return results.
      :type language: string
  
      :rtype: result dict with the following keys:
          result: dict containing place details
          html_attributions: set of attributions which must be displayed