class_docstr: This manager is used to load plugins in runtime env agent.
class_docstr_tok: ["This","manager","is","used","to","load","plugins","in","runtime","env","agent","."]
docstr: Add a plugin to the manager and create a URI cache for it.
  
  Args:
      plugin: The class instance of the plugin.
docstr_tok: ["Add","a","plugin","to","the","manager","and","create","a","URI","cache","for","it",".","Args",":","plugin",":","The","class","instance","of","the","plugin","."]
code: def add_plugin(self, plugin: RuntimeEnvPlugin) -> None:
      """Add a plugin to the manager and create a URI cache for it.
  
      Args:
          plugin: The class instance of the plugin.
      """
      plugin_class = type(plugin)
      self.validate_plugin_class(plugin_class)
      self.validate_priority(plugin_class.priority)
      self.plugins[plugin_class.name] = PluginSetupContext(
          plugin_class.name,
          plugin,
          plugin_class.priority,
          self.create_uri_cache_for_plugin(plugin),
      )
  
imports: import logging
  import os
  import json
  from abc import ABC
  from typing import List, Dict, Optional, Any, Type
  from ray._private.runtime_env.context import RuntimeEnvContext
  from ray._private.runtime_env.uri_cache import URICache
  from ray._private.runtime_env.constants import RAY_RUNTIME_ENV_PLUGINS_ENV_VAR, RAY_RUNTIME_ENV_PLUGIN_DEFAULT_PRIORITY, RAY_RUNTIME_ENV_CLASS_FIELD_NAME, RAY_RUNTIME_ENV_PRIORITY_FIELD_NAME, RAY_RUNTIME_ENV_PLUGIN_MIN_PRIORITY, RAY_RUNTIME_ENV_PLUGIN_MAX_PRIORITY
  from ray.util.annotations import DeveloperAPI
  from ray._private.utils import import_attr
label_desc: Use image node_id 5 for calling the RuntimeEnvPluginManager obj's underlying member method code with example usage: obj.add_plugin(plugin) without return types