{
  "openapi": "3.1.0",
  "info": {
    "title": "Depot GitHub Actions API",
    "description": "OpenAPI schema for Depot GitHub Actions jobs, logs, analytics, and connections.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.depot.dev"
    }
  ],
  "paths": {
    "/depot.core.v1.GithubActionsService/CountGithubActionsLogs": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "CountGithubActionsLogs",
        "description": "Count GitHub Actions log lines matching a search.",
        "operationId": "GithubActionsService_CountGithubActionsLogs",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.CountGithubActionsLogsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.CountGithubActionsLogsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/CreateGithubActionsInstallationUrl": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "CreateGithubActionsInstallationUrl",
        "description": "Create a short-lived URL for installing the Depot GitHub App.",
        "operationId": "GithubActionsService_CreateGithubActionsInstallationUrl",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.CreateGithubActionsInstallationUrlRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.CreateGithubActionsInstallationUrlResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/DeleteGithubActionsConnection": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "DeleteGithubActionsConnection",
        "description": "Disconnect a GitHub App installation from the authenticated organization.",
        "operationId": "GithubActionsService_DeleteGithubActionsConnection",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.DeleteGithubActionsConnectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.DeleteGithubActionsConnectionResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsAnalytics": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsAnalytics",
        "description": "Get time-bucketed GitHub Actions job and usage analytics.",
        "operationId": "GithubActionsService_GetGithubActionsAnalytics",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsAnalyticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsAnalyticsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsDurationDistribution": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsDurationDistribution",
        "description": "Get the duration distribution of finished GitHub Actions jobs.",
        "operationId": "GithubActionsService_GetGithubActionsDurationDistribution",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsDurationDistributionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsDurationDistributionResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsJob": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsJob",
        "description": "Get one GitHub Actions job.",
        "operationId": "GithubActionsService_GetGithubActionsJob",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsJobResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsLogContext": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsLogContext",
        "description": "Get log lines surrounding one search result.",
        "operationId": "GithubActionsService_GetGithubActionsLogContext",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsLogContextRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsLogContextResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsTestResultsSummary": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsTestResultsSummary",
        "description": "Get a GitHub Actions job's test-result summary.",
        "operationId": "GithubActionsService_GetGithubActionsTestResultsSummary",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsTestResultsSummaryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsTestResultsSummaryResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/GetGithubActionsUsageProjection": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "GetGithubActionsUsageProjection",
        "description": "Get actual and projected GitHub Actions usage for a billing period.",
        "operationId": "GithubActionsService_GetGithubActionsUsageProjection",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsUsageProjectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.GetGithubActionsUsageProjectionResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsConnections": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsConnections",
        "description": "List GitHub App connections for the authenticated organization.",
        "operationId": "GithubActionsService_ListGithubActionsConnections",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsConnectionsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsConnectionsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsJobAnalytics": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsJobAnalytics",
        "description": "List aggregate CPU, memory, duration, and failure analytics by job.",
        "operationId": "GithubActionsService_ListGithubActionsJobAnalytics",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobAnalyticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobAnalyticsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsJobRuns": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsJobRuns",
        "description": "List finished GitHub Actions job runs, longest duration first.",
        "operationId": "GithubActionsService_ListGithubActionsJobRuns",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobRunsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobRunsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsJobs": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsJobs",
        "description": "List GitHub Actions jobs, newest first.",
        "operationId": "GithubActionsService_ListGithubActionsJobs",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsJobsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsLogFacets": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsLogFacets",
        "description": "List values available for GitHub Actions log search filters.",
        "operationId": "GithubActionsService_ListGithubActionsLogFacets",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsLogFacetsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsLogFacetsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsRecommendations": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsRecommendations",
        "description": "List runner-size recommendations derived from GitHub Actions job metrics.",
        "operationId": "GithubActionsService_ListGithubActionsRecommendations",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsRecommendationsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsRecommendationsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/ListGithubActionsRepositories": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "ListGithubActionsRepositories",
        "description": "List repositories visible through one GitHub App connection.",
        "operationId": "GithubActionsService_ListGithubActionsRepositories",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsRepositoriesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.ListGithubActionsRepositoriesResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/SearchGithubActionsLogs": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "SearchGithubActionsLogs",
        "description": "Search GitHub Actions log lines, newest match first.",
        "operationId": "GithubActionsService_SearchGithubActionsLogs",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.SearchGithubActionsLogsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.SearchGithubActionsLogsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    },
    "/depot.core.v1.GithubActionsService/TerminateGithubActionsJob": {
      "post": {
        "tags": [
          "GithubActionsService"
        ],
        "summary": "TerminateGithubActionsJob",
        "description": "Terminate the compute resource for a queued or running GitHub Actions job.",
        "operationId": "GithubActionsService_TerminateGithubActionsJob",
        "parameters": [
          {
            "name": "Connect-Protocol-Version",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/connect-protocol-version"
            }
          },
          {
            "name": "Connect-Timeout-Ms",
            "in": "header",
            "schema": {
              "$ref": "#/components/schemas/connect-timeout-header"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depot.core.v1.TerminateGithubActionsJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depot.core.v1.TerminateGithubActionsJobResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/connect.error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "connect-protocol-version": {
        "type": "number",
        "title": "Connect-Protocol-Version",
        "enum": [
          1
        ],
        "description": "Define the version of the Connect protocol",
        "const": 1
      },
      "connect-timeout-header": {
        "type": "number",
        "title": "Connect-Timeout-Ms",
        "description": "Define the timeout, in ms"
      },
      "connect.error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "examples": [
              "not_found"
            ],
            "enum": [
              "canceled",
              "unknown",
              "invalid_argument",
              "deadline_exceeded",
              "not_found",
              "already_exists",
              "permission_denied",
              "resource_exhausted",
              "failed_precondition",
              "aborted",
              "out_of_range",
              "unimplemented",
              "internal",
              "unavailable",
              "data_loss",
              "unauthenticated"
            ],
            "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]."
          },
          "message": {
            "type": "string",
            "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client."
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/connect.error_details.Any"
            },
            "description": "A list of messages that carry the error details. There is no limit on the number of messages."
          }
        },
        "title": "Connect Error",
        "additionalProperties": true,
        "description": "Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation"
      },
      "connect.error_details.Any": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A URL that acts as a globally unique identifier for the type of the serialized message. For example: `type.googleapis.com/google.rpc.ErrorInfo`. This is used to determine the schema of the data in the `value` field and is the discriminator for the `debug` field."
          },
          "value": {
            "type": "string",
            "format": "binary",
            "description": "The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the `type` field."
          },
          "debug": {
            "oneOf": [
              {
                "type": "object",
                "title": "Any",
                "additionalProperties": true,
                "description": "Detailed error information."
              }
            ],
            "discriminator": {
              "propertyName": "type"
            },
            "title": "Debug",
            "description": "Deserialized error detail payload. The 'type' field indicates the schema. This field is for easier debugging and should not be relied upon for application logic."
          }
        },
        "additionalProperties": true,
        "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details."
      },
      "depot.core.v1.CountGithubActionsLogsRequest": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "title": "query",
            "description": "Text to match in log bodies. Empty text counts unfiltered log lines."
          },
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Time window to search. Maximum: 30 days. Default: the last hour."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Structured log filters."
          }
        },
        "title": "CountGithubActionsLogsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.CountGithubActionsLogsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": [
              "integer",
              "string"
            ],
            "title": "count",
            "format": "int64",
            "description": "Number of matching log lines as of `dataThrough`."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the count, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "CountGithubActionsLogsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.CreateGithubActionsInstallationUrlRequest": {
        "type": "object",
        "properties": {
          "returnUrl": {
            "type": [
              "string",
              "null"
            ],
            "title": "return_url",
            "description": "HTTPS URL to return to after GitHub completes installation. Leave empty to return to the Depot GitHub Actions page."
          }
        },
        "title": "CreateGithubActionsInstallationUrlRequest",
        "additionalProperties": false
      },
      "depot.core.v1.CreateGithubActionsInstallationUrlResponse": {
        "type": "object",
        "properties": {
          "installationUrl": {
            "type": "string",
            "title": "installation_url",
            "description": "Short-lived GitHub App installation URL. The URL contains no GitHub provider credential."
          },
          "expiresAt": {
            "title": "expires_at",
            "description": "Time the URL expires, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "CreateGithubActionsInstallationUrlResponse",
        "additionalProperties": false
      },
      "depot.core.v1.DeleteGithubActionsConnectionRequest": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "title": "connection_id",
            "description": "Unique Depot identifier for the connection. Returned by `ListGithubActionsConnections`."
          }
        },
        "title": "DeleteGithubActionsConnectionRequest",
        "additionalProperties": false
      },
      "depot.core.v1.DeleteGithubActionsConnectionResponse": {
        "type": "object",
        "properties": {
          "disconnected": {
            "type": "boolean",
            "title": "disconnected",
            "description": "Whether the connection was active before this request. False when it was already disconnected."
          }
        },
        "title": "DeleteGithubActionsConnectionResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsAnalyticsRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Analytics window. Maximum: 90 days. Default: the last 30 days."
          },
          "aggregationUnit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsAggregationUnit"
              },
              {
                "type": "null"
              }
            ],
            "title": "aggregation_unit",
            "description": "Size of each returned time bucket. Default: day."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Jobs to include."
          }
        },
        "title": "GetGithubActionsAnalyticsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsAnalyticsResponse": {
        "type": "object",
        "properties": {
          "totals": {
            "title": "totals",
            "description": "Aggregate totals for the requested window.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsTotals"
          },
          "buckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsBucket"
            },
            "title": "buckets",
            "description": "Totals split into the requested time buckets, oldest first."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format. Analytics can lag completed jobs by up to 15 minutes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "GetGithubActionsAnalyticsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsDurationDistributionRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Job finish window. Maximum: 90 days. Default: the last 30 days."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Jobs to include. `filters.jobs` matches job display names, not workflow YAML job keys.\n Leave unset to include every job in the organization."
          }
        },
        "title": "GetGithubActionsDurationDistributionRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsDurationDistributionResponse": {
        "type": "object",
        "properties": {
          "buckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsDurationBucket"
            },
            "title": "buckets",
            "description": "Nonempty duration buckets, shortest range first."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format. Analytics can lag completed jobs by up to 15 minutes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "GetGithubActionsDurationDistributionResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsJobRequest": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository containing the job, in `owner/name` format."
          },
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job. Returned by `ListGithubActionsJobs`."
          }
        },
        "title": "GetGithubActionsJobRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsJobResponse": {
        "type": "object",
        "properties": {
          "job": {
            "title": "job",
            "description": "Requested job.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsJob"
          }
        },
        "title": "GetGithubActionsJobResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsLogContextRequest": {
        "type": "object",
        "properties": {
          "lineId": {
            "type": "string",
            "title": "line_id",
            "description": "Stable log-line identifier returned by `SearchGithubActionsLogs`."
          },
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository containing the line, in `owner/name` format."
          },
          "surroundingLineCount": {
            "type": [
              "integer",
              "null"
            ],
            "title": "surrounding_line_count",
            "format": "int32",
            "description": "Number of preceding and following lines to return. Maximum: 100. Default: 5."
          }
        },
        "title": "GetGithubActionsLogContextRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsLogContextResponse": {
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogLine"
            },
            "title": "lines",
            "description": "Lines surrounding and including the requested line, oldest first."
          }
        },
        "title": "GetGithubActionsLogContextResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsTestResultsSummaryRequest": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository containing the job, in `owner/name` format."
          },
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job. Returned by `ListGithubActionsJobs`."
          }
        },
        "title": "GetGithubActionsTestResultsSummaryRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsTestResultsSummaryResponse": {
        "type": "object",
        "properties": {
          "summary": {
            "title": "summary",
            "description": "Test-result counts for the job.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsTestResultsSummary"
          },
          "testResultsOwnerType": {
            "type": "string",
            "title": "test_results_owner_type",
            "description": "Owner type to pass to `depot.testresults.v1.TestResultsService.ListTestResults`."
          },
          "testResultsOwnerId": {
            "type": "string",
            "title": "test_results_owner_id",
            "description": "Owner identifier to pass to `depot.testresults.v1.TestResultsService.ListTestResults`."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "GetGithubActionsTestResultsSummaryResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsUsageProjectionRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Billing-period window. Maximum: 366 days. Defaults to the organization's current billing period."
          },
          "repositories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "repositories",
            "description": "Connected repositories to include, in `owner/name` format. Leave empty to include every connected repository."
          }
        },
        "title": "GetGithubActionsUsageProjectionRequest",
        "additionalProperties": false
      },
      "depot.core.v1.GetGithubActionsUsageProjectionResponse": {
        "type": "object",
        "properties": {
          "periodStart": {
            "title": "period_start",
            "description": "Inclusive start of the projection period, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "periodEnd": {
            "title": "period_end",
            "description": "Exclusive end of the projection period, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Time through which actual usage is included, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "actualBillableSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "actual_billable_seconds",
            "format": "int64",
            "description": "Billable job time observed through `dataThrough`, in seconds."
          },
          "projectedBillableSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "projected_billable_seconds",
            "format": "int64",
            "description": "Estimated billable job time for the complete period, in seconds."
          },
          "actualCost": {
            "type": [
              "integer",
              "string"
            ],
            "title": "actual_cost",
            "format": "int64",
            "description": "Observed GitHub Actions cost through `dataThrough`, in the smallest unit of `currency`."
          },
          "projectedCost": {
            "type": [
              "integer",
              "string"
            ],
            "title": "projected_cost",
            "format": "int64",
            "description": "Estimated GitHub Actions cost for the complete period, in the smallest unit of `currency`."
          },
          "currency": {
            "type": "string",
            "title": "currency",
            "description": "ISO 4217 currency code for `actualCost` and `projectedCost`."
          },
          "methodology": {
            "type": "string",
            "title": "methodology",
            "description": "Explanation of the projection method and known limitations."
          }
        },
        "title": "GetGithubActionsUsageProjectionResponse",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsAggregationUnit": {
        "type": "string",
        "title": "GithubActionsAggregationUnit",
        "enum": [
          "GITHUB_ACTIONS_AGGREGATION_UNIT_UNSPECIFIED",
          "GITHUB_ACTIONS_AGGREGATION_UNIT_HOUR",
          "GITHUB_ACTIONS_AGGREGATION_UNIT_DAY"
        ]
      },
      "depot.core.v1.GithubActionsAnalyticsBucket": {
        "type": "object",
        "properties": {
          "startAt": {
            "title": "start_at",
            "description": "Inclusive start of this bucket, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "endAt": {
            "title": "end_at",
            "description": "Exclusive end of this bucket, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "totals": {
            "title": "totals",
            "description": "Job and usage totals for this bucket.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsTotals"
          }
        },
        "title": "GithubActionsAnalyticsBucket",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsAnalyticsFilters": {
        "type": "object",
        "properties": {
          "repositories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "repositories",
            "description": "Connected repositories to include, in `owner/name` format. Leave empty to include every connected repository."
          },
          "workflows": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "workflows",
            "description": "Workflow names to include. Leave empty to include every workflow."
          },
          "jobs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "jobs",
            "description": "Job names to include. Leave empty to include every job."
          },
          "runnerLabels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "runner_labels",
            "description": "Runner labels to include. Leave empty to include every runner label."
          },
          "workflowPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "workflow_paths",
            "description": "Workflow file paths to include. Leave empty to include every workflow path."
          }
        },
        "title": "GithubActionsAnalyticsFilters",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsAnalyticsTotals": {
        "type": "object",
        "properties": {
          "jobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "job_count",
            "format": "int64",
            "description": "Number of jobs."
          },
          "successfulJobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "successful_job_count",
            "format": "int64",
            "description": "Number of successful jobs."
          },
          "failedJobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "failed_job_count",
            "format": "int64",
            "description": "Number of failed jobs."
          },
          "cancelledJobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "cancelled_job_count",
            "format": "int64",
            "description": "Number of cancelled jobs."
          },
          "elapsedSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "elapsed_seconds",
            "format": "int64",
            "description": "Sum of elapsed job time, in seconds."
          },
          "billableSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "billable_seconds",
            "format": "int64",
            "description": "Sum of billable job time, in seconds."
          },
          "averageDurationSeconds": {
            "type": "number",
            "title": "average_duration_seconds",
            "format": "double",
            "description": "Mean job duration, in seconds."
          },
          "failureRate": {
            "type": "number",
            "title": "failure_rate",
            "format": "double",
            "description": "Failed jobs divided by all terminal jobs, from 0 through 1."
          }
        },
        "title": "GithubActionsAnalyticsTotals",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsConnection": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "title": "connection_id",
            "description": "Unique Depot identifier for the connection."
          },
          "installationId": {
            "type": "string",
            "title": "installation_id",
            "description": "Public GitHub installation identifier."
          },
          "account": {
            "type": "string",
            "title": "account",
            "description": "GitHub organization or account name."
          },
          "status": {
            "title": "status",
            "description": "Current connection state.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsConnectionStatus"
          },
          "repositorySelection": {
            "title": "repository_selection",
            "description": "Repository access configured for the runner app.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsRepositorySelection"
          },
          "createdAt": {
            "title": "created_at",
            "description": "Time the connection was created, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "repositoriesRefreshedAt": {
            "title": "repositories_refreshed_at",
            "description": "Time repository access was last refreshed, in RFC 3339 format. Unset until the first refresh completes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "settingsUrl": {
            "type": "string",
            "title": "settings_url",
            "description": "GitHub URL where an organization owner can manage repository access."
          }
        },
        "title": "GithubActionsConnection",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsConnectionStatus": {
        "type": "string",
        "title": "GithubActionsConnectionStatus",
        "enum": [
          "GITHUB_ACTIONS_CONNECTION_STATUS_UNSPECIFIED",
          "GITHUB_ACTIONS_CONNECTION_STATUS_PENDING",
          "GITHUB_ACTIONS_CONNECTION_STATUS_ACTIVE",
          "GITHUB_ACTIONS_CONNECTION_STATUS_SUSPENDED"
        ]
      },
      "depot.core.v1.GithubActionsDurationBucket": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "Duration range in minutes. Can be \"0-1m\", \"1-5m\", \"5-10m\", \"10-20m\", \"20-30m\", \"30-60m\", or \">60m\".\n Lower bounds are exclusive and upper bounds are inclusive. Jobs with zero duration are excluded."
          },
          "jobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "job_count",
            "format": "int64",
            "description": "Number of stored job summaries in this range."
          }
        },
        "title": "GithubActionsDurationBucket",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsJob": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job."
          },
          "runId": {
            "type": "string",
            "title": "run_id",
            "description": "Unique GitHub identifier for the workflow run."
          },
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Display name shown for the job in GitHub."
          },
          "workflowName": {
            "type": "string",
            "title": "workflow_name",
            "description": "Workflow display name. Empty when GitHub did not provide one."
          },
          "workflowPath": {
            "type": "string",
            "title": "workflow_path",
            "description": "Workflow file path. Empty when it is unavailable."
          },
          "status": {
            "title": "status",
            "description": "Current state of the job.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobStatus"
          },
          "conclusion": {
            "title": "conclusion",
            "description": "Final result. Unspecified until the job finishes.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobConclusion"
          },
          "runnerLabel": {
            "type": "string",
            "title": "runner_label",
            "description": "Runner label requested by the workflow."
          },
          "requestedOs": {
            "type": "string",
            "title": "requested_os",
            "description": "Requested operating system."
          },
          "requestedArchitecture": {
            "type": "string",
            "title": "requested_architecture",
            "description": "Requested processor architecture."
          },
          "requestedCpuCount": {
            "type": "integer",
            "title": "requested_cpu_count",
            "format": "int32",
            "description": "Requested virtual CPU count. Zero when the label does not declare a CPU count."
          },
          "requestedMemoryGib": {
            "type": "integer",
            "title": "requested_memory_gib",
            "format": "int32",
            "description": "Requested memory, in gibibytes. Zero when the label does not declare memory."
          },
          "githubUrl": {
            "type": "string",
            "title": "github_url",
            "description": "GitHub URL for the job."
          },
          "createdAt": {
            "title": "created_at",
            "description": "Time Depot received the job, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "startedAt": {
            "title": "started_at",
            "description": "Time the job started, in RFC 3339 format. Unset until the job starts.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "finishedAt": {
            "title": "finished_at",
            "description": "Time the job finished, in RFC 3339 format. Unset until the job finishes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "durationSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "duration_seconds",
            "format": "int64",
            "description": "Elapsed execution time, in seconds. Zero until enough lifecycle data is available."
          },
          "billableSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "billable_seconds",
            "format": "int64",
            "description": "Billable execution time, in seconds. Zero until enough lifecycle data is available."
          },
          "queueSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "queue_seconds",
            "format": "int64",
            "description": "Queue time before execution started, in seconds. Zero until enough lifecycle data is available."
          }
        },
        "title": "GithubActionsJob",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsJobAnalytics": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "workflowName": {
            "type": "string",
            "title": "workflow_name",
            "description": "Workflow display name. Empty when GitHub did not provide one."
          },
          "workflowPath": {
            "type": "string",
            "title": "workflow_path",
            "description": "Workflow file path. Empty when it is unavailable."
          },
          "jobName": {
            "type": "string",
            "title": "job_name",
            "description": "Job key from the workflow file."
          },
          "runnerLabel": {
            "type": "string",
            "title": "runner_label",
            "description": "Most recently observed runner label."
          },
          "jobCount": {
            "type": [
              "integer",
              "string"
            ],
            "title": "job_count",
            "format": "int64",
            "description": "Number of jobs represented by the metrics."
          },
          "averageCpuUtilization": {
            "type": "number",
            "title": "average_cpu_utilization",
            "format": "double",
            "description": "Mean CPU utilization, from 0 through 1."
          },
          "peakCpuUtilization": {
            "type": "number",
            "title": "peak_cpu_utilization",
            "format": "double",
            "description": "Peak CPU utilization, from 0 through 1."
          },
          "averageMemoryUtilization": {
            "type": "number",
            "title": "average_memory_utilization",
            "format": "double",
            "description": "Mean memory utilization, from 0 through 1."
          },
          "peakMemoryUtilization": {
            "type": "number",
            "title": "peak_memory_utilization",
            "format": "double",
            "description": "Peak memory utilization, from 0 through 1."
          },
          "averageDurationSeconds": {
            "type": "number",
            "title": "average_duration_seconds",
            "format": "double",
            "description": "Mean job duration, in seconds."
          },
          "p95DurationSeconds": {
            "type": "number",
            "title": "p95_duration_seconds",
            "format": "double",
            "description": "95th-percentile job duration, in seconds."
          },
          "failureRate": {
            "type": "number",
            "title": "failure_rate",
            "format": "double",
            "description": "Failed jobs divided by all terminal jobs, from 0 through 1."
          }
        },
        "title": "GithubActionsJobAnalytics",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsJobConclusion": {
        "type": "string",
        "title": "GithubActionsJobConclusion",
        "enum": [
          "GITHUB_ACTIONS_JOB_CONCLUSION_UNSPECIFIED",
          "GITHUB_ACTIONS_JOB_CONCLUSION_SUCCESS",
          "GITHUB_ACTIONS_JOB_CONCLUSION_FAILURE",
          "GITHUB_ACTIONS_JOB_CONCLUSION_CANCELLED",
          "GITHUB_ACTIONS_JOB_CONCLUSION_SKIPPED",
          "GITHUB_ACTIONS_JOB_CONCLUSION_NEUTRAL"
        ]
      },
      "depot.core.v1.GithubActionsJobRun": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job. Empty when it is unavailable in historical records."
          },
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "jobName": {
            "type": "string",
            "title": "job_name",
            "description": "Job display name shown in GitHub."
          },
          "durationSeconds": {
            "type": [
              "integer",
              "string"
            ],
            "title": "duration_seconds",
            "format": "int64",
            "description": "Elapsed execution time, in seconds. Only runs with positive durations are returned."
          },
          "finishedAt": {
            "title": "finished_at",
            "description": "Time the job finished, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "Recorded result. Can be \"success\", \"failed\", \"failure\", \"cancelled\", \"skipped\", \"neutral\", \"action_required\", or \"timed_out\"."
          }
        },
        "title": "GithubActionsJobRun",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsJobStatus": {
        "type": "string",
        "title": "GithubActionsJobStatus",
        "enum": [
          "GITHUB_ACTIONS_JOB_STATUS_UNSPECIFIED",
          "GITHUB_ACTIONS_JOB_STATUS_QUEUED",
          "GITHUB_ACTIONS_JOB_STATUS_WAITING",
          "GITHUB_ACTIONS_JOB_STATUS_RUNNING",
          "GITHUB_ACTIONS_JOB_STATUS_FINISHED"
        ]
      },
      "depot.core.v1.GithubActionsLogFacet": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "Facet value."
          },
          "count": {
            "type": [
              "integer",
              "string"
            ],
            "title": "count",
            "format": "int64",
            "description": "Number of log lines associated with the value as of `dataThrough`."
          }
        },
        "title": "GithubActionsLogFacet",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsLogFacetKind": {
        "type": "string",
        "title": "GithubActionsLogFacetKind",
        "enum": [
          "GITHUB_ACTIONS_LOG_FACET_KIND_UNSPECIFIED",
          "GITHUB_ACTIONS_LOG_FACET_KIND_REPOSITORY",
          "GITHUB_ACTIONS_LOG_FACET_KIND_WORKFLOW",
          "GITHUB_ACTIONS_LOG_FACET_KIND_RUNNER_LABEL",
          "GITHUB_ACTIONS_LOG_FACET_KIND_ACTION"
        ]
      },
      "depot.core.v1.GithubActionsLogFilters": {
        "type": "object",
        "properties": {
          "repositories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "repositories",
            "description": "Connected repositories to include, in `owner/name` format. Leave empty to include every connected repository."
          },
          "workflows": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "workflows",
            "description": "Workflow names to include. Leave empty to include every workflow."
          },
          "runnerLabels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "runner_labels",
            "description": "Runner labels to include. Leave empty to include every runner label."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "actions",
            "description": "Action identifiers to include. Leave empty to include every action."
          },
          "computeId": {
            "type": [
              "string",
              "null"
            ],
            "title": "compute_id",
            "description": "Unique compute identifier to match. Leave empty to include every compute resource."
          }
        },
        "title": "GithubActionsLogFilters",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsLogLine": {
        "type": "object",
        "properties": {
          "lineId": {
            "type": "string",
            "title": "line_id",
            "description": "Stable identifier for this log line. Use it with `GetGithubActionsLogContext`."
          },
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job."
          },
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "workflowName": {
            "type": "string",
            "title": "workflow_name",
            "description": "Workflow display name. Empty when GitHub did not provide one."
          },
          "jobName": {
            "type": "string",
            "title": "job_name",
            "description": "Job display name."
          },
          "stepId": {
            "type": "string",
            "title": "step_id",
            "description": "Step identifier. Empty for job-level output."
          },
          "stepName": {
            "type": "string",
            "title": "step_name",
            "description": "Step display name. Empty for job-level output."
          },
          "timestamp": {
            "title": "timestamp",
            "description": "Time the line was emitted, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "lineNumber": {
            "type": [
              "integer",
              "string"
            ],
            "title": "line_number",
            "format": "int64",
            "description": "Position of this line within its job log."
          },
          "body": {
            "type": "string",
            "title": "body",
            "description": "UTF-8 log text."
          }
        },
        "title": "GithubActionsLogLine",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsRecommendation": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "workflowName": {
            "type": "string",
            "title": "workflow_name",
            "description": "Workflow display name. Empty when GitHub did not provide one."
          },
          "jobName": {
            "type": "string",
            "title": "job_name",
            "description": "Job key from the workflow file."
          },
          "type": {
            "title": "type",
            "description": "Recommended direction of change.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsRecommendationType"
          },
          "reason": {
            "type": "string",
            "title": "reason",
            "description": "Stable, machine-readable explanation. Can be `high_average_cpu`, `high_average_memory`, or `low_utilization`."
          },
          "currentSize": {
            "title": "current_size",
            "description": "Current runner size.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsRunnerSize"
          },
          "suggestedSize": {
            "title": "suggested_size",
            "description": "Suggested runner size.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsRunnerSize"
          },
          "averageCpuUtilization": {
            "type": "number",
            "title": "average_cpu_utilization",
            "format": "double",
            "description": "Mean CPU utilization, from 0 through 1."
          },
          "peakCpuUtilization": {
            "type": "number",
            "title": "peak_cpu_utilization",
            "format": "double",
            "description": "Peak CPU utilization, from 0 through 1."
          },
          "averageMemoryUtilization": {
            "type": "number",
            "title": "average_memory_utilization",
            "format": "double",
            "description": "Mean memory utilization, from 0 through 1."
          },
          "peakMemoryUtilization": {
            "type": "number",
            "title": "peak_memory_utilization",
            "format": "double",
            "description": "Peak memory utilization, from 0 through 1."
          },
          "sampleSize": {
            "type": [
              "integer",
              "string"
            ],
            "title": "sample_size",
            "format": "int64",
            "description": "Number of jobs represented by the recommendation."
          }
        },
        "title": "GithubActionsRecommendation",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsRecommendationType": {
        "type": "string",
        "title": "GithubActionsRecommendationType",
        "enum": [
          "GITHUB_ACTIONS_RECOMMENDATION_TYPE_UNSPECIFIED",
          "GITHUB_ACTIONS_RECOMMENDATION_TYPE_SIZE_UP",
          "GITHUB_ACTIONS_RECOMMENDATION_TYPE_SIZE_DOWN"
        ]
      },
      "depot.core.v1.GithubActionsRepository": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Repository name, in `owner/name` format."
          },
          "private": {
            "type": "boolean",
            "title": "private",
            "description": "Whether the repository is private."
          }
        },
        "title": "GithubActionsRepository",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsRepositorySelection": {
        "type": "string",
        "title": "GithubActionsRepositorySelection",
        "enum": [
          "GITHUB_ACTIONS_REPOSITORY_SELECTION_UNSPECIFIED",
          "GITHUB_ACTIONS_REPOSITORY_SELECTION_ALL",
          "GITHUB_ACTIONS_REPOSITORY_SELECTION_SELECTED"
        ]
      },
      "depot.core.v1.GithubActionsRunnerSize": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "Depot runner label."
          },
          "cpuCount": {
            "type": "integer",
            "title": "cpu_count",
            "format": "int32",
            "description": "Virtual CPU count."
          },
          "memoryGib": {
            "type": "integer",
            "title": "memory_gib",
            "format": "int32",
            "description": "Memory, in gibibytes."
          },
          "pricePerMinuteUsd": {
            "type": [
              "string",
              "null"
            ],
            "title": "price_per_minute_usd",
            "description": "Published price per minute, in US dollars. Empty for custom runner sizes."
          }
        },
        "title": "GithubActionsRunnerSize",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsTerminationOutcome": {
        "type": "string",
        "title": "GithubActionsTerminationOutcome",
        "enum": [
          "GITHUB_ACTIONS_TERMINATION_OUTCOME_UNSPECIFIED",
          "GITHUB_ACTIONS_TERMINATION_OUTCOME_REQUESTED",
          "GITHUB_ACTIONS_TERMINATION_OUTCOME_ALREADY_REQUESTED",
          "GITHUB_ACTIONS_TERMINATION_OUTCOME_ALREADY_TERMINAL",
          "GITHUB_ACTIONS_TERMINATION_OUTCOME_NO_ACTIVE_COMPUTE"
        ]
      },
      "depot.core.v1.GithubActionsTestResultsSummary": {
        "type": "object",
        "properties": {
          "total": {
            "type": [
              "integer",
              "string"
            ],
            "title": "total",
            "format": "int64",
            "description": "Total number of test results."
          },
          "passed": {
            "type": [
              "integer",
              "string"
            ],
            "title": "passed",
            "format": "int64",
            "description": "Number of passed test results."
          },
          "failed": {
            "type": [
              "integer",
              "string"
            ],
            "title": "failed",
            "format": "int64",
            "description": "Number of failed test results."
          },
          "errored": {
            "type": [
              "integer",
              "string"
            ],
            "title": "errored",
            "format": "int64",
            "description": "Number of errored test results."
          },
          "skipped": {
            "type": [
              "integer",
              "string"
            ],
            "title": "skipped",
            "format": "int64",
            "description": "Number of skipped test results."
          },
          "unknown": {
            "type": [
              "integer",
              "string"
            ],
            "title": "unknown",
            "format": "int64",
            "description": "Number of test results with an unknown status."
          }
        },
        "title": "GithubActionsTestResultsSummary",
        "additionalProperties": false
      },
      "depot.core.v1.GithubActionsTimeRange": {
        "type": "object",
        "properties": {
          "startAt": {
            "title": "start_at",
            "description": "Inclusive start time, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "endAt": {
            "title": "end_at",
            "description": "Exclusive end time, in RFC 3339 format. Must be later than `startAt`.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "GithubActionsTimeRange",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsConnectionsRequest": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of connections to return per page. Maximum: 100. Default: 50."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page."
          }
        },
        "title": "ListGithubActionsConnectionsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsConnectionsResponse": {
        "type": "object",
        "properties": {
          "connections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsConnection"
            },
            "title": "connections",
            "description": "Connections in the authenticated organization. Provider credentials are never returned."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more connections."
          }
        },
        "title": "ListGithubActionsConnectionsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobAnalyticsRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Analytics window. Maximum: 90 days. Default: the last 30 days."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Jobs to include."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of job groups to return per page. Maximum: 250. Default: 50."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep filters and `timeRange` unchanged between pages."
          }
        },
        "title": "ListGithubActionsJobAnalyticsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobAnalyticsResponse": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobAnalytics"
            },
            "title": "jobs",
            "description": "Per-job analytics ordered by descending job count, then repository, workflow, and job."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more job groups."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format. Analytics can lag completed jobs by up to 15 minutes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsJobAnalyticsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobRunsRequest": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository, in `owner/name` format."
          },
          "jobName": {
            "type": "string",
            "title": "job_name",
            "description": "Job display name. Use the `name` returned by `ListGithubActionsJobs`, not a workflow YAML job key."
          },
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Job finish window. Use a UTC midnight-to-midnight range for one day's runs. Maximum: 90 days. Default: the last 30 days."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of runs to return per page. Maximum: 250. Default: 50."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep repository, job name, and time range unchanged."
          }
        },
        "title": "ListGithubActionsJobRunsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobRunsResponse": {
        "type": "object",
        "properties": {
          "runs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobRun"
            },
            "title": "runs",
            "description": "Stored job summaries ordered by duration, finish time, and record identifier, all descending."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more runs. Results can change as analytics are ingested."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format. Analytics can lag completed jobs by up to 15 minutes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsJobRunsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobsRequest": {
        "type": "object",
        "properties": {
          "repositories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "repositories",
            "description": "Connected repositories to include, in `owner/name` format. Leave empty to include every connected repository."
          },
          "statuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobStatus"
            },
            "title": "statuses",
            "description": "Job states to include. Leave empty to include every state."
          },
          "conclusions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobConclusion"
            },
            "title": "conclusions",
            "description": "Job conclusions to include. Leave empty to include every conclusion."
          },
          "runnerLabels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "runner_labels",
            "description": "Runner labels to include. Leave empty to include every runner label."
          },
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Job creation window. Maximum: 90 days. Default: the last 30 days."
          },
          "query": {
            "type": [
              "string",
              "null"
            ],
            "title": "query",
            "description": "Case-insensitive text matched against job and workflow names. Numeric values also match exact GitHub job and run IDs."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of jobs to return per page. Maximum: 250. Default: 50."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep filters and `timeRange` unchanged between pages."
          }
        },
        "title": "ListGithubActionsJobsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsJobsResponse": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsJob"
            },
            "title": "jobs",
            "description": "Jobs matching the request."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more jobs."
          },
          "totalSize": {
            "type": [
              "integer",
              "string"
            ],
            "title": "total_size",
            "format": "int64",
            "description": "Total matching jobs as of `dataThrough`. This value can change while jobs are created or finish."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsJobsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsLogFacetsRequest": {
        "type": "object",
        "properties": {
          "kind": {
            "title": "kind",
            "description": "Facet to list.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogFacetKind"
          },
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Time window to inspect. Maximum: 30 days. Default: the last hour."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Filters applied before facet values are counted."
          },
          "query": {
            "type": [
              "string",
              "null"
            ],
            "title": "query",
            "description": "Case-insensitive text to match against facet values."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of facet values to return per page. Maximum: 250. Default: 100."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep the kind, filters, query, and `timeRange` unchanged between pages."
          }
        },
        "title": "ListGithubActionsLogFacetsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsLogFacetsResponse": {
        "type": "object",
        "properties": {
          "facets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogFacet"
            },
            "title": "facets",
            "description": "Facet values ordered by descending count, then value."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more facet values."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsLogFacetsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsRecommendationsRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Metrics window. Maximum: 90 days. Default: the last 30 days."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsAnalyticsFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Jobs to include."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of recommendations to return per page. Maximum: 250. Default: 50."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep filters and `timeRange` unchanged between pages."
          }
        },
        "title": "ListGithubActionsRecommendationsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsRecommendationsResponse": {
        "type": "object",
        "properties": {
          "recommendations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsRecommendation"
            },
            "title": "recommendations",
            "description": "Recommendations ordered by type, then repository, workflow, and job."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more recommendations."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format. Recommendations can lag completed jobs by up to 15 minutes.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsRecommendationsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsRepositoriesRequest": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "title": "connection_id",
            "description": "Unique Depot identifier for the connection. Returned by `ListGithubActionsConnections`."
          },
          "query": {
            "type": [
              "string",
              "null"
            ],
            "title": "query",
            "description": "Case-insensitive repository-name search."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of repositories to return per page. Maximum: 250. Default: 100."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page."
          }
        },
        "title": "ListGithubActionsRepositoriesRequest",
        "additionalProperties": false
      },
      "depot.core.v1.ListGithubActionsRepositoriesResponse": {
        "type": "object",
        "properties": {
          "repositories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsRepository"
            },
            "title": "repositories",
            "description": "Repositories visible to the GitHub App installation. Provider credentials are never returned."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more repositories."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Time repository access was last refreshed, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "ListGithubActionsRepositoriesResponse",
        "additionalProperties": false
      },
      "depot.core.v1.SearchGithubActionsLogsRequest": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "title": "query",
            "description": "Text to match in log bodies. Empty text returns unfiltered log lines."
          },
          "timeRange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsTimeRange"
              },
              {
                "type": "null"
              }
            ],
            "title": "time_range",
            "description": "Time window to search. Maximum: 30 days. Default: the last hour."
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogFilters"
              },
              {
                "type": "null"
              }
            ],
            "title": "filters",
            "description": "Structured log filters."
          },
          "pageSize": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page_size",
            "format": "int32",
            "description": "Number of matching lines to return per page. Maximum: 1000. Default: 100."
          },
          "pageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "page_token",
            "description": "Token to fetch the next page. Leave empty to fetch the first page. Keep the query, filters, and `timeRange` unchanged between pages."
          }
        },
        "title": "SearchGithubActionsLogsRequest",
        "additionalProperties": false
      },
      "depot.core.v1.SearchGithubActionsLogsResponse": {
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot.core.v1.GithubActionsLogLine"
            },
            "title": "lines",
            "description": "Log lines matching the request, newest first."
          },
          "nextPageToken": {
            "type": [
              "string",
              "null"
            ],
            "title": "next_page_token",
            "description": "Token to fetch the next page. Empty when there are no more matching lines."
          },
          "totalSize": {
            "type": [
              "integer",
              "string"
            ],
            "title": "total_size",
            "format": "int64",
            "description": "Total matching lines as of `dataThrough`."
          },
          "dataThrough": {
            "title": "data_through",
            "description": "Latest time included in the response, in RFC 3339 format.",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "SearchGithubActionsLogsResponse",
        "additionalProperties": false
      },
      "depot.core.v1.TerminateGithubActionsJobRequest": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "title": "repository",
            "description": "Connected GitHub repository containing the job, in `owner/name` format."
          },
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job. Returned by `ListGithubActionsJobs`."
          }
        },
        "title": "TerminateGithubActionsJobRequest",
        "additionalProperties": false
      },
      "depot.core.v1.TerminateGithubActionsJobResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "title": "job_id",
            "description": "Unique GitHub identifier for the job."
          },
          "outcome": {
            "title": "outcome",
            "description": "Result of the idempotent termination request.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsTerminationOutcome"
          },
          "status": {
            "title": "status",
            "description": "Current state of the job when the request completed.",
            "$ref": "#/components/schemas/depot.core.v1.GithubActionsJobStatus"
          }
        },
        "title": "TerminateGithubActionsJobResponse",
        "additionalProperties": false
      },
      "google.protobuf.Timestamp": {
        "type": "string",
        "examples": [
          "2023-01-15T01:30:15.01Z",
          "2024-12-25T12:00:00Z"
        ],
        "format": "date-time",
        "description": "A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n     Timestamp timestamp;\n     timestamp.set_seconds(time(NULL));\n     timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n     struct timeval tv;\n     gettimeofday(&tv, NULL);\n\n     Timestamp timestamp;\n     timestamp.set_seconds(tv.tv_sec);\n     timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n     FILETIME ft;\n     GetSystemTimeAsFileTime(&ft);\n     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n     Timestamp timestamp;\n     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n     long millis = System.currentTimeMillis();\n\n     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n         .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n     Instant now = Instant.now();\n\n     Timestamp timestamp =\n         Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n             .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n     timestamp = Timestamp()\n     timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format."
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API token"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "GithubActionsService",
      "description": "GithubActionsService manages GitHub Actions jobs, logs, analytics, and connections for the authenticated organization."
    }
  ]
}