# Configuration

```yaml
- name: <string>  # name of the API (required)
  kind: BatchAPI  # must be "BatchAPI" for batch APIs (required)
  pod:  # pod configuration (required)
    port: <int>  # port to which requests will be sent (default: 8080; exported as $CORTEX_PORT)
    containers:  # configurations for the containers to run (at least one constainer must be provided)
      - name: <string>  # name of the container (required)
        image: <string>  # docker image to use for the container (required)
        command: <list[string]>  # entrypoint (not executed within a shell); env vars can be used with e.g. $(CORTEX_PORT) (required)
        args: <list[string]>  # arguments to the entrypoint; env vars can be used with e.g. $(CORTEX_PORT) (default: no args)
        env: <map[string:string]>  # dictionary of environment variables to set in the container (optional)
        compute:  # compute resource requests (default: see below)
          cpu: <string|int|float>  # CPU request for the container; one unit of CPU corresponds to one virtual CPU; fractional requests are allowed, and can be specified as a floating point number or via the "m" suffix (default: 200m)
          gpu: <int>  # GPU request for the container; one unit of GPU corresponds to one virtual GPU (default: 0)
          inf: <int>  # Inferentia request for the container; one unit of inf corresponds to one virtual Inferentia chip (default: 0)
          mem: <string>  # memory request for the container; one unit of memory is one byte and can be expressed as an integer or by using one of these suffixes: K, M, G, T (or their power-of two counterparts: Ki, Mi, Gi, Ti) (default: Null)
          shm: <string>  # size of shared memory (/dev/shm) for sharing data between multiple processes, e.g. 64Mi or 1Gi (default: Null)
        readiness_probe:  # periodic probe of container readiness; traffic will not be sent into the pod unless all containers' readiness probes are succeeding (optional)
          http_get:  # specifies an http endpoint which must respond with status code 200 (only one of http_get, tcp_socket, and exec may be specified)
            port: <int|string>  # the port to access on the container (required)
            path: <string>  # the path to access on the HTTP server (default: /)
          tcp_socket:  # specifies a port which must be ready to receive traffic (only one of http_get, tcp_socket, and exec may be specified)
            port: <int|string>  # the port to access on the container (required)
          initial_delay_seconds: <int>  # number of seconds after the container has started before the probe is initiated (default: 0)
          timeout_seconds: <int>  # number of seconds until the probe times out (default: 1)
          period_seconds: <int>  # how often (in seconds) to perform the probe (default: 10)
          success_threshold: <int>  # minimum consecutive successes for the probe to be considered successful after having failed (default: 1)
          failure_threshold: <int>  # minimum consecutive failures for the probe to be considered failed after having succeeded (default: 3)
        liveness_probe:  # periodic probe of container liveness; container will be restarted if the probe fails (optional)
          http_get:  # specifies an http endpoint which must respond with status code 200 (only one of http_get, tcp_socket, and exec may be specified)
            port: <int|string>  # the port to access on the container (required)
            path: <string>  # the path to access on the HTTP server (default: /)
          tcp_socket:  # specifies a port which must be ready to receive traffic (only one of http_get, tcp_socket, and exec may be specified)
            port: <int|string>  # the port to access on the container (required)
          exec:  # specifies a command to run which must exit with code 0 (only one of http_get, tcp_socket, and exec may be specified)
            command: <list[string]>  # the command to execute inside the container, which is exec'd (not run inside a shell); the working directory is root ('/') in the container's filesystem (required)
          initial_delay_seconds: <int>  # number of seconds after the container has started before the probe is initiated (default: 0)
          timeout_seconds: <int>  # number of seconds until the probe times out (default: 1)
          period_seconds: <int>  # how often (in seconds) to perform the probe (default: 10)
          success_threshold: <int>  # minimum consecutive successes for the probe to be considered successful after having failed (default: 1)
          failure_threshold: <int>  # minimum consecutive failures for the probe to be considered failed after having succeeded (default: 3)
  node_groups: <list[string]>  # a list of node groups on which this API can run (default: all node groups are eligible)
  networking:  # networking configuration (default: see below)
    endpoint: <string>  # endpoint for the API (default: <api_name>)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cortexlabs.com/0.39/workloads/batch/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
