docs: def datasets(dataset, node, ll=None, ur=None, start_date=None, end_date=None, api_key=None):
      """
      This method is used to find datasets available for searching.
      By passing no parameters except node, all available datasets
      are returned. Additional parameters such as temporal range
      and spatial bounding box can be used to find datasets that 
      provide more specific data. The dataset name parameter can
      be used to limit the results based on matching the supplied
      value against the dataset name with assumed wildcards at the
      beginning and end. All parameters are optional except for 
      the 'node' parameter.
      
      :param dataset:
          Dataset Identifier
      
      :param ll:
          Lower left corner of an AOI bounding box - in decimal form
          Longitude/Latitude dictionary
          
          e.g. { "longitude": 0.0, "latitude": 0.0 }
      
      :param ur:
          Upper right corner of an AOI bounding box - in decimal form
          Longitude/Latitude dictionary
          
          e.g. { "longitude": 0.0, "latitude": 0.0 }
      
      :param start_date:
          Used for searching scene acquisition - will accept anything
          that the PHP strtotime function can understand
      
      :param end_date:
          Used for searching scene acquisition - will accept anything
          that the PHP strtotime function can understand
      
      :param node:
          The requested Catalog
      
      :param api_key:
          API key is not required.
          
      """
  
      payload = {
          "node": node,
          "apiKey": api_key
      }
  
      if dataset:
          payload["datasetName"] = dataset
  
      if ll and ur:
          payload["lowerLeft"] = {
              "latitude": ll["latitude"],
              "longitude": ll["longitude"]
          }
          payload["upperRight"] = {
              "latitude": ur["latitude"],
              "longitude": ur["longitude"]
          }
  
      if start_date:
          payload["startDate"] = start_date
  
      if end_date:
          payload["endDate"] = end_date
  
      return json.dumps(payload)