Protocol Documentation
Table of Contents
Top
gpcloud/api/cloud/v1/user.proto
BasicUser
User
UserTag
Name |
Number |
Description |
USER_TAG_UNSPECIFIED |
0 |
|
USER_TAG_NO_COMPANY |
1 |
User does not required to have a valid company and VAT number |
USER_TAG_NO_CREDIT_CARD |
2 |
User does not required to have a valid credit card |
UserType
Name |
Number |
Description |
USER_TYPE_UNSPECIFIED |
0 |
|
USER_TYPE_USER |
1 |
|
USER_TYPE_SERVICE_ACCOUNT |
2 |
|
Top
gpcloud/api/cloud/v1/region.proto
Datacenter
Region
DatacenterStatus
Name |
Number |
Description |
DATACENTER_STATUS_UNSPECIFIED |
0 |
|
DATACENTER_STATUS_AVAILABLE |
1 |
|
DATACENTER_STATUS_COMING_SOON |
2 |
|
DATACENTER_STATUS_UNAVAILABLE |
3 |
|
Top
gpcloud/type/v1/price.proto
Price
Field |
Type |
Label |
Description |
amount |
int64 |
|
|
currency |
string |
|
ISO 4217 code |
formatted |
string |
|
Formatted string of price |
Top
gpcloud/api/cloud/v1/flavour.proto
BasicFlavour
Flavour
FlavourMapping
FlavourAvailability
Name |
Number |
Description |
FLAVOUR_AVAILABILITY_UNSPECIFIED |
0 |
|
FLAVOUR_AVAILABILITY_OUT_OF_STOCK |
1 |
|
FLAVOUR_AVAILABILITY_PREORDER |
2 |
|
FLAVOUR_AVAILABILITY_LOW |
3 |
|
FLAVOUR_AVAILABILITY_MIDDLE |
4 |
|
FLAVOUR_AVAILABILITY_HIGH |
5 |
|
Top
gpcloud/api/cloud/v1/payment.proto
Currency
Available currencies in the system. This will map to an ISO 4217 currency code
in the database.
Name |
Number |
Description |
CURRENCY_UNSPECIFIED |
0 |
|
CURRENCY_EURO |
1 |
|
CURRENCY_US_DOLLAR |
2 |
|
Top
gpcloud/api/cloud/v1/billing.proto
Bill
Bill represents an invoice, which the customer need to be payed (or already
has payed) in form of a URL to a PDF. The PDF itself contains the billable
resources and their amount (with separate taxes). The BillStatus will
indicate, if the bill is already payed, if there is any problem with that
bill or is still pending. Every Bill is associated with a BillingProfile,
which itself represents the user/company which need to pay the bill.
BillingProfile
BillingProfileCompany
Field |
Type |
Label |
Description |
name |
string |
|
|
vat_id |
string |
optional |
|
BillStatus
BillStatus in which a bill can be. New bills/invoices will be in the pending
state. If there are payed, the status changed to succeeded. If the payment
failed, the status is set to failed. A bill status can be changed on external
triggers (a bill is being payed, a previously failed bill is retried and
succeeded on the second try, ...).
Name |
Number |
Description |
BILL_STATUS_UNSPECIFIED |
0 |
|
BILL_STATUS_PENDING |
1 |
|
BILL_STATUS_SUCCEEDED |
2 |
|
BILL_STATUS_FAILED |
3 |
|
BillingPeriod
Name |
Number |
Description |
BILLING_PERIOD_UNSPECIFIED |
0 |
|
BILLING_PERIOD_HOURLY |
1 |
|
BILLING_PERIOD_MONTHLY |
2 |
|
BILLING_PERIOD_DELETED |
3 |
|
Top
gpcloud/type/v1/ssh_key.proto
SSHKey
SSHKeyType
Name |
Number |
Description |
SSH_KEY_TYPE_UNSPECIFIED |
0 |
|
SSH_KEY_TYPE_RSA |
1 |
|
SSH_KEY_TYPE_DSA |
2 |
|
SSH_KEY_TYPE_ECDSA |
3 |
|
SSH_KEY_TYPE_ED25519 |
4 |
|
Top
gpcloud/api/cloud/v1/project.proto
BasicProject
Project
ProjectFlavourUsage
ProjectInvite
ProjectLog
ProjectMember
ProjectNodeUsage
ProjectSSHKey
ProjectUsage
ProjectEnvironment
Name |
Number |
Description |
PROJECT_ENVIRONMENT_UNSPECIFIED |
0 |
|
PROJECT_ENVIRONMENT_DEVELOPMENT |
1 |
|
PROJECT_ENVIRONMENT_STAGING |
2 |
|
PROJECT_ENVIRONMENT_PRODUCTION |
3 |
|
ProjectLockReason
Name |
Number |
Description |
PROJECT_LOCK_REASON_UNSPECIFIED |
0 |
|
PROJECT_LOCK_REASON_MISSING_BILLING_PROFILE |
1 |
|
PROJECT_LOCK_REASON_MISSING_PAYMENT_PROFILE |
2 |
|
PROJECT_LOCK_REASON_MISSING_SUBSCRIPTION |
3 |
|
PROJECT_LOCK_REASON_SUBSCRIPTION_NOT_ACTIVE |
4 |
|
ProjectMemberRole
Name |
Number |
Description |
PROJECT_MEMBER_ROLE_UNSPECIFIED |
0 |
|
PROJECT_MEMBER_ROLE_OWNER |
1 |
|
PROJECT_MEMBER_ROLE_MEMBER |
2 |
|
UsageUnitType
Name |
Number |
Description |
USAGE_UNIT_TYPE_UNSPECIFIED |
0 |
|
USAGE_UNIT_TYPE_HOURS |
1 |
|
USAGE_UNIT_TYPE_MONTHS |
2 |
|
USAGE_UNIT_TYPE_CORES |
3 |
|
Top
gpcloud/api/cloud/v1/network.proto
Cidr
IPAddress
Network
Subnet
IPVersion
Name |
Number |
Description |
IP_VERSION_UNSPECIFIED |
0 |
|
IP_VERSION_IPV4 |
1 |
|
IP_VERSION_IPV6 |
2 |
|
NetworkType
Name |
Number |
Description |
NETWORK_TYPE_UNSPECIFIED |
0 |
|
NETWORK_TYPE_PUBLIC |
1 |
|
NETWORK_TYPE_MANAGEMENT |
2 |
|
Top
gpcloud/api/cloud/v1/switch.proto
Switch
Switch represents a network switch of various types
Field |
Type |
Label |
Description |
id |
string |
|
Switch uuid |
type |
SwitchType |
|
Type of switch |
ip_address |
string |
|
IP Address for the uplink port |
field 4 removed - string username = 4; |
| name | string | | Switch name |
| netbox_id | int64 | optional | Netbox ID |
SwitchType
Name |
Number |
Description |
SWITCH_TYPE_UNSPECIFIED |
0 |
|
SWITCH_TYPE_JUNIPER |
1 |
|
SWITCH_TYPE_JUNIPER_LEGACY |
2 |
|
SWITCH_TYPE_FS |
3 |
|
Top
gpcloud/api/cloud/v1/server.proto
BasicServer
IPHistory
Server
ServerInterface
ServerLog
Name |
Number |
Description |
PLATFORM_MANAGEMENT_TYPE_UNSPECIFIED |
0 |
|
PLATFORM_MANAGEMENT_TYPE_IDRAC8 |
1 |
|
PLATFORM_MANAGEMENT_TYPE_IDRAC9 |
2 |
|
PLATFORM_MANAGEMENT_TYPE_ILO5 |
3 |
|
PLATFORM_MANAGEMENT_TYPE_ASRR |
4 |
|
ServerLogLevelType
Name |
Number |
Description |
SERVER_LOG_LEVEL_TYPE_UNSPECIFIED |
0 |
|
SERVER_LOG_LEVEL_TYPE_INFO |
1 |
|
SERVER_LOG_LEVEL_TYPE_WARNING |
2 |
|
SERVER_LOG_LEVEL_TYPE_ERROR |
3 |
|
ServerLogSourceType
Name |
Number |
Description |
SERVER_LOG_SOURCE_TYPE_UNSPECIFIED |
0 |
|
SERVER_LOG_SOURCE_TYPE_INTERNAL |
1 |
|
SERVER_LOG_SOURCE_TYPE_METADATA |
2 |
|
SERVER_LOG_SOURCE_TYPE_IRONIC |
3 |
|
ServerPowerState
Name |
Number |
Description |
SERVER_POWER_STATE_UNSPECIFIED |
0 |
|
SERVER_POWER_STATE_ON |
1 |
|
SERVER_POWER_STATE_OFF |
2 |
|
SERVER_POWER_STATE_RESET |
3 |
|
ServerProvisioningState
Name |
Number |
Description |
SERVER_PROVISIONING_STATE_UNSPECIFIED |
0 |
|
SERVER_PROVISIONING_STATE_ENROLL |
1 |
|
SERVER_PROVISIONING_STATE_VERIFYING |
2 |
|
SERVER_PROVISIONING_STATE_MANAGEABLE |
3 |
|
SERVER_PROVISIONING_STATE_AVAILABLE |
4 |
|
SERVER_PROVISIONING_STATE_ACTIVE |
5 |
|
SERVER_PROVISIONING_STATE_DEPLOY_WAIT |
6 |
|
SERVER_PROVISIONING_STATE_DEPLOYING |
7 |
|
SERVER_PROVISIONING_STATE_DEPLOY_FAIL |
8 |
|
SERVER_PROVISIONING_STATE_DEPLOY_DONE |
9 |
|
SERVER_PROVISIONING_STATE_DELETING |
10 |
|
SERVER_PROVISIONING_STATE_DELETED |
11 |
|
SERVER_PROVISIONING_STATE_CLEANING |
12 |
|
SERVER_PROVISIONING_STATE_CLEAN_WAIT |
13 |
|
SERVER_PROVISIONING_STATE_CLEAN_FAIL |
14 |
|
SERVER_PROVISIONING_STATE_ERROR |
15 |
|
SERVER_PROVISIONING_STATE_REBUILD |
16 |
|
SERVER_PROVISIONING_STATE_INSPECTING |
17 |
|
SERVER_PROVISIONING_STATE_INSPECT_FAIL |
18 |
|
SERVER_PROVISIONING_STATE_INSPECT_WAIT |
19 |
|
SERVER_PROVISIONING_STATE_ADOPTING |
20 |
|
SERVER_PROVISIONING_STATE_ADOPT_FAIL |
21 |
|
SERVER_PROVISIONING_STATE_RESCUE |
22 |
|
SERVER_PROVISIONING_STATE_RESCUE_FAIL |
23 |
|
SERVER_PROVISIONING_STATE_RESCUING |
24 |
|
SERVER_PROVISIONING_STATE_UNRESCUE_FAIL |
25 |
|
SERVER_PROVISIONING_STATE_RESCUE_WAIT |
26 |
|
SERVER_PROVISIONING_STATE_UNRESCUING |
27 |
|
ServerStatus
Name |
Number |
Description |
SERVER_STATUS_UNSPECIFIED |
0 |
|
SERVER_STATUS_IMPORTING |
1 |
|
SERVER_STATUS_IMPORTED |
2 |
|
SERVER_STATUS_DELETING |
3 |
|
Top
gpcloud/type/v1/file.proto
File
Field |
Type |
Label |
Description |
bytes |
bytes |
|
File content in bytes. |
mime_type |
string |
|
File mime type. |
Top
gpcloud/api/cloud/v1/image.proto
BasicImage
Image
ImageChecksum
ImageUpload
ImageVersion
OperatingSystem
ProvisioningImage
Field |
Type |
Label |
Description |
id |
string |
|
|
alias |
string |
|
TODO: Alias not used? |
AuthenticationType
Name |
Number |
Description |
AUTHENTICATION_TYPE_UNSPECIFIED |
0 |
|
AUTHENTICATION_TYPE_PASSWORD |
1 |
|
AUTHENTICATION_TYPE_SSH |
2 |
|
ImageChecksumType
Name |
Number |
Description |
IMAGE_CHECKSUM_TYPE_UNSPECIFIED |
0 |
|
IMAGE_CHECKSUM_TYPE_MD5 |
1 |
|
IMAGE_CHECKSUM_TYPE_SHA1 |
2 |
|
IMAGE_CHECKSUM_TYPE_SHA256 |
3 |
|
IMAGE_CHECKSUM_TYPE_SHA512 |
4 |
|
Name |
Number |
Description |
IMAGE_FORMAT_TYPE_UNSPECIFIED |
0 |
|
IMAGE_FORMAT_TYPE_RAW |
1 |
|
IMAGE_FORMAT_TYPE_QCOW2 |
2 |
|
IMAGE_FORMAT_TYPE_RAW_GZIP |
3 |
|
ImageRelease
Name |
Number |
Description |
IMAGE_RELEASE_UNSPECIFIED |
0 |
|
IMAGE_RELEASE_STABLE |
1 |
|
IMAGE_RELEASE_PRE_RELEASE |
2 |
|
IMAGE_RELEASE_END_OF_LIFE |
3 |
|
OperatingSystemFamily
Name |
Number |
Description |
OPERATING_SYSTEM_FAMILY_UNSPECIFIED |
0 |
|
OPERATING_SYSTEM_FAMILY_WINDOWS |
1 |
|
OPERATING_SYSTEM_FAMILY_LINUX |
2 |
|
Top
PaginationRequest specifies the page (the subset of the complete result set)
we want to receive and an optional limit.
Field |
Type |
Label |
Description |
page |
int32 |
|
The current portion of the result set we are interested in. A page is the position in the result set multiplied by the limit. Its the analogy to a page in a book. A page can contain "limit" amount of items. |
limit |
int32 |
optional |
Specify the number of items to get as a result set. The limit is also used to calculate the starting offset. If the limit is not set, a reasonable default value is set for the specific RPC call. CPU intense calls like the ListNodes call have a lower default limit than a low profile call like ListServerLogs. If you specify the limit, you need to set it to a lower value than the default limit. If your specified limit is higher than the default limit for that call, it will be reduced to the default limit. The response contains the changed limit as as separate field. |
PaginationResponse specifies the metadata for the current subset of the
result set. This helps to set the result set in relation of the complete
list of available results. This includes the selected page, the (maybe
changed) limit and the total number of pages available.
Field |
Type |
Label |
Description |
page |
int32 |
|
The current portion of the result set. A page is the position in the result set multiplied by the limit. Its the analogy to a page in a book. A page can contain "limit" amount of items. Remember that the last page may contain less than "limit" items. |
total |
int32 |
|
Total number of PAGES available in the complete result set. Useful to build the pagination UI or for iterating over the pages. |
limit |
int32 |
|
The number of items in the result set. This may be differ from the limit specify in the request. If the limit is not set at all in the request, it will be set to the default value for that specific RPC call. If the limit in the request is higher than the default value, it will be set back to the default value to not stress the backend too much. |
Top
gpcloud/type/v1/search.proto
Filter
SearchOption
Field |
Type |
Label |
Description |
name |
string |
|
|
label |
string |
optional |
Optional label to display for the search option if not set, name is being used. |
description |
string |
optional |
Optional description to display for the search option |
type |
SearchOptionType |
|
Type of the search option |
validation_regex |
string |
optional |
|
dropdown_values |
SearchOption.DropdownValuesEntry |
repeated |
Possible dropdown values when type is SEARCH_OPTION_TYPE_DROPDOWN |
SearchOption.DropdownValuesEntry
SearchOptions
SearchRequest
Field |
Type |
Label |
Description |
filters |
Filter |
repeated |
|
SearchOptionType
Name |
Number |
Description |
SEARCH_OPTION_TYPE_UNSPECIFIED |
0 |
|
SEARCH_OPTION_TYPE_STRING |
1 |
|
SEARCH_OPTION_TYPE_INTEGER |
2 |
|
SEARCH_OPTION_TYPE_DROPDOWN |
3 |
|
SEARCH_OPTION_TYPE_BOOLEAN |
4 |
|
Top
gpcloud/api/cloud/v1/node.proto
Node
Node represents a "server" unit
Field |
Type |
Label |
Description |
id |
string |
|
Node uuid |
project_id |
string |
|
Project uuid |
fqdn |
string |
|
FQDN |
status |
ServerProvisioningState |
|
Provisioning state |
network_interfaces |
NodeNetworkInterface |
repeated |
List of network interface associated with the node |
tags |
Node.TagsEntry |
repeated |
List of key/value tags |
datacenter |
Datacenter |
|
Datacenter in which the node is located |
flavour |
Flavour |
|
The flavour used on the node |
image |
Image |
|
The image used on the node |
has_console_access |
bool |
|
True if the server has console access |
billing_period |
BillingPeriod |
|
Billing period |
power_state |
ServerPowerState |
|
Calculated price gpcloud.type.v1.Price price = 13; State of the node when it will renewed gpcloud.api.cloud.v1.NodeRenewState renew_state = 14; In what power state the server is currently |
has_spla_license |
bool |
|
True if the node has a SPLA license |
target_billing_period |
BillingPeriod |
optional |
If there is a change of the billing period pending, it will be shown here |
paid_until_at |
google.protobuf.Timestamp |
|
Timestamp to which the node is paid |
created_at |
google.protobuf.Timestamp |
|
Timestamp when the node is created |
updated_at |
google.protobuf.Timestamp |
|
Timestamp when the node is updates the last rime |
Node.TagsEntry
NodeNetworkInterface
NodeProvisioning
RescueMode
Field |
Type |
Label |
Description |
enabled |
bool |
|
|
password |
string |
|
|
UserNodeLimit
Field |
Type |
Label |
Description |
limit |
int32 |
|
|
current |
int32 |
|
|
Top
gpcloud/api/cloud/v1/notification.proto
Notification
Notification holds a notification message, which can be a user, a project or
a node.
Top
gpcloud/v1/options.proto
Dummy
We need to somehow use the google/rpc/error_details.proto to stop the proto lint state of the pipeline complaining
about an unused import. The import is needed, because otherwise the proto compiler will not provide the necessary
interfaces in the JS and TS files generated for the website client.
GPCloudSettings
Field |
Type |
Label |
Description |
authorization_type |
AuthorizationType |
|
Authorization type for endpoint. |
required_roles |
string |
repeated |
Define which roles are required to access the endpoint. |
audiences |
string |
repeated |
Check for single JWT token audience is present. |
AuthorizationType
Name |
Number |
Description |
AUTHORIZATION_TYPE_UNSPECIFIED |
0 |
|
AUTHORIZATION_TYPE_PUBLIC |
1 |
|
AUTHORIZATION_TYPE_USER |
2 |
|
AUTHORIZATION_TYPE_CLIENT |
3 |
|
File-level Extensions
Extension |
Type |
Base |
Number |
Description |
api |
GPCloudSettings |
.google.protobuf.MethodOptions |
1100 |
|
Top
gpcloud/api/auth/v1/client.proto
Client
Top
gpcloud/api/auth/v1/requests.proto
CreateClientRequest
DeleteClientRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
GetClientRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
GetUserRequest
ListClientsRequest
RegisterRequest
ResendConfirmEMailRequest
ResetClientSecretRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
UpdateClientRequest
Top
gpcloud/api/cloud/v1/token.proto
AccessTokenPair
Field |
Type |
Label |
Description |
access_token |
string |
|
|
refresh_token |
string |
|
|
Top
gpcloud/api/auth/v1/responses.proto
CreateClientResponse
Field |
Type |
Label |
Description |
client |
Client |
|
|
DeleteClientResponse
GetClientResponse
Field |
Type |
Label |
Description |
client |
Client |
|
|
GetUserResponse
ListClientsResponse
Field |
Type |
Label |
Description |
clients |
Client |
repeated |
|
RegisterResponse
ResendConfirmEMailResponse
ResetClientSecretResponse
Field |
Type |
Label |
Description |
secret |
string |
|
|
UpdateClientResponse
Field |
Type |
Label |
Description |
client |
Client |
|
|
Top
gpcloud/api/auth/v1/rpc.proto
AuthService
AuthService provides authentication and authorization services.
Top
Field |
Type |
Label |
Description |
nameservers |
string |
repeated |
|
Field |
Type |
Label |
Description |
id |
int32 |
|
|
tagged |
bool |
|
|
Top
gpcloud/api/cloud/v1/monitoring.proto
MonitoringStatus
Field |
Type |
Label |
Description |
ip_address |
string |
|
|
reachable |
bool |
|
|
MonitoringTarget
MonitoringTag
Name |
Number |
Description |
MONITORING_TAG_UNSPECIFIED |
0 |
|
MONITORING_TAG_PLATFORM_MANAGEMENT |
1 |
|
MONITORING_TAG_SERVER |
2 |
|
Top
gpcloud/api/cloud/v1/requests.proto
ChangeDefaultProjectRequest
ChangeDefaultProjectRequest changes the default project.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
ChangeNodeBillingPeriodRequest
ChangeNodeRescueModeRequest
CreateNodeRequest
CreateNodeRequest creates a new node
Field |
Type |
Label |
Description |
project_id |
string |
|
Project uuid |
flavour_id |
string |
|
Flavour uuid |
datacenter_id |
string |
|
Datacenter uuid |
password |
string |
optional |
Optional password |
ssh_key_ids |
string |
repeated |
List of ssh public keys uuid. If empty, a password need to be set. If the password is also empty, a random password will be generated. |
image_id |
string |
|
Image uuid |
user_data |
string |
optional |
Custom user data |
fqdns |
string |
repeated |
List of FQDNs used |
billing_period |
BillingPeriod |
|
Billing period used for that node |
CreateProjectImageRequest
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
name |
string |
|
Name of the image |
authentication_types |
AuthenticationType |
repeated |
List of supported authentication types |
available |
bool |
|
If the image can be used for new nodes |
CreateProjectRequest
CreateProjectRequest create a new project. After creating a new project, you
can specify additional settings for a project like
Field |
Type |
Label |
Description |
name |
string |
|
Project name, will be shown as the title in the UI |
description |
string |
|
Text, describing the project. Will be shown as a subtitle in the UI. |
environment |
ProjectEnvironment |
|
Project environment |
billing_address_id |
string |
|
Billing profile id TODO: Rename to billing_profile_id |
DeleteProjectImageRequest
DeleteProjectImageVersionRequest
DeleteProjectRequest
DeleteProjectRequest delete the project associated with the given uuid.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
Field |
Type |
Label |
Description |
id |
string |
|
|
DestroyNodeRequest
DestroyNodeRequest deletes a node
Field |
Type |
Label |
Description |
id |
string |
|
Node uuid |
project_id |
string |
|
Project uuid |
GetBillingProfileBillDetailsRequest
Field |
Type |
Label |
Description |
id |
string |
|
Billing Profile uuid |
bill_id |
string |
|
Bill uuid |
GetBillingProfileBillPdfRequest
Field |
Type |
Label |
Description |
id |
string |
|
Billing Profile uuid |
bill_id |
string |
|
Bill uuid |
GetNodeRequest
GetNodeRequest requests a single node
Field |
Type |
Label |
Description |
id |
string |
|
Node uuid |
project_id |
string |
|
Project uuid |
GetNodeSearchOptionsRequest
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
GetProjectImageRequest
GetProjectLocksRequest
GetProjectLocksRequest requests a list of locks based on the given project.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
GetProjectRequest
GetProjectRequest return the project associated with the given uuid.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
GetProjectUsageRequest
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
detailed |
bool |
|
When detailed is false only the total amount will be returned. |
GetRemoteConsoleAccessRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
GetSplaPriceRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
GetUserNodeLimitRequest
InviteMemberToProjectRequest
InviteMemberToProjectRequest invite new member to a project.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
identifier |
string |
|
Email address or User ID which you want to invite. This could be also a Service Account User ID. If adding Service Account, the client will be directly added to the project. |
JoinProjectRequest
JoinProjectRequest join or reject a project invite.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid to join |
accept |
bool |
|
Accept (true) or reject (false) invite |
LeaveProjectRequest
LeaveProjectRequest leave a project membership.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
ListBillingProfileBillsRequest
ListProjectBillsRequest requests a list of bills
ListBillingProfileProjectsRequest
ListBillingProfileProjectsRequest requests a list of projects associated
to a given billing profile.
ListCountriesRequest
Request to get all countries.
ListDatacentersRequest
Request to get all datacenters.
ListNodesRequest
ListNodesRequest requests the list of all available images.
ListProjectFlavoursRequest
Request to get all project flavours.
ListProjectImagesRequest
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
ListProjectLogsRequest
ListProjectLogsRequest requests an audit log for a given project.
ListProjectSSHKeysRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
ListProjectSupportPackagesRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
ListProjectSupportTicketsRequest
Ticket Board
Field |
Type |
Label |
Description |
id |
string |
|
|
ListProjectsRequest
ListProjectsRequest list the users projects.
ListPublicImagesRequest
Request to get all public images, filter by its flavour ID.
Field |
Type |
Label |
Description |
flavour_id |
string |
|
|
ListTimezonesRequest
Request to get all timezones.
PowerActionNodeRequest
ReinstallNodeRequest
ReinstallNodeRequest reinstall a previously created node.
Field |
Type |
Label |
Description |
id |
string |
|
Node uuid |
project_id |
string |
|
Project uuid |
fqdn |
string |
|
Optional new FQDN of the hostname. Old FQDN will be used if empty. |
password |
string |
optional |
Optional root password which will set after provisioning. This is just a backup solution if no ssh keys are given. If no password is given, a random password is generated. |
ssh_key_ids |
string |
repeated |
List of ssh public keys uuids used to log in to ssh. All keys need to belong to members of the project. |
image_id |
string |
|
Image uuid |
user_data |
string |
|
Custom user data |
RemoveMemberFromProjectRequest
RemoveMemberFromProjectRequest removes the user from the project.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
user_id |
string |
|
User uuid |
SubscribeNotificationsRequest
SubscribeNotificationsRequest subscribe to notifications
UpdateNodeRequest
UpdateNodeRequest updates a nodes FQDN and tags.
UpdateNodeRequest.TagsEntry
UpdateProjectRequest
UpdateProjectRequest updates a project by their given fields.
Field |
Type |
Label |
Description |
id |
string |
|
Project uuid |
name |
string |
|
Name |
description |
string |
|
Description |
environment |
ProjectEnvironment |
|
Environment |
credit_card_id |
string |
|
Credit Card ID |
billing_address_id |
string |
|
Billing Address ID TODO: Rename to billing_profile_id |
UpdateTimezoneRequest
Request to get all timezones.
Field |
Type |
Label |
Description |
timezone |
string |
|
|
Top
gpcloud/type/v1/timezone.proto
Timezone
Top
gpcloud/type/v1/country.proto
Country
Top
gpcloud/api/cloud/v1/responses.proto
ChangeDefaultProjectResponse
ChangeNodeBillingPeriodResponse
Field |
Type |
Label |
Description |
node |
Node |
|
|
ChangeNodeRescueModeResponse
CreateNodeResponse
Field |
Type |
Label |
Description |
nodes |
Node |
repeated |
|
CreateProjectImageResponse
Field |
Type |
Label |
Description |
image |
Image |
|
|
CreateProjectResponse
CreateProjectResponse
Field |
Type |
Label |
Description |
project |
Project |
|
|
DeleteProjectImageResponse
DeleteProjectImageVersionResponse
DeleteProjectResponse
DeleteProjectResponse
DestroyNodeResponse
GetBillingProfileBillDetailsResponse
GetBillingProfileBillPdfResponse
GetNodeResponse
GetNodeResponse get a single node
Field |
Type |
Label |
Description |
node |
Node |
|
Node object |
GetNodeSearchOptionsResponse
GetProjectImageResponse
Field |
Type |
Label |
Description |
image |
Image |
|
|
GetProjectLocksResponse
GetProjectLocksResponse holds possible locking reasons for the project, this
tells why the project is locked and no new resources can be created. If the
list is empty, no locks are applied.
GetProjectResponse
GetProjectResponse
Field |
Type |
Label |
Description |
project |
Project |
|
Project |
GetProjectUsageResponse
GetRemoteConsoleAccessResponse
GetUserNodeLimitResponse
InviteMemberToProjectResponse
JoinProjectResponse
LeaveProjectResponse
ListBillingProfileBillsResponse
ListProjectBillsResponse contains a list of bills.
ListBillingProfileProjectsResponse
ListCountriesResponse
ListDatacentersResponse
Field |
Type |
Label |
Description |
datacenters |
Datacenter |
repeated |
|
ListNodesResponse
ListNodesResponse
Field |
Type |
Label |
Description |
nodes |
Node |
repeated |
Node list |
pagination |
gpcloud.type.v1.PaginationResponse |
|
Pagination |
total |
int64 |
|
Total number of nodes available. May be differ from the number of results, from this response because of the pagination. |
ListProjectFlavoursResponse
Field |
Type |
Label |
Description |
flavours |
Flavour |
repeated |
|
ListProjectImagesResponse
Field |
Type |
Label |
Description |
images |
BasicImage |
repeated |
|
ListProjectLogsResponse
ListProjectLogsResponse
Field |
Type |
Label |
Description |
logs |
ProjectLog |
repeated |
All log items for page |
pagination |
gpcloud.type.v1.PaginationResponse |
|
Pagination |
total |
int64 |
|
Total number of project logs available. May be differ from the number of results, from this response because of the pagination. |
users |
BasicUser |
repeated |
A list with all users |
ListProjectSSHKeysResponse
ListProjectsResponse
ListProjectsResponse
Field |
Type |
Label |
Description |
projects |
Project |
repeated |
List of projects |
invites |
ProjectInvite |
repeated |
Number of invites left |
ListPublicImagesResponse
ListTimezonesResponse
PowerActionNodeResponse
ReinstallNodeResponse
Field |
Type |
Label |
Description |
node |
Node |
|
|
RemoveMemberFromProjectResponse
SubscribeNotificationsResponse
SubscribeNotificationsResponse is a stream of notifications. One single
response contain one notification.
Field |
Type |
Label |
Description |
notification |
Notification |
|
Notification |
UpdateNodeResponse
Field |
Type |
Label |
Description |
node |
Node |
|
|
UpdateProjectResponse
UpdateProjectResponse contain the updated project
Field |
Type |
Label |
Description |
project |
Project |
|
Project |
UpdateTimezoneResponse
Top
gpcloud/api/cloud/v1/rpc.proto
CloudService
CloudService provide the basic needs to work with projects and their nodes.
This is your daily driver to maintain and grow your fleet of nodes. Projects
group a list of nodes. Every project can have it's own bill. Users can be part
of one or more projects.
Method Name |
Request Type |
Response Type |
Description |
ListCountries |
ListCountriesRequest |
ListCountriesResponse |
ListCountries lists all the supported countries in which we provide business. You can use this to check the tax rate and if we provide network support for what country. If your country is not in that list, you can not use the service. |
ListTimezones |
ListTimezonesRequest |
ListTimezonesResponse |
ListTimezones lists all available timezones which can be configured as user timezone. |
UpdateTimezone |
UpdateTimezoneRequest |
UpdateTimezoneResponse |
UpdateTimezone Updates your user timezone. Changing the timezone affects your billing periods an future bills. |
ListDatacenters |
ListDatacentersRequest |
ListDatacentersResponse |
ListDatacenters lists all the available datacenters you can order new nodes. This list will grow over time when more datacenters are added, but it can sometimes shrink for some time if there are no hardware available in this region. Upcoming datacenters are still in that list, but has the status flag COMING_SOON. If you place a new order in a specific datacenter, make sure the status is AVAILABLE. |
ListPublicImages |
ListPublicImagesRequest |
ListPublicImagesResponse |
ListPublicImages list all public OS images which can be used to install on a node. Different flavours provide a different list of images, so you need to provide a flavour ID. You get the list of available flavours for a given project from the ListProjectFlavours call. |
ListProjectFlavours |
ListProjectFlavoursRequest |
ListProjectFlavoursResponse |
ListProjectFlavours list all the available flavours for the given project ID and the datacenter. Not all flavours are available on all datacenters. |
CreateProject |
CreateProjectRequest |
CreateProjectResponse |
CreateProject creates a new project. This will create a new "container" for nodes, associated to an environment, billing address and payment method. After creating a project, you can further specify additional fields be using the UpdateProject call. |
ListProjects |
ListProjectsRequest |
ListProjectsResponse |
ListProjects list all available projects. A project is a container for nodes, associated with a billing address and other settings specific for that project. To filter the result, you can provide a user_id to only get projects which the user with the user_id is part of that project (member of the project). You can further reduce the project list by providing a search term. Spaces in search are allowed to search for multiple terms (AND not OR). Use the page field in the request to set an offset. This is useful for pagination. |
GetProject |
GetProjectRequest |
GetProjectResponse |
GetProject return a project by its uuid. |
UpdateProject |
UpdateProjectRequest |
UpdateProjectResponse |
UpdateProject updates an existing project. In contrast to CreatProject you can specify more fields to change like a payment method, credit card or a billing address. The returned response will contain the changed project. |
DeleteProject |
DeleteProjectRequest |
DeleteProjectResponse |
DeleteProject deletes a project, given by its uuid. Make sure you have the owner role and are member of that project. A project marked as default project can not be deleted. Also projects which have nodes, bills which are not payed yet or an outstanding balance can not be deleted. |
InviteMemberToProject |
InviteMemberToProjectRequest |
InviteMemberToProjectResponse |
InviteMemberToProject invites a new user or service account to a project. The calling user (the one who call that endpoint) need to have the "OWNER" role of the given project Further the given identifier needs to belong to a already registered user or service account. The target user needs to confirm his project invitation, service accounts are automatically added. |
JoinProject |
JoinProjectRequest |
JoinProjectResponse |
JoinProject accept or reject an project invite. As a prerequisite for that, the user need to be invited first with the InviteMemberToProject endpoint. If the project invite is rejected, the invite will be deleted. If the invite is accepted, the user will join the project. |
LeaveProject |
LeaveProjectRequest |
LeaveProjectResponse |
LeaveProject leaves a project (the current logged in user). The project need to exit, the user need to be an active member of that project and the project itself can not be the default project. For the last condition, you can set another project to the default project to leave this project. |
RemoveMemberFromProject |
RemoveMemberFromProjectRequest |
RemoveMemberFromProjectResponse |
RemoveMemberFromProject removes a user from a project. The executive user need to be part of that project and hold the owner role for that action. You can not remove yourself or the owner (mostly the same user) from the project. The removed user is no longer part of that project and need to be invited again. |
GetProjectUsage |
GetProjectUsageRequest |
GetProjectUsageResponse |
GetProjectUsage returns the current usage of a project. This includes the current billing period total amount and the information how much of the |
ListBillingProfileBills |
ListBillingProfileBillsRequest |
ListBillingProfileBillsResponse |
ListBillingProfileBills returns a list of bills associated to a given billing profile. |
GetProjectLocks |
GetProjectLocksRequest |
GetProjectLocksResponse |
GetProjectLocks return a list of locks, which are currently applied to the given project. If the list is empty, no locks are applied at this point. |
ListBillingProfileProjects |
ListBillingProfileProjectsRequest |
ListBillingProfileProjectsResponse |
ListBillingProfileProjects returns a list of projects associated to a given billing profile. |
GetBillingProfileBillDetails |
GetBillingProfileBillDetailsRequest |
GetBillingProfileBillDetailsResponse |
GetBillingProfileBillDetails returns the details of a given bill. |
GetBillingProfileBillPdf |
GetBillingProfileBillPdfRequest |
GetBillingProfileBillPdfResponse |
|
ChangeDefaultProject |
ChangeDefaultProjectRequest |
ChangeDefaultProjectResponse |
ChangeDefaultProject set a project as the new default project. The first project created is automatically the default project. Only one project can be the default project. Changing it will remove the default project flag from all other projects available. The so chosen default project will be loaded when the panel will be loaded. Use this to specify the project you are currently working on the most to your default project. |
ListProjectLogs |
ListProjectLogsRequest |
ListProjectLogsResponse |
ListProjectLogs list the audit log entries for a given project. This log contain events happen on that project like membership changes, changes on settings or nodes. The executing user and the time is logged to all entries, so it can be used as an audit log. To narrow down the results, you can specify a user uuid to only show log entries for a given user. An optional search term can filter the result. If the result set is too large, only a portion will be returned. The pages_total field will indicated this. |
SubscribeNotifications |
SubscribeNotificationsRequest |
SubscribeNotificationsResponse stream |
SubscribeNotifications subscribe to new notifications and return a STREAM of notification responses. A notification contain types like a user, a project or a node and will be send to all subscribers, if there are changes on one of that objects. In other words, when you subscribe to notifications, you get notified (with the changed object) when something changed on the server side on users, projects and nodes you are associated with. This can be used to trigger actions, update UI elements or revisit the changes. |
The stream also provides heartbeats in a interval of 5 seconds. If you don't receive any notification for more then 5 seconds, the connection should be reopened. |
| ChangeNodeBillingPeriod | ChangeNodeBillingPeriodRequest | ChangeNodeBillingPeriodResponse | |
| ListNodes | ListNodesRequest | ListNodesResponse | ListNodes list all available nodes for a given project. If the list is too long, only a portion of the result will be returned. The pages_total field will give an indication what portion is left from the result. Use the page field to specify an offset. Use the search field to filter the results. |
| GetNodeSearchOptions | GetNodeSearchOptionsRequest | GetNodeSearchOptionsResponse | GetNodeSearchOptions returns a list with all available search fields. |
| GetNode | GetNodeRequest | GetNodeResponse | GetNode return a single node object. The returned node object contain everything to work with that node. |
| CreateNode | CreateNodeRequest | CreateNodeResponse | CreateNode creates a new node. Before that, various precondition checks will be performed. If one single check fails, the complete creation process is canceled. This has no side effects. After all checks are successful, the collected data will be added to the database and a ServerInstallJob is scheduled. This has indeed side effects, but is not part of that call anymore. So keep in mind that this function can be successful, but the node creation may still can fail for some scenarios. |
| UpdateNode | UpdateNodeRequest | UpdateNodeResponse | UpdateNode set a new FQDN and add more key/value tags to a previously created node. |
| DestroyNode | DestroyNodeRequest | DestroyNodeResponse | DestroyNode deletes a node. This process includes bringing the node back to factory settings, delete all data, disconnect it from the project and release it back to the public pool of available nodes. When deleting a node, a final bill for that node will be calculated with the end date set to the time the node is deleted. |
| ReinstallNode | ReinstallNodeRequest | ReinstallNodeResponse | ReinstallNode reinstall a given node with a given image and optional credentials. This is non-blocking call, so the new installation is triggered but may not be finished on return of that call. To check the installation state, you can use the GetNode call and examine the status field (ServerProvisioningState). To see what happen during the reinstall, you can watch the project logs with the ListProjectLogs call or use the GetNodeConsole call to watch the installation over VNC. |
| PowerActionNode | PowerActionNodeRequest | PowerActionNodeResponse | GetNodeConsole return the VNC password and a JWT token to access the remote console. This only works if the node has a Platform Management interface (iLO, IPMI). Use the VNC credentials to connect to the PM and interact with the node with a virtual screen and keyboard. |
| GetRemoteConsoleAccess | GetRemoteConsoleAccessRequest | GetRemoteConsoleAccessResponse | |
| ChangeNodeRescueMode | ChangeNodeRescueModeRequest | ChangeNodeRescueModeResponse | ChangeNodeRescueMode enable or disable the rescue mode boot for a given node. This is used in emergency situations where the node can not be accessed any more (ssh server not started on boot), the installation is broken (kernel panic), or the node is otherwise unable to boot (disk full, ...). A prepared rescue image will be booted on that node with a randomly generated ssh root password, which will be part of the response of that call. In that rescue mode, you can mount your disk, fix the problem and change the rescue mode back to normal mode. |
| GetUserNodeLimit | GetUserNodeLimitRequest | GetUserNodeLimitResponse | GetUserNodeLimit return the node limit for a user. The user can not exceed the node limit. The response contains the upper limit and the number of nodes currently in use. |
| ListProjectImages | ListProjectImagesRequest | ListProjectImagesResponse | ListProjectImages list all available images for that project. |
| GetProjectImage | GetProjectImageRequest | GetProjectImageResponse | GetProjectImage return the metadata for a specific image, associated to the project. |
| CreateProjectImage | CreateProjectImageRequest | CreateProjectImageResponse | CreateProjectImage create a new image associated to the given project. |
| DeleteProjectImage | DeleteProjectImageRequest | DeleteProjectImageResponse | DeleteProjectImage deletes a project image. |
| DeleteProjectImageVersion | DeleteProjectImageVersionRequest | DeleteProjectImageVersionResponse | DeleteProjectImageVersion deletes a specific version of a project image. |
| ListProjectSSHKeys | ListProjectSSHKeysRequest | ListProjectSSHKeysResponse | ListProjectSSHKeys list all available SSH keys for a project. |
| ListUserSSHKeys | ListUserSSHKeysRequest | ListUserSSHKeysResponse | ListUserSHSKeys list all available SSH keys for a user. |
| CreateUserSSHKey | CreateUserSSHKeyRequest | CreateUserSSHKeyResponse | CreateUserSSHKey adds a new SSH key to the user. |
| DeleteUserSSHKey | DeleteUserSSHKeyRequest | DeleteUserSSHKeyResponse | DeleteUserSSHKey removes a SSH key from the user. |
Top
gpcloud/api/cloud/v1/spla.proto
SplaPrice
SplaPrice represents a price for a Service Provider License Agreement
Top
gpcloud/api/gateway/v1/requests.proto
ImageUploadConfirmRequest
ImageUploadValidateRequest
LagoWebhookRequest
Field |
Type |
Label |
Description |
body |
bytes |
|
|
signature |
string |
|
|
Top
gpcloud/api/gateway/v1/responses.proto
ImageUploadConfirmResponse
ImageUploadValidateResponse
LagoWebhookResponse
Top
gpcloud/api/gateway/v1/rpc.proto
GatewayService
Top
Field |
Type |
Label |
Description |
ip_address |
string |
|
|
ReportRequest
Top
ReportResponse
Top
Top
gpcloud/api/network/v1/requests.proto
Field |
Type |
Label |
Description |
mac_address |
string |
|
|
ListMonitoringTargetsRequest
UpdateMonitoringStatusRequest
Top
gpcloud/api/network/v1/responses.proto
ListMonitoringTargetsResponse
UpdateMonitoringStatusResponse
Top
gpcloud/api/network/v1/rpc.proto
NetworkService
Top
gpcloud/api/payment/v1/requests.proto
AddCreditCardRequest
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
|
ChangeDefaultCreditCardRequest
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
|
id |
string |
|
|
ChangeDefaultPlanCodeRequest
ChangeDefaultPlanCodeRequest requests to change the default plan code for
a given billing address.
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
Billing Profile UUID |
plan_code |
string |
|
New lago plan code |
CreateBillingProfileRequest
DeleteBillingProfileRequest
Field |
Type |
Label |
Description |
id |
string |
|
|
GetDefaultPlanCodeRequest
GetDefaultPlanCodeRequest requests the default plan code for a given billing
profile.
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
Billing Profile UUID |
ListBillingProfilesRequest
ListCreditCardsRequest
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
|
ListPlanCodesRequest
ListPlanCodesRequest requests a list of all plan codes available in Lago,
including the default plan codes "free" and "gpcloud".
RemoveCreditCardRequest
Field |
Type |
Label |
Description |
billing_profile_id |
string |
|
|
id |
string |
|
|
UpdateBillingProfileRequest
Top
gpcloud/type/v1/credit_card.proto
CreditCard
CreditCardType
Name |
Number |
Description |
CREDIT_CARD_TYPE_UNSPECIFIED |
0 |
|
CREDIT_CARD_TYPE_VISA |
1 |
|
CREDIT_CARD_TYPE_MASTERCARD |
2 |
|
CREDIT_CARD_TYPE_AMEX |
3 |
|
CREDIT_CARD_TYPE_DISCOVER |
4 |
|
CREDIT_CARD_TYPE_DINERS_CLUB |
5 |
|
CREDIT_CARD_TYPE_JCB |
6 |
|
Top
gpcloud/api/payment/v1/responses.proto
AddCreditCardResponse
Field |
Type |
Label |
Description |
stripe_setup_ident |
string |
|
|
ChangeDefaultCreditCardResponse
ChangeDefaultPlanCodeResponse
ChangeDefaultPlanCodesResponse contains the new plan code set on a payment
profile.
Field |
Type |
Label |
Description |
plan_code |
string |
|
New default plan code (lago identifier) |
CreateBillingProfileResponse
DeleteBillingProfileResponse
GetDefaultPlanCodeResponse
GetDefaultPlanCodeResponse contains the default plan, set for a payment
profile. This identifier is used for newly created projects ad the plan code.
Field |
Type |
Label |
Description |
plan_code |
string |
|
Current default plan code (lago identifier) |
ListBillingProfilesResponse
ListCreditCardsResponse
ListPlanCodesResponse
ListPlanCodesResponse contains the list of plans available in lago. The plans
are "plan codes" in lago terms and represented as string. The list includes
the default plans "free" and "gpcloud".
Field |
Type |
Label |
Description |
plan_codes |
string |
repeated |
List of plan codes available in lago |
RemoveCreditCardResponse
UpdateBillingProfileResponse
Top
gpcloud/api/payment/v1/rpc.proto
PaymentService
Top
gpcloud/type/v1/sentry.proto
SentryEvent
Field |
Type |
Label |
Description |
event_id |
string |
|
|
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) |