class_docstr: Represents the resource configuration passed to a raylet.
  
  All fields can be None. Before starting services, resolve() should be
  called to return a ResourceSpec with unknown values filled in with
  defaults based on the local machine specifications.
  
  Attributes:
      num_cpus: The CPUs allocated for this raylet.
      num_gpus: The GPUs allocated for this raylet.
      memory: The memory allocated for this raylet.
      object_store_memory: The object store memory allocated for this raylet.
          Note that when calling to_resource_dict(), this will be scaled down
          by 30% to account for the global plasma LRU reserve.
      resources: The custom resources allocated for this raylet.
      redis_max_memory: The max amount of memory (in bytes) to allow each
          redis shard to use. Once the limit is exceeded, redis will start
          LRU eviction of entries. This only applies to the sharded redis
          tables (task, object, and profile tables). By default, this is
          capped at 10GB but can be set higher.
code: def __new__(
      cls,
      num_cpus=None,
      num_gpus=None,
      memory=None,
      object_store_memory=None,
      resources=None,
      redis_max_memory=None,
  ):
      return super(ResourceSpec, cls).__new__(
          cls,
          num_cpus,
          num_gpus,
          memory,
          object_store_memory,
          resources,
          redis_max_memory,
      )
  
file_path: ray/python/ray/_private/resource_spec.py
imports: import logging
  import sys
  from collections import namedtuple
  from typing import Optional
  import ray
  import ray._private.ray_constants
label_desc: Use image node_id 1 for calling the ResourceSpec obj's underlying member method code with example usage: obj.__new__(cls, num_cpus, num_gpus, memory, object_store_memory, resources, redis_max_memory) and returns: super