{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/lastmileai/json-schema/lastmileai-lmai-proto-webserver-v2-get-fine-tune-job-status-response-schema.json",
  "title": "GetFineTuneJobStatusResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lastmileai-fine-tune-job-api-openapi.yml#/components/schemas/lmai.proto.webserver.v2.GetFineTuneJobStatusResponse",
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "JOB_STATUS_UNSPECIFIED",
        "JOB_STATUS_QUEUED",
        "JOB_STATUS_RUNNING",
        "JOB_STATUS_COMPLETED",
        "JOB_STATUS_CANCELLED",
        "JOB_STATUS_FAILED"
      ],
      "title": "JobStatus"
    },
    "fineTuneJobResult": {
      "$ref": "#/$defs/lmai.proto.model_fine_tuning.v1.FineTuneJobResult"
    }
  },
  "required": [
    "status",
    "fineTuneJobResult"
  ],
  "$defs": {
    "lmai.proto.model_fine_tuning.v1.FineTuneJobResult": {
      "title": "FineTuneJobResult",
      "type": "object",
      "properties": {
        "progress": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/lmai.proto.model_fine_tuning.v1.TrainingProgress",
            "description": "Sequential snapshots of training metrics."
          }
        },
        "trainedModelFile": {
          "$ref": "#/$defs/lmai.proto.model_fine_tuning.v1.ModelFile",
          "description": "The trained model, if it was created successfully."
        },
        "resultUrl": {
          "type": "string",
          "description": "Url to view the full results and progress (e.g. external W&B url)"
        }
      },
      "required": [
        "progress"
      ],
      "description": "Result of a Fine-Tuning Job."
    },
    "lmai.proto.model_fine_tuning.v1.ModelFile": {
      "title": "ModelFile",
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
        },
        "modelId": {
          "type": "string"
        },
        "contentMd5Hash": {
          "type": "string"
        },
        "fileSizeBytes": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "createdAt",
        "updatedAt",
        "modelId",
        "contentMd5Hash",
        "fileSizeBytes"
      ],
      "description": "Actual file asset corresponding to a model"
    },
    "lmai.proto.model_fine_tuning.v1.TrainingProgress": {
      "title": "TrainingProgress",
      "type": "object",
      "properties": {
        "jobId": {
          "type": "string"
        },
        "epoch": {
          "type": "integer"
        },
        "loss": {
          "type": "number"
        },
        "accuracy": {
          "type": "number"
        },
        "progress": {
          "type": "number"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
        }
      },
      "required": [
        "jobId",
        "epoch",
        "loss",
        "accuracy",
        "progress",
        "timestamp"
      ],
      "description": "Progress metrics from model training."
    }
  }
}