# Protocol Documentation ## 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) - [ResetPasswordRequest](#accounts-v1-ResetPasswordRequest) - [SignInRequest](#accounts-v1-SignInRequest) - [SignUpRequest](#accounts-v1-SignUpRequest) - [AccountAuthService](#accounts-v1-AccountAuthService) - [AccountsNoAuthService](#accounts-v1-AccountsNoAuthService) - [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) - [test/v1/test_v1.proto](#test_v1_test_v1-proto) - [PingRequest](#test-v1-PingRequest) - [PingResponse](#test-v1-PingResponse) - [PongRequest](#test-v1-PongRequest) - [PongResponse](#test-v1-PongResponse) - [TestAuthService](#test-v1-TestAuthService) - [TestNoAuthService](#test-v1-TestNoAuthService) - [Scalar Value Types](#scalar-value-types)

Top

## accounts/v1/accounts_v1.proto Protobuf definitions for the accounts service. ### AccountData | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | Account name | | email | [string](#string) | | Account email | ### AccountPassword | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | password | [string](#string) | | | ### IsEmailVerifiedRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [AccountData](#accounts-v1-AccountData) | | | ### IsEmailVerifiedResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | verified | [bool](#bool) | | | ### NewPasswordRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [AccountData](#accounts-v1-AccountData) | | | | password | [AccountPassword](#accounts-v1-AccountPassword) | | | | code | [string](#string) | | | ### ResetPasswordRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [AccountData](#accounts-v1-AccountData) | | | ### SignInRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [AccountData](#accounts-v1-AccountData) | | | | password | [AccountPassword](#accounts-v1-AccountPassword) | | | ### SignUpRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [AccountData](#accounts-v1-AccountData) | | | | password | [AccountPassword](#accounts-v1-AccountPassword) | | | ### AccountAuthService Service for handling accounts that do require authentication Tokens should be sent via metadata, so the service is able to authenticate a user for a request | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | IsEmailVerified | [IsEmailVerifiedRequest](#accounts-v1-IsEmailVerifiedRequest) | [IsEmailVerifiedResponse](#accounts-v1-IsEmailVerifiedResponse) | Is email for the current account verified | ### AccountsNoAuthService Service for handling accounts that do not require authentication | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | SignUp | [SignUpRequest](#accounts-v1-SignUpRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create a new user | | SignIn | [SignInRequest](#accounts-v1-SignInRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Sing in into an existing account | | ResetPassword | [ResetPasswordRequest](#accounts-v1-ResetPasswordRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Reset the password, if it was lost | | NewPassword | [NewPasswordRequest](#accounts-v1-NewPasswordRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Set the new password after reset | | RefreshToken | [.google.protobuf.Empty](#google-protobuf-Empty) | [.google.protobuf.Empty](#google-protobuf-Empty) | Send the refresh token request, token should be passed in the metadata. This rpc does requier auth, but it should be handled not on the middleware level, that's why it set in the NoAuth service |

Top

## applications/v1/applications_v1.proto This file has messages for describing applications ### ApplicationFull | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | | | spec | [ApplicationSpec](#applications-ApplicationSpec) | | | | id | [ApplicationId](#applications-ApplicationId) | | | ### ApplicationId | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | uuid | [string](#string) | | | ### ApplicationMetadata | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | | | description | [string](#string) | | | ### 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) | | | ### ApplicationSpec.ConfigEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [string](#string) | | | ### CreateOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | | | spec | [ApplicationSpec](#applications-ApplicationSpec) | | | | owner_id | [OwnerId](#applications-OwnerId) | | | | token | [Token](#applications-Token) | | | ### DeleteOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ApplicationId](#applications-ApplicationId) | | | | metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | | | owner_id | [OwnerId](#applications-OwnerId) | | | | token | [Token](#applications-Token) | | | ### GetOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ApplicationId](#applications-ApplicationId) | | | | metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | | | owner_id | [OwnerId](#applications-OwnerId) | | | | token | [Token](#applications-Token) | | | ### ListOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | | | owner_id | [OwnerId](#applications-OwnerId) | | | | token | [Token](#applications-Token) | | | ### OwnerId | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | uuid | [string](#string) | | UUID of a user that is creating an environemnt | ### Token | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | token | [string](#string) | | Token that should be used to create an environment | ### 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) | | | ### 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 | |

Top

## email/v1/email_v1.proto ### ConfirmValidation | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | user_id | [string](#string) | | | | code | [int32](#int32) | | | ### RequestValidation | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | user_id | [string](#string) | | | ### 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) | |

Top

## environments/v1/environments_v1.proto This file has messages for describing environments ### CreateOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | | | spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | | | owner_id | [OwnerId](#environments-OwnerId) | | | | token | [Token](#environments-Token) | | | ### DeleteOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [EnvironmentId](#environments-EnvironmentId) | | | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | | | owner_id | [OwnerId](#environments-OwnerId) | | | | token | [Token](#environments-Token) | | | ### EnvironmentFull | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | | | spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | | | id | [EnvironmentId](#environments-EnvironmentId) | | | ### EnvironmentId | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | uuid | [string](#string) | | | ### EnvironmentMetadata | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | A name of the environment | | description | [string](#string) | | | ### 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) | | | ### GetOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [EnvironmentId](#environments-EnvironmentId) | | | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | | | owner_id | [OwnerId](#environments-OwnerId) | | | | token | [Token](#environments-Token) | | | ### ListOptions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | | | search_string | [string](#string) | | | | owner_id | [OwnerId](#environments-OwnerId) | | | | token | [Token](#environments-Token) | | | ### OwnerId | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | uuid | [string](#string) | | UUID of a user that is creating an environemnt | ### Token | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | token | [string](#string) | | Token that should be used to create an environment | ### 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) | | | ### Kubernetes | Name | Number | Description | | ---- | ------ | ----------- | | KUBERNETES_UNSPECIFIED | 0 | | | KUBERNETES_K3S | 1 | | ### 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 | | ### Provider Helpers and other messages | Name | Number | Description | | ---- | ------ | ----------- | | PROVIDER_UNSPECIFIED | 0 | | | PROVIDER_HETZNER | 1 | | ### 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 | | ### 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 | |

Top

## test/v1/test_v1.proto ### PingRequest ### PingResponse ### PongRequest ### PongResponse ### TestAuthService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | Pong | [PongRequest](#test-v1-PongRequest) | [PongResponse](#test-v1-PongResponse) | | ### TestNoAuthService Service for handling environments | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | Ping | [PingRequest](#test-v1-PingRequest) | [PingResponse](#test-v1-PingResponse) | | ## Scalar Value Types | .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | | ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | | double | | double | double | float | float64 | double | float | Float | | float | | float | float | float | float32 | float | float | Float | | 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) | | 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 | | uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | | uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | | 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) | | 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 | | 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) | | 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 | | sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | | bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |