class_docstr: Dataset object constructed from name, description, url, key_properties,
  and versions specified in JSON configuration file or a provided :obj:`dict`
  mapping dataset names to configurations.
  
  Parameters
  ----------
  name : :obj:`str`
      Name of dataset.
  description : :obj:`str`
      Brief description of dataset.
  url : :obj:`str`
      Cloud URL to access dataset.
  key_properties : :class:`set` of :obj:`str`
      Set containing key property strings, if present. Valid properties
      include ``'gene'`` and ``'unique'``.
  versions : :class:`list` of :class:`.DatasetVersion`
      List of :class:`.DatasetVersion` objects.
docstr: Create :class:`.Dataset` object from dictionary.
  
  Parameters
  ----------
  name : :obj:`str`
      Name of dataset.
  doc : :obj:`dict`
      Dictionary containing dataset description, url, key_properties, and
      versions.
  region : :obj:`str`
      Region from which to access data, available regions given in
      :func:`hail.experimental.DB._valid_regions`, currently either
      ``'us'`` or 'eu'.
  cloud : :obj:`str`
      Cloud platform to access dataset, either ``'gcp'`` or ``'aws'``.
  
  Returns
  -------
  :class:`Dataset`, optional
      If versions exist for region returns a :class:`.Dataset` object,
      else ``None``.
docstr_tok: ["Create",":","class",":","`",".Dataset","`","object","from","dictionary",".","Parameters","--","--","--","--","--","name",":",":","obj",":","`","str","`","Name","of","dataset",".","doc",":",":","obj",":","`","dict","`","Dictionary","containing","dataset","description",",","url",",","key_properties",",","and","versions",".","region",":",":","obj",":","`","str","`","Region","from","which","to","access","data",",","available","regions","given","in",":","func",":","`","hail.experimental.DB._valid_regions","`",",","currently","either","``","'us","'","``","or","'eu","'",".","cloud",":",":","obj",":","`","str","`","Cloud","platform","to","access","dataset",",","either","``","'gcp","'","``","or","``","'aws","'","``",".","Returns","--","--","--","-",":","class",":","`","Dataset","`",",","optional","If","versions","exist","for","region","returns","a",":","class",":","`",".Dataset","`","object",",","else","``","None","``","."]
code: def from_name_and_json(
      name: str, doc: dict, region: str, cloud: str
  ) -> Optional["Dataset"]:
      """Create :class:`.Dataset` object from dictionary.
  
      Parameters
      ----------
      name : :obj:`str`
          Name of dataset.
      doc : :obj:`dict`
          Dictionary containing dataset description, url, key_properties, and
          versions.
      region : :obj:`str`
          Region from which to access data, available regions given in
          :func:`hail.experimental.DB._valid_regions`, currently either
          ``'us'`` or 'eu'.
      cloud : :obj:`str`
          Cloud platform to access dataset, either ``'gcp'`` or ``'aws'``.
  
      Returns
      -------
      :class:`Dataset`, optional
          If versions exist for region returns a :class:`.Dataset` object,
          else ``None``.
      """
      assert "annotation_db" in doc, doc
      assert "key_properties" in doc["annotation_db"], doc[
          "annotation_db"
      ]
      assert "description" in doc, doc
      assert "url" in doc, doc
      assert "versions" in doc, doc
      key_properties = set(
          x
          for x in doc["annotation_db"]["key_properties"]
          if x is not None
      )
      versions = [
          DatasetVersion.from_json(x, cloud)
          for x in doc["versions"]
          if DatasetVersion.from_json(x, cloud) is not None
      ]
      versions_in_region = DatasetVersion.get_region(
          name, versions, region
      )
      if versions_in_region:
          return Dataset(
              name,
              doc["description"],
              doc["url"],
              key_properties,
              versions_in_region,
          )
  
imports: import json
  import os
  import warnings
  from typing import Iterable, List, Optional, Set, Tuple, Union
  import hail
  import pkg_resources
  from hailtop.utils import external_requests_client_session, retry_response_returning_functions
  from .lens import MatrixRows, TableRows
  from ..expr import StructExpression
  from ..matrixtable import MatrixTable, matrix_table_type
  from ..table import Table, table_type
  from ..typecheck import oneof, typecheck_method
  from ..utils.java import Env, info
label_desc: Use image node_id 1 for calling the Dataset obj's underlying member method code with example usage: obj.from_name_and_json(name, doc, region, cloud) and returns: Dataset