Skip to content

Protocol Documentation

Table of Contents

Top

gpcloud/api/cloud/v1/user.proto

BasicUser

Field Type Label Description
id string
username string
full_name string optional
email string optional
avatar_url string
type UserType
timezone string
tags UserTag repeated

User

Field Type Label Description
id string User uuid
username string Username (not unique!)
number string Customer number
full_name string optional Full name for user
email string optional User e-mail address
confirmed bool Returns true if user email is confirmed
locked bool Returns true if user email is locked
avatar_url string Avatar URL
node_limit int32 Compute limit
keycloak_id string
type UserType
timezone string
tags UserTag repeated
last_login_at google.protobuf.Timestamp
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

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

Field Type Label Description
id string
name string
short string
region Region
status DatacenterStatus
latency_endpoint string
management_vlan_ids int32 repeated
server_prefix string
netbox_id int64 optional

Region

Field Type Label Description
id string
name string
country_code string Country code ISO 3166-1 alpha-2
datacenters Datacenter repeated
netbox_id int64 optional
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

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

Field Type Label Description
id string
name string

Flavour

Field Type Label Description
id string
name string
availability FlavourAvailability
cpu string
memory string
disk string
network string
traffic int64 Traffic given in GB/month
price_per_hour gpcloud.type.v1.Price Price per hour
windows_monthly_fee gpcloud.type.v1.Price Optional windows price per month
price_per_month gpcloud.type.v1.Price Price per month

FlavourMapping

Field Type Label Description
datacenter_id string
available bool
pre_order_limit int32
price_per_hour gpcloud.type.v1.Price
price_per_month gpcloud.type.v1.Price

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.

Field Type Label Description
id string Bill uuid
number string
billing_profile BillingProfile Associated Billing Profile
status BillStatus Status
net_price gpcloud.type.v1.Price
tax_price gpcloud.type.v1.Price
gross_price gpcloud.type.v1.Price
credit_price gpcloud.type.v1.Price
total_price gpcloud.type.v1.Price
issued_at google.protobuf.Timestamp

BillingProfile

Field Type Label Description
id string
company BillingProfileCompany optional
name string
country_code string
state string optional
street string
city string
postcode string
billing_email string
tax_rate float
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

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

Field Type Label Description
id string
name string
type SSHKeyType
public_key string
fingerprint string optional

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

Field Type Label Description
id string
name string
avatar_url string

Project

Field Type Label Description
id string
name string Project name
description string Project description
avatar_url string Avatar URL
currency Currency Currency used for that specific project
environment ProjectEnvironment Project environment (test, staging, production, ...)
members ProjectMember repeated Members
billing_profile BillingProfile Linked billing address
created_at google.protobuf.Timestamp Project timestamps
updated_at google.protobuf.Timestamp

ProjectFlavourUsage

Field Type Label Description
flavour BasicFlavour
period BillingPeriod
total gpcloud.type.v1.Price
units double
unit_type UsageUnitType
node_usages ProjectNodeUsage repeated

ProjectInvite

Field Type Label Description
id string
project BasicProject
created_at google.protobuf.Timestamp

ProjectLog

Field Type Label Description
id string
user BasicUser
message string
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

ProjectMember

Field Type Label Description
user BasicUser
role ProjectMemberRole
confirmed bool
default bool
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

ProjectNodeUsage

Field Type Label Description
id string
name string
started_at google.protobuf.Timestamp
ended_at google.protobuf.Timestamp

ProjectSSHKey

Field Type Label Description
ssh_key gpcloud.type.v1.SSHKey
user BasicUser

ProjectUsage

Field Type Label Description
total gpcloud.type.v1.Price
flavour_usages ProjectFlavourUsage repeated

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

Field Type Label Description
ip_version IPVersion
cidr string

IPAddress

Field Type Label Description
address Cidr
subnet Subnet
primary bool
online bool

Network

Field Type Label Description
id string
name string
type NetworkType
project BasicProject optional
subnets Subnet repeated
vlan_id int32
datacenter Datacenter
pool_size int64
pool_available int64
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

Subnet

Field Type Label Description
id string
network Network
cidr Cidr
gateway_ip Cidr
dhcp bool
pool_start Cidr
pool_end Cidr
pool_size int64
pool_available int64

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

Field Type Label Description
id string
name string
datacenter Datacenter

IPHistory

Field Type Label Description
id string
ip_address string
user BasicUser
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp
deleted_at google.protobuf.Timestamp

PlatformManagement

Field Type Label Description
type PlatformManagementType
ip string
username string
password string
online bool
server_id string

Server

Field Type Label Description
id string
name string
datacenter Datacenter
netbox_link string
ironic_id string optional
flavour Flavour
status ServerStatus
interfaces ServerInterface repeated
platform_management_type PlatformManagementType
in_pool bool
power_state ServerPowerState
provision_state ServerProvisioningState
in_use bool
last_error string optional
last_inspection_at google.protobuf.Timestamp
status_updated_at google.protobuf.Timestamp
provision_state_changed_at google.protobuf.Timestamp
last_sync_at google.protobuf.Timestamp
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

ServerInterface

Field Type Label Description
id string
type NetworkType
mac_address string
driver string
speed int32
ips IPAddress repeated
server_id string Server ID
switch Switch Switch
switch_port string
created_at google.protobuf.Timestamp ServerInterface timestamps
updated_at google.protobuf.Timestamp

ServerLog

Field Type Label Description
id string
message string
level ServerLogLevelType
source ServerLogSourceType
server BasicServer
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

PlatformManagementType

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

Field Type Label Description
id string
alias string optional
name string
username string optional Default username for login
public bool
available bool
authentication_types AuthenticationType repeated
release ImageRelease
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

Image

Field Type Label Description
id string
operating_system OperatingSystem
name string
username string optional Default username for login
public bool
available bool
authentication_types AuthenticationType repeated
project Project optional
versions ImageVersion repeated
image_upload ImageUpload
vendor_data string optional
alias string optional
release ImageRelease
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

ImageChecksum

Field Type Label Description
type ImageChecksumType
checksum string

ImageUpload

Field Type Label Description
upload_url string
token string

ImageVersion

Field Type Label Description
id string
size int64
available bool
checksum ImageChecksum
format ImageFormatType
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

OperatingSystem

Field Type Label Description
id string
name string
family OperatingSystemFamily
icon gpcloud.type.v1.File optional
default_image_id string optional
images BasicImage repeated

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

ImageFormatType

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

gpcloud/type/v1/pagination.proto

PaginationRequest

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

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

Field Type Label Description
name string
string_value string
integer_value int64
boolean_value bool

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

Field Type Label Description
key string
value string

SearchOptions

Field Type Label Description
options SearchOption repeated

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

Field Type Label Description
key string
value string

NodeNetworkInterface

Field Type Label Description
mac string
ip_addresses string repeated
type NetworkType

NodeProvisioning

Field Type Label Description
fqdn string
user_data string
ssh_keys gpcloud.type.v1.SSHKey repeated
password string optional

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.

Field Type Label Description
user User
project Project
node Node
server_log ServerLog
heartbeat google.protobuf.Timestamp

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.

Field Type Label Description
debug_info google.rpc.DebugInfo

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

Field Type Label Description
id string
name string
description string
service_account gpcloud.api.cloud.v1.BasicUser
secret string optional
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

Top

gpcloud/api/auth/v1/requests.proto

CreateClientRequest

Field Type Label Description
name string
description string

DeleteClientRequest

Field Type Label Description
id string

GetClientRequest

Field Type Label Description
id string

GetUserRequest

ListClientsRequest

RegisterRequest

Field Type Label Description
email string
password string
recaptcha_token string

ResendConfirmEMailRequest

ResetClientSecretRequest

Field Type Label Description
id string

UpdateClientRequest

Field Type Label Description
id string
name string
description string

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

Field Type Label Description
user gpcloud.api.cloud.v1.User

ListClientsResponse

Field Type Label Description
clients Client repeated

RegisterResponse

Field Type Label Description
user gpcloud.api.cloud.v1.User
tokens gpcloud.api.cloud.v1.AccessTokenPair

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.

Method Name Request Type Response Type Description
Register RegisterRequest RegisterResponse
GetUser GetUserRequest GetUserResponse
ResendConfirmEMail ResendConfirmEMailRequest ResendConfirmEMailResponse
ListClients ListClientsRequest ListClientsResponse ListClients returns a list of your OAuth 2 / OpenID Connect clients.
CreateClient CreateClientRequest CreateClientResponse CreateClient creates a new OAuth 2 / OpenID Connect client inclusive a service account. The client secret is returned in the response as well, please store it securely.
GetClient GetClientRequest GetClientResponse GetClient returns the details of an OAuth 2 / OpenID Connect client by its ID.
UpdateClient UpdateClientRequest UpdateClientResponse UpdateClient updates an OAuth 2 / OpenID Connect client by its ID.
DeleteClient DeleteClientRequest DeleteClientResponse DeleteClient deletes an OAuth 2 / OpenID Connect client by its ID.
ResetClientSecret ResetClientSecretRequest ResetClientSecretResponse ResetClientSecret resets the client secret of an OAuth 2 / OpenID Connect client by its ID. Please store the new client secret securely.

Top

gpcloud/api/cloud/v1/metadata.proto

Metadata

Field Type Label Description
instance_id string
hostname string
vendor_data bytes
vendor_data_2 bytes
user_data bytes
availability_zone string
project_id string
username string optional
password string optional
flavour string
ssh_keys gpcloud.type.v1.SSHKey repeated
interfaces MetadataNetworkInterface repeated
dns MetadataNetworkDNS

MetadataNetworkDNS

Field Type Label Description
nameservers string repeated

MetadataNetworkInterface

Field Type Label Description
mac_address string
vlan MetadataNetworkInterfaceVLAN
ipv4 MetadataNetworkInterfaceIP

MetadataNetworkInterfaceIP

Field Type Label Description
ip_address string
netmask string
prefix string
gateway string optional

MetadataNetworkInterfaceVLAN

Field Type Label Description
id int32
tagged bool

MetadataReport

Field Type Label Description
ip_address string
message string
level ServerLogLevelType
timestamp google.protobuf.Timestamp

Top

gpcloud/api/cloud/v1/monitoring.proto

MonitoringStatus

Field Type Label Description
ip_address string
reachable bool

MonitoringTarget

Field Type Label Description
id string
ip_address string
tag MonitoringTag

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

Field Type Label Description
id string
project_id string
billing_period BillingPeriod

ChangeNodeRescueModeRequest

Field Type Label Description
id string
project_id string
rescue_mode RescueMode

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

CreateUserSSHKeyRequest

Field Type Label Description
name string
public_key string

DeleteProjectImageRequest

Field Type Label Description
id string
project_id string

DeleteProjectImageVersionRequest

Field Type Label Description
id string
project_id string

DeleteProjectRequest

DeleteProjectRequest delete the project associated with the given uuid.

Field Type Label Description
id string Project uuid

DeleteUserSSHKeyRequest

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

Field Type Label Description
id string
project_id string

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

Field Type Label Description
id string Billing Profile uuid
pagination gpcloud.type.v1.PaginationRequest Pagination
year int32 optional Optional only for the given year

ListBillingProfileProjectsRequest

ListBillingProfileProjectsRequest requests a list of projects associated to a given billing profile.

Field Type Label Description
id string Billing Profile uuid
pagination gpcloud.type.v1.PaginationRequest Pagination

ListCountriesRequest

Request to get all countries.

ListDatacentersRequest

Request to get all datacenters.

ListNodesRequest

ListNodesRequest requests the list of all available images.

Field Type Label Description
id string Project uuid
pagination gpcloud.type.v1.PaginationRequest Pagination
search string optional Optional search term
extended_search gpcloud.type.v1.SearchRequest optional Optional extended search

ListProjectFlavoursRequest

Request to get all project flavours.

Field Type Label Description
id string
datacenter_id string

ListProjectImagesRequest

Field Type Label Description
id string Project uuid

ListProjectLogsRequest

ListProjectLogsRequest requests an audit log for a given project.

Field Type Label Description
id string Project uuid
pagination gpcloud.type.v1.PaginationRequest Pagination
search string Optional search term
user_id string Optional user uuid filter

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.

ListUserSSHKeysRequest

PowerActionNodeRequest

Field Type Label Description
id string
project_id string
power_state ServerPowerState

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.

Field Type Label Description
id string Node uuid
project_id string Project uuid
fqdn string optional Optional new FQDN
tags UpdateNodeRequest.TagsEntry repeated New key/value tags to set

UpdateNodeRequest.TagsEntry

Field Type Label Description
key string
value string

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

Field Type Label Description
code string
name string

Top

gpcloud/type/v1/country.proto

Country

Field Type Label Description
country_code string
name string
net_support bool
tax_rate float

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

CreateUserSSHKeyResponse

Field Type Label Description
ssh_key gpcloud.type.v1.SSHKey

DeleteProjectImageResponse

DeleteProjectImageVersionResponse

DeleteProjectResponse

DeleteProjectResponse

DeleteUserSSHKeyResponse

DestroyNodeResponse

GetBillingProfileBillDetailsResponse

Field Type Label Description
bill Bill
usage ProjectUsage

GetBillingProfileBillPdfResponse

Field Type Label Description
pdf gpcloud.type.v1.File

GetNodeResponse

GetNodeResponse get a single node

Field Type Label Description
node Node Node object

GetNodeSearchOptionsResponse

Field Type Label Description
options gpcloud.type.v1.SearchOptions

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.

Field Type Label Description
lock_reasons ProjectLockReason repeated

GetProjectResponse

GetProjectResponse

Field Type Label Description
project Project Project

GetProjectUsageResponse

Field Type Label Description
usage ProjectUsage

GetRemoteConsoleAccessResponse

Field Type Label Description
token string
hostname string
username string
password string

GetUserNodeLimitResponse

Field Type Label Description
user_limit UserNodeLimit

InviteMemberToProjectResponse

Field Type Label Description
member ProjectMember

JoinProjectResponse

LeaveProjectResponse

ListBillingProfileBillsResponse

ListProjectBillsResponse contains a list of bills.

Field Type Label Description
bills Bill repeated List of bills
pagination gpcloud.type.v1.PaginationResponse Pagination
years int32 repeated List of available years for other requests.

ListBillingProfileProjectsResponse

Field Type Label Description
projects BasicProject repeated List of projects
pagination gpcloud.type.v1.PaginationResponse Pagination
total int64 Total number of bills available.

ListCountriesResponse

Field Type Label Description
countries gpcloud.type.v1.Country repeated

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

Field Type Label Description
keys ProjectSSHKey repeated

ListProjectsResponse

ListProjectsResponse

Field Type Label Description
projects Project repeated List of projects
invites ProjectInvite repeated Number of invites left

ListPublicImagesResponse

Field Type Label Description
operating_systems OperatingSystem repeated

ListTimezonesResponse

Field Type Label Description
timezones gpcloud.type.v1.Timezone repeated

ListUserSSHKeysResponse

Field Type Label Description
ssh_keys gpcloud.type.v1.SSHKey repeated

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

Field Type Label Description
base_price gpcloud.type.v1.Price Base price for the first 8 cores
additional_2_cores_price gpcloud.type.v1.Price Additional price for 2 further CPU cores

Top

gpcloud/api/gateway/v1/requests.proto

ImageUploadConfirmRequest

Field Type Label Description
id string
size int64
compressed bool
checksum gpcloud.api.cloud.v1.ImageChecksum
token string
type gpcloud.api.cloud.v1.ImageFormatType

ImageUploadValidateRequest

Field Type Label Description
id string
token string

LagoWebhookRequest

Field Type Label Description
body bytes
signature string

Top

gpcloud/api/gateway/v1/responses.proto

ImageUploadConfirmResponse

ImageUploadValidateResponse

Field Type Label Description
image_version gpcloud.api.cloud.v1.ImageVersion

LagoWebhookResponse

Top

gpcloud/api/gateway/v1/rpc.proto

GatewayService

Method Name Request Type Response Type Description
ImageUploadValidate ImageUploadValidateRequest ImageUploadValidateResponse
ImageUploadConfirm ImageUploadConfirmRequest ImageUploadConfirmResponse
LagoWebhook LagoWebhookRequest LagoWebhookResponse

Top

gpcloud/api/metadata/v1/requests.proto

GetMetadataRequest

Field Type Label Description
ip_address string

ReportRequest

Field Type Label Description
report gpcloud.api.cloud.v1.MetadataReport

Top

gpcloud/api/metadata/v1/responses.proto

GetMetadataResponse

Field Type Label Description
metadata gpcloud.api.cloud.v1.Metadata

ReportResponse

Top

gpcloud/api/metadata/v1/rpc.proto

MetadataService

Method Name Request Type Response Type Description
GetMetadata GetMetadataRequest GetMetadataResponse
Report ReportRequest ReportResponse

Top

gpcloud/api/network/v1/requests.proto

GetDHCPInformationRequest

Field Type Label Description
mac_address string

ListMonitoringTargetsRequest

UpdateMonitoringStatusRequest

Field Type Label Description
status gpcloud.api.cloud.v1.MonitoringStatus repeated

Top

gpcloud/api/network/v1/responses.proto

GetDHCPInformationResponse

Field Type Label Description
ip_address string
gateway string
dns_servers string repeated
ntp_servers string repeated
lease_ttl string

ListMonitoringTargetsResponse

Field Type Label Description
targets gpcloud.api.cloud.v1.MonitoringTarget repeated

UpdateMonitoringStatusResponse

Top

gpcloud/api/network/v1/rpc.proto

NetworkService

Method Name Request Type Response Type Description
GetDHCPInformation GetDHCPInformationRequest GetDHCPInformationResponse
ListMonitoringTargets ListMonitoringTargetsRequest ListMonitoringTargetsResponse
UpdateMonitoringStatus UpdateMonitoringStatusRequest UpdateMonitoringStatusResponse

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

Field Type Label Description
name string
company string optional
vat_id string optional
country_code string
state string optional
street string
city string
postcode string
billing_email string

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

Field Type Label Description
id string
name string
company string optional
vat_id string optional
country_code string
state string optional
street string
city string
postcode string
billing_email string

Top

gpcloud/type/v1/credit_card.proto

CreditCard

Field Type Label Description
id string
last_4_digits string
type CreditCardType
active bool
valid bool
supports_3d_secure bool
expires_at google.protobuf.Timestamp

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

Field Type Label Description
credit_card gpcloud.type.v1.CreditCard

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

Field Type Label Description
billing_profile gpcloud.api.cloud.v1.BillingProfile

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

Field Type Label Description
billing_profiles gpcloud.api.cloud.v1.BillingProfile repeated

ListCreditCardsResponse

Field Type Label Description
credit_cards gpcloud.type.v1.CreditCard repeated

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

Field Type Label Description
billing_profile gpcloud.api.cloud.v1.BillingProfile

Top

gpcloud/api/payment/v1/rpc.proto

PaymentService

Method Name Request Type Response Type Description
ListCreditCards ListCreditCardsRequest ListCreditCardsResponse
AddCreditCard AddCreditCardRequest AddCreditCardResponse
ChangeDefaultCreditCard ChangeDefaultCreditCardRequest ChangeDefaultCreditCardResponse
RemoveCreditCard RemoveCreditCardRequest RemoveCreditCardResponse
ListBillingProfiles ListBillingProfilesRequest ListBillingProfilesResponse
CreateBillingProfile CreateBillingProfileRequest CreateBillingProfileResponse
UpdateBillingProfile UpdateBillingProfileRequest UpdateBillingProfileResponse
DeleteBillingProfile DeleteBillingProfileRequest DeleteBillingProfileResponse
GetDefaultPlanCode GetDefaultPlanCodeRequest GetDefaultPlanCodeResponse GetDefaultPlanCode requests the default plan code (lago identifier) for a given billing profile. The response is the lago default plan code, represented as a string. This identifier is used to set a payment plan for new projects.
ChangeDefaultPlanCode ChangeDefaultPlanCodeRequest ChangeDefaultPlanCodeResponse ChangeDefaultPlanCode changes the current default plan code on a given billing profile. The given default plan will be checked against Lago if it exists. This change only affects projects created in the future. Already created projects are not affected. To change the plan for existing projects, you need to do that directly in Lago.
ListPlanCodes ListPlanCodesRequest ListPlanCodesResponse ListPlanCodes list all available plan codes in lago, including the default plan codes "free" and "gpcloud".

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)