class_docstr: Multi-application config for deploying a list of Serve applications to the Ray
  cluster.
  
  This is the request JSON schema for the v2 REST API
  `PUT "/api/serve/applications/"`.
  
  NOTE: This config allows extra parameters to make it forward-compatible (ie
        older versions of Serve are able to accept configs from a newer versions,
        simply ignoring new parameters)
class_docstr_tok: ["Multi-application","config","for","deploying","a","list","of","Serve","applications","to","the","Ray","cluster",".","This","is","the","request","JSON","schema","for","the","v2","REST","API","`","PUT","``","\/api\/serve\/applications\/","''","`",".","NOTE",":","This","config","allows","extra","parameters","to","make","it","forward-compatible","(","ie","older","versions","of","Serve","are","able","to","accept","configs","from","a","newer","versions",",","simply","ignoring","new","parameters",")"]
code: def application_names_nonempty(cls, v):
      for app in v:
          if len(app.name) == 0:
              raise ValueError("Application names must be nonempty.")
      return v
  
imports: import logging
  from collections import Counter
  from dataclasses import dataclass, field
  from enum import Enum
  from typing import Any, Dict, List, Optional, Set, Union
  from zlib import crc32
  from ray._private.pydantic_compat import BaseModel, Extra, Field, root_validator, validator
  from ray._private.runtime_env.packaging import parse_uri
  from ray.serve._private.common import ApplicationStatus, DeploymentStatus, DeploymentStatusTrigger, ProxyStatus, ReplicaState, ServeDeployMode
  from ray.serve._private.constants import DEFAULT_GRPC_PORT, DEFAULT_UVICORN_KEEP_ALIVE_TIMEOUT_S, SERVE_DEFAULT_APP_NAME
  from ray.serve._private.deployment_info import DeploymentInfo
  from ray.serve._private.utils import DEFAULT
  from ray.serve.config import ProxyLocation
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 3 for calling the ServeDeploySchema obj's underlying member method code with example usage: obj.application_names_nonempty(cls, v) and returns: v