{
  "swagger": "2.0",
  "info": {
    "title": "ByteNite jobs API",
    "version": "0.1",
    "contact": {
      "name": "ByteNite info",
      "url": "https://api.bytenite.com/",
      "email": "info@bytenite.com"
    }
  },
  "tags": [
    {
      "name": "Computing"
    }
  ],
  "host": "api.bytenite.com",
  "basePath": "/v1/computing",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "application/x-protobuf"
  ],
  "produces": [
    "application/json",
    "application/x-protobuf"
  ],
  "paths": {
    "/datasource/test": {
      "post": {
        "summary": "Test a data source",
        "description": "Test and get information about a data source connection",
        "operationId": "Computing_DataSourceInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsDataSourceInfoResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobsDataSourceInfoRequest"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/events": {
      "get": {
        "summary": "Listen events",
        "description": "Listen events",
        "operationId": "Computing_Events",
        "responses": {
          "200": {
            "description": "A successful response.(streaming responses)",
            "schema": {
              "type": "object",
              "properties": {
                "result": {
                  "$ref": "#/definitions/bytenitecustomerEvent"
                },
                "error": {
                  "$ref": "#/definitions/rpcStatus"
                }
              },
              "title": "Stream result of bytenitecustomerEvent"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "tags": [
          "Events"
        ],
        "produces": [
          "text/event-stream"
        ]
      }
    },
    "/info": {
      "get": {
        "summary": "Retrieve information about server",
        "description": "Server software version and important messages",
        "operationId": "Computing_Info",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/bytenitecustomerServerInfoResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "tags": [
          "Info"
        ]
      }
    },
    "/jobs": {
      "get": {
        "summary": "Get jobs",
        "description": "Get all jobs for user with optional filters",
        "operationId": "Computing_GetAll",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobsResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pagination.limit",
            "description": "Number of rows to return per page.",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "pagination.offset",
            "description": "Number of rows to skip before starting to collect the result set.",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      },
      "delete": {
        "summary": "Delete job",
        "description": "Delete one or multiple job",
        "operationId": "Computing_DeleteJobBatch",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonBatchOperationResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id/s associated with the jobs to delete.",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "Jobs"
        ]
      },
      "post": {
        "summary": "Create a new job",
        "description": "Create a new computing job on ByteNite.",
        "operationId": "Computing_CreateJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobsCreateJobRequest"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/filter": {
      "post": {
        "summary": "Get jobs filtered",
        "description": "Get all jobs for user and filter them",
        "operationId": "Computing_GetAllFiltered",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobsResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customerGetAllJobsRequest"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/runningTasks": {
      "post": {
        "summary": "Get the number of running tasks for the jobs",
        "description": "Get the number of running tasks for the jobs",
        "operationId": "Computing_GetJobsRunningTasks",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/customerJobsRunningTasksResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "description": "Get the running tasks for the provided jobs.",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/customerJobsRunningTasksRequest"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}": {
      "get": {
        "summary": "Get job",
        "description": "Get job properties",
        "operationId": "Computing_GetJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      },
      "delete": {
        "summary": "Delete a job",
        "description": "Delete a job",
        "operationId": "Computing_DeleteJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonGenericResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      },
      "patch": {
        "summary": "Update a job",
        "description": "Update an existing job.",
        "operationId": "Computing_UpdateJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "Unique identifier for the job",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "example": {
                "name": "My Update job"
              },
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Mnemonic name for the job."
                },
                "description": {
                  "type": "string",
                  "description": "Textual description of the job."
                },
                "dataSource": {
                  "$ref": "#/definitions/data_sourceDataSource",
                  "description": "Configuration for the data source providing input data to the job."
                },
                "dataDestination": {
                  "$ref": "#/definitions/data_sourceDataSource",
                  "description": "Configuration for the data destination where job output will be sent."
                },
                "params": {
                  "$ref": "#/definitions/jobAppParams",
                  "description": "Job-specific configuration parameters for the distributed application."
                },
                "config": {
                  "$ref": "#/definitions/jobJobConfig",
                  "description": "Job execution preferences."
                },
                "partitioner": {
                  "type": "string",
                  "description": "Partitioner engine used in the job. It supports versioning through the tag. eg: fanout@1.0"
                },
                "assembler": {
                  "type": "string",
                  "description": "Assembler engine used in the job. It supports versioning through the tag. eg: assembler@1.0"
                },
                "app": {
                  "type": "string",
                  "description": "Application associated with the job. It supports versioning through the tag. eg: myapp@1.0"
                }
              },
              "required": [
                "jobId"
              ]
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/abort": {
      "post": {
        "summary": "Stop a running job",
        "description": "Abort running job (an incomplete job that is yet to start will be deleted)",
        "operationId": "Computing_AbortJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonGenericResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/configs": {
      "patch": {
        "summary": "Set job configs",
        "description": "Set or update execution parameters/configurations",
        "operationId": "Computing_SetJobPreferences",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "jobConfig",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobJobConfig"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/datasource": {
      "patch": {
        "summary": "Set a job datasource",
        "description": "Set a job datasource",
        "operationId": "Computing_SetJobDataSource",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "params",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobsDataSourceParams"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/duplicate": {
      "post": {
        "summary": "Duplicate a job",
        "description": "Duplicate a job",
        "operationId": "Computing_DuplicateJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/jobname": {
      "patch": {
        "summary": "Set a job name",
        "description": "Set a job name",
        "operationId": "Computing_SetJobName",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "jobName",
            "description": "A descriptive name for your job.",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string",
              "example": "My Job"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/params": {
      "patch": {
        "summary": "Set job parameters",
        "description": "Set or update job specific parameters",
        "operationId": "Computing_SetJobParams",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobWithTemplateResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "data",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/jobAppParams"
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/results": {
      "get": {
        "summary": "Get results",
        "description": "Get job results",
        "operationId": "Computing_GetJobResults",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/jobsJobResultsResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/run": {
      "post": {
        "summary": "Run a job",
        "description": "Run a job",
        "operationId": "Computing_RunJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonGenericResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "config": {
                  "$ref": "#/definitions/jobJobConfig",
                  "description": "Job execution preferences."
                }
              }
            }
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/tasks": {
      "get": {
        "summary": "Get tasks for a job",
        "description": "Get all tasks for a job",
        "operationId": "Computing_GetTasksForAJob",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/taskTasksResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "pagination.limit",
            "description": "Number of rows to return per page.",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "pagination.offset",
            "description": "Number of rows to skip before starting to collect the result set.",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/tasks/{taskId}": {
      "get": {
        "summary": "Get task information",
        "description": "Get information about a specific task",
        "operationId": "Computing_GetTaskInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/taskTaskInfoResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{jobId}/uploadcompleted": {
      "patch": {
        "summary": "Set upload completed",
        "description": "Set a job local file upload completed",
        "operationId": "Computing_SetUploadCompleted",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonGenericResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The id associated with your job.",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Jobs"
        ]
      }
    },
    "/logs/query": {
      "get": {
        "summary": "Get logs",
        "description": "Get logs for the provided filters",
        "operationId": "Computing_QueryLogs",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/logsFetchLogsResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The job id for which you want to get the logs",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "taskIds",
            "description": "The task ids for which you want to get the logs",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "levels",
            "description": "The log levels you want to get the logs for",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN",
                "TRACE",
                "DEBUG",
                "INFO",
                "WARN",
                "ERROR",
                "FATAL",
                "PANIC"
              ]
            },
            "collectionFormat": "multi"
          },
          {
            "name": "services",
            "description": "The services you want to get the logs for",
            "in": "query",
            "required": true,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "PARTITIONER",
                "ASSEMBLER",
                "TASKRUNNER"
              ]
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "Logs"
        ]
      }
    },
    "/logs/stream": {
      "get": {
        "summary": "Stream logs",
        "description": "Stream logs for the provided filters",
        "operationId": "Computing_StreamLogs",
        "responses": {
          "200": {
            "description": "A successful response.(streaming responses)",
            "schema": {
              "type": "object",
              "properties": {
                "result": {
                  "$ref": "#/definitions/logsStreamLogsResponse"
                },
                "error": {
                  "$ref": "#/definitions/rpcStatus"
                }
              },
              "title": "Stream result of logsStreamLogsResponse"
            }
          },
          "400": {
            "description": "Returned when the users sends a malformed request.",
            "schema": {}
          },
          "401": {
            "description": "Returned when the user is not authenticated.",
            "schema": {}
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "schema": {}
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "schema": {}
          },
          "500": {
            "description": "Returned when an error on the server occurred.",
            "schema": {}
          },
          "503": {
            "description": "Returned when the resource is temporarily unavailable.",
            "schema": {}
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "jobId",
            "description": "The job id for which you want to get the logs",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "taskIds",
            "description": "The task ids for which you want to get the logs",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "levels",
            "description": "The log levels you want to get the logs for",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN",
                "TRACE",
                "DEBUG",
                "INFO",
                "WARN",
                "ERROR",
                "FATAL",
                "PANIC"
              ]
            },
            "collectionFormat": "multi"
          },
          {
            "name": "service",
            "description": "The service you want to get the logs for",
            "in": "query",
            "required": false,
            "type": "string",
            "enum": [
              "PARTITIONER",
              "ASSEMBLER",
              "TASKRUNNER"
            ],
            "default": "PARTITIONER"
          }
        ],
        "tags": [
          "Logs"
        ],
        "produces": [
          "text/event-stream"
        ]
      }
    }
  },
  "definitions": {
    "appApp": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "description": "Unique identifier assigned to the distributed app (UUID).",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "example": "video-transcoding",
          "description": "Human-readable name of the app."
        },
        "version": {
          "type": "string",
          "example": "1.0",
          "title": "App version"
        },
        "owner": {
          "type": "string",
          "example": "b7aac91d-7e62-4923-898f-5c6d9ea48927",
          "description": "UUID of the user who owns the app."
        },
        "status": {
          "type": "string",
          "example": "active",
          "description": "Status of the app, e.g., active, inactive."
        },
        "deviceRequirements": {
          "$ref": "#/definitions/commonDeviceRequirements",
          "title": "Device requirements for running the app"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Indicates whether the app is publicly accessible."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "UTC timestamp when the app was created.",
          "readOnly": true
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "UTC timestamp when the app was last updated.",
          "readOnly": true
        },
        "platform": {
          "type": "string",
          "example": "docker",
          "description": "Target platform for app execution (e.g., docker)."
        },
        "hash": {
          "type": "string",
          "example": "Plv5qqtm1jPtm8Brq4jMj9u/zSJMQV85fl62UNxltcM=",
          "description": "SHA256 checksum of the uploaded tar archive.",
          "readOnly": true
        },
        "link": {
          "type": "string",
          "description": "Currently contains the link to the app's source code."
        },
        "platformConfig": {
          "$ref": "#/definitions/commonPlatformConfig",
          "title": "Platform-specific configuration"
        },
        "entrypoint": {
          "type": "string",
          "example": "main.py",
          "description": "Main executable file or script to launch the application (e.g., main.py)."
        },
        "revision": {
          "type": "string",
          "format": "int64",
          "description": "Internal revision tracking number.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Optional free-form description of the app."
        },
        "userName": {
          "type": "string",
          "example": "alice",
          "description": "User name of the app owner."
        }
      },
      "description": "Each bytenite job is tagged to an app which describes the type of job being run."
    },
    "bytenitecustomerEvent": {
      "type": "object",
      "properties": {
        "event": {
          "type": "string"
        },
        "data": {
          "$ref": "#/definitions/protobufAny"
        }
      }
    },
    "bytenitecustomerServerInfoResponse": {
      "type": "object",
      "properties": {
        "version": {
          "$ref": "#/definitions/commonVersion"
        },
        "messages": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "commonBatchOperationResponse": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/commonError"
          }
        }
      },
      "title": "Generic response for batch operations"
    },
    "commonDeviceRequirements": {
      "type": "object",
      "properties": {
        "minCpu": {
          "type": "number",
          "format": "float",
          "example": 1,
          "description": "Minimum number of vCPUs required to run the app/engine."
        },
        "minMemory": {
          "type": "number",
          "format": "float",
          "example": 2,
          "description": "Minimum amount of RAM (GB) required to run the app."
        },
        "gpu": {
          "type": "array",
          "example": [
            "tesla t4",
            "nvidia a100-sxm4-40gb"
          ],
          "items": {
            "type": "string"
          },
          "description": "Array of GPU models requested to run the app/engine, in order of preference. Use the official GPU identifiers provided by the /wallet/rates endpoint. Leave blank if no GPU is required."
        }
      },
      "description": "DeviceRequirements represents the minimum hardware requirements for running the app/engine."
    },
    "commonError": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int64",
          "example": 404,
          "description": "Error code if the request failed."
        },
        "message": {
          "type": "string",
          "example": "Not Found",
          "description": "Short description of the error if occurred."
        },
        "description": {
          "type": "string",
          "example": "The requested resource was not found",
          "description": "Full detailed explanation of the error if applicable."
        }
      }
    },
    "commonFilter": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "description": "The field to apply the filter on"
        },
        "condition": {
          "$ref": "#/definitions/commonFilterCondition",
          "description": "The condition to apply"
        },
        "value": {
          "type": "object",
          "$ref": "#/definitions/protobufAny",
          "example": {
            "@type": "type.googleapis.com/google.protobuf.Value",
            "value": "value to filter (any type)"
          },
          "description": "The value to filter on. Can be any type."
        }
      }
    },
    "commonFilterCondition": {
      "type": "string",
      "enum": [
        "FILTER_CONDITION_EQ",
        "FILTER_CONDITION_NEQ",
        "FILTER_CONDITION_GT",
        "FILTER_CONDITION_GTE",
        "FILTER_CONDITION_LT",
        "FILTER_CONDITION_LTE",
        "FILTER_CONDITION_ARRAY_CONTAINS",
        "FILTER_CONDITION_ARRAY_CONTAINS_ANY",
        "FILTER_CONDITION_IN",
        "FILTER_CONDITION_NOT_IN",
        "FILTER_CONDITION_LIKE"
      ],
      "default": "FILTER_CONDITION_EQ"
    },
    "commonGenericResponse": {
      "type": "object",
      "properties": {
        "ok": {
          "type": "boolean",
          "example": false,
          "description": "True if the request was successful."
        },
        "requestId": {
          "type": "string",
          "example": "xyz-123",
          "description": "Internal request identifier for tracing or support."
        },
        "message": {
          "type": "string",
          "example": "Request  failed",
          "description": "Additional message providing status or context."
        },
        "error": {
          "$ref": "#/definitions/commonError",
          "description": "Optional error information if the request failed."
        }
      }
    },
    "commonLimitOffsetPagination": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "description": "Number of rows to return per page."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "description": "Number of rows to skip before starting to collect the result set."
        }
      }
    },
    "commonPaginatedResponse": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64",
          "description": "The total number of transactions available."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "description": "The starting position of the current page of results, starting from 0."
        },
        "hasPrevious": {
          "type": "boolean",
          "description": "A boolean value (True/False) indicating whether there's a previous page of results. False if the current page is the first page."
        },
        "hasNext": {
          "type": "boolean",
          "description": "A boolean value indicating whether there's a next page of results."
        }
      },
      "description": "This section provides information about how the results are divided into pages."
    },
    "commonPlatformConfig": {
      "type": "object",
      "properties": {
        "container": {
          "type": "string",
          "example": "python:latest",
          "description": "Container image identifier."
        },
        "privateImage": {
          "type": "boolean",
          "description": "Indicates if the container image is from a private registry."
        },
        "username": {
          "type": "string",
          "description": "Username for accessing a private container registry (if applicable)."
        },
        "token": {
          "type": "string",
          "description": "Authentication token for accessing a private container registry (if applicable)."
        },
        "secrets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of secret names to be injected into the container as environment variables."
        }
      },
      "title": "PlatformConfig represents configuration for a platform"
    },
    "commonSelectionList": {
      "type": "object",
      "properties": {
        "blacklist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "whitelist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "commonVersion": {
      "type": "object",
      "properties": {
        "major": {
          "type": "integer",
          "format": "int64",
          "example": 1
        },
        "minor": {
          "type": "integer",
          "format": "int64",
          "example": 0
        },
        "tag": {
          "type": "string",
          "example": 0
        }
      },
      "description": "A semantic version for managing updates."
    },
    "customerGetAllJobsRequest": {
      "type": "object",
      "properties": {
        "pagination": {
          "$ref": "#/definitions/commonLimitOffsetPagination"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/commonFilter"
          }
        },
        "orderBy": {
          "type": "string"
        }
      }
    },
    "customerJobsRunningTasksRequest": {
      "type": "object",
      "example": {
        "jobsIds": [
          "a5189ec6-6658-49e6-9960-99ed15b63f4d",
          "b1234abc-1234-5678-9101-abcdef123456"
        ]
      },
      "properties": {
        "jobsIds": {
          "type": "array",
          "example": [
            "a5189ec6-6658-49e6-9960-99ed15b63f4d",
            "b1234abc-1234-5678-9101-abcdef123456"
          ],
          "items": {
            "type": "string"
          },
          "title": "The id(s) of the job(s) you want to query"
        }
      },
      "description": "Get the running tasks for the provided jobs.",
      "required": [
        "jobsIds"
      ]
    },
    "customerJobsRunningTasksResponse": {
      "type": "object",
      "properties": {
        "jobsRunningTasks": {
          "type": "object",
          "example": {
            "a5189ec6-6658-49e6-9960-99ed15b63f4d": 2,
            "b1234abc-1234-5678-9101-abcdef123456": 1
          },
          "additionalProperties": {
            "type": "string",
            "format": "uint64"
          },
          "title": "The number of running tasks for the provided jobs"
        }
      }
    },
    "data_sourceDataSource": {
      "type": "object",
      "properties": {
        "dataSourceDescriptor": {
          "type": "string",
          "example": "s3",
          "description": "Data source selector."
        },
        "params": {
          "$ref": "#/definitions/protobufAny",
          "description": "Data source parameters."
        }
      },
      "description": "The data source object specifying configurations for inputs and outputs. Please refer to the dedicated guide for detailed instructions."
    },
    "deviceDevice": {
      "type": "object",
      "properties": {
        "deviceId": {
          "type": "string",
          "title": "Unique ID in ByteNite database"
        },
        "deviceName": {
          "type": "string",
          "title": "Human readable device name"
        },
        "ownerId": {
          "type": "string",
          "title": "Owner's user ID in ByteNite database"
        },
        "platforms": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Computing platforms supported"
        },
        "cpuCores": {
          "type": "integer",
          "format": "int32",
          "title": "Virtual cores count"
        },
        "trusted": {
          "type": "boolean",
          "title": "Indicates if the device is trusted (e.g. verified by ByteNite)"
        },
        "totalRam": {
          "type": "string",
          "format": "int64",
          "title": "RAM available for apps (In GB)"
        },
        "freeStorage": {
          "type": "string",
          "format": "int64",
          "title": "Persistent storage capacity usable for apps data"
        },
        "deviceManufacturer": {
          "type": "string",
          "title": "Device manufacturer name"
        },
        "deviceModel": {
          "type": "string",
          "title": "Device model name"
        },
        "manufacturerDeviceId": {
          "type": "string",
          "title": "Unique ID provided by manufacturer"
        },
        "extraParams": {
          "type": "object",
          "description": "Extra parameters for the device, e.g. GPU info, battery status, etc."
        },
        "gpuNameOfficial": {
          "type": "string",
          "title": "GPU model"
        },
        "osFamily": {
          "type": "string",
          "title": "Operating system type"
        },
        "osName": {
          "type": "string",
          "title": "Operating system human readable version"
        },
        "osVersion": {
          "type": "string",
          "title": "Operating system full version"
        },
        "publicKey": {
          "type": "string",
          "format": "byte",
          "title": "Device public key used for signatures and RPCs"
        },
        "runnerState": {
          "$ref": "#/definitions/deviceRunnerState",
          "title": "Current state of the ByteNite runner"
        }
      },
      "title": "This table relates to bytenite worker devices (device and os information, device capabilities, etc.)"
    },
    "deviceRunnerState": {
      "type": "string",
      "enum": [
        "RUNNER_STATE_UNKNOWN",
        "RUNNER_STATE_STOPPED",
        "RUNNER_STATE_RUNNING",
        "RUNNER_STATE_BUSY",
        "RUNNER_STATE_BACKGROUND",
        "RUNNER_STATE_BLACKLISTED",
        "RUNNER_STATE_CLOSED",
        "RUNNER_STATE_ERROR"
      ],
      "default": "RUNNER_STATE_UNKNOWN"
    },
    "engineEngine": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "title": "Unique UUID identifier for the engine"
        },
        "name": {
          "type": "string",
          "title": "Name of the engine"
        },
        "version": {
          "type": "string",
          "title": "Version string (e.g. \"1.2\")"
        },
        "owner": {
          "type": "string",
          "title": "Owner identifier"
        },
        "type": {
          "type": "string",
          "title": "Optional type of engine (e.g. \"partitioner\", \"assembler\")"
        },
        "status": {
          "type": "string",
          "title": "Status of the engine (e.g. \"inactive\", \"active\")"
        },
        "description": {
          "type": "string",
          "title": "Description of the engine"
        },
        "hash": {
          "type": "string",
          "title": "Optional content hash for engine integrity validation"
        },
        "link": {
          "type": "string",
          "title": "Link to download or access the engine"
        },
        "entrypoint": {
          "type": "string",
          "title": "Entrypoint file or script (default: \"main.py\")"
        },
        "revision": {
          "type": "integer",
          "format": "int32",
          "title": "Revision number for update tracking"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp of creation (ISO 8601 format)",
          "readOnly": true
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp of last update (ISO 8601 format)",
          "readOnly": true
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp of soft deletion, if applicable",
          "readOnly": true
        },
        "platform": {
          "type": "string",
          "description": "Platform identifier where the engine runs."
        },
        "platformConfig": {
          "$ref": "#/definitions/commonPlatformConfig",
          "title": "Configuration specific to the platform"
        },
        "deviceRequirements": {
          "$ref": "#/definitions/commonDeviceRequirements",
          "title": "Minimum hardware requirements"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Indicates whether the engine is publicly accessible."
        },
        "userName": {
          "type": "string",
          "example": "alice",
          "description": "User name of the engine owner."
        }
      },
      "title": "Represents custom partitioner and assembler engine and its metadata"
    },
    "jobAppParams": {
      "type": "object",
      "properties": {
        "partitioner": {
          "type": "object",
          "description": "Sets parameters for the partitioning engine."
        },
        "assembler": {
          "type": "object",
          "description": "Sets parameters for the assembling engine."
        },
        "app": {
          "type": "object",
          "description": "Sets parameters for the application.."
        }
      }
    },
    "jobJob": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "title": "Unique id for the job",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "title": "Human readable name"
        },
        "config": {
          "$ref": "#/definitions/jobJobConfig",
          "title": "Job specific parameters"
        },
        "chunksCount": {
          "type": "string",
          "format": "int64",
          "title": "Number of chunks created for this job"
        },
        "startAt": {
          "type": "string",
          "format": "date-time",
          "title": "When the job should be run (0 for immediate start)"
        },
        "owner": {
          "type": "string",
          "title": "User ID of the job owner, typically the user who submitted the job"
        },
        "submittedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Submission date/time for the job request",
          "readOnly": true
        },
        "startedAt": {
          "type": "string",
          "format": "date-time",
          "title": "date/time of the first chunk upload",
          "readOnly": true
        },
        "endedAt": {
          "type": "string",
          "format": "date-time",
          "title": "date/time of completion/failure",
          "readOnly": true
        },
        "regions": {
          "$ref": "#/definitions/commonSelectionList",
          "title": "Region to consider (or to exclude) for device selection"
        },
        "state": {
          "$ref": "#/definitions/jobJobState",
          "title": "Current job state"
        },
        "dataSource": {
          "$ref": "#/definitions/data_sourceDataSource",
          "title": "Input data source"
        },
        "params": {
          "$ref": "#/definitions/jobAppParams",
          "title": "A JSON object"
        },
        "dataDestination": {
          "$ref": "#/definitions/data_sourceDataSource",
          "title": "Output data destination"
        },
        "duration": {
          "type": "number",
          "format": "double",
          "title": "Job duration in seconds",
          "readOnly": true
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Delete date/time for the job request",
          "readOnly": true
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "title": "Creation time of the job",
          "readOnly": true
        },
        "paymentAmount": {
          "type": "number",
          "format": "double",
          "title": "The paid job price in ByteChips",
          "readOnly": true
        },
        "numUnitsEstimation": {
          "type": "string",
          "format": "int64",
          "description": "Number of units (e.g. minutes of video or images), if available.",
          "readOnly": true
        },
        "numChunks": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "errorMessage": {
          "type": "string",
          "title": "A short message explaining the reason for job failure",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "title": "description of this job"
        },
        "paymentId": {
          "type": "string",
          "title": "The ID of the ByteChip expenditure (payment) occurred for this job"
        },
        "stateTimestamps": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "format": "date-time"
          },
          "title": "Timestamps for each state"
        },
        "templateInfo": {
          "$ref": "#/definitions/jobJobTemplate",
          "title": "Information about the job template used"
        },
        "unitaryCostEstimation": {
          "type": "string",
          "format": "int64",
          "description": "Price estimate per unit (e.g. minute of video or image), if available."
        },
        "estimationFormatting": {
          "type": "string",
          "description": "Format of the estimate (e.g. ByteChips/minute), if available."
        },
        "isSystemError": {
          "type": "boolean",
          "title": "Indicates if the job is a system error (i.e on ByteNite side)"
        },
        "isTestJob": {
          "type": "boolean",
          "title": "Indicates if the job is a test job (i.e. created for testing purposes)"
        },
        "results": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Results of the job, if available"
        },
        "partitionerInfo": {
          "$ref": "#/definitions/engineEngine",
          "title": "Information about the partitioner engine used for this job"
        },
        "assemblerInfo": {
          "$ref": "#/definitions/engineEngine",
          "title": "Information about the assembler engine used for this job"
        },
        "appInfo": {
          "$ref": "#/definitions/appApp",
          "title": "Information about the app used for this job"
        }
      },
      "description": "A job is a billable computational unit. \nA job is associated with multiple entities, namely a user, a template, and a payment, \nand contains several configuration fields spanning from data source to application parameters."
    },
    "jobJobConfig": {
      "type": "object",
      "properties": {
        "taskTimeout": {
          "type": "integer",
          "format": "int64",
          "title": "task timeout in seconds"
        },
        "jobTimeout": {
          "type": "integer",
          "format": "int64",
          "title": "job timeout in seconds"
        },
        "isTestJob": {
          "type": "boolean",
          "title": "'true' if this job is a test job"
        },
        "maxTaskRetries": {
          "type": "integer",
          "format": "int64",
          "title": "Maximum number of retries for each task in the job"
        }
      }
    },
    "jobJobState": {
      "type": "string",
      "enum": [
        "JOB_STATE_NEW",
        "JOB_STATE_STARTED",
        "JOB_STATE_UPLOADING",
        "JOB_STATE_PARTITIONING",
        "JOB_STATE_PARTITIONED",
        "JOB_STATE_TASKS_COMPLETED",
        "JOB_STATE_MERGING",
        "JOB_STATE_MERGED",
        "JOB_STATE_DOWNLOADING",
        "JOB_STATE_COMPLETE",
        "JOB_STATE_FAILED"
      ],
      "default": "JOB_STATE_NEW",
      "description": " - JOB_STATE_NEW: The job has been created, and the user may still be updating its data sources and parameters.\n - JOB_STATE_STARTED: The job has begun execution after passing validation checks, including data sources, parameters, account balance, and grace period.\n - JOB_STATE_UPLOADING: The job has been retrieved from the partitioner’s job queue and is being sent to the appropriate partitioning engine. Reaching this state confirms the presence of a suitable partitioning engine.\n - JOB_STATE_PARTITIONING: The partitioning engine processes the job and generates multiple chunks, preparing them for further execution.\n - JOB_STATE_PARTITIONED: The partitioning engine has successfully divided the job into chunks, forwarding them to the feeder for distribution. Workers begin fetching and processing these chunks.\n - JOB_STATE_TASKS_COMPLETED: All assigned tasks have been successfully processed by the task runner\n - JOB_STATE_MERGING: The assembler engine retrieves and merges the processed data.\n - JOB_STATE_MERGED: The assembler engine has successfully completed merging the processed chunks. The final result is now prepared for uploading to the specified destination.\n - JOB_STATE_DOWNLOADING: The final output is being saved to the designated data destination.\n - JOB_STATE_COMPLETE: The job lifecycle is successfully completed, and the result has been uploaded to the specified destination.\n - JOB_STATE_FAILED: The job has encountered an error and failed to produce output."
    },
    "jobJobTemplate": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "title": "Unique ID for this Job Template (primary key)"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "title": "Creation time of the job template"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the job template was last updated"
        },
        "isPublic": {
          "type": "boolean",
          "title": "Indicates if this Job Template is public"
        },
        "partitioner": {
          "type": "string",
          "title": "How data is partitioned"
        },
        "assembler": {
          "type": "string",
          "title": "How data is assembled/merged"
        },
        "dataSource": {
          "$ref": "#/definitions/data_sourceDataSource",
          "title": "Input data source"
        },
        "dataDestination": {
          "$ref": "#/definitions/data_sourceDataSource",
          "title": "Output data destination"
        },
        "params": {
          "$ref": "#/definitions/jobParams",
          "title": "Parameters for the job"
        },
        "config": {
          "$ref": "#/definitions/jobJobConfig",
          "title": "Configuration for the job"
        },
        "userName": {
          "type": "string",
          "example": "alice",
          "description": "User name of the template owner."
        },
        "description": {
          "type": "string",
          "title": "Description of this Job Template"
        },
        "app": {
          "type": "string",
          "title": "The application associated with this Job Template"
        },
        "owner": {
          "type": "string",
          "title": "Owner of this Job Template (primary key)"
        }
      },
      "description": "The templates specific to each app are stored in this table."
    },
    "jobParams": {
      "type": "object",
      "properties": {
        "partitioner": {
          "type": "object"
        },
        "app": {
          "type": "object"
        },
        "assembler": {
          "type": "object"
        }
      },
      "title": "Parameters holds the parameters for the job"
    },
    "jobsCreateJobRequest": {
      "type": "object",
      "example": {
        "name": "My job",
        "templateId": "video-transcoding@v0.2"
      },
      "properties": {
        "name": {
          "type": "string",
          "description": "Mnemonic name for the job."
        },
        "templateId": {
          "type": "string",
          "description": "Identifier of the application template used for this job."
        },
        "description": {
          "type": "string",
          "description": "Textual description of the job."
        },
        "dataSource": {
          "$ref": "#/definitions/data_sourceDataSource",
          "description": "Configuration for the data source providing input data to the job."
        },
        "dataDestination": {
          "$ref": "#/definitions/data_sourceDataSource",
          "description": "Configuration for the data destination where job output will be sent."
        },
        "params": {
          "$ref": "#/definitions/jobAppParams",
          "description": "Job-specific configuration parameters for the distributed application."
        },
        "config": {
          "$ref": "#/definitions/jobJobConfig",
          "description": "Job execution preferences."
        },
        "partitioner": {
          "type": "string",
          "description": "Partitioner engine used in the job. It supports versioning through the tag. eg: fanout@1.0"
        },
        "assembler": {
          "type": "string",
          "description": "Assembler engine used in the job. It supports versioning through the tag. eg: assembler@1.0"
        },
        "app": {
          "type": "string",
          "description": "Application associated with the job. It supports versioning through the tag. eg: myapp@1.0"
        }
      }
    },
    "jobsDataSourceInfoRequest": {
      "type": "object",
      "properties": {
        "dataSource": {
          "$ref": "#/definitions/data_sourceDataSource"
        },
        "listFiles": {
          "type": "boolean"
        }
      }
    },
    "jobsDataSourceInfoResponse": {
      "type": "object",
      "properties": {
        "filename": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "size": {
          "type": "string",
          "format": "uint64"
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "tempUrl": {
          "type": "string"
        },
        "files": {
          "$ref": "#/definitions/jobsDirectory"
        }
      }
    },
    "jobsDataSourceParams": {
      "type": "object",
      "properties": {
        "dataSource": {
          "$ref": "#/definitions/data_sourceDataSource"
        },
        "dataDestination": {
          "$ref": "#/definitions/data_sourceDataSource"
        }
      }
    },
    "jobsDirectory": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "directories": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jobsDirectory"
          }
        },
        "files": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jobsFile"
          }
        }
      }
    },
    "jobsFile": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "size": {
          "type": "string",
          "format": "uint64"
        }
      }
    },
    "jobsJobResult": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "link": {
          "type": "string"
        }
      }
    },
    "jobsJobResultsResponse": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jobsJobResult"
          }
        }
      }
    },
    "jobsJobWithTemplateResponse": {
      "type": "object",
      "properties": {
        "job": {
          "$ref": "#/definitions/jobJob"
        },
        "templateInfo": {
          "$ref": "#/definitions/jobJobTemplate",
          "title": "Job template information"
        }
      }
    },
    "jobsJobsResponse": {
      "type": "object",
      "properties": {
        "pagination": {
          "$ref": "#/definitions/commonPaginatedResponse"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jobJob"
          }
        }
      }
    },
    "logsFetchLogsResponse": {
      "type": "object",
      "properties": {
        "partitioner": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/logsLogInstance"
          }
        },
        "assembler": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/logsLogInstance"
          }
        },
        "taskrunner": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/logsLogInstances"
          }
        }
      }
    },
    "logsLogInstance": {
      "type": "object",
      "properties": {
        "log": {
          "type": "string",
          "example": "sample-log-message from loki",
          "title": "The log message, this is the actual log message received from the loki server"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "title": "The timestamp of the log message"
        },
        "level": {
          "$ref": "#/definitions/logsLogLevel",
          "example": "INFO",
          "title": "The log level of the log message"
        },
        "container": {
          "type": "string",
          "example": "main",
          "title": "Container name from which the log message was generated"
        }
      }
    },
    "logsLogInstances": {
      "type": "object",
      "properties": {
        "logs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/logsLogInstance"
          }
        }
      }
    },
    "logsLogLevel": {
      "type": "string",
      "enum": [
        "UNKNOWN",
        "TRACE",
        "DEBUG",
        "INFO",
        "WARN",
        "ERROR",
        "FATAL",
        "PANIC"
      ],
      "default": "UNKNOWN"
    },
    "logsLogService": {
      "type": "string",
      "enum": [
        "PARTITIONER",
        "ASSEMBLER",
        "TASKRUNNER"
      ],
      "default": "PARTITIONER"
    },
    "logsStreamLogsResponse": {
      "type": "object",
      "properties": {
        "log": {
          "type": "string",
          "example": "sample-log-message from loki",
          "title": "The log message, this is the actual log message received from the loki server"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "title": "The timestamp of the log message"
        },
        "level": {
          "$ref": "#/definitions/logsLogLevel",
          "example": "INFO",
          "title": "The log level of the log message"
        },
        "container": {
          "type": "string",
          "example": "main",
          "title": "Container name from which the log message was generated"
        },
        "service": {
          "$ref": "#/definitions/logsLogService",
          "example": "PARTITIONER",
          "title": "The service from which the log message was generated"
        },
        "taskId": {
          "type": "string",
          "example": "a5189ec6-6658-49e6-9960-99ed15b63f4d",
          "title": "The task id for which the log message was generated"
        }
      }
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "protobufNullValue": {
      "type": "string",
      "enum": [
        "NULL_VALUE"
      ],
      "default": "NULL_VALUE",
      "description": "'NullValue' is a singleton enumeration to represent the null value for the\n'Value' type union.\n\n The JSON representation for 'NullValue' is JSON 'null'.\n\n - NULL_VALUE: Null value."
    },
    "rpcStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/protobufAny"
          }
        }
      }
    },
    "taskNetworkStats": {
      "type": "object",
      "properties": {
        "rxBytes": {
          "type": "string",
          "format": "uint64",
          "title": "Received bytes"
        },
        "rxPackets": {
          "type": "string",
          "format": "uint64",
          "title": "Received packets"
        },
        "rxErrors": {
          "type": "string",
          "format": "uint64",
          "title": "Errors in received packets"
        },
        "rxDropped": {
          "type": "string",
          "format": "uint64",
          "title": "Dropped received packets"
        },
        "txBytes": {
          "type": "string",
          "format": "uint64",
          "title": "Transmitted bytes"
        },
        "txPackets": {
          "type": "string",
          "format": "uint64",
          "title": "Transmitted packets"
        },
        "txErrors": {
          "type": "string",
          "format": "uint64",
          "title": "Errors in transmitted packets"
        },
        "txDropped": {
          "type": "string",
          "format": "uint64",
          "title": "Dropped transmitted packets"
        }
      },
      "title": "Define the stats message for docket stats Networks"
    },
    "taskTask": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "title": "UUID of this individual task (primary key)"
        },
        "state": {
          "$ref": "#/definitions/taskTaskStates",
          "title": "Internal numeric representation of task state"
        },
        "stateChangedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the task state was last changed"
        },
        "templateId": {
          "type": "string",
          "title": "Identifier of the execution template used"
        },
        "chunkNumber": {
          "type": "string",
          "format": "uint64",
          "description": "Index of the task chunk; 0 indicates the first or only chunk."
        },
        "jobId": {
          "type": "string",
          "title": "UUID of the parent job this task belongs to"
        },
        "appId": {
          "type": "string",
          "title": "UUID of the app that triggered the task"
        },
        "parentId": {
          "type": "string",
          "title": "UUID of the parent task if this is a subtask; null if it's a top-level task"
        },
        "error": {
          "type": "object",
          "title": "Error message if the task failed; null if it completed successfully or is still running"
        },
        "runnerLog": {
          "type": "object",
          "title": "Log output from the task runner, typically for debugging purposes"
        },
        "startedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when execution actually began"
        },
        "completedAt": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the task finished execution"
        },
        "abortedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the task was aborted (if applicable). null if it completed or is still running."
        },
        "timeout": {
          "type": "string",
          "format": "int64",
          "title": "Max time (in seconds) allowed for task execution before auto-abort"
        },
        "assignedTo": {
          "type": "string",
          "title": "UUIDs of the devices this task is assigned to"
        },
        "appParams": {
          "type": "object",
          "title": "Key-value pairs passed from the app"
        },
        "metadata": {
          "$ref": "#/definitions/protobufAny",
          "title": "Metadata about the task"
        },
        "inputData": {
          "type": "string",
          "format": "byte",
          "title": "Input data"
        },
        "outputData": {
          "type": "string",
          "format": "byte",
          "title": "Processed output data"
        },
        "inputLink": {
          "type": "string",
          "title": "Presigned URL to download input data for the task (usually temporary link)"
        },
        "chunkId": {
          "type": "string",
          "title": "Identifier of the task chunk"
        },
        "price": {
          "type": "number",
          "format": "double",
          "title": "Cost incurred for this task (as a stringified float)"
        },
        "containerStats": {
          "$ref": "#/definitions/taskTaskContainerStats",
          "title": "Container performance metrics during the task run"
        },
        "stateTimestamps": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "format": "date-time"
          },
          "title": "Timestamps for each state"
        },
        "owner": {
          "type": "string",
          "title": "Owner of the task, usually the user who initiated the job"
        }
      },
      "description": "This table details the tasks being run under a job, with other information such as its state, chunk number, and assigned device."
    },
    "taskTaskContainerStats": {
      "type": "object",
      "properties": {
        "read": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the stats were read"
        },
        "cpuStatsCpuTotalUsage": {
          "type": "string",
          "format": "uint64",
          "description": "Cumulative CPU usage of the container in nanoseconds."
        },
        "cpuStatsSystemCpuUsage": {
          "type": "string",
          "format": "uint64",
          "description": "Cumulative System CPU usage in nanoseconds."
        },
        "precpuStatsCpuTotalUsage": {
          "type": "string",
          "format": "uint64",
          "description": "CPU usage before the latest reading."
        },
        "precpuStatsSystemCpuUsage": {
          "type": "string",
          "format": "uint64",
          "description": "System CPU usage before the latest reading."
        },
        "onlineCpus": {
          "type": "integer",
          "format": "int64",
          "description": "Number of CPUs assigned to the container."
        },
        "memoryStatsUsage": {
          "type": "string",
          "format": "uint64",
          "description": "RAM usage in bytes."
        },
        "networks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/taskNetworkStats"
          },
          "title": "Network stats per interface (e.g., eth0)"
        },
        "containerTime": {
          "type": "string",
          "description": "Total runtime duration of the container."
        }
      },
      "title": "Container performance metrics during the task run"
    },
    "taskTaskInfoResponse": {
      "type": "object",
      "properties": {
        "task": {
          "$ref": "#/definitions/taskTask"
        },
        "deviceInfo": {
          "$ref": "#/definitions/deviceDevice"
        }
      }
    },
    "taskTaskStates": {
      "type": "string",
      "enum": [
        "TASK_STATE_UNKNOWN",
        "TASK_STATE_SCHEDULED",
        "TASK_STATE_QUEUED",
        "TASK_STATE_ASSIGNED",
        "TASK_STATE_RECEIVED",
        "TASK_STATE_RUNNING",
        "TASK_STATE_PAUSED",
        "TASK_STATE_STOPPED",
        "TASK_STATE_COMPLETED",
        "TASK_STATE_FAILED"
      ],
      "default": "TASK_STATE_UNKNOWN",
      "description": "- TASK_STATE_SCHEDULED: every state with the scheduled bit is a candidate for reassignment\n - TASK_STATE_QUEUED: the queued bit is flagged when a task is queued but not assigned (could be reassigned)\n - TASK_STATE_ASSIGNED: the assignment bit is flagged when a task is associated with a device\n - TASK_STATE_RECEIVED: the received state is always flagged could be considered as successfully received by the device\n - TASK_STATE_RUNNING: every task with running bit flagged is using device resources and should not be reassigned or taken by more than n (n=replication factor) devices\n - TASK_STATE_PAUSED: running bit + stop bit = pause\n - TASK_STATE_STOPPED: every task with stop bit flagged and running bit not flagged could be considered stopped and is a candidate for reassignment\n - TASK_STATE_COMPLETED: every task with \"done\" bit flagged and fault bit not flagged could be considered successfully completed (0100 xx00)\n - TASK_STATE_FAILED: every state with fault bit flagged could be considered an error state",
      "title": "0b 0123 4567 (big-endian bit ordering)\n---------------------\n| bit | meaning     |\n|:---:|-------------|\n|  0  | (Reserved)  |\n|  1  | Done        |\n|  2  | Stopped     |\n|  3  | Running     |\n|  4  | Received    |\n|  5  | Assigned    |\n|  6  | Scheduled   |\n|  7  | Fault state |\n---------------------"
    },
    "taskTasksResponse": {
      "type": "object",
      "properties": {
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/taskTask"
          }
        },
        "pagination": {
          "$ref": "#/definitions/commonPaginatedResponse"
        }
      }
    }
  },
  "securityDefinitions": {
    "ApiKeyAuth": {
      "type": "apiKey",
      "description": "Your ByteNite access token",
      "name": "Authorization",
      "in": "header"
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}
