openapi: 3.0.0 info: title: gitpod.v1 gitpod.v1.AccountService gitpod.v1.ServiceAccountService API version: v1.0.0 servers: - url: https://api.gitpod.io description: Gitpod API tags: - name: gitpod.v1.ServiceAccountService x-displayName: gitpod.v1.ServiceAccountService paths: /gitpod.v1.ServiceAccountService/CreateServiceAccount: servers: [] post: description: "Creates a new service account in an organization.\n\n Use this method to:\n - Create service accounts for automation\n - Set up CI/CD credentials\n - Configure programmatic access\n\n ### Examples\n\n - Create service account:\n\n Creates a service account for automation.\n\n ```yaml\n name: \"ci-pipeline\"\n description: \"CI/CD Pipeline\"\n validUntil: \"2025-12-31T23:59:59Z\"\n ```" operationId: gitpod.v1.ServiceAccountService.CreateServiceAccount parameters: [] requestBody: content: application/json: examples: create_service_account: description: Creates a service account for automation. value: description: CI/CD Pipeline name: ci-pipeline validUntil: '2025-12-31T23:59:59Z' schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: CreateServiceAccount tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/CreateServiceAccountAccessToken: servers: [] post: description: "Creates a short-lived access token for configuring a service account.\n\n The token expires after 30 minutes and can be used as a Bearer token\n in the Authorization header to perform operations on behalf of the\n service account, such as configuring OAuth.\n\n ### Examples\n\n - Create access token:\n\n ```yaml\n serviceAccountId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n ```" operationId: gitpod.v1.ServiceAccountService.CreateServiceAccountAccessToken parameters: [] requestBody: content: application/json: examples: create_access_token: description: 'serviceAccountId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ' value: serviceAccountId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountAccessTokenRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountAccessTokenResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: CreateServiceAccountAccessToken tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/CreateServiceAccountToken: servers: [] post: description: "Creates a long-lived token for a service account.\n\n Use this method to:\n - Create tokens for CI/CD pipelines\n - Set up automation credentials\n - Generate API access tokens\n\n The token is returned only once and cannot be retrieved later.\n Token validity is capped to the service account's expiry.\n\n Requires impersonation: First obtain a short-lived access token via\n CreateServiceAccountAccessToken, then use it to call this method.\n The service account ID is derived from the caller's identity.\n\n ### Examples\n\n - Create token with 90-day validity:\n\n ```yaml\n description: \"GitHub Actions\"\n validFor: \"7776000s\"\n ```" operationId: gitpod.v1.ServiceAccountService.CreateServiceAccountToken parameters: [] requestBody: content: application/json: examples: create_token_with_90_day_validity: description: 'description: "GitHub Actions" validFor: "7776000s" ' value: description: GitHub Actions validFor: 7776000s schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountTokenRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.CreateServiceAccountTokenResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: CreateServiceAccountToken tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/DeleteServiceAccount: servers: [] post: description: "Deletes a service account.\n\n Use this method to:\n - Remove unused service accounts\n - Revoke service account access\n - Clean up expired accounts\n\n ### Examples\n\n - Delete service account:\n\n Permanently removes a service account.\n\n ```yaml\n serviceAccountId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n ```" operationId: gitpod.v1.ServiceAccountService.DeleteServiceAccount parameters: [] requestBody: content: application/json: examples: delete_service_account: description: Permanently removes a service account. value: serviceAccountId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.DeleteServiceAccountRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.DeleteServiceAccountResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: DeleteServiceAccount tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/DeleteServiceAccountToken: servers: [] post: description: "Deletes a service account token.\n\n Use this method to:\n - Revoke token access\n - Remove compromised tokens\n - Rotate credentials\n\n ### Examples\n\n - Delete token:\n\n ```yaml\n serviceAccountTokenId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n ```" operationId: gitpod.v1.ServiceAccountService.DeleteServiceAccountToken parameters: [] requestBody: content: application/json: examples: delete_token: description: 'serviceAccountTokenId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ' value: serviceAccountTokenId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.DeleteServiceAccountTokenRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.DeleteServiceAccountTokenResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: DeleteServiceAccountToken tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/GetServiceAccount: servers: [] post: description: "Gets details about a specific service account.\n\n Use this method to:\n - View service account details\n - Check service account status\n - Retrieve service account metadata\n\n ### Examples\n\n - Get service account:\n\n Retrieves details about a specific service account.\n\n ```yaml\n serviceAccountId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n ```" operationId: gitpod.v1.ServiceAccountService.GetServiceAccount parameters: [] requestBody: content: application/json: examples: get_service_account: description: Retrieves details about a specific service account. value: serviceAccountId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.GetServiceAccountRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.GetServiceAccountResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: GetServiceAccount tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/GetServiceAccountToken: servers: [] post: description: "Gets details about a specific service account token.\n\n Use this method to:\n - View token metadata\n - Check token expiration\n - Monitor token usage\n\n ### Examples\n\n - Get token details:\n\n ```yaml\n serviceAccountTokenId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n ```" operationId: gitpod.v1.ServiceAccountService.GetServiceAccountToken parameters: [] requestBody: content: application/json: examples: get_token_details: description: 'serviceAccountTokenId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ' value: serviceAccountTokenId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.GetServiceAccountTokenRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.GetServiceAccountTokenResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: GetServiceAccountToken tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/ListServiceAccountTokens: servers: [] post: description: "Lists tokens for a service account.\n\n Use this method to:\n - View all tokens for a service account\n - Audit token usage\n - Identify tokens to revoke\n\n Requires impersonation: First obtain a short-lived access token via\n CreateServiceAccountAccessToken, then use it to call this method.\n The service account ID is derived from the caller's identity.\n\n ### Examples\n\n - List tokens:\n\n ```yaml\n pagination:\n pageSize: 20\n ```" operationId: gitpod.v1.ServiceAccountService.ListServiceAccountTokens parameters: - in: query name: pageSize schema: default: 25 maximum: 100 minimum: 0 type: integer - in: query name: token schema: default: '' type: string requestBody: content: application/json: examples: list_tokens: description: "pagination:\n pageSize: 20\n" value: pagination: pageSize: 20 schema: $ref: '#/components/schemas/gitpod.v1.ListServiceAccountTokensRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.ListServiceAccountTokensResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: ListServiceAccountTokens tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/ListServiceAccounts: servers: [] post: description: "Lists service accounts in an organization.\n\n Use this method to:\n - View all service accounts\n - Audit service account usage\n - Manage service account lifecycle\n\n ### Examples\n\n - List service accounts:\n\n Shows all service accounts in an organization.\n\n ```yaml\n pagination:\n pageSize: 20\n ```" operationId: gitpod.v1.ServiceAccountService.ListServiceAccounts parameters: - in: query name: pageSize schema: default: 25 maximum: 100 minimum: 0 type: integer - in: query name: token schema: default: '' type: string requestBody: content: application/json: examples: list_service_accounts: description: Shows all service accounts in an organization. value: pagination: pageSize: 20 schema: $ref: '#/components/schemas/gitpod.v1.ListServiceAccountsRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.ListServiceAccountsResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: ListServiceAccounts tags: - gitpod.v1.ServiceAccountService /gitpod.v1.ServiceAccountService/UpdateServiceAccount: servers: [] post: description: "Updates a service account.\n\n Use this method to:\n - Update service account name or description\n\n ### Examples\n\n - Update name and description:\n\n Updates the service account name and description.\n\n ```yaml\n serviceAccountId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n name: \"updated-ci-pipeline\"\n description: \"Updated CI/CD Pipeline\"\n ```" operationId: gitpod.v1.ServiceAccountService.UpdateServiceAccount parameters: [] requestBody: content: application/json: examples: update_name_and_description: description: Updates the service account name and description. value: description: Updated CI/CD Pipeline name: updated-ci-pipeline serviceAccountId: d2c94c27-3b76-4a42-b88c-95a85e392c68 schema: $ref: '#/components/schemas/gitpod.v1.UpdateServiceAccountRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/gitpod.v1.UpdateServiceAccountResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/connect.error' description: Error security: - bearerAuth: [] summary: UpdateServiceAccount tags: - gitpod.v1.ServiceAccountService components: schemas: gitpod.v1.Principal: enum: - PRINCIPAL_UNSPECIFIED - PRINCIPAL_ACCOUNT - PRINCIPAL_USER - PRINCIPAL_RUNNER - PRINCIPAL_ENVIRONMENT - PRINCIPAL_SERVICE_ACCOUNT - PRINCIPAL_RUNNER_MANAGER title: Principal type: string gitpod.v1.DeleteServiceAccountRequest: additionalProperties: false properties: serviceAccountId: format: uuid title: service_account_id type: string title: DeleteServiceAccountRequest type: object gitpod.v1.UpdateServiceAccountResponse: additionalProperties: false properties: serviceAccount: $ref: '#/components/schemas/gitpod.v1.ServiceAccount' title: service_account required: - serviceAccount title: UpdateServiceAccountResponse type: object gitpod.v1.GetServiceAccountResponse: additionalProperties: false properties: serviceAccount: $ref: '#/components/schemas/gitpod.v1.ServiceAccount' title: service_account required: - serviceAccount title: GetServiceAccountResponse type: object gitpod.v1.DeleteServiceAccountTokenRequest: additionalProperties: false properties: serviceAccountTokenId: format: uuid title: service_account_token_id type: string title: DeleteServiceAccountTokenRequest type: object gitpod.v1.GetServiceAccountTokenResponse: additionalProperties: false properties: token: $ref: '#/components/schemas/gitpod.v1.ServiceAccountToken' title: token required: - token title: GetServiceAccountTokenResponse type: object gitpod.v1.GetServiceAccountRequest: additionalProperties: false properties: serviceAccountId: format: uuid title: service_account_id type: string title: GetServiceAccountRequest type: object gitpod.v1.Subject: additionalProperties: false properties: id: description: id is the UUID of the subject format: uuid title: id type: string principal: $ref: '#/components/schemas/gitpod.v1.Principal' description: Principal is the principal of the subject title: principal title: Subject type: object gitpod.v1.DeleteServiceAccountResponse: additionalProperties: false title: DeleteServiceAccountResponse type: object connect.error: additionalProperties: true description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' properties: code: description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. 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 example: - not_found type: string message: 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. type: string title: Connect Error type: object gitpod.v1.CreateServiceAccountResponse: additionalProperties: false properties: serviceAccount: $ref: '#/components/schemas/gitpod.v1.ServiceAccount' title: service_account required: - serviceAccount title: CreateServiceAccountResponse type: object gitpod.v1.CreateServiceAccountRequest: additionalProperties: false properties: description: maxLength: 500 title: description type: string name: maxLength: 64 minLength: 1 title: name type: string validUntil: $ref: '#/components/schemas/google.protobuf.Timestamp' description: "valid_until specifies when this service account expires.\n Note: In the current design, the service account itself has an expiry.\n All authentication using this service account will fail after this time." title: valid_until required: - validUntil title: CreateServiceAccountRequest type: object gitpod.v1.PaginationRequest: additionalProperties: false properties: pageSize: description: "Page size is the maximum number of results to retrieve per page.\n Defaults to 25. Maximum 100." format: int32 maximum: 100 title: page_size type: integer token: description: "Token for the next set of results that was returned as next_token of a\n PaginationResponse" title: token type: string title: PaginationRequest type: object google.protobuf.Duration: description: "A Duration represents a signed, fixed-length span of time represented\n as a count of seconds and fractions of seconds at nanosecond\n resolution. It is independent of any calendar and concepts like \"day\"\n or \"month\". It is related to Timestamp in that the difference between\n two Timestamp values is a Duration and it can be added or subtracted\n from a Timestamp. Range is approximately +-10,000 years.\n\n # Examples\n\n Example 1: Compute Duration from two Timestamps in pseudo code.\n\n Timestamp start = ...;\n Timestamp end = ...;\n Duration duration = ...;\n\n duration.seconds = end.seconds - start.seconds;\n duration.nanos = end.nanos - start.nanos;\n\n if (duration.seconds < 0 && duration.nanos > 0) {\n duration.seconds += 1;\n duration.nanos -= 1000000000;\n } else if (duration.seconds > 0 && duration.nanos < 0) {\n duration.seconds -= 1;\n duration.nanos += 1000000000;\n }\n\n Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n\n Timestamp start = ...;\n Duration duration = ...;\n Timestamp end = ...;\n\n end.seconds = start.seconds + duration.seconds;\n end.nanos = start.nanos + duration.nanos;\n\n if (end.nanos < 0) {\n end.seconds -= 1;\n end.nanos += 1000000000;\n } else if (end.nanos >= 1000000000) {\n end.seconds += 1;\n end.nanos -= 1000000000;\n }\n\n Example 3: Compute Duration from datetime.timedelta in Python.\n\n td = datetime.timedelta(days=3, minutes=10)\n duration = Duration()\n duration.FromTimedelta(td)\n\n # JSON Mapping\n\n In JSON format, the Duration type is encoded as a string rather than an\n object, where the string ends in the suffix \"s\" (indicating seconds) and\n is preceded by the number of seconds, with nanoseconds expressed as\n fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n microsecond should be expressed in JSON format as \"3.000001s\"." format: regex pattern: ^[-\+]?([0-9]+\.?[0-9]*|\.[0-9]+)s$ type: string gitpod.v1.ListServiceAccountTokensRequest: additionalProperties: false properties: pagination: $ref: '#/components/schemas/gitpod.v1.PaginationRequest' title: pagination title: ListServiceAccountTokensRequest type: object gitpod.v1.CreateServiceAccountTokenResponse: additionalProperties: false properties: serviceAccountToken: $ref: '#/components/schemas/gitpod.v1.ServiceAccountToken' description: service_account_token contains the token metadata. title: service_account_token token: description: token is the actual JWT token value. This is only returned once during creation. title: token type: string required: - token title: CreateServiceAccountTokenResponse type: object gitpod.v1.CreateServiceAccountAccessTokenRequest: additionalProperties: false properties: serviceAccountId: format: uuid title: service_account_id type: string title: CreateServiceAccountAccessTokenRequest type: object gitpod.v1.ListServiceAccountsResponse: additionalProperties: false properties: pagination: $ref: '#/components/schemas/gitpod.v1.PaginationResponse' title: pagination serviceAccounts: items: $ref: '#/components/schemas/gitpod.v1.ServiceAccount' title: service_accounts type: array title: ListServiceAccountsResponse type: object gitpod.v1.PaginationResponse: additionalProperties: false properties: nextToken: description: "Token passed for retrieving the next set of results. Empty if there are no\n more results" title: next_token type: string title: PaginationResponse type: object gitpod.v1.CreateServiceAccountTokenRequest: additionalProperties: false properties: description: title: description type: string validFor: $ref: '#/components/schemas/google.protobuf.Duration' description: "valid_for specifies how long the token should be valid.\n A large value (e.g. reaching year 2099) represents \"no expiry\".\n The actual expiry is always capped to the service account's own expiry." title: valid_for title: CreateServiceAccountTokenRequest type: object google.protobuf.Timestamp: 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." format: date-time type: string gitpod.v1.ListServiceAccountsRequest: additionalProperties: false properties: filter: $ref: '#/components/schemas/gitpod.v1.ListServiceAccountsRequest.Filter' description: filter contains options for filtering the list of service accounts. title: filter pagination: $ref: '#/components/schemas/gitpod.v1.PaginationRequest' title: pagination title: ListServiceAccountsRequest type: object gitpod.v1.CreateServiceAccountAccessTokenResponse: additionalProperties: false properties: token: title: token type: string title: CreateServiceAccountAccessTokenResponse type: object gitpod.v1.ServiceAccount: additionalProperties: false properties: createdAt: $ref: '#/components/schemas/google.protobuf.Timestamp' title: created_at creator: $ref: '#/components/schemas/gitpod.v1.Subject' title: creator description: title: description type: string id: format: uuid title: id type: string name: title: name type: string organizationId: format: uuid title: organization_id type: string suspended: description: "suspended indicates whether the service account has been deleted (soft-delete).\n Suspended service accounts cannot be used for authentication." title: suspended type: boolean validUntil: $ref: '#/components/schemas/google.protobuf.Timestamp' title: valid_until title: ServiceAccount type: object gitpod.v1.UpdateServiceAccountRequest: additionalProperties: false properties: description: description: 'Note: valid_until is immutable and cannot be updated' maxLength: 500 nullable: true title: description type: string name: description: Optional fields for update maxLength: 64 minLength: 1 nullable: true title: name type: string serviceAccountId: format: uuid title: service_account_id type: string title: UpdateServiceAccountRequest type: object gitpod.v1.ListServiceAccountsRequest.Filter: additionalProperties: false properties: includeSuspended: description: "include_suspended includes suspended (soft-deleted) service accounts in the response.\n By default, suspended service accounts are excluded." title: include_suspended type: boolean search: description: search performs case-insensitive search across service account name, description, and ID maxLength: 256 title: search type: string serviceAccountIds: description: service_account_ids filters the response to only service accounts with the specified IDs items: format: uuid maxItems: 25 type: string maxItems: 25 title: service_account_ids type: array title: Filter type: object gitpod.v1.DeleteServiceAccountTokenResponse: additionalProperties: false title: DeleteServiceAccountTokenResponse type: object gitpod.v1.GetServiceAccountTokenRequest: additionalProperties: false properties: serviceAccountTokenId: format: uuid title: service_account_token_id type: string title: GetServiceAccountTokenRequest type: object gitpod.v1.ServiceAccountToken: additionalProperties: false description: "ServiceAccountToken represents metadata about a service account token.\n The actual token value is only returned once during creation." properties: createdAt: $ref: '#/components/schemas/google.protobuf.Timestamp' title: created_at creator: $ref: '#/components/schemas/gitpod.v1.Subject' title: creator description: title: description type: string expiresAt: $ref: '#/components/schemas/google.protobuf.Timestamp' title: expires_at id: format: uuid title: id type: string lastUsed: $ref: '#/components/schemas/google.protobuf.Timestamp' title: last_used serviceAccountId: format: uuid title: service_account_id type: string title: ServiceAccountToken type: object gitpod.v1.ListServiceAccountTokensResponse: additionalProperties: false properties: pagination: $ref: '#/components/schemas/gitpod.v1.PaginationResponse' title: pagination tokens: items: $ref: '#/components/schemas/gitpod.v1.ServiceAccountToken' title: tokens type: array title: ListServiceAccountTokensResponse type: object securitySchemes: bearerAuth: bearerFormat: JWT scheme: bearer type: http x-tagGroups: - name: gitpod.v1 tags: - gitpod.v1.AccountService - gitpod.v1.AgentService - gitpod.v1.AgentSecurityService - gitpod.v1.BillingService - gitpod.v1.EditorService - gitpod.v1.EnvironmentAutomationService - gitpod.v1.EnvironmentService - gitpod.v1.ErrorsService - gitpod.v1.EventService - gitpod.v1.GatewayService - gitpod.v1.GroupService - gitpod.v1.IdentityService - gitpod.v1.InsightsService - gitpod.v1.IntegrationService - gitpod.v1.NotificationService - gitpod.v1.OnaIntelligenceService - gitpod.v1.OrganizationService - gitpod.v1.PrebuildService - gitpod.v1.ProjectService - gitpod.v1.RunnerConfigurationService - gitpod.v1.RunnerInteractionService - gitpod.v1.RunnerManagerService - gitpod.v1.RunnerService - gitpod.v1.SecretService - gitpod.v1.ServiceAccountService - gitpod.v1.SessionService - gitpod.v1.TeamService - gitpod.v1.UsageService - gitpod.v1.UserService - gitpod.v1.WebhookService - gitpod.v1.WorkflowService