Clarifai · Schema

apiRunner

Clarifai apiRunner schema

AIComputer VisionNLPImage RecognitionObject DetectionText AnalysisVisual SearchMachine LearningCustom Model TraininggRPC

Properties

Name Type Description
id string A unique ID for this runner. This is a UUID since runners can be automatically orchestrated.
description string short description about the runner.
created_at string When the runner was created.
modified_at string When the runner was last modified.
metadata object To handle arbitrary json metadata you can use a struct field: https://github.com/google/protobuf/blob/master/src/google/protobuf/struct.proto This is an optional arg.
labels array Labels to match in order to find work.
worker object Instead of just matching on labels we might want to have more explicit matching of what work this runner is looking for. The thing that the autoscaling config applies to for this nodepool.
nodepool object Runners are defined within nodepools so this field needs the id and user_id of the nodepool to be provided when creating a Runner. This nodepool must be accessible to you or an org you are part of.
compute_info object ////////////////////////// Need resources on the runner so we can schedule this Runner into the Nodepool. If this runner is being orchestrated for a model then the orchestrator will set this to the mo
num_replicas integer Number of replicas that this runner should have up. We keep it separate from ComputeInfo which defines how many resources each replica needs.
special_handling array List of special handling instructions for this runner.
runner_metrics object Metrics and status for the underlying k8s deployment. Each Runner is 1:1 with a k8s deployment, so this field tracks deployment health and metrics.
min_replicas integer Hard minimum replicas from the deployment's autoscale config. The agent uses this to determine how many replicas are non-preemptable.
priority integer The scheduling priority for this runner's k8s deployment. Valid values are 0-9, where higher values indicate higher priority. This value comes from the deployment nodepool's priority setting.
View JSON Schema on GitHub

JSON Schema

apiRunner.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/clarifai/refs/heads/main/json-schema/apiRunner.json",
  "title": "apiRunner",
  "description": "Clarifai apiRunner schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique ID for this runner.\nThis is a UUID since runners can be automatically orchestrated."
    },
    "description": {
      "type": "string",
      "description": "short description about the runner."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the runner was created."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the runner was last modified."
    },
    "metadata": {
      "type": "object",
      "description": "To handle arbitrary json metadata you can use a struct field:\nhttps://github.com/google/protobuf/blob/master/src/google/protobuf/struct.proto\nThis is an optional arg."
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Labels to match in order to find work."
    },
    "worker": {
      "$ref": "#/definitions/apiWorker",
      "description": "Instead of just matching on labels we might want to have more explicit matching of what\nwork this runner is looking for.\nThe thing that the autoscaling config applies to for this nodepool."
    },
    "nodepool": {
      "$ref": "#/definitions/apiNodepool",
      "description": "Runners are defined within nodepools so this field needs the id and user_id of the nodepool\nto be provided when creating a Runner.\nThis nodepool must be accessible to you or an org you are part of."
    },
    "compute_info": {
      "$ref": "#/definitions/apiComputeInfo",
      "description": "//////////////////////////\nNeed resources on the runner so we can schedule this Runner into the Nodepool.\nIf this runner is being orchestrated for a model then the orchestrator will set this to the\nmodel resource requirements. If a workflow then it'll compute those requirements and set\npopulate this resource field.\nHaving this on the underlying object like Model and Workflow allows us to represent the minimum\nrequirements on those object, which may be less than what the Runner allocates (as a safety\nmargin for the runner to for sure run the resource)."
    },
    "num_replicas": {
      "type": "integer",
      "format": "int64",
      "description": "Number of replicas that this runner should have up.\nWe keep it separate from ComputeInfo which defines how many resources each replica needs."
    },
    "special_handling": {
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "#/definitions/apiSpecialHandling"
      },
      "description": "List of special handling instructions for this runner."
    },
    "runner_metrics": {
      "$ref": "#/definitions/apiRunnerMetrics",
      "description": "Metrics and status for the underlying k8s deployment.\nEach Runner is 1:1 with a k8s deployment, so this field tracks deployment health and metrics."
    },
    "min_replicas": {
      "type": "integer",
      "format": "int64",
      "description": "Hard minimum replicas from the deployment's autoscale config.\nThe agent uses this to determine how many replicas are non-preemptable."
    },
    "priority": {
      "type": "integer",
      "format": "int64",
      "description": "The scheduling priority for this runner's k8s deployment.\nValid values are 0-9, where higher values indicate higher priority.\nThis value comes from the deployment nodepool's priority setting."
    }
  }
}