Add a token service
All checks were successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/dart-generate Pipeline was successful
ci/woodpecker/push/js-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful

Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
This commit is contained in:
2026-05-10 22:10:32 +02:00
parent a00093ffc1
commit 52f43e57ad

940
README.md
View File

@@ -3,11 +3,6 @@
## Table of Contents
- [options/v1/options_v1.proto](#options_v1_options_v1-proto)
- [AuthOptions](#options-v1-AuthOptions)
- [File-level Extensions](#options_v1_options_v1-proto-extensions)
- [accounts/v1/accounts_v1.proto](#accounts_v1_accounts_v1-proto)
- [AccountData](#accounts-v1-AccountData)
- [AccountPassword](#accounts-v1-AccountPassword)
@@ -19,49 +14,8 @@
- [SignInRequest](#accounts-v1-SignInRequest)
- [SignUpRequest](#accounts-v1-SignUpRequest)
- [AccountManagementService](#accounts-v1-AccountManagementService)
- [applications/v1/applications_v1.proto](#applications_v1_applications_v1-proto)
- [ApplicationFull](#applications-ApplicationFull)
- [ApplicationId](#applications-ApplicationId)
- [ApplicationMetadata](#applications-ApplicationMetadata)
- [ApplicationSpec](#applications-ApplicationSpec)
- [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry)
- [CreateOptions](#applications-CreateOptions)
- [DeleteOptions](#applications-DeleteOptions)
- [GetOptions](#applications-GetOptions)
- [ListOptions](#applications-ListOptions)
- [OwnerId](#applications-OwnerId)
- [Token](#applications-Token)
- [UpdateOptions](#applications-UpdateOptions)
- [Applications](#applications-Applications)
- [email/v1/email_v1.proto](#email_v1_email_v1-proto)
- [ConfirmValidation](#email-ConfirmValidation)
- [RequestValidation](#email-RequestValidation)
- [EmailValidation](#email-EmailValidation)
- [environments/v1/environments_v1.proto](#environments_v1_environments_v1-proto)
- [CreateOptions](#environments-CreateOptions)
- [DeleteOptions](#environments-DeleteOptions)
- [EnvironmentFull](#environments-EnvironmentFull)
- [EnvironmentId](#environments-EnvironmentId)
- [EnvironmentMetadata](#environments-EnvironmentMetadata)
- [EnvironmentSpec](#environments-EnvironmentSpec)
- [GetOptions](#environments-GetOptions)
- [ListOptions](#environments-ListOptions)
- [OwnerId](#environments-OwnerId)
- [Token](#environments-Token)
- [UpdateOptions](#environments-UpdateOptions)
- [Kubernetes](#environments-Kubernetes)
- [Location](#environments-Location)
- [Provider](#environments-Provider)
- [ServerType](#environments-ServerType)
- [Environments](#environments-Environments)
- [AccountsService](#accounts-v1-AccountsService)
- [PublicAccountsService](#accounts-v1-PublicAccountsService)
- [test/v1/test_v1.proto](#test_v1_test_v1-proto)
- [PingRequest](#test-v1-PingRequest)
@@ -72,49 +26,28 @@
- [TestAuthService](#test-v1-TestAuthService)
- [TestNoAuthService](#test-v1-TestNoAuthService)
- [tokens/v1/tokens_v1.proto](#tokens_v1_tokens_v1-proto)
- [CreateTokenRequest](#tokens-v1-CreateTokenRequest)
- [CreateTokenResponse](#tokens-v1-CreateTokenResponse)
- [ForceTokenExpirationRequest](#tokens-v1-ForceTokenExpirationRequest)
- [GetTokenRequest](#tokens-v1-GetTokenRequest)
- [GetTokenResponse](#tokens-v1-GetTokenResponse)
- [ListTokensResponse](#tokens-v1-ListTokensResponse)
- [RegenerateTokenRequest](#tokens-v1-RegenerateTokenRequest)
- [RegenerateTokenResponse](#tokens-v1-RegenerateTokenResponse)
- [TokenMetadata](#tokens-v1-TokenMetadata)
- [TokenPermissions](#tokens-v1-TokenPermissions)
- [TokenUUID](#tokens-v1-TokenUUID)
- [TokenValue](#tokens-v1-TokenValue)
- [UpdateTokenRequest](#tokens-v1-UpdateTokenRequest)
- [UpdateTokenResponse](#tokens-v1-UpdateTokenResponse)
- [TokensService](#tokens-v1-TokensService)
- [Scalar Value Types](#scalar-value-types)
<a name="options_v1_options_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## options/v1/options_v1.proto
<a name="options-v1-AuthOptions"></a>
### AuthOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| auth | [bool](#bool) | | When set to false, the auth interceptor will be skiped on the backend |
<a name="options_v1_options_v1-proto-extensions"></a>
### File-level Extensions
| Extension | Type | Base | Number | Description |
| --------- | ---- | ---- | ------ | ----------- |
| auth_options | AuthOptions | .google.protobuf.MethodOptions | 50001 | |
<a name="accounts_v1_accounts_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
@@ -268,582 +201,27 @@ Protobuf definitions for the accounts service.
<a name="accounts-v1-AccountManagementService"></a>
<a name="accounts-v1-AccountsService"></a>
### AccountManagementService
### AccountsService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| IsEmailVerified | [IsEmailVerifiedRequest](#accounts-v1-IsEmailVerifiedRequest) | [IsEmailVerifiedResponse](#accounts-v1-IsEmailVerifiedResponse) | Is email for the current account verified |
| RefreshSession | [.google.protobuf.Empty](#google-protobuf-Empty) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| TokenAuthorization | [.google.protobuf.Empty](#google-protobuf-Empty) | [.google.protobuf.Empty](#google-protobuf-Empty) | Authorize using long living tokens |
<a name="accounts-v1-PublicAccountsService"></a>
### PublicAccountsService
Service for handling accounts that do not require authentication
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SignIn | [SignInRequest](#accounts-v1-SignInRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Sing in into an existing account |
| SignUp | [SignUpRequest](#accounts-v1-SignUpRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create a new account |
| IsEmailVerified | [IsEmailVerifiedRequest](#accounts-v1-IsEmailVerifiedRequest) | [IsEmailVerifiedResponse](#accounts-v1-IsEmailVerifiedResponse) | Is email for the current account verified |
| RefreshSession | [.google.protobuf.Empty](#google-protobuf-Empty) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
<a name="applications_v1_applications_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## applications/v1/applications_v1.proto
This file has messages for describing applications
<a name="applications-ApplicationFull"></a>
### ApplicationFull
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| id | [ApplicationId](#applications-ApplicationId) | | |
<a name="applications-ApplicationId"></a>
### ApplicationId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | |
<a name="applications-ApplicationMetadata"></a>
### ApplicationMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| description | [string](#string) | | |
<a name="applications-ApplicationSpec"></a>
### ApplicationSpec
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| application | [string](#string) | | |
| version | [string](#string) | | |
| environemnt_id | [string](#string) | | |
| config | [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry) | repeated | |
| raw_config | [string](#string) | | |
<a name="applications-ApplicationSpec-ConfigEntry"></a>
### ApplicationSpec.ConfigEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [string](#string) | | |
<a name="applications-CreateOptions"></a>
### CreateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-DeleteOptions"></a>
### DeleteOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-GetOptions"></a>
### GetOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-ListOptions"></a>
### ListOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-OwnerId"></a>
### OwnerId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | UUID of a user that is creating an environemnt |
<a name="applications-Token"></a>
### Token
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token that should be used to create an environment |
<a name="applications-UpdateOptions"></a>
### UpdateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-Applications"></a>
### Applications
Service for handling applications
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Create | [CreateOptions](#applications-CreateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Update | [UpdateOptions](#applications-UpdateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Delete | [DeleteOptions](#applications-DeleteOptions) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Get | [GetOptions](#applications-GetOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| List | [ListOptions](#applications-ListOptions) | [ApplicationFull](#applications-ApplicationFull) stream | |
<a name="email_v1_email_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## email/v1/email_v1.proto
<a name="email-ConfirmValidation"></a>
### ConfirmValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
| code | [int32](#int32) | | |
<a name="email-RequestValidation"></a>
### RequestValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
<a name="email-EmailValidation"></a>
### EmailValidation
A service that should handle email validation
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SendRequest | [RequestValidation](#email-RequestValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| ValidateEmail | [ConfirmValidation](#email-ConfirmValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
<a name="environments_v1_environments_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## environments/v1/environments_v1.proto
This file has messages for describing environments
<a name="environments-CreateOptions"></a>
### CreateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-DeleteOptions"></a>
### DeleteOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-EnvironmentFull"></a>
### EnvironmentFull
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
<a name="environments-EnvironmentId"></a>
### EnvironmentId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | |
<a name="environments-EnvironmentMetadata"></a>
### EnvironmentMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | A name of the environment |
| description | [string](#string) | | |
<a name="environments-EnvironmentSpec"></a>
### EnvironmentSpec
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| provider | [Provider](#environments-Provider) | | Provide |
| kubernetes | [Kubernetes](#environments-Kubernetes) | | |
| server_type | [ServerType](#environments-ServerType) | | |
| server_location | [Location](#environments-Location) | | |
| disk_size | [int32](#int32) | | |
<a name="environments-GetOptions"></a>
### GetOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-ListOptions"></a>
### ListOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| search_string | [string](#string) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-OwnerId"></a>
### OwnerId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | UUID of a user that is creating an environemnt |
<a name="environments-Token"></a>
### Token
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token that should be used to create an environment |
<a name="environments-UpdateOptions"></a>
### UpdateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-Kubernetes"></a>
### Kubernetes
| Name | Number | Description |
| ---- | ------ | ----------- |
| KUBERNETES_UNSPECIFIED | 0 | |
| KUBERNETES_K3S | 1 | |
<a name="environments-Location"></a>
### Location
| Name | Number | Description |
| ---- | ------ | ----------- |
| LOCATION_UNSPECIFIED | 0 | |
| LOCATION_HETZNER_NUREMBERG | 1 | |
| LOCATION_HETZNER_FALKENSTEIN | 2 | |
| LOCATION_HETZNER_HELSINKI | 3 | |
| LOCATION_HETZNER_HILLSBORO | 4 | |
| LOCATION_HETZNER_ASHBURN | 5 | |
<a name="environments-Provider"></a>
### Provider
Helpers and other messages
| Name | Number | Description |
| ---- | ------ | ----------- |
| PROVIDER_UNSPECIFIED | 0 | |
| PROVIDER_HETZNER | 1 | |
<a name="environments-ServerType"></a>
### ServerType
| Name | Number | Description |
| ---- | ------ | ----------- |
| SERVER_TYPE_UNSPECIFIED | 0 | |
| SERVER_TYPE_STARTER | 1 | |
| SERVER_TYPE_REGULAR | 2 | |
| SERVER_TYPE_PLUS | 3 | |
| SERVER_TYPE_PRO | 4 | |
| SERVER_TYPE_CUSTOM | 5 | |
<a name="environments-Environments"></a>
### Environments
Service for handling environments
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Create | [CreateOptions](#environments-CreateOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| Update | [UpdateOptions](#environments-UpdateOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| Delete | [DeleteOptions](#environments-DeleteOptions) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Get | [GetOptions](#environments-GetOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| List | [ListOptions](#environments-ListOptions) | [EnvironmentFull](#environments-EnvironmentFull) stream | |
@@ -925,6 +303,256 @@ Service for handling environments
<a name="tokens_v1_tokens_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## tokens/v1/tokens_v1.proto
Protobuf definitions for the accounts service.
<a name="tokens-v1-CreateTokenRequest"></a>
### CreateTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
<a name="tokens-v1-CreateTokenResponse"></a>
### CreateTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
| token_value | [TokenValue](#tokens-v1-TokenValue) | | |
<a name="tokens-v1-ForceTokenExpirationRequest"></a>
### ForceTokenExpirationRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
<a name="tokens-v1-GetTokenRequest"></a>
### GetTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
<a name="tokens-v1-GetTokenResponse"></a>
### GetTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
<a name="tokens-v1-ListTokensResponse"></a>
### ListTokensResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
<a name="tokens-v1-RegenerateTokenRequest"></a>
### RegenerateTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
<a name="tokens-v1-RegenerateTokenResponse"></a>
### RegenerateTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_value | [TokenValue](#tokens-v1-TokenValue) | | |
<a name="tokens-v1-TokenMetadata"></a>
### TokenMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | A token name |
| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Token expiration timestamp |
<a name="tokens-v1-TokenPermissions"></a>
### TokenPermissions
<a name="tokens-v1-TokenUUID"></a>
### TokenUUID
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | An ID of a token |
<a name="tokens-v1-TokenValue"></a>
### TokenValue
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token value Can be only retrieved once after the generation |
<a name="tokens-v1-UpdateTokenRequest"></a>
### UpdateTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
<a name="tokens-v1-UpdateTokenResponse"></a>
### UpdateTokenResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| token_metadata | [TokenMetadata](#tokens-v1-TokenMetadata) | | |
| token_permissions | [TokenPermissions](#tokens-v1-TokenPermissions) | | |
<a name="tokens-v1-TokensService"></a>
### TokensService
Tokens should be used for programmatic access
For example CLI or terraform modules
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| CreateToken | [CreateTokenRequest](#tokens-v1-CreateTokenRequest) | [CreateTokenResponse](#tokens-v1-CreateTokenResponse) | Create a new token |
| UpdateToken | [UpdateTokenRequest](#tokens-v1-UpdateTokenRequest) | [UpdateTokenResponse](#tokens-v1-UpdateTokenResponse) | Update an existing token |
| ForceTokenExpiration | [ForceTokenExpirationRequest](#tokens-v1-ForceTokenExpirationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Expire an existing token |
| RegenerateToken | [RegenerateTokenRequest](#tokens-v1-RegenerateTokenRequest) | [RegenerateTokenResponse](#tokens-v1-RegenerateTokenResponse) | Create a new token with the same UUID |
| GetToken | [GetTokenRequest](#tokens-v1-GetTokenRequest) | [GetTokenResponse](#tokens-v1-GetTokenResponse) | Get an existing token |
| ListTokens | [.google.protobuf.Empty](#google-protobuf-Empty) | [ListTokensResponse](#tokens-v1-ListTokensResponse) stream | List all existing tokens |
## Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |