Files
softplayer-proto/README.md
Nikolai Rodionov dfea0e6782
All checks were successful
ci/woodpecker/push/dart-generate Pipeline was successful
ci/woodpecker/push/go-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
Add token uuid to return
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-05-17 22:07:42 +02:00

685 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Protocol Documentation
<a name="top"></a>
## Table of Contents
- [accounts/v1/accounts_v1.proto](#accounts_v1_accounts_v1-proto)
- [AccountData](#accounts-v1-AccountData)
- [AccountPassword](#accounts-v1-AccountPassword)
- [IsEmailVerifiedRequest](#accounts-v1-IsEmailVerifiedRequest)
- [IsEmailVerifiedResponse](#accounts-v1-IsEmailVerifiedResponse)
- [NewPasswordRequest](#accounts-v1-NewPasswordRequest)
- [RefreshTokenRequest](#accounts-v1-RefreshTokenRequest)
- [ResetPasswordRequest](#accounts-v1-ResetPasswordRequest)
- [SignInRequest](#accounts-v1-SignInRequest)
- [SignUpRequest](#accounts-v1-SignUpRequest)
- [AccountsService](#accounts-v1-AccountsService)
- [PublicAccountsService](#accounts-v1-PublicAccountsService)
- [test/v1/test_v1.proto](#test_v1_test_v1-proto)
- [PingRequest](#test-v1-PingRequest)
- [PingResponse](#test-v1-PingResponse)
- [PingStreamResponse](#test-v1-PingStreamResponse)
- [PongRequest](#test-v1-PongRequest)
- [PongResponse](#test-v1-PongResponse)
- [PongStreamResponse](#test-v1-PongStreamResponse)
- [PublicTestService](#test-v1-PublicTestService)
- [TestService](#test-v1-TestService)
- [tokens/v1/tokens_v1.proto](#tokens_v1_tokens_v1-proto)
- [AuthenticateWithTokenRequest](#tokens-v1-AuthenticateWithTokenRequest)
- [CreateTokenRequest](#tokens-v1-CreateTokenRequest)
- [CreateTokenResponse](#tokens-v1-CreateTokenResponse)
- [ForceTokenExpirationRequest](#tokens-v1-ForceTokenExpirationRequest)
- [GetTokenRequest](#tokens-v1-GetTokenRequest)
- [GetTokenResponse](#tokens-v1-GetTokenResponse)
- [ListPermissionsResponse](#tokens-v1-ListPermissionsResponse)
- [ListTokensResponse](#tokens-v1-ListTokensResponse)
- [MethodList](#tokens-v1-MethodList)
- [RegenerateTokenRequest](#tokens-v1-RegenerateTokenRequest)
- [RegenerateTokenResponse](#tokens-v1-RegenerateTokenResponse)
- [TokenMetadata](#tokens-v1-TokenMetadata)
- [TokenPermissions](#tokens-v1-TokenPermissions)
- [TokenPermissions.PermissionsEntry](#tokens-v1-TokenPermissions-PermissionsEntry)
- [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="accounts_v1_accounts_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## accounts/v1/accounts_v1.proto
Protobuf definitions for the accounts service.
<a name="accounts-v1-AccountData"></a>
### AccountData
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Account name |
| email | [string](#string) | | Account email |
<a name="accounts-v1-AccountPassword"></a>
### AccountPassword
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| password | [string](#string) | | |
<a name="accounts-v1-IsEmailVerifiedRequest"></a>
### IsEmailVerifiedRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-v1-AccountData) | | |
<a name="accounts-v1-IsEmailVerifiedResponse"></a>
### IsEmailVerifiedResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| verified | [bool](#bool) | | |
<a name="accounts-v1-NewPasswordRequest"></a>
### NewPasswordRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-v1-AccountData) | | |
| password | [AccountPassword](#accounts-v1-AccountPassword) | | |
| code | [string](#string) | | |
<a name="accounts-v1-RefreshTokenRequest"></a>
### RefreshTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| session_id | [string](#string) | | |
<a name="accounts-v1-ResetPasswordRequest"></a>
### ResetPasswordRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-v1-AccountData) | | |
<a name="accounts-v1-SignInRequest"></a>
### SignInRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| email | [string](#string) | | |
| password | [string](#string) | | |
<a name="accounts-v1-SignUpRequest"></a>
### SignUpRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| email | [string](#string) | | |
| password | [string](#string) | | |
<a name="accounts-v1-AccountsService"></a>
### 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 |
<a name="test_v1_test_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## test/v1/test_v1.proto
<a name="test-v1-PingRequest"></a>
### PingRequest
<a name="test-v1-PingResponse"></a>
### PingResponse
<a name="test-v1-PingStreamResponse"></a>
### PingStreamResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| dummy | [string](#string) | | |
<a name="test-v1-PongRequest"></a>
### PongRequest
<a name="test-v1-PongResponse"></a>
### PongResponse
<a name="test-v1-PongStreamResponse"></a>
### PongStreamResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| dummy | [string](#string) | | |
<a name="test-v1-PublicTestService"></a>
### PublicTestService
Service for handling environments
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Ping | [PingRequest](#test-v1-PingRequest) | [PingResponse](#test-v1-PingResponse) | |
| PingStream | [.google.protobuf.Empty](#google-protobuf-Empty) | [PingStreamResponse](#test-v1-PingStreamResponse) stream | |
<a name="test-v1-TestService"></a>
### TestService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Pong | [PongRequest](#test-v1-PongRequest) | [PongResponse](#test-v1-PongResponse) | |
| PongStream | [.google.protobuf.Empty](#google-protobuf-Empty) | [PongStreamResponse](#test-v1-PongStreamResponse) stream | |
<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-AuthenticateWithTokenRequest"></a>
### AuthenticateWithTokenRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token_value | [TokenValue](#tokens-v1-TokenValue) | | |
<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_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-ListPermissionsResponse"></a>
### ListPermissionsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| 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-MethodList"></a>
### MethodList
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| methods | [string](#string) | repeated | |
<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_uuid | [TokenUUID](#tokens-v1-TokenUUID) | | |
| 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 |
| last_used_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | When the token was used the last time |
| generated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | When was the current token generated |
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | When was the current token entry created |
| revoked_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | When was the token revoked |
<a name="tokens-v1-TokenPermissions"></a>
### TokenPermissions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| permissions | [TokenPermissions.PermissionsEntry](#tokens-v1-TokenPermissions-PermissionsEntry) | repeated | |
<a name="tokens-v1-TokenPermissions-PermissionsEntry"></a>
### TokenPermissions.PermissionsEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [MethodList](#tokens-v1-MethodList) | | |
<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 |
| ListPermissions | [.google.protobuf.Empty](#google-protobuf-Empty) | [ListPermissionsResponse](#tokens-v1-ListPermissionsResponse) stream | List all available permissions |
| AuthenticateWithToken | [AuthenticateWithTokenRequest](#tokens-v1-AuthenticateWithTokenRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Recieve a JWT access token |
## Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
| <a name="double" /> double | | double | double | float | float64 | double | float | Float |
| <a name="float" /> float | | float | float | float | float32 | float | float | Float |
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| <a name="bool" /> bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |