class_docstr: :class:`DatasetVersion` has two constructors: :func:`.from_json` and
  :func:`.get_region`.
  
  Parameters
  ----------
  url : :obj:`dict` or :obj:`str`
      Nested dictionary of URLs containing key: value pairs, like
      ``cloud: {region: url}`` if using :func:`.from_json` constructor,
      or a string with the URL from appropriate region if using the
      :func:`.get_region` constructor.
  version : :obj:`str`, optional
      String of dataset version, if not ``None``.
  reference_genome : :obj:`str`, optional
      String of dataset reference genome, if not ``None``.
code: def __init__(
      self,
      url: Union[dict, str],
      version: Optional[str],
      reference_genome: Optional[str],
  ):
      self.url = url
      self.version = version
      self.reference_genome = reference_genome
  
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 3 to create a new DatasetVersion object  with example: obj = DatasetVersion(url, version, reference_genome)