ray.serve.schema.ServeInstanceDetails#

pydantic model ray.serve.schema.ServeInstanceDetails[source]#

Serve metadata with system-level info and details on all applications deployed to the Ray cluster.

This is the response JSON schema for v2 REST API GET /api/serve/applications.

Show JSON schema
{
   "title": "ServeInstanceDetails",
   "description": "Serve metadata with system-level info and details on all applications deployed to\nthe Ray cluster.\n\nThis is the response JSON schema for v2 REST API `GET /api/serve/applications`.",
   "type": "object",
   "properties": {
      "controller_info": {
         "title": "Controller Info",
         "description": "Details about the Serve controller actor.",
         "allOf": [
            {
               "$ref": "#/definitions/ServeActorDetails"
            }
         ]
      },
      "proxy_location": {
         "description": "Config for where to run proxies for ingress traffic to the cluster.\n- \"Disabled\": disable the proxies entirely.\n- \"HeadOnly\": run only one proxy on the head node.\n- \"EveryNode\": run proxies on every node that has at least one replica.\n",
         "allOf": [
            {
               "$ref": "#/definitions/ProxyLocation"
            }
         ]
      },
      "http_options": {
         "title": "Http Options",
         "description": "HTTP Proxy options.",
         "allOf": [
            {
               "$ref": "#/definitions/HTTPOptionsSchema"
            }
         ]
      },
      "grpc_options": {
         "title": "Grpc Options",
         "description": "gRPC Proxy options.",
         "allOf": [
            {
               "$ref": "#/definitions/gRPCOptionsSchema"
            }
         ]
      },
      "proxies": {
         "title": "Proxies",
         "description": "Mapping from node_id to details about the Proxy running on that node.",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/ProxyDetails"
         }
      },
      "deploy_mode": {
         "description": "[DEPRECATED]: single-app configs are removed, so this is always MULTI_APP. This field will be removed in a future release.",
         "default": "MULTI_APP",
         "allOf": [
            {
               "$ref": "#/definitions/ServeDeployMode"
            }
         ]
      },
      "applications": {
         "title": "Applications",
         "description": "Details about all live applications running on the cluster.",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/ApplicationDetails"
         }
      },
      "target_capacity": {
         "title": "Target Capacity",
         "description": "[EXPERIMENTAL]: the target capacity percentage for all replicas across the cluster. The `num_replicas`, `min_replicas`, `max_replicas`, and `initial_replicas` for each deployment will be scaled by this percentage.",
         "minimum": 0,
         "maximum": 100,
         "type": "number"
      }
   },
   "required": [
      "controller_info",
      "proxies",
      "applications"
   ],
   "additionalProperties": false,
   "definitions": {
      "ServeActorDetails": {
         "title": "ServeActorDetails",
         "type": "object",
         "properties": {
            "node_id": {
               "title": "Node Id",
               "description": "ID of the node that the actor is running on.",
               "type": "string"
            },
            "node_ip": {
               "title": "Node Ip",
               "description": "IP address of the node that the actor is running on.",
               "type": "string"
            },
            "actor_id": {
               "title": "Actor Id",
               "description": "Actor ID.",
               "type": "string"
            },
            "actor_name": {
               "title": "Actor Name",
               "description": "Actor name.",
               "type": "string"
            },
            "worker_id": {
               "title": "Worker Id",
               "description": "Worker ID.",
               "type": "string"
            },
            "log_file_path": {
               "title": "Log File Path",
               "description": "The relative path to the Serve actor's log file from the ray logs directory.",
               "type": "string"
            }
         }
      },
      "ProxyLocation": {
         "title": "ProxyLocation",
         "description": "Config for where to run proxies to receive ingress traffic to the cluster.\n\nOptions:\n\n    - Disabled: don't run proxies at all. This should be used if you are only\n      making calls to your applications via deployment handles.\n    - HeadOnly: only run a single proxy on the head node.\n    - EveryNode: run a proxy on every node in the cluster that has at least one\n      replica actor. This is the default.",
         "enum": [
            "Disabled",
            "HeadOnly",
            "EveryNode"
         ],
         "type": "string"
      },
      "HTTPOptionsSchema": {
         "title": "HTTPOptionsSchema",
         "description": "Options to start the HTTP Proxy with.\n\nNOTE: This config allows extra parameters to make it forward-compatible (ie\n      older versions of Serve are able to accept configs from a newer versions,\n      simply ignoring new parameters).",
         "type": "object",
         "properties": {
            "host": {
               "title": "Host",
               "description": "Host for HTTP servers to listen on. Defaults to \"0.0.0.0\", which exposes Serve publicly. Cannot be updated once Serve has started running. Serve must be shut down and restarted with the new host instead.",
               "default": "0.0.0.0",
               "type": "string"
            },
            "port": {
               "title": "Port",
               "description": "Port for HTTP server. Defaults to 8000. Cannot be updated once Serve has started running. Serve must be shut down and restarted with the new port instead.",
               "default": 8000,
               "type": "integer"
            },
            "root_path": {
               "title": "Root Path",
               "description": "Root path to mount the serve application (for example, \"/serve\"). All deployment routes will be prefixed with this path. Defaults to \"\".",
               "default": "",
               "type": "string"
            },
            "request_timeout_s": {
               "title": "Request Timeout S",
               "description": "The timeout for HTTP requests. Defaults to no timeout.",
               "type": "number"
            },
            "keep_alive_timeout_s": {
               "title": "Keep Alive Timeout S",
               "description": "The HTTP proxy will keep idle connections alive for this duration before closing them when no requests are ongoing. Defaults to 5 seconds.",
               "default": 5,
               "type": "integer"
            }
         }
      },
      "gRPCOptionsSchema": {
         "title": "gRPCOptionsSchema",
         "description": "Options to start the gRPC Proxy with.\n\n**PublicAPI (alpha):** This API is in alpha and may change before becoming stable.",
         "type": "object",
         "properties": {
            "port": {
               "title": "Port",
               "description": "Port for gRPC server. Defaults to 9000. Cannot be updated once Serve has started running. Serve must be shut down and restarted with the new port instead.",
               "default": 9000,
               "type": "integer"
            },
            "grpc_servicer_functions": {
               "title": "Grpc Servicer Functions",
               "description": "List of import paths for gRPC `add_servicer_to_server` functions to add to Serve's gRPC proxy. Default to empty list, which means no gRPC methods will be added and no gRPC server will be started. The servicer functions need to be importable from the context of where Serve is running.",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string"
               }
            }
         }
      },
      "ProxyStatus": {
         "title": "ProxyStatus",
         "description": "An enumeration.",
         "enum": [
            "STARTING",
            "HEALTHY",
            "UNHEALTHY",
            "DRAINING",
            "DRAINED"
         ],
         "type": "string"
      },
      "ProxyDetails": {
         "title": "ProxyDetails",
         "type": "object",
         "properties": {
            "node_id": {
               "title": "Node Id",
               "description": "ID of the node that the actor is running on.",
               "type": "string"
            },
            "node_ip": {
               "title": "Node Ip",
               "description": "IP address of the node that the actor is running on.",
               "type": "string"
            },
            "actor_id": {
               "title": "Actor Id",
               "description": "Actor ID.",
               "type": "string"
            },
            "actor_name": {
               "title": "Actor Name",
               "description": "Actor name.",
               "type": "string"
            },
            "worker_id": {
               "title": "Worker Id",
               "description": "Worker ID.",
               "type": "string"
            },
            "log_file_path": {
               "title": "Log File Path",
               "description": "The relative path to the Serve actor's log file from the ray logs directory.",
               "type": "string"
            },
            "status": {
               "description": "Current status of the proxy.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ProxyStatus"
                  }
               ]
            }
         },
         "required": [
            "status"
         ]
      },
      "ServeDeployMode": {
         "title": "ServeDeployMode",
         "description": "An enumeration.",
         "enum": [
            "MULTI_APP"
         ],
         "type": "string"
      },
      "ApplicationStatus": {
         "title": "ApplicationStatus",
         "description": "An enumeration.",
         "enum": [
            "NOT_STARTED",
            "DEPLOYING",
            "DEPLOY_FAILED",
            "RUNNING",
            "UNHEALTHY",
            "DELETING"
         ],
         "type": "string"
      },
      "RayActorOptionsSchema": {
         "title": "RayActorOptionsSchema",
         "description": "Options with which to start a replica actor.",
         "type": "object",
         "properties": {
            "runtime_env": {
               "title": "Runtime Env",
               "description": "This deployment's runtime_env. working_dir and py_modules may contain only remote URIs.",
               "default": {},
               "type": "object"
            },
            "num_cpus": {
               "title": "Num Cpus",
               "description": "The number of CPUs required by the deployment's application per replica. This is the same as a ray actor's num_cpus. Uses a default if null.",
               "minimum": 0,
               "type": "number"
            },
            "num_gpus": {
               "title": "Num Gpus",
               "description": "The number of GPUs required by the deployment's application per replica. This is the same as a ray actor's num_gpus. Uses a default if null.",
               "minimum": 0,
               "type": "number"
            },
            "memory": {
               "title": "Memory",
               "description": "Restrict the heap memory usage of each replica. Uses a default if null.",
               "minimum": 0,
               "type": "number"
            },
            "object_store_memory": {
               "title": "Object Store Memory",
               "description": "Restrict the object store memory used per replica when creating objects. Uses a default if null.",
               "minimum": 0,
               "type": "number"
            },
            "resources": {
               "title": "Resources",
               "description": "The custom resources required by each replica.",
               "default": {},
               "type": "object"
            },
            "accelerator_type": {
               "title": "Accelerator Type",
               "description": "Forces replicas to run on nodes with the specified accelerator type.See :ref:`accelerator types <accelerator_types>`.",
               "type": "string"
            }
         }
      },
      "EncodingType": {
         "title": "EncodingType",
         "description": "Encoding type for the serve logs.\n\n**PublicAPI (alpha):** This API is in alpha and may change before becoming stable.",
         "enum": [
            "TEXT",
            "JSON"
         ],
         "type": "string"
      },
      "LoggingConfig": {
         "title": "LoggingConfig",
         "description": "Logging config schema for configuring serve components logs.\n\nExample:\n\n    .. code-block:: python\n\n        from ray import serve\n        from ray.serve.schema import LoggingConfig\n        # Set log level for the deployment.\n        @serve.deployment(LoggingConfig(log_level=\"DEBUG\")\n        class MyDeployment:\n            def __call__(self) -> str:\n                return \"Hello world!\"\n        # Set log directory for the deployment.\n        @serve.deployment(LoggingConfig(logs_dir=\"/my_dir\")\n        class MyDeployment:\n            def __call__(self) -> str:\n                return \"Hello world!\"\n\n**PublicAPI (alpha):** This API is in alpha and may change before becoming stable.",
         "type": "object",
         "properties": {
            "encoding": {
               "title": "Encoding",
               "description": "Encoding type for the serve logs. Defaults to 'TEXT'. The default can be overwritten using the `RAY_SERVE_LOG_ENCODING` environment variable. 'JSON' is also supported for structured logging.",
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "$ref": "#/definitions/EncodingType"
                  }
               ]
            },
            "log_level": {
               "title": "Log Level",
               "description": "Log level for the serve logs. Defaults to INFO. You can set it to 'DEBUG' to get more detailed debug logs.",
               "default": "INFO",
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "string"
                  }
               ]
            },
            "logs_dir": {
               "title": "Logs Dir",
               "description": "Directory to store the logs. Default to None, which means logs will be stored in the default directory ('/tmp/ray/session_latest/logs/serve/...').",
               "type": "string"
            },
            "enable_access_log": {
               "title": "Enable Access Log",
               "description": "Whether to enable access logs for each request. Default to True.",
               "default": true,
               "type": "boolean"
            }
         },
         "additionalProperties": false
      },
      "DeploymentSchema": {
         "title": "DeploymentSchema",
         "description": "Specifies options for one deployment within a Serve application. For each deployment\nthis can optionally be included in `ServeApplicationSchema` to override deployment\noptions specified in code.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Globally-unique name identifying this deployment.",
               "type": "string"
            },
            "num_replicas": {
               "title": "Num Replicas",
               "description": "The number of processes that handle requests to this deployment. Uses a default if null. Can also be set to `auto` for a default autoscaling configuration (experimental).",
               "default": 1,
               "anyOf": [
                  {
                     "type": "integer",
                     "exclusiveMinimum": 0
                  },
                  {
                     "type": "string"
                  }
               ]
            },
            "route_prefix": {
               "title": "Route Prefix",
               "description": "[DEPRECATED] Please use route_prefix under ServeApplicationSchema instead.",
               "default": 1,
               "type": "string"
            },
            "max_concurrent_queries": {
               "title": "Max Concurrent Queries",
               "description": "[DEPRECATED] The max number of requests that will be executed at once in each replica. Defaults to 100.",
               "default": 1,
               "exclusiveMinimum": 0,
               "type": "integer"
            },
            "max_ongoing_requests": {
               "title": "Max Ongoing Requests",
               "description": "Maximum number of requests that are sent in parallel to each replica of this deployment. The limit is enforced across all callers (HTTP requests or DeploymentHandles). Defaults to 100.",
               "default": 1,
               "exclusiveMinimum": 0,
               "type": "integer"
            },
            "max_queued_requests": {
               "title": "Max Queued Requests",
               "description": "[DEPRECATED] The max number of requests that will be executed at once in each replica. Defaults to 100.",
               "default": 1,
               "type": "integer"
            },
            "user_config": {
               "title": "User Config",
               "description": "Config to pass into this deployment's reconfigure method. This can be updated dynamically without restarting replicas",
               "default": 1,
               "type": "object"
            },
            "autoscaling_config": {
               "title": "Autoscaling Config",
               "description": "Config specifying autoscaling parameters for the deployment's number of replicas. If null, the deployment won't autoscale its number of replicas; the number of replicas will be fixed at num_replicas.",
               "default": 1,
               "type": "object"
            },
            "graceful_shutdown_wait_loop_s": {
               "title": "Graceful Shutdown Wait Loop S",
               "description": "Duration that deployment replicas will wait until there is no more work to be done before shutting down. Uses a default if null.",
               "default": 1,
               "minimum": 0,
               "type": "number"
            },
            "graceful_shutdown_timeout_s": {
               "title": "Graceful Shutdown Timeout S",
               "description": "Serve controller waits for this duration before forcefully killing the replica for shutdown. Uses a default if null.",
               "default": 1,
               "minimum": 0,
               "type": "number"
            },
            "health_check_period_s": {
               "title": "Health Check Period S",
               "description": "Frequency at which the controller will health check replicas. Uses a default if null.",
               "default": 1,
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "health_check_timeout_s": {
               "title": "Health Check Timeout S",
               "description": "Timeout that the controller will wait for a response from the replica's health check before marking it unhealthy. Uses a default if null.",
               "default": 1,
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "ray_actor_options": {
               "title": "Ray Actor Options",
               "description": "Options set for each replica actor.",
               "default": 1,
               "allOf": [
                  {
                     "$ref": "#/definitions/RayActorOptionsSchema"
                  }
               ]
            },
            "placement_group_bundles": {
               "title": "Placement Group Bundles",
               "description": "Define a set of placement group bundles to be scheduled *for each replica* of this deployment. The replica actor will be scheduled in the first bundle provided, so the resources specified in `ray_actor_options` must be a subset of the first bundle's resources. All actors and tasks created by the replica actor will be scheduled in the placement group by default (`placement_group_capture_child_tasks` is set to True).",
               "default": 1,
               "type": "array",
               "items": {
                  "type": "object",
                  "additionalProperties": {
                     "type": "number"
                  }
               }
            },
            "placement_group_strategy": {
               "title": "Placement Group Strategy",
               "description": "Strategy to use for the replica placement group specified via `placement_group_bundles`. Defaults to `PACK`.",
               "default": 1,
               "type": "string"
            },
            "max_replicas_per_node": {
               "title": "Max Replicas Per Node",
               "description": "The max number of replicas of this deployment that can run on a single Valid values are None (default, no limit) or an integer in the range of [1, 100]. ",
               "default": 1,
               "type": "integer"
            },
            "logging_config": {
               "title": "Logging Config",
               "description": "Logging config for configuring serve deployment logs.",
               "default": 1,
               "allOf": [
                  {
                     "$ref": "#/definitions/LoggingConfig"
                  }
               ]
            }
         },
         "required": [
            "name"
         ]
      },
      "ServeApplicationSchema": {
         "title": "ServeApplicationSchema",
         "description": "Describes one Serve application, and currently can also be used as a standalone\nconfig to deploy a single application to a Ray cluster.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Application name, the name should be unique within the serve instance",
               "default": "default",
               "type": "string"
            },
            "route_prefix": {
               "title": "Route Prefix",
               "description": "Route prefix for HTTP requests. If not provided, it will useroute_prefix of the ingress deployment. By default, the ingress route prefix is '/'.",
               "default": "/",
               "type": "string"
            },
            "import_path": {
               "title": "Import Path",
               "description": "An import path to a bound deployment node. Should be of the form \"module.submodule_1...submodule_n.dag_node\". This is equivalent to \"from module.submodule_1...submodule_n import dag_node\". Only works with Python applications. This field is REQUIRED when deploying Serve config to a Ray cluster.",
               "type": "string"
            },
            "runtime_env": {
               "title": "Runtime Env",
               "description": "The runtime_env that the deployment graph will be run in. Per-deployment runtime_envs will inherit from this. working_dir and py_modules may contain only remote URIs.",
               "default": {},
               "type": "object"
            },
            "host": {
               "title": "Host",
               "description": "Host for HTTP servers to listen on. Defaults to \"0.0.0.0\", which exposes Serve publicly. Cannot be updated once your Serve application has started running. The Serve application must be shut down and restarted with the new host instead.",
               "default": "0.0.0.0",
               "type": "string"
            },
            "port": {
               "title": "Port",
               "description": "Port for HTTP server. Defaults to 8000. Cannot be updated once your Serve application has started running. The Serve application must be shut down and restarted with the new port instead.",
               "default": 8000,
               "type": "integer"
            },
            "deployments": {
               "title": "Deployments",
               "description": "Deployment options that override options specified in the code.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/DeploymentSchema"
               }
            },
            "args": {
               "title": "Args",
               "description": "Arguments that will be passed to the application builder.",
               "default": {},
               "type": "object"
            },
            "logging_config": {
               "title": "Logging Config",
               "description": "Logging config for configuring serve application logs.",
               "allOf": [
                  {
                     "$ref": "#/definitions/LoggingConfig"
                  }
               ]
            }
         },
         "required": [
            "import_path"
         ]
      },
      "DeploymentStatus": {
         "title": "DeploymentStatus",
         "description": "An enumeration.",
         "enum": [
            "UPDATING",
            "HEALTHY",
            "UNHEALTHY",
            "UPSCALING",
            "DOWNSCALING"
         ],
         "type": "string"
      },
      "DeploymentStatusTrigger": {
         "title": "DeploymentStatusTrigger",
         "description": "An enumeration.",
         "enum": [
            "UNSPECIFIED",
            "CONFIG_UPDATE_STARTED",
            "CONFIG_UPDATE_COMPLETED",
            "UPSCALE_COMPLETED",
            "DOWNSCALE_COMPLETED",
            "AUTOSCALING",
            "REPLICA_STARTUP_FAILED",
            "HEALTH_CHECK_FAILED",
            "INTERNAL_ERROR",
            "DELETING"
         ],
         "type": "string"
      },
      "ReplicaState": {
         "title": "ReplicaState",
         "description": "An enumeration.",
         "enum": [
            "STARTING",
            "UPDATING",
            "RECOVERING",
            "RUNNING",
            "STOPPING",
            "PENDING_MIGRATION"
         ],
         "type": "string"
      },
      "ReplicaDetails": {
         "title": "ReplicaDetails",
         "description": "Detailed info about a single deployment replica.",
         "type": "object",
         "properties": {
            "node_id": {
               "title": "Node Id",
               "description": "ID of the node that the actor is running on.",
               "type": "string"
            },
            "node_ip": {
               "title": "Node Ip",
               "description": "IP address of the node that the actor is running on.",
               "type": "string"
            },
            "actor_id": {
               "title": "Actor Id",
               "description": "Actor ID.",
               "type": "string"
            },
            "actor_name": {
               "title": "Actor Name",
               "description": "Actor name.",
               "type": "string"
            },
            "worker_id": {
               "title": "Worker Id",
               "description": "Worker ID.",
               "type": "string"
            },
            "log_file_path": {
               "title": "Log File Path",
               "description": "The relative path to the Serve actor's log file from the ray logs directory.",
               "type": "string"
            },
            "replica_id": {
               "title": "Replica Id",
               "description": "Unique ID for the replica.",
               "type": "string"
            },
            "state": {
               "description": "Current state of the replica.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ReplicaState"
                  }
               ]
            },
            "pid": {
               "title": "Pid",
               "description": "PID of the replica actor process.",
               "type": "integer"
            },
            "start_time_s": {
               "title": "Start Time S",
               "description": "The time at which the replica actor was started. If the controller dies, this is the time at which the controller recovers and retrieves replica state from the running replica actor.",
               "type": "number"
            }
         },
         "required": [
            "replica_id",
            "state",
            "start_time_s"
         ]
      },
      "DeploymentDetails": {
         "title": "DeploymentDetails",
         "description": "Detailed info about a deployment within a Serve application.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Deployment name.",
               "type": "string"
            },
            "status": {
               "description": "The current status of the deployment.",
               "allOf": [
                  {
                     "$ref": "#/definitions/DeploymentStatus"
                  }
               ]
            },
            "status_trigger": {
               "description": "[EXPERIMENTAL] The trigger for the current status.",
               "allOf": [
                  {
                     "$ref": "#/definitions/DeploymentStatusTrigger"
                  }
               ]
            },
            "message": {
               "title": "Message",
               "description": "If there are issues with the deployment, this will describe the issue in more detail.",
               "type": "string"
            },
            "deployment_config": {
               "title": "Deployment Config",
               "description": "The set of deployment config options that are currently applied to this deployment. These options may come from the user's code, config file options, or Serve default values.",
               "allOf": [
                  {
                     "$ref": "#/definitions/DeploymentSchema"
                  }
               ]
            },
            "target_num_replicas": {
               "title": "Target Num Replicas",
               "description": "The current target number of replicas for this deployment. This can change over time for autoscaling deployments, but will remain a constant number for other deployments.",
               "minimum": 0,
               "type": "integer"
            },
            "replicas": {
               "title": "Replicas",
               "description": "Details about the live replicas of this deployment.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ReplicaDetails"
               }
            }
         },
         "required": [
            "name",
            "status",
            "status_trigger",
            "message",
            "deployment_config",
            "target_num_replicas",
            "replicas"
         ],
         "additionalProperties": false
      },
      "ApplicationDetails": {
         "title": "ApplicationDetails",
         "description": "Detailed info about a Serve application.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Application name.",
               "type": "string"
            },
            "route_prefix": {
               "title": "Route Prefix",
               "description": "This is the `route_prefix` of the ingress deployment in the application. Requests to paths under this HTTP path prefix will be routed to this application. This value may be null if the application is deploying and app information has not yet fully propagated in the backend; or if the user explicitly set the prefix to `None`, so the application isn't exposed over HTTP. Routing is done based on longest-prefix match, so if you have deployment A with a prefix of \"/a\" and deployment B with a prefix of \"/a/b\", requests to \"/a\", \"/a/\", and \"/a/c\" go to A and requests to \"/a/b\", \"/a/b/\", and \"/a/b/c\" go to B. Routes must not end with a \"/\" unless they're the root (just \"/\"), which acts as a catch-all.",
               "type": "string"
            },
            "docs_path": {
               "title": "Docs Path",
               "description": "The path at which the docs for this application is served, for instance the `docs_url` for FastAPI-integrated applications.",
               "type": "string"
            },
            "status": {
               "description": "The current status of the application.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ApplicationStatus"
                  }
               ]
            },
            "message": {
               "title": "Message",
               "description": "A message that gives more insight into the application status.",
               "type": "string"
            },
            "last_deployed_time_s": {
               "title": "Last Deployed Time S",
               "description": "The time at which the application was deployed.",
               "type": "number"
            },
            "deployed_app_config": {
               "title": "Deployed App Config",
               "description": "The exact copy of the application config that was submitted to the cluster. This will include all of, and only, the options that were explicitly specified in the submitted config. Default values for unspecified options will not be displayed, and deployments that are part of the application but unlisted in the config will also not be displayed. Note that default values for unspecified options are applied to the cluster under the hood, and deployments that were unlisted will still be deployed. This config simply avoids cluttering with unspecified fields for readability.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ServeApplicationSchema"
                  }
               ]
            },
            "deployments": {
               "title": "Deployments",
               "description": "Details about the deployments in this application.",
               "type": "object",
               "additionalProperties": {
                  "$ref": "#/definitions/DeploymentDetails"
               }
            }
         },
         "required": [
            "name",
            "route_prefix",
            "docs_path",
            "status",
            "message",
            "last_deployed_time_s",
            "deployments"
         ],
         "additionalProperties": false
      }
   }
}

Fields:
field applications: Dict[str, ApplicationDetails] [Required]#

Details about all live applications running on the cluster.

field controller_info: ServeActorDetails [Required]#

Details about the Serve controller actor.

field deploy_mode: ServeDeployMode = ServeDeployMode.MULTI_APP#

[DEPRECATED]: single-app configs are removed, so this is always MULTI_APP. This field will be removed in a future release.

field grpc_options: gRPCOptionsSchema | None = None#

gRPC Proxy options.

field http_options: HTTPOptionsSchema | None = None#

HTTP Proxy options.

field proxies: Dict[str, ProxyDetails] [Required]#

Mapping from node_id to details about the Proxy running on that node.

field proxy_location: ProxyLocation | None = None#

Config for where to run proxies for ingress traffic to the cluster. - “Disabled”: disable the proxies entirely. - “HeadOnly”: run only one proxy on the head node. - “EveryNode”: run proxies on every node that has at least one replica.

field target_capacity: float | None = None#

[EXPERIMENTAL]: the target capacity percentage for all replicas across the cluster. The num_replicas, min_replicas, max_replicas, and initial_replicas for each deployment will be scaled by this percentage.

Constraints:
  • minimum = 0

  • maximum = 100

static get_empty_schema_dict() Dict[source]#

Empty Serve instance details dictionary.

Represents no Serve instance running on the cluster.