blob: 3f7a3287d2f1d174fd0a57d8e3a8a7209bdc14e3 [file] [log] [blame]
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/userinfo.email": {
"description": "https://www.googleapis.com/auth/userinfo.email"
}
}
}
},
"basePath": "/_ah/api/swarming/v1",
"baseUrl": "https://chromium-swarm.appspot.com/_ah/api/swarming/v1",
"batchPath": "batch",
"description": "API to interact with the Swarming service. Permits to create, view and cancel tasks, query tasks and bots",
"discoveryVersion": "v1",
"icons": {
"x16": "https://www.google.com/images/icons/product/search-16.gif",
"x32": "https://www.google.com/images/icons/product/search-32.gif"
},
"id": "swarming:v1",
"kind": "discovery#restDescription",
"name": "swarming",
"parameters": {
"alt": {
"default": "json",
"description": "Data format for the response.",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location": "query",
"type": "string"
},
"userIp": {
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"bot": {
"methods": {
"delete": {
"description": "Deletes the bot corresponding to a provided bot_id. At that point, the bot will not appears in the list of bots but it is still possible to get information about the bot with its bot id is known, as historical data is not deleted. It is meant to remove from the DB the presence of a bot that was retired, e.g. the VM was shut down already. Use 'terminate' instead of the bot is still alive.",
"httpMethod": "POST",
"id": "swarming.bot.delete",
"parameterOrder": [
"bot_id"
],
"parameters": {
"bot_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "bot/{bot_id}/delete",
"response": {
"$ref": "SwarmingRpcsDeletedResponse"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"events": {
"description": "Returns events that happened on a bot.",
"httpMethod": "GET",
"id": "swarming.bot.events",
"parameterOrder": [
"bot_id"
],
"parameters": {
"bot_id": {
"location": "path",
"required": true,
"type": "string"
},
"cursor": {
"location": "query",
"type": "string"
},
"end": {
"format": "double",
"location": "query",
"type": "number"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
},
"start": {
"format": "double",
"location": "query",
"type": "number"
}
},
"path": "bot/{bot_id}/events",
"response": {
"$ref": "SwarmingRpcsBotEvents"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"get": {
"description": "Returns information about a known bot. This includes its state and dimensions, and if it is currently running a task.",
"httpMethod": "GET",
"id": "swarming.bot.get",
"parameterOrder": [
"bot_id"
],
"parameters": {
"bot_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "bot/{bot_id}/get",
"response": {
"$ref": "SwarmingRpcsBotInfo"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"tasks": {
"description": "Lists a given bot's tasks within the specified date range. In this case, the tasks are effectively TaskRunResult since it's individual task tries sent to this specific bot. It is impossible to search by both tags and bot id. If there's a need, TaskRunResult.tags will be added (via a copy from TaskRequest.tags).",
"httpMethod": "GET",
"id": "swarming.bot.tasks",
"parameterOrder": [
"bot_id"
],
"parameters": {
"bot_id": {
"location": "path",
"required": true,
"type": "string"
},
"cursor": {
"location": "query",
"type": "string"
},
"end": {
"format": "double",
"location": "query",
"type": "number"
},
"include_performance_stats": {
"location": "query",
"type": "boolean"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
},
"sort": {
"default": "CREATED_TS",
"enum": [
"ABANDONED_TS",
"COMPLETED_TS",
"CREATED_TS",
"MODIFIED_TS"
],
"enumDescriptions": [
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"start": {
"format": "double",
"location": "query",
"type": "number"
},
"state": {
"default": "ALL",
"enum": [
"ALL",
"BOT_DIED",
"CANCELED",
"COMPLETED",
"COMPLETED_FAILURE",
"COMPLETED_SUCCESS",
"DEDUPED",
"EXPIRED",
"KILLED",
"NO_RESOURCE",
"PENDING",
"PENDING_RUNNING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"location": "query",
"type": "string"
}
},
"path": "bot/{bot_id}/tasks",
"response": {
"$ref": "SwarmingRpcsBotTasks"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"terminate": {
"description": "Asks a bot to terminate itself gracefully. The bot will stay in the DB, use 'delete' to remove it from the DB afterward. This request returns a pseudo-taskid that can be waited for to wait for the bot to turn down. This command is particularly useful when a privileged user needs to safely debug a machine specific issue. The user can trigger a terminate for one of the bot exhibiting the issue, wait for the pseudo-task to run then access the machine with the guarantee that the bot is not running anymore.",
"httpMethod": "POST",
"id": "swarming.bot.terminate",
"parameterOrder": [
"bot_id"
],
"parameters": {
"bot_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "bot/{bot_id}/terminate",
"response": {
"$ref": "SwarmingRpcsTerminateResponse"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
},
"bots": {
"methods": {
"count": {
"description": "Counts number of bots with given dimensions.",
"httpMethod": "GET",
"id": "swarming.bots.count",
"parameters": {
"dimensions": {
"location": "query",
"repeated": true,
"type": "string"
}
},
"path": "bots/count",
"response": {
"$ref": "SwarmingRpcsBotsCount"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"dimensions": {
"description": "Returns the cached set of dimensions currently in use in the fleet.",
"httpMethod": "GET",
"id": "swarming.bots.dimensions",
"path": "bots/dimensions",
"response": {
"$ref": "SwarmingRpcsBotsDimensions"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"list": {
"description": "Provides list of known bots. Deleted bots will not be listed.",
"httpMethod": "GET",
"id": "swarming.bots.list",
"parameters": {
"cursor": {
"location": "query",
"type": "string"
},
"dimensions": {
"location": "query",
"repeated": true,
"type": "string"
},
"in_maintenance": {
"default": "NONE",
"enum": [
"FALSE",
"NONE",
"TRUE"
],
"enumDescriptions": [
"",
"",
""
],
"location": "query",
"type": "string"
},
"is_busy": {
"default": "NONE",
"enum": [
"FALSE",
"NONE",
"TRUE"
],
"enumDescriptions": [
"",
"",
""
],
"location": "query",
"type": "string"
},
"is_dead": {
"default": "NONE",
"enum": [
"FALSE",
"NONE",
"TRUE"
],
"enumDescriptions": [
"",
"",
""
],
"location": "query",
"type": "string"
},
"is_mp": {
"default": "NONE",
"enum": [
"FALSE",
"NONE",
"TRUE"
],
"enumDescriptions": [
"",
"",
""
],
"location": "query",
"type": "string"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
},
"quarantined": {
"default": "NONE",
"enum": [
"FALSE",
"NONE",
"TRUE"
],
"enumDescriptions": [
"",
"",
""
],
"location": "query",
"type": "string"
}
},
"path": "bots/list",
"response": {
"$ref": "SwarmingRpcsBotList"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
},
"queues": {
"methods": {
"list": {
"httpMethod": "GET",
"id": "swarming.queues.list",
"parameters": {
"cursor": {
"location": "query",
"type": "string"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
}
},
"path": "queues/list",
"response": {
"$ref": "SwarmingRpcsTaskQueueList"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
},
"server": {
"methods": {
"details": {
"description": "Returns information about the server.",
"httpMethod": "GET",
"id": "swarming.server.details",
"path": "server/details",
"response": {
"$ref": "SwarmingRpcsServerDetails"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"get_bootstrap": {
"description": "Retrieves the current version of bootstrap.py.",
"httpMethod": "GET",
"id": "swarming.server.get_bootstrap",
"path": "server/get_bootstrap",
"response": {
"$ref": "SwarmingRpcsFileContent"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"get_bot_config": {
"description": "Retrieves the current version of bot_config.py.",
"httpMethod": "GET",
"id": "swarming.server.get_bot_config",
"path": "server/get_bot_config",
"response": {
"$ref": "SwarmingRpcsFileContent"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"permissions": {
"description": "Returns the caller's permissions.",
"httpMethod": "GET",
"id": "swarming.server.permissions",
"path": "server/permissions",
"response": {
"$ref": "SwarmingRpcsClientPermissions"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"token": {
"description": "Returns a token to bootstrap a new bot. This may seem strange to be a POST and not a GET, but it's very important to make sure GET requests are idempotent and safe to be pre-fetched; generating a token is neither of those things.",
"httpMethod": "POST",
"id": "swarming.server.token",
"path": "server/token",
"response": {
"$ref": "SwarmingRpcsBootstrapToken"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
},
"task": {
"methods": {
"cancel": {
"description": "Cancels a task. If a bot was running the task, the bot will forcibly cancel the task.",
"httpMethod": "POST",
"id": "swarming.task.cancel",
"parameterOrder": [
"task_id"
],
"parameters": {
"task_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "task/{task_id}/cancel",
"request": {
"$ref": "SwarmingRpcsTaskCancelRequest",
"parameterName": "resource"
},
"response": {
"$ref": "SwarmingRpcsCancelResponse"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"request": {
"description": "Returns the task request corresponding to a task ID.",
"httpMethod": "GET",
"id": "swarming.task.request",
"parameterOrder": [
"task_id"
],
"parameters": {
"task_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "task/{task_id}/request",
"response": {
"$ref": "SwarmingRpcsTaskRequest"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"result": {
"description": "Reports the result of the task corresponding to a task ID. It can be a 'run' ID specifying a specific retry or a 'summary' ID hidding the fact that a task may have been retried transparently, when a bot reports BOT_DIED. A summary ID ends with '0', a run ID ends with '1' or '2'.",
"httpMethod": "GET",
"id": "swarming.task.result",
"parameterOrder": [
"task_id"
],
"parameters": {
"include_performance_stats": {
"location": "query",
"type": "boolean"
},
"task_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "task/{task_id}/result",
"response": {
"$ref": "SwarmingRpcsTaskResult"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"stdout": {
"description": "Returns the output of the task corresponding to a task ID.",
"httpMethod": "GET",
"id": "swarming.task.stdout",
"parameterOrder": [
"task_id"
],
"parameters": {
"length": {
"format": "int64",
"location": "query",
"type": "string"
},
"offset": {
"format": "int64",
"location": "query",
"type": "string"
},
"task_id": {
"location": "path",
"required": true,
"type": "string"
}
},
"path": "task/{task_id}/stdout",
"response": {
"$ref": "SwarmingRpcsTaskOutput"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
},
"tasks": {
"methods": {
"cancel": {
"description": "Cancel a subset of pending tasks based on the tags. Cancellation happens asynchronously, so when this call returns, cancellations will not have completed yet.",
"httpMethod": "POST",
"id": "swarming.tasks.cancel",
"path": "tasks/cancel",
"request": {
"$ref": "SwarmingRpcsTasksCancelRequest",
"parameterName": "resource"
},
"response": {
"$ref": "SwarmingRpcsTasksCancelResponse"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"count": {
"description": "Counts number of tasks in a given state.",
"httpMethod": "GET",
"id": "swarming.tasks.count",
"parameters": {
"end": {
"format": "double",
"location": "query",
"type": "number"
},
"start": {
"format": "double",
"location": "query",
"type": "number"
},
"state": {
"default": "ALL",
"enum": [
"ALL",
"BOT_DIED",
"CANCELED",
"COMPLETED",
"COMPLETED_FAILURE",
"COMPLETED_SUCCESS",
"DEDUPED",
"EXPIRED",
"KILLED",
"NO_RESOURCE",
"PENDING",
"PENDING_RUNNING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"tags": {
"location": "query",
"repeated": true,
"type": "string"
}
},
"path": "tasks/count",
"response": {
"$ref": "SwarmingRpcsTasksCount"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"get_states": {
"description": "Returns task state for a specific set of tasks.",
"httpMethod": "GET",
"id": "swarming.tasks.get_states",
"parameters": {
"task_id": {
"location": "query",
"repeated": true,
"type": "string"
}
},
"path": "tasks/get_states",
"response": {
"$ref": "SwarmingRpcsTaskStates"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"list": {
"description": "Returns full task results based on the filters. This endpoint is significantly slower than 'count'. Use 'count' when possible. If you just want the state of tasks, use 'get_states'.",
"httpMethod": "GET",
"id": "swarming.tasks.list",
"parameters": {
"cursor": {
"location": "query",
"type": "string"
},
"end": {
"format": "double",
"location": "query",
"type": "number"
},
"include_performance_stats": {
"location": "query",
"type": "boolean"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
},
"sort": {
"default": "CREATED_TS",
"enum": [
"ABANDONED_TS",
"COMPLETED_TS",
"CREATED_TS",
"MODIFIED_TS"
],
"enumDescriptions": [
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"start": {
"format": "double",
"location": "query",
"type": "number"
},
"state": {
"default": "ALL",
"enum": [
"ALL",
"BOT_DIED",
"CANCELED",
"COMPLETED",
"COMPLETED_FAILURE",
"COMPLETED_SUCCESS",
"DEDUPED",
"EXPIRED",
"KILLED",
"NO_RESOURCE",
"PENDING",
"PENDING_RUNNING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"tags": {
"location": "query",
"repeated": true,
"type": "string"
}
},
"path": "tasks/list",
"response": {
"$ref": "SwarmingRpcsTaskList"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"new": {
"description": "Creates a new task. The task will be enqueued in the tasks list and will be executed at the earliest opportunity by a bot that has at least the dimensions as described in the task request.",
"httpMethod": "POST",
"id": "swarming.tasks.new",
"path": "tasks/new",
"request": {
"$ref": "SwarmingRpcsNewTaskRequest",
"parameterName": "resource"
},
"response": {
"$ref": "SwarmingRpcsTaskRequestMetadata"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"requests": {
"description": "Returns tasks requests based on the filters. This endpoint is slightly slower than 'list'. Use 'list' or 'count' when possible.",
"httpMethod": "GET",
"id": "swarming.tasks.requests",
"parameters": {
"cursor": {
"location": "query",
"type": "string"
},
"end": {
"format": "double",
"location": "query",
"type": "number"
},
"include_performance_stats": {
"location": "query",
"type": "boolean"
},
"limit": {
"default": "200",
"format": "int64",
"location": "query",
"type": "string"
},
"sort": {
"default": "CREATED_TS",
"enum": [
"ABANDONED_TS",
"COMPLETED_TS",
"CREATED_TS",
"MODIFIED_TS"
],
"enumDescriptions": [
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"start": {
"format": "double",
"location": "query",
"type": "number"
},
"state": {
"default": "ALL",
"enum": [
"ALL",
"BOT_DIED",
"CANCELED",
"COMPLETED",
"COMPLETED_FAILURE",
"COMPLETED_SUCCESS",
"DEDUPED",
"EXPIRED",
"KILLED",
"NO_RESOURCE",
"PENDING",
"PENDING_RUNNING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"location": "query",
"type": "string"
},
"tags": {
"location": "query",
"repeated": true,
"type": "string"
}
},
"path": "tasks/requests",
"response": {
"$ref": "SwarmingRpcsTaskRequests"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
},
"tags": {
"description": "Returns the cached set of tags currently seen in the fleet.",
"httpMethod": "GET",
"id": "swarming.tasks.tags",
"path": "tasks/tags",
"response": {
"$ref": "SwarmingRpcsTasksTags"
},
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
}
}
},
"rootUrl": "https://chromium-swarm.appspot.com/_ah/api/",
"schemas": {
"SwarmingRpcsBootstrapToken": {
"description": "Returns a token to bootstrap a new bot.",
"id": "SwarmingRpcsBootstrapToken",
"properties": {
"bootstrap_token": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotEvent": {
"id": "SwarmingRpcsBotEvent",
"properties": {
"authenticated_as": {
"type": "string"
},
"dimensions": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"event_type": {
"type": "string"
},
"external_ip": {
"type": "string"
},
"maintenance_msg": {
"type": "string"
},
"message": {
"type": "string"
},
"quarantined": {
"type": "boolean"
},
"state": {
"type": "string"
},
"task_id": {
"type": "string"
},
"ts": {
"format": "date-time",
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotEvents": {
"id": "SwarmingRpcsBotEvents",
"properties": {
"cursor": {
"type": "string"
},
"items": {
"items": {
"$ref": "SwarmingRpcsBotEvent"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotInfo": {
"description": "Representation of the BotInfo ndb model.",
"id": "SwarmingRpcsBotInfo",
"properties": {
"authenticated_as": {
"type": "string"
},
"bot_id": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"dimensions": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"external_ip": {
"type": "string"
},
"first_seen_ts": {
"format": "date-time",
"type": "string"
},
"is_dead": {
"type": "boolean"
},
"last_seen_ts": {
"format": "date-time",
"type": "string"
},
"lease_expiration_ts": {
"format": "date-time",
"type": "string"
},
"lease_id": {
"type": "string"
},
"leased_indefinitely": {
"type": "boolean"
},
"machine_lease": {
"type": "string"
},
"machine_type": {
"type": "string"
},
"maintenance_msg": {
"type": "string"
},
"quarantined": {
"type": "boolean"
},
"state": {
"type": "string"
},
"task_id": {
"type": "string"
},
"task_name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotList": {
"description": "Wraps a list of BotInfo.",
"id": "SwarmingRpcsBotList",
"properties": {
"cursor": {
"type": "string"
},
"death_timeout": {
"format": "int64",
"type": "string"
},
"items": {
"description": "Representation of the BotInfo ndb model.",
"items": {
"$ref": "SwarmingRpcsBotInfo"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotTasks": {
"id": "SwarmingRpcsBotTasks",
"properties": {
"cursor": {
"type": "string"
},
"items": {
"description": "Representation of the TaskResultSummary or TaskRunResult ndb model.",
"items": {
"$ref": "SwarmingRpcsTaskResult"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotsCount": {
"description": "Returns the count, as requested.",
"id": "SwarmingRpcsBotsCount",
"properties": {
"busy": {
"format": "int64",
"type": "string"
},
"count": {
"format": "int64",
"type": "string"
},
"dead": {
"format": "int64",
"type": "string"
},
"maintenance": {
"format": "int64",
"type": "string"
},
"now": {
"format": "date-time",
"type": "string"
},
"quarantined": {
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsBotsDimensions": {
"description": "Returns all the dimensions and dimension possibilities in the fleet.",
"id": "SwarmingRpcsBotsDimensions",
"properties": {
"bots_dimensions": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"ts": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsCacheEntry": {
"description": "Describes a named cache that should be present on the bot. A CacheEntry in a task specified that the task prefers the cache to be present on the bot. A symlink to the cache directory is created at \u003crun_dir\u003e/|path|. If cache is not present on the machine, the directory is empty. If the tasks makes any changes to the contents of the cache directory, they are persisted on the machine. If another task runs on the same machine and requests the same named cache, even if mapped to a different path, it will see the changes.",
"id": "SwarmingRpcsCacheEntry",
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsCancelResponse": {
"description": "Result of a request to cancel a task.",
"id": "SwarmingRpcsCancelResponse",
"properties": {
"ok": {
"type": "boolean"
},
"was_running": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsCipdInput": {
"description": "Defines CIPD packages to install in task run directory.",
"id": "SwarmingRpcsCipdInput",
"properties": {
"client_package": {
"$ref": "SwarmingRpcsCipdPackage",
"description": "A CIPD package to install in the run dir before task execution."
},
"packages": {
"description": "A CIPD package to install in the run dir before task execution.",
"items": {
"$ref": "SwarmingRpcsCipdPackage"
},
"type": "array"
},
"server": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsCipdPackage": {
"description": "A CIPD package to install in the run dir before task execution.",
"id": "SwarmingRpcsCipdPackage",
"properties": {
"package_name": {
"type": "string"
},
"path": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsCipdPins": {
"description": "Defines pinned CIPD packages that were installed during the task.",
"id": "SwarmingRpcsCipdPins",
"properties": {
"client_package": {
"$ref": "SwarmingRpcsCipdPackage",
"description": "A CIPD package to install in the run dir before task execution."
},
"packages": {
"description": "A CIPD package to install in the run dir before task execution.",
"items": {
"$ref": "SwarmingRpcsCipdPackage"
},
"type": "array"
}
},
"type": "object"
},
"SwarmingRpcsClientPermissions": {
"description": "Reports the client's permissions.",
"id": "SwarmingRpcsClientPermissions",
"properties": {
"cancel_task": {
"type": "boolean"
},
"cancel_tasks": {
"type": "boolean"
},
"delete_bot": {
"type": "boolean"
},
"get_bootstrap_token": {
"type": "boolean"
},
"get_configs": {
"type": "boolean"
},
"put_configs": {
"type": "boolean"
},
"terminate_bot": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsContainment": {
"description": "See proto/api/swarming.proto for description.",
"id": "SwarmingRpcsContainment",
"properties": {
"containment_type": {
"enum": [
"AUTO",
"JOB_OBJECT",
"NONE",
"NOT_SPECIFIED"
],
"enumDescriptions": [
"",
"",
"",
""
],
"type": "string"
},
"limit_processes": {
"format": "int64",
"type": "string"
},
"limit_total_committed_memory": {
"format": "int64",
"type": "string"
},
"lower_priority": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsDeletedResponse": {
"description": "Indicates whether a bot was deleted.",
"id": "SwarmingRpcsDeletedResponse",
"properties": {
"deleted": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsFileContent": {
"description": "Content of a file.",
"id": "SwarmingRpcsFileContent",
"properties": {
"content": {
"type": "string"
},
"version": {
"type": "string"
},
"when": {
"format": "date-time",
"type": "string"
},
"who": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsFilesRef": {
"description": "Defines a data tree reference for Swarming task inputs or outputs. It can either be: - a reference to an isolated file on an isolate server - a reference to an isolated file on a RBE CAS server In the RBE CAS case, the isolatedserver must be set to GCP name, and namespace must be set to \"sha256-GCP\". For the moment, RBE CAS requires SHA-256 and doesn't support precompressed data.",
"id": "SwarmingRpcsFilesRef",
"properties": {
"isolated": {
"type": "string"
},
"isolatedserver": {
"type": "string"
},
"namespace": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsNewTaskRequest": {
"description": "Description of a new task request as described by the client. This message is used to create a new task.",
"id": "SwarmingRpcsNewTaskRequest",
"properties": {
"bot_ping_tolerance_secs": {
"format": "int64",
"type": "string"
},
"evaluate_only": {
"type": "boolean"
},
"expiration_secs": {
"format": "int64",
"type": "string"
},
"name": {
"type": "string"
},
"parent_task_id": {
"type": "string"
},
"pool_task_template": {
"default": "AUTO",
"enum": [
"AUTO",
"CANARY_NEVER",
"CANARY_PREFER",
"SKIP"
],
"enumDescriptions": [
"",
"",
"",
""
],
"type": "string"
},
"priority": {
"format": "int64",
"type": "string"
},
"properties": {
"$ref": "SwarmingRpcsTaskProperties",
"description": "Important metadata about a particular task."
},
"pubsub_auth_token": {
"type": "string"
},
"pubsub_topic": {
"type": "string"
},
"pubsub_userdata": {
"type": "string"
},
"service_account": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"task_slices": {
"description": "Defines a possible task execution for a task request to be run on the Swarming infrastructure. This is one of the possible fallback on a task request.",
"items": {
"$ref": "SwarmingRpcsTaskSlice"
},
"type": "array"
},
"user": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsOperationStats": {
"id": "SwarmingRpcsOperationStats",
"properties": {
"duration": {
"format": "double",
"type": "number"
},
"initial_number_items": {
"format": "int64",
"type": "string"
},
"initial_size": {
"format": "int64",
"type": "string"
},
"items_cold": {
"format": "byte",
"type": "string"
},
"items_hot": {
"format": "byte",
"type": "string"
},
"num_items_cold": {
"format": "int64",
"type": "string"
},
"num_items_hot": {
"format": "int64",
"type": "string"
},
"total_bytes_items_cold": {
"format": "int64",
"type": "string"
},
"total_bytes_items_hot": {
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsPerformanceStats": {
"id": "SwarmingRpcsPerformanceStats",
"properties": {
"bot_overhead": {
"format": "double",
"type": "number"
},
"isolated_download": {
"$ref": "SwarmingRpcsOperationStats"
},
"isolated_upload": {
"$ref": "SwarmingRpcsOperationStats"
}
},
"type": "object"
},
"SwarmingRpcsServerDetails": {
"description": "Reports details about the server.",
"id": "SwarmingRpcsServerDetails",
"properties": {
"bot_version": {
"type": "string"
},
"default_isolate_namespace": {
"type": "string"
},
"default_isolate_server": {
"type": "string"
},
"display_server_url_template": {
"type": "string"
},
"luci_config": {
"type": "string"
},
"machine_provider_template": {
"type": "string"
},
"server_version": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsStringListPair": {
"description": "Represents a mapping of string to list of strings.",
"id": "SwarmingRpcsStringListPair",
"properties": {
"key": {
"type": "string"
},
"value": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SwarmingRpcsStringPair": {
"description": "Represents a mapping of string to string.",
"id": "SwarmingRpcsStringPair",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskCancelRequest": {
"description": "Request to cancel one task.",
"id": "SwarmingRpcsTaskCancelRequest",
"properties": {
"kill_running": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsTaskList": {
"description": "Wraps a list of TaskResult.",
"id": "SwarmingRpcsTaskList",
"properties": {
"cursor": {
"type": "string"
},
"items": {
"description": "Representation of the TaskResultSummary or TaskRunResult ndb model.",
"items": {
"$ref": "SwarmingRpcsTaskResult"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskOutput": {
"description": "A task's output as a string.",
"id": "SwarmingRpcsTaskOutput",
"properties": {
"output": {
"type": "string"
},
"state": {
"enum": [
"BOT_DIED",
"CANCELED",
"COMPLETED",
"EXPIRED",
"INVALID",
"KILLED",
"NO_RESOURCE",
"PENDING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskProperties": {
"description": "Important metadata about a particular task.",
"id": "SwarmingRpcsTaskProperties",
"properties": {
"caches": {
"description": "Describes a named cache that should be present on the bot. A CacheEntry in a task specified that the task prefers the cache to be present on the bot. A symlink to the cache directory is created at \u003crun_dir\u003e/|path|. If cache is not present on the machine, the directory is empty. If the tasks makes any changes to the contents of the cache directory, they are persisted on the machine. If another task runs on the same machine and requests the same named cache, even if mapped to a different path, it will see the changes.",
"items": {
"$ref": "SwarmingRpcsCacheEntry"
},
"type": "array"
},
"cipd_input": {
"$ref": "SwarmingRpcsCipdInput",
"description": "Defines CIPD packages to install in task run directory."
},
"command": {
"items": {
"type": "string"
},
"type": "array"
},
"containment": {
"$ref": "SwarmingRpcsContainment",
"description": "See proto/api/swarming.proto for description."
},
"dimensions": {
"description": "Represents a mapping of string to string.",
"items": {
"$ref": "SwarmingRpcsStringPair"
},
"type": "array"
},
"env": {
"description": "Represents a mapping of string to string.",
"items": {
"$ref": "SwarmingRpcsStringPair"
},
"type": "array"
},
"env_prefixes": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"execution_timeout_secs": {
"format": "int64",
"type": "string"
},
"extra_args": {
"items": {
"type": "string"
},
"type": "array"
},
"grace_period_secs": {
"format": "int64",
"type": "string"
},
"idempotent": {
"type": "boolean"
},
"inputs_ref": {
"$ref": "SwarmingRpcsFilesRef",
"description": "Defines a data tree reference for Swarming task inputs or outputs. It can either be: - a reference to an isolated file on an isolate server - a reference to an isolated file on a RBE CAS server In the RBE CAS case, the isolatedserver must be set to GCP name, and namespace must be set to \"sha256-GCP\". For the moment, RBE CAS requires SHA-256 and doesn't support precompressed data."
},
"io_timeout_secs": {
"format": "int64",
"type": "string"
},
"outputs": {
"items": {
"type": "string"
},
"type": "array"
},
"relative_cwd": {
"type": "string"
},
"secret_bytes": {
"format": "byte",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskQueue": {
"id": "SwarmingRpcsTaskQueue",
"properties": {
"dimensions": {
"items": {
"type": "string"
},
"type": "array"
},
"valid_until_ts": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskQueueList": {
"id": "SwarmingRpcsTaskQueueList",
"properties": {
"cursor": {
"type": "string"
},
"items": {
"items": {
"$ref": "SwarmingRpcsTaskQueue"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskRequest": {
"description": "Description of a task request as registered by the server. This message is used when retrieving information about an existing task. See NewtaskRequest for more details.",
"id": "SwarmingRpcsTaskRequest",
"properties": {
"authenticated": {
"type": "string"
},
"bot_ping_tolerance_secs": {
"format": "int64",
"type": "string"
},
"created_ts": {
"format": "date-time",
"type": "string"
},
"expiration_secs": {
"format": "int64",
"type": "string"
},
"name": {
"type": "string"
},
"parent_task_id": {
"type": "string"
},
"priority": {
"format": "int64",
"type": "string"
},
"properties": {
"$ref": "SwarmingRpcsTaskProperties",
"description": "Important metadata about a particular task."
},
"pubsub_topic": {
"type": "string"
},
"pubsub_userdata": {
"type": "string"
},
"service_account": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"task_id": {
"type": "string"
},
"task_slices": {
"description": "Defines a possible task execution for a task request to be run on the Swarming infrastructure. This is one of the possible fallback on a task request.",
"items": {
"$ref": "SwarmingRpcsTaskSlice"
},
"type": "array"
},
"user": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskRequestMetadata": {
"description": "Provides the ID of the requested TaskRequest.",
"id": "SwarmingRpcsTaskRequestMetadata",
"properties": {
"request": {
"$ref": "SwarmingRpcsTaskRequest",
"description": "Description of a task request as registered by the server. This message is used when retrieving information about an existing task. See NewtaskRequest for more details."
},
"task_id": {
"type": "string"
},
"task_result": {
"$ref": "SwarmingRpcsTaskResult",
"description": "Representation of the TaskResultSummary or TaskRunResult ndb model."
}
},
"type": "object"
},
"SwarmingRpcsTaskRequests": {
"description": "Wraps a list of TaskRequest.",
"id": "SwarmingRpcsTaskRequests",
"properties": {
"cursor": {
"type": "string"
},
"items": {
"description": "Description of a task request as registered by the server. This message is used when retrieving information about an existing task. See NewtaskRequest for more details.",
"items": {
"$ref": "SwarmingRpcsTaskRequest"
},
"type": "array"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskResult": {
"description": "Representation of the TaskResultSummary or TaskRunResult ndb model.",
"id": "SwarmingRpcsTaskResult",
"properties": {
"abandoned_ts": {
"format": "date-time",
"type": "string"
},
"bot_dimensions": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"bot_id": {
"type": "string"
},
"bot_version": {
"type": "string"
},
"children_task_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"cipd_pins": {
"$ref": "SwarmingRpcsCipdPins",
"description": "Defines pinned CIPD packages that were installed during the task."
},
"completed_ts": {
"format": "date-time",
"type": "string"
},
"cost_saved_usd": {
"format": "double",
"type": "number"
},
"costs_usd": {
"items": {
"format": "double",
"type": "number"
},
"type": "array"
},
"created_ts": {
"format": "date-time",
"type": "string"
},
"current_task_slice": {
"format": "int64",
"type": "string"
},
"deduped_from": {
"type": "string"
},
"duration": {
"format": "double",
"type": "number"
},
"exit_code": {
"format": "int64",
"type": "string"
},
"failure": {
"type": "boolean"
},
"internal_failure": {
"type": "boolean"
},
"modified_ts": {
"format": "date-time",
"type": "string"
},
"name": {
"type": "string"
},
"outputs_ref": {
"$ref": "SwarmingRpcsFilesRef",
"description": "Defines a data tree reference for Swarming task inputs or outputs. It can either be: - a reference to an isolated file on an isolate server - a reference to an isolated file on a RBE CAS server In the RBE CAS case, the isolatedserver must be set to GCP name, and namespace must be set to \"sha256-GCP\". For the moment, RBE CAS requires SHA-256 and doesn't support precompressed data."
},
"performance_stats": {
"$ref": "SwarmingRpcsPerformanceStats"
},
"run_id": {
"type": "string"
},
"server_versions": {
"items": {
"type": "string"
},
"type": "array"
},
"started_ts": {
"format": "date-time",
"type": "string"
},
"state": {
"enum": [
"BOT_DIED",
"CANCELED",
"COMPLETED",
"EXPIRED",
"INVALID",
"KILLED",
"NO_RESOURCE",
"PENDING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"task_id": {
"type": "string"
},
"try_number": {
"format": "int64",
"type": "string"
},
"user": {
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTaskSlice": {
"description": "Defines a possible task execution for a task request to be run on the Swarming infrastructure. This is one of the possible fallback on a task request.",
"id": "SwarmingRpcsTaskSlice",
"properties": {
"expiration_secs": {
"format": "int64",
"type": "string"
},
"properties": {
"$ref": "SwarmingRpcsTaskProperties",
"description": "Important metadata about a particular task."
},
"wait_for_capacity": {
"type": "boolean"
}
},
"type": "object"
},
"SwarmingRpcsTaskStates": {
"description": "Only holds states. Used in the 'get_states' RPC.",
"id": "SwarmingRpcsTaskStates",
"properties": {
"states": {
"items": {
"enum": [
"BOT_DIED",
"CANCELED",
"COMPLETED",
"EXPIRED",
"INVALID",
"KILLED",
"NO_RESOURCE",
"PENDING",
"RUNNING",
"TIMED_OUT"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SwarmingRpcsTasksCancelRequest": {
"description": "Request to cancel some subset of pending/running tasks.",
"id": "SwarmingRpcsTasksCancelRequest",
"properties": {
"cursor": {
"type": "string"
},
"kill_running": {
"type": "boolean"
},
"limit": {
"default": "100",
"format": "int64",
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SwarmingRpcsTasksCancelResponse": {
"description": "Result of canceling some subset of pending tasks.",
"id": "SwarmingRpcsTasksCancelResponse",
"properties": {
"cursor": {
"type": "string"
},
"matched": {
"format": "int64",
"type": "string"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTasksCount": {
"description": "Returns the count, as requested.",
"id": "SwarmingRpcsTasksCount",
"properties": {
"count": {
"format": "int64",
"type": "string"
},
"now": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTasksTags": {
"description": "Returns all the tags and tag possibilities in the fleet.",
"id": "SwarmingRpcsTasksTags",
"properties": {
"tasks_tags": {
"description": "Represents a mapping of string to list of strings.",
"items": {
"$ref": "SwarmingRpcsStringListPair"
},
"type": "array"
},
"ts": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"SwarmingRpcsTerminateResponse": {
"description": "Returns the pseudo taskid to wait for the bot to shut down.",
"id": "SwarmingRpcsTerminateResponse",
"properties": {
"task_id": {
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "swarming/v1/",
"version": "v1"
}