Skip to content

Protobuf Documentation

This is the gRPC protobuf documentation for the GPROCE API. The documentation is generated from the protobuf files. You can find the protobuf files on the buf.build schema registry.

Top

gpcore/api/cloud/v1/user.proto

BasicUser

Message

Field Type Description
id string
username string
full_name string
email string
avatar_url string
type UserType
timezone string
tags UserTag
node_limit int32

User

Message

Field Type Description
id string User uuid
username string Username (not unique!)
number string Customer number
full_name string Full name for user
email string 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
default_plan_code string
last_login_at google.protobuf.Timestamp
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

UserTag

Enum

Name Number Description
USER_TAG_UNSPECIFIED 0
USER_TAG_NO_COMPANY 1 User does not require to have a valid company and VAT number
USER_TAG_NO_CREDIT_CARD 2 User does not require to have a valid credit card
USER_TAG_ACCESS_TO_CLOUD_PROVIDERS 3 User can access the cloud providers BETA features

UserType

Enum

Name Number Description
USER_TYPE_UNSPECIFIED 0
USER_TYPE_USER 1
USER_TYPE_SERVICE_ACCOUNT 2

Top

gpcore/api/cloud/v1/region.proto

Datacenter

Message

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

Region

Message

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

DatacenterStatus

Enum

Name Number Description
DATACENTER_STATUS_UNSPECIFIED 0
DATACENTER_STATUS_AVAILABLE 1
DATACENTER_STATUS_COMING_SOON 2
DATACENTER_STATUS_UNAVAILABLE 3

Top

gpcore/type/v1/price.proto

Price

Message

Field Type Description
amount int64
currency string ISO 4217 code
formatted string Formatted string of price

Top

gpcore/api/cloud/v1/flavour.proto

BasicFlavour

Message

Field Type Description
id string
name string

Flavour

Message

Field Type 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 gpcore.type.v1.Price Price per hour
windows_monthly_fee gpcore.type.v1.Price Optional windows price per month
price_per_month gpcore.type.v1.Price Price per month

FlavourMapping

Message

Field Type Description
datacenter_id string
available bool Deprecated.
pre_order_limit int32
price_per_hour gpcore.type.v1.Price
price_per_month gpcore.type.v1.Price

FlavourAvailability

Enum

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

gpcore/api/cloud/v1/server_pool.proto

ServerPool

Message

Field Type Description
id string
name string
one_time bool
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

Top

gpcore/api/cloud/v1/payment.proto

Currency

Available currencies in the system. This will map to an ISO 4217 currency code in the database.

Enum

Name Number Description
CURRENCY_UNSPECIFIED 0
CURRENCY_EURO 1
CURRENCY_US_DOLLAR 2

Top

gpcore/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.

Message

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

BillingProfile

Message

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

BillingProfileCompany

Message

Field Type Description
name string
vat_id string

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, ...).

Enum

Name Number Description
BILL_STATUS_UNSPECIFIED 0
BILL_STATUS_PENDING 1
BILL_STATUS_SUCCEEDED 2
BILL_STATUS_FAILED 3

BillingPeriod

Enum

Name Number Description
BILLING_PERIOD_UNSPECIFIED 0
BILLING_PERIOD_HOURLY 1
BILLING_PERIOD_MONTHLY 2
BILLING_PERIOD_DELETED 3

Top

gpcore/type/v1/ssh_key.proto

SSHKey

Message

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

SSHKeyType

Enum

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

gpcore/type/v1/cloud_provider.proto

CloudProviderType

CloudProviderType is an enum for the type of cloud provider vendor identifier.

Enum

Name Number Description
CLOUD_PROVIDER_TYPE_UNSPECIFIED 0
CLOUD_PROVIDER_TYPE_AWS 1
CLOUD_PROVIDER_TYPE_TENCENT 2

Top

gpcore/api/cloud/v1/project.proto

BasicProject

Message

Field Type Description
id string
name string
avatar_url string

Project

Message

Field Type Description
id string
name string Project name
description string Deprecated. Deprecated. This will be removed on 2025/03/01.
avatar_url string Avatar URL
currency Currency Currency used for that specific project
environment ProjectEnvironment Deprecated. Deprecated. This will be removed on 2025/03/01.
members ProjectMember Members
billing_profile BillingProfile Linked billing address
server_pools ServerPool Project assigned server pools
created_at google.protobuf.Timestamp Project timestamps
updated_at google.protobuf.Timestamp

ProjectCloudProvider

ProjectCloudProvider is a message for the cloud provider information of a project. A project can have multiple cloud providers assigned to it to provide additional external computing power to the project.

Message

Field Type Description
id string UUID of the cloud provider
type gpcore.type.v1.CloudProviderType Type of the cloud provider
region string Region identifier of the cloud provider
name string An optional name for the cloud provider reference
valid bool If the cloud provider is enabled and can be accessed by the project (e.g. API token is valid, the region is correct and available, ...)
created_at google.protobuf.Timestamp Timestamp when the cloud provider was added to the project
updated_at google.protobuf.Timestamp Timestamp when the cloud provider was last updated (by the user or and internal mechanism like setting valid to false due to an invalid API token)

ProjectFlavourUsage

Message

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

ProjectInvite

Message

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

ProjectLog

Message

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

ProjectMember

Message

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

ProjectNodeUsage

Message

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

ProjectSSHKey

Message

Field Type Description
ssh_key gpcore.type.v1.SSHKey
user BasicUser

ProjectUsage

Message

Field Type Description
total gpcore.type.v1.Price
flavour_usages ProjectFlavourUsage

ProjectEnvironment

Deprecated. This will be removed on 2025/03/01.

Enum

Name Number Description
PROJECT_ENVIRONMENT_UNSPECIFIED 0
PROJECT_ENVIRONMENT_DEVELOPMENT 1
PROJECT_ENVIRONMENT_STAGING 2
PROJECT_ENVIRONMENT_PRODUCTION 3

ProjectLockReason

Enum

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

Enum

Name Number Description
PROJECT_MEMBER_ROLE_UNSPECIFIED 0
PROJECT_MEMBER_ROLE_OWNER 1
PROJECT_MEMBER_ROLE_MEMBER 2

UsageUnitType

Enum

Name Number Description
USAGE_UNIT_TYPE_UNSPECIFIED 0
USAGE_UNIT_TYPE_HOURS 1
USAGE_UNIT_TYPE_MONTHS 2
USAGE_UNIT_TYPE_CORES 3

Top

gpcore/api/cloud/v1/network.proto

Cidr

Message

Field Type Description
ip_version IPVersion
cidr string

IPAddress

Message

Field Type Description
address Cidr
subnet Subnet
primary bool
online bool

Network

Message

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

Subnet

Message

Field Type 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

Enum

Name Number Description
IP_VERSION_UNSPECIFIED 0
IP_VERSION_IPV4 1
IP_VERSION_IPV6 2

NetworkType

Enum

Name Number Description
NETWORK_TYPE_UNSPECIFIED 0
NETWORK_TYPE_PUBLIC 1
NETWORK_TYPE_MANAGEMENT 2

Top

gpcore/api/cloud/v1/switch.proto

Switch

Switch represents a network switch of various types

Message

Field Type Description
id string Switch uuid
type SwitchType Type of switch
ip_address string IP Address for the uplink port
name string Switch name
netbox_id int64 Netbox ID

SwitchType

Enum

Name Number Description
SWITCH_TYPE_UNSPECIFIED 0
SWITCH_TYPE_JUNIPER 1
SWITCH_TYPE_JUNIPER_LEGACY 2
SWITCH_TYPE_FS 3

Top

gpcore/type/v1/monitoring.proto

MonitoringState

Message

Field Type Description
components MonitoringState.Component
updated_at google.protobuf.Timestamp

MonitoringState.Component

Message

Field Type Description
target MonitoringTarget
heath_state HealthState

HealthState

Enum

Name Number Description
HEALTH_STATE_UNSPECIFIED 0
HEALTH_STATE_OK 1
HEALTH_STATE_WARNING 2
HEALTH_STATE_CRITICAL 3

MonitoringTarget

Enum

Name Number Description
MONITORING_TARGET_UNSPECIFIED 0
MONITORING_TARGET_REDFISH 1
MONITORING_TARGET_SYSTEM 2
MONITORING_TARGET_MEMORY 3
MONITORING_TARGET_DISK 4

Top

gpcore/api/cloud/v1/server.proto

BasicServer

Message

Field Type Description
id string
name string
datacenter Datacenter

IPHistory

Message

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

PlatformManagement

Message

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

Server

Message

Field Type Description
id string
name string
datacenter Datacenter
netbox_link string
ironic_id string
flavour Flavour
status ServerStatus
interfaces ServerInterface
platform_management_type PlatformManagementType
in_pool bool
power_state ServerPowerState
provision_state ServerProvisioningState
in_use bool
last_error string
monitoring_state gpcore.type.v1.MonitoringState Monitoring state of the server
is_broken bool Monitoring detected server as broken
server_pool ServerPool Server pool information
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

Message

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

ServerLog

Message

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

PlatformManagementType

Enum

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
PLATFORM_MANAGEMENT_TYPE_IPMI 5

ServerAction

Enum

Name Number Description
SERVER_ACTION_UNSPECIFIED 0
SERVER_ACTION_RESTART_SWITCH_PORT 1
SERVER_ACTION_SYNC_NETBOX 2
SERVER_ACTION_SYNC_IRONIC 3
SERVER_ACTION_RECREATE_PM_CUSTOMER 4

ServerLogLevelType

Enum

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

Enum

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
SERVER_LOG_SOURCE_TYPE_NETBOX 4

ServerPowerState

Enum

Name Number Description
SERVER_POWER_STATE_UNSPECIFIED 0
SERVER_POWER_STATE_ON 1
SERVER_POWER_STATE_OFF 2
SERVER_POWER_STATE_RESET 3

ServerProvisioningState

Enum

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

Enum

Name Number Description
SERVER_STATUS_UNSPECIFIED 0
SERVER_STATUS_IMPORTING 1
SERVER_STATUS_IMPORTED 2
SERVER_STATUS_DELETING 3

Top

gpcore/api/cloud/v1/cloud_provider.proto

CloudProviderImage

Message

Field Type Description
id string The internal ID of the mapped cloud provider image
type gpcore.type.v1.CloudProviderType The type of the cloud provider
cloud_provider_image_id string The ID of the image in the cloud provider
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

CloudProviderInterface

Message

Field Type Description
mac_address string The MAC address of the interface
ip_addresses string The IP addresses of the interface

CloudProviderResource

Message

Field Type Description
id string The ID that the cloud provider uses to identify the resource
name string The name of the resource on the cloud provider
type string The flavour of the resource on the cloud provider
interfaces CloudProviderInterface The cloud provider instance interfaces
node_id string If the resource is already imported into GPCORE, the node_id is set
permalink string Permalink to the resource on the cloud provider web panel
created_at google.protobuf.Timestamp Creation date of the resource on the cloud provider

Top

gpcore/type/v1/file.proto

File

Message

Field Type Description
bytes bytes File content in bytes.
mime_type string File mime type.

Top

gpcore/api/cloud/v1/image.proto

BasicImage

Message

Field Type Description
id string
alias string
name string
username string Default username for login
public bool
available bool
authentication_types AuthenticationType
release ImageRelease
contains_spla_license bool If the image contains a SPLA license, you wil be charged for the usage, The price depends on your selected hardware configuration, use GetProjectFlavours to get the SPLA license price for the selected hardware configuration.

If you like to use your own Windows license, you need to upload a custom image. | | created_at | google.protobuf.Timestamp | | | updated_at | google.protobuf.Timestamp | |

Image

Message

Field Type Description
id string
operating_system OperatingSystem
name string
username string Default username for login
public bool
available bool
authentication_types AuthenticationType
project Project
versions ImageVersion
image_upload ImageUpload
vendor_data string
alias string
release ImageRelease
cloud_provider_images CloudProviderImage
contains_spla_license bool If the image contains a SPLA license, you wil be charged for the usage, The price depends on your selected hardware configuration, use GetProjectFlavours to get the SPLA license price for the selected hardware configuration.

If you like to use your own Windows license, you need to upload a custom image. | | created_at | google.protobuf.Timestamp | | | updated_at | google.protobuf.Timestamp | |

ImageChecksum

Message

Field Type Description
type ImageChecksumType
checksum string

ImageUpload

Message

Field Type Description
upload_url string
token string

ImageVersion

Message

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

OperatingSystem

Message

Field Type Description
id string
name string
family OperatingSystemFamily
icon gpcore.type.v1.File
default_image_id string
images BasicImage

ProvisioningImage

Message

Field Type Description
id string
alias string TODO: Alias not used?

AuthenticationType

Enum

Name Number Description
AUTHENTICATION_TYPE_UNSPECIFIED 0
AUTHENTICATION_TYPE_PASSWORD 1
AUTHENTICATION_TYPE_SSH 2

ImageChecksumType

Enum

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

Enum

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

Enum

Name Number Description
IMAGE_RELEASE_UNSPECIFIED 0
IMAGE_RELEASE_STABLE 1
IMAGE_RELEASE_PRE_RELEASE 2
IMAGE_RELEASE_END_OF_LIFE 3

OperatingSystemFamily

Enum

Name Number Description
OPERATING_SYSTEM_FAMILY_UNSPECIFIED 0
OPERATING_SYSTEM_FAMILY_WINDOWS 1
OPERATING_SYSTEM_FAMILY_LINUX 2

Top

gpcore/type/v1/pagination.proto

PaginationRequest

PaginationRequest specifies the page (the subset of the complete result set) we want to receive and an optional limit.

Message

Field Type 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 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.

Message

Field Type 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

gpcore/type/v1/search.proto

Filter

Message

Field Type Description
name string
string_value string
integer_value int64
boolean_value bool

SearchOption

Message

Field Type Description
name string
label string Optional label to display for the search option if not set, name is being used.
description string Optional description to display for the search option
type SearchOptionType Type of the search option
validation_regex string
dropdown_values SearchOption.DropdownValuesEntry Possible dropdown values when type is SEARCH_OPTION_TYPE_DROPDOWN

SearchOption.DropdownValuesEntry

Message

Field Type Description
key string
value string

SearchOptions

Message

Field Type Description
options SearchOption

SearchRequest

Message

Field Type Description
filters Filter

SearchOptionType

Enum

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

gpcore/api/cloud/v1/node.proto

BasicNode

Message

Field Type Description
id string
project_id string Project uuid
fqdn string
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

Node represents a "server" unit

Message

Field Type Description
id string Node uuid
project_id string Project uuid
fqdn string FQDN
status ServerProvisioningState Provisioning state
network_interfaces NodeNetworkInterface List of network interface associated with the node
tags Node.TagsEntry 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 gpcore.type.v1.Price price = 13; State of the node when it will renewed gpcore.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 If there is a change of the billing period pending, it will be shown here
login_hint NodeLoginHint Login hint for the node if available
is_managed bool True if node is managed
monitoring_state gpcore.type.v1.MonitoringState Monitoring state of the node
cloud_provider ProjectCloudProvider Cloud provider account information
cloud_provider_resource_id string Cloud provider resource id
permalink string Permalink to the resource. If it is a GPCORE own bare metal server, this will link to the specific node in the web panel. If it is a external cloud provider resource, it will link to the resource in the cloud provider web panel.
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

Message

Field Type Description
key string
value string

NodeLoginHint

Message

Field Type Description
username string
has_password bool

NodeNetworkInterface

Message

Field Type Description
mac string
ip_addresses string
type NetworkType

NodeProvisioning

Message

Field Type Description
fqdn string
user_data string
ssh_keys gpcore.type.v1.SSHKey
password string

RescueMode

Message

Field Type Description
enabled bool
password string

UserNodeLimit

Message

Field Type Description
limit int32
current int32

Top

gpcore/api/cloud/v1/notification.proto

Notification

Notification holds a notification message, which can be a user, a project or a node.

Message

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

Top

gpcore/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.

Message

Field Type Description
debug_info google.rpc.DebugInfo

GPCORESettings

Message

Field Type Description
authorization_type AuthorizationType Authorization type for endpoint.
required_roles string Define which roles are required to access the endpoint.
audiences string Check for single JWT token audience is present.

AuthorizationType

Enum

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 GPCORESettings .google.protobuf.MethodOptions 1100

Top

gpcore/api/auth/v1/client.proto

Client

Message

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

Top

gpcore/api/auth/v1/requests.proto

CreateClientRequest

Message

Field Type Description
name string
description string

DeleteClientRequest

Message

Field Type Description
id string

GetClientRequest

Message

Field Type Description
id string

GetUserRequest

Message

ListClientsRequest

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

RegisterRequest

Message

Field Type Description
email string
password string
recaptcha_token string
first_name string
last_name string

ResendConfirmEMailRequest

Message

ResetClientSecretRequest

Message

Field Type Description
id string

UpdateClientRequest

Message

Field Type Description
id string
name string
description string

Top

gpcore/api/cloud/v1/token.proto

AccessTokenPair

Message

Field Type Description
access_token string
refresh_token string

Top

gpcore/api/auth/v1/responses.proto

CreateClientResponse

Message

Field Type Description
client Client

DeleteClientResponse

Message

GetClientResponse

Message

Field Type Description
client Client

GetUserResponse

Message

Field Type Description
user gpcore.api.cloud.v1.User

ListClientsResponse

Message

Field Type Description
clients Client
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

RegisterResponse

Message

Field Type Description
user gpcore.api.cloud.v1.User
tokens gpcore.api.cloud.v1.AccessTokenPair

ResendConfirmEMailResponse

Message

ResetClientSecretResponse

Message

Field Type Description
secret string

UpdateClientResponse

Message

Field Type Description
client Client

Top

gpcore/api/auth/v1/rpc.proto

AuthService

AuthService provides authentication and authorization services.

Register

Service Method

GetUser

Service Method

ResendConfirmEMail

Service Method

ListClients

ListClients returns a list of your OAuth 2 / OpenID Connect clients.

Service Method

CreateClient

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.

Service Method

GetClient

GetClient returns the details of an OAuth 2 / OpenID Connect client by its ID.

Service Method

UpdateClient

UpdateClient updates an OAuth 2 / OpenID Connect client by its ID.

Service Method

DeleteClient

DeleteClient deletes an OAuth 2 / OpenID Connect client by its ID.

Service Method

ResetClientSecret

ResetClientSecret resets the client secret of an OAuth 2 / OpenID Connect client by its ID. Please store the new client secret securely.

Service Method

Top

gpcore/api/cloud/v1/metadata.proto

Metadata

Message

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

MetadataNetworkDNS

Message

Field Type Description
nameservers string

MetadataNetworkInterface

Message

Field Type Description
mac_address string
vlan MetadataNetworkInterfaceVLAN
ipv4 MetadataNetworkInterfaceIP

MetadataNetworkInterfaceIP

Message

Field Type Description
ip_address string
netmask string
prefix string
gateway string

MetadataNetworkInterfaceVLAN

Message

Field Type Description
id int32
tagged bool

MetadataReport

Message

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

Top

gpcore/api/cloud/v1/monitoring.proto

MonitoringStatus

Message

Field Type Description
ip_address string
reachable bool

MonitoringTarget

Message

Field Type Description
id string
ip_address string
tag MonitoringTag

MonitoringTag

Enum

Name Number Description
MONITORING_TAG_UNSPECIFIED 0
MONITORING_TAG_PLATFORM_MANAGEMENT 1
MONITORING_TAG_SERVER 2

Top

gpcore/api/cloud/v1/requests.proto

ChangeDefaultProjectRequest

ChangeDefaultProjectRequest changes the default project.

Message

Field Type Description
id string Project uuid

ChangeNodeBillingPeriodRequest

Message

Field Type Description
id string
project_id string
billing_period BillingPeriod

ChangeNodeRescueModeRequest

Message

Field Type Description
id string
project_id string
rescue_mode RescueMode

CreateNodeRequest

CreateNodeRequest creates a new node

Message

Field Type Description
project_id string Project uuid
flavour_id string Flavour uuid
datacenter_id string Datacenter uuid
password string Optional password
ssh_key_ids string 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 Custom user data
fqdns string List of FQDNs used
billing_period BillingPeriod Billing period used for that node

CreateProjectCloudProviderRequest

CreateProjectCloudProviderRequest creates a new cloud provider reference for a project. After creating a new cloud provider reference, it is invalid (valid flag set to false) until the API token is validated. This will be checked in the background and the valid flag will be set to true if the validation was successful.

Message

Field Type Description
project_id string Project uuid
name string Identifier for the cloud provider
type gpcore.type.v1.CloudProviderType Type of the cloud provider
api_key_id string API token ID to access the cloud provider (access token ID or something else)
api_key_secret string API token secret to access the cloud provider (access token secret or something else)
region string Region identifier of the cloud provider

CreateProjectImageRequest

Message

Field Type Description
id string Project uuid
name string Name of the image
authentication_types AuthenticationType 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

Message

Field Type Description
name string Project name, will be shown as the title in the UI
description string Deprecated. Deprecated. This will be removed on 2025/03/01.
environment ProjectEnvironment Deprecated. Deprecated. This will be removed on 2025/03/01.
billing_address_id string Billing profile id TODO: Rename to billing_profile_id

CreateUserSSHKeyRequest

Message

Field Type Description
name string
public_key string

DeleteProjectCloudProviderRequest

DeleteProjectCloudProviderRequest deletes the cloud provider reference for a project. The actual cloud provider account will not be touched, only the reference in the project.

Message

Field Type Description
project_id string Project uuid
cloud_provider_id string Cloud provider uuid

DeleteProjectImageRequest

Message

Field Type Description
id string
project_id string

DeleteProjectImageVersionRequest

Message

Field Type Description
id string
project_id string

DeleteProjectRequest

DeleteProjectRequest delete the project associated with the given uuid.

Message

Field Type Description
id string Project uuid

DeleteUserSSHKeyRequest

Message

Field Type Description
id string

DestroyNodeRequest

DestroyNodeRequest deletes a node

Message

Field Type Description
id string Node uuid
project_id string Project uuid

GetBillingProfileBillDetailsRequest

Message

Field Type Description
id string Billing Profile uuid
bill_id string Bill uuid

GetBillingProfileBillPdfRequest

Message

Field Type Description
id string Billing Profile uuid
bill_id string Bill uuid

GetNodeRequest

GetNodeRequest requests a single node

Message

Field Type Description
id string Node uuid
project_id string Project uuid

GetNodeSearchOptionsRequest

Message

Field Type Description
id string Project uuid

GetProjectCloudProviderRequest

GetProjectCloudProviderRequest get a specific cloud provider for a project.

Message

Field Type Description
project_id string Project uuid
cloud_provider_id string Cloud provider uuid

GetProjectImageRequest

Message

Field Type Description
id string
project_id string

GetProjectLocksRequest

GetProjectLocksRequest requests a list of locks based on the given project.

Message

Field Type Description
id string Project uuid

GetProjectRequest

GetProjectRequest return the project associated with the given uuid.

Message

Field Type Description
id string Project uuid

GetProjectUsageRequest

Message

Field Type Description
id string Project uuid
detailed bool When detailed is false only the total amount will be returned.

GetRemoteConsoleAccessRequest

Message

Field Type Description
id string

GetSplaPriceRequest

Message

Field Type Description
id string

GetUserNodeLimitRequest

Message

ImportProjectCloudProviderResourceRequest

Message

Field Type Description
project_id string Project uuid
cloud_provider_id string Cloud provider uuid
resource_id string Resource ID

InviteMemberToProjectRequest

InviteMemberToProjectRequest invite new member to a project.

Message

Field Type 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.

Message

Field Type Description
id string Project uuid to join
accept bool Accept (true) or reject (false) invite

LeaveProjectRequest

LeaveProjectRequest leave a project membership.

Message

Field Type Description
id string Project uuid

ListBillingProfileBillsRequest

ListProjectBillsRequest requests a list of bills

Message

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

ListBillingProfileProjectsRequest

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

Message

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

ListCountriesRequest

Request to get all countries.

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

ListDatacentersRequest

Request to get all datacenters.

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

ListNodesRequest

ListNodesRequest requests the list of all available images.

Message

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

ListProjectCloudProviderResourcesRequest

Message

Field Type Description
project_id string Project uuid
cloud_provider_id string Cloud provider uuid
pagination gpcore.type.v1.PaginationRequest Pagination

ListProjectCloudProvidersRequest

ListProjectMembersRequest list all assigned cloud providers for a project.

Message

Field Type Description
project_id string Project uuid
pagination gpcore.type.v1.PaginationRequest Pagination

ListProjectFlavoursRequest

Request to get all project flavours.

Message

Field Type Description
id string
datacenter_id string
include_sold_out bool Determines if sold out flavours should be included in the response.
pagination gpcore.type.v1.PaginationRequest Pagination

ListProjectImagesRequest

Message

Field Type Description
id string Project uuid
pagination gpcore.type.v1.PaginationRequest Pagination

ListProjectLogsRequest

ListProjectLogsRequest requests an audit log for a given project.

Message

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

ListProjectSSHKeysRequest

Message

Field Type Description
id string
pagination gpcore.type.v1.PaginationRequest Pagination (ignored for now)

ListProjectSupportPackagesRequest

@deprecated

Message

Field Type Description
id string Deprecated.

ListProjectSupportTicketsRequest

Ticket Board @deprecated

Message

Field Type Description
id string Deprecated.

ListProjectsRequest

ListProjectsRequest list the users projects.

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

ListPublicImagesRequest

Request to get all public images

Message

Field Type Description
flavour_id string Deprecated. deprecated no longer in use
pagination gpcore.type.v1.PaginationRequest Pagination
cloud_provider_type gpcore.type.v1.CloudProviderType Filter by cloud provider type (optional)

ListTimezonesRequest

Request to get all timezones.

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

ListUserSSHKeysRequest

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination (ignored for now)

PowerActionNodeRequest

Message

Field Type Description
id string
project_id string
power_state ServerPowerState

ReinstallNodeRequest

ReinstallNodeRequest reinstall a previously created node.

Message

Field Type 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 root password which will set after provisioning. This is just a backup solution if no ssh public keys are given. If no password is given, a random password is generated.
ssh_key_ids string 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.

Message

Field Type Description
id string Project uuid
user_id string User uuid

SubscribeNotificationsRequest

SubscribeNotificationsRequest subscribe to notifications

Message

UpdateNodeRequest

UpdateNodeRequest updates a nodes FQDN and tags.

Message

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

UpdateNodeRequest.TagsEntry

Message

Field Type Description
key string
value string

UpdateProjectCloudProviderRequest

UpdateProjectCloudProviderRequest updates the cloud provider for a project.

Message

Field Type Description
project_id string Project uuid
cloud_provider_id string Cloud provider uuid
api_key_id string API token ID to access the cloud provider (access token ID or something else)
api_key_secret string API token secret to access the cloud provider (access token secret or something else)
region string Region identifier of the cloud provider (optional)
name string An optional name for the cloud provider reference. This is just for the user to distinguish between multiple cloud providers or to store some information. This field will not used as a reference.

UpdateProjectRequest

UpdateProjectRequest updates a project by their given fields.

Message

Field Type Description
id string Project uuid
name string Name
description string Deprecated. Deprecated. This will be removed on 2025/03/01.
environment ProjectEnvironment Deprecated. Deprecated. This will be removed on 2025/03/01.
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.

Message

Field Type Description
timezone string

Top

gpcore/type/v1/timezone.proto

Timezone

Message

Field Type Description
code string
name string

Top

gpcore/type/v1/country.proto

Country

Message

Field Type Description
country_code string
name string
net_support bool
tax_rate float

Top

gpcore/api/cloud/v1/responses.proto

ChangeDefaultProjectResponse

Message

ChangeNodeBillingPeriodResponse

Message

Field Type Description
node Node

ChangeNodeRescueModeResponse

Message

CreateNodeResponse

Message

Field Type Description
nodes Node

CreateProjectCloudProviderResponse

CreateProjectCloudProviderResponse returns the created cloud provider reference for the project. The valid flag will be initially set to false, but after checking the credentials and the region, it will be set to true if the check was successful.

Message

Field Type Description
cloud_provider ProjectCloudProvider Cloud provider for the project

CreateProjectImageResponse

Message

Field Type Description
image Image

CreateProjectResponse

CreateProjectResponse

Message

Field Type Description
project Project

CreateUserSSHKeyResponse

Message

Field Type Description
ssh_key gpcore.type.v1.SSHKey

DeleteProjectCloudProviderResponse

DeleteProjectCloudProviderResponse is the empty response for deleting a cloud provider reference.

Message

DeleteProjectImageResponse

Message

DeleteProjectImageVersionResponse

Message

DeleteProjectResponse

DeleteProjectResponse

Message

DeleteUserSSHKeyResponse

Message

DestroyNodeResponse

Message

GetBillingProfileBillDetailsResponse

Message

Field Type Description
bill Bill
usage ProjectUsage

GetBillingProfileBillPdfResponse

Message

Field Type Description
pdf gpcore.type.v1.File

GetNodeResponse

GetNodeResponse get a single node

Message

Field Type Description
node Node Node object

GetNodeSearchOptionsResponse

Message

Field Type Description
options gpcore.type.v1.SearchOptions

GetProjectCloudProviderResponse

GetProjectCloudProviderResponse returns the cloud provider for the project.

Message

Field Type Description
cloud_provider ProjectCloudProvider Cloud provider for the project
valid bool If the cloud provider is valid and can be accessed.

GetProjectImageResponse

Message

Field Type 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.

Message

Field Type Description
lock_reasons ProjectLockReason

GetProjectResponse

GetProjectResponse

Message

Field Type Description
project Project Project

GetProjectUsageResponse

Message

Field Type Description
usage ProjectUsage

GetRemoteConsoleAccessResponse

Message

Field Type Description
token string
hostname string
username string
password string

GetUserNodeLimitResponse

Message

Field Type Description
user_limit UserNodeLimit

ImportProjectCloudProviderResourceResponse

Message

Field Type Description
node Node

InviteMemberToProjectResponse

Message

Field Type Description
member ProjectMember

JoinProjectResponse

Message

LeaveProjectResponse

Message

ListBillingProfileBillsResponse

ListProjectBillsResponse contains a list of bills.

Message

Field Type Description
bills Bill List of bills
pagination gpcore.type.v1.PaginationResponse Pagination
years int32 List of available years for other requests.
total int64 Total number of bills available.

ListBillingProfileProjectsResponse

Message

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

ListCountriesResponse

Message

Field Type Description
countries gpcore.type.v1.Country
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListDatacentersResponse

Message

Field Type Description
datacenters Datacenter
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListNodesResponse

ListNodesResponse

Message

Field Type Description
nodes Node Node list
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListProjectCloudProviderResourcesResponse

Message

Field Type Description
resources CloudProviderResource
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of resources available. May be differ from the number of results, from this response because of the pagination.

ListProjectCloudProvidersResponse

ListProjectCloudProvidersResponse returns a list of cloud providers for the project.

Message

Field Type Description
cloud_providers ProjectCloudProvider List of cloud providers
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of cloud providers available. May be differ from the number of results, from this response because of the pagination.

ListProjectFlavoursResponse

Message

Field Type Description
flavours Flavour
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListProjectImagesResponse

Message

Field Type Description
images BasicImage
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListProjectLogsResponse

ListProjectLogsResponse

Message

Field Type Description
logs ProjectLog All log items for page
pagination gpcore.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 A list with all users

ListProjectSSHKeysResponse

Message

Field Type Description
keys ProjectSSHKey
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListProjectsResponse

ListProjectsResponse

Message

Field Type Description
projects Project List of projects
invites ProjectInvite Number of invites left
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListPublicImagesResponse

Message

Field Type Description
operating_systems OperatingSystem
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListTimezonesResponse

Message

Field Type Description
timezones gpcore.type.v1.Timezone
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListUserSSHKeysResponse

Message

Field Type Description
ssh_keys gpcore.type.v1.SSHKey
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

PowerActionNodeResponse

Message

ReinstallNodeResponse

Message

Field Type Description
node Node

RemoveMemberFromProjectResponse

Message

SubscribeNotificationsResponse

SubscribeNotificationsResponse is a stream of notifications. One single response contain one notification.

Message

Field Type Description
notification Notification Notification

UpdateNodeResponse

Message

Field Type Description
node Node

UpdateProjectCloudProviderResponse

UpdateProjectCloudProviderResponse returns the updated cloud provider for the project.

Message

Field Type Description
cloud_provider ProjectCloudProvider Updated cloud provider for the project

UpdateProjectResponse

UpdateProjectResponse contain the updated project

Message

Field Type Description
project Project Project

UpdateTimezoneResponse

Message

Top

gpcore/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.

ListCountries

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.

Service Method

ListTimezones

ListTimezones lists all available timezones which can be configured as user timezone.

Service Method

UpdateTimezone

UpdateTimezone Updates your user timezone. Changing the timezone affects your billing periods an future bills.

Service Method

ListDatacenters

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.

Service Method

ListPublicImages

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.

Service Method

ListProjectFlavours

ListProjectFlavours list all the available flavours for the given project ID and the datacenter. Not all flavours are available on all datacenters.

Service Method

CreateProject

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.

Service Method

ListProjects

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.

Service Method

GetProject

GetProject return a project by its uuid.

Service Method

UpdateProject

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.

Service Method

DeleteProject

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.

Service Method

InviteMemberToProject

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.

Service Method

JoinProject

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.

Service Method

LeaveProject

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.

Service Method

RemoveMemberFromProject

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.

Service Method

CreateProjectCloudProvider

CreateProjectCloudProvider creates a new cloud provider reference for a given project.

Service Method

GetProjectCloudProvider

GetProjectCloudProvider returns a single cloud provider for a given project. This is a reference to a external cloud provider like AWS. The returned object contain all necessary information to work with that cloud provider.

Service Method

ListProjectCloudProviders

ListProjectCloudProviders returns a list of all cloud providers associated to a given project.

Service Method

UpdateProjectCloudProvider

UpdateProjectCloudProvider updates a cloud provider reference for a given project. After the call, the information (access token, region) will be checked for validity. If the cloud provider is not valid, the call will succeed, but the valid flag will be set to false. In this case, the cloud provider can not be used for further actions.

Service Method

DeleteProjectCloudProvider

DeleteProjectCloudProvider deletes a cloud provider reference for a given project. The actual account on the cloud provider will not be touched, just the reference to GPCORE will be removed.

Service Method

ListProjectCloudProviderResources

ListProjectCloudProviderResources Lists all available cloud resources on that specific cloud provider account.

Service Method

ImportProjectCloudProviderResource

ImportProjectCloudProviderResource imports a cloud provider resource to the project. It is used to link external cloud provider resources to a node in the project.

Service Method

GetProjectUsage

GetProjectUsage returns the current usage of a project. This includes the current billing period total amount and the information how much of the

Service Method

ListBillingProfileBills

ListBillingProfileBills returns a list of bills associated to a given billing profile.

Service Method

GetProjectLocks

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.

Service Method

ListBillingProfileProjects

ListBillingProfileProjects returns a list of projects associated to a given billing profile.

Service Method

GetBillingProfileBillDetails

GetBillingProfileBillDetails returns the details of a given bill.

Service Method

GetBillingProfileBillPdf

Service Method

ChangeDefaultProject

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.

Service Method

ListProjectLogs

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.

Service Method

SubscribeNotifications

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.

Service Method

ChangeNodeBillingPeriod

Service Method

ListNodes

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.

Service Method

GetNodeSearchOptions

GetNodeSearchOptions returns a list with all available search fields.

Service Method

GetNode

GetNode return a single node object. The returned node object contain everything to work with that node.

Service Method

CreateNode

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.

Service Method

UpdateNode

UpdateNode set a new FQDN and add more key/value tags to a previously created node.

Service Method

DestroyNode

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.

Service Method

ReinstallNode

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.

Service Method

PowerActionNode

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.

Service Method

GetRemoteConsoleAccess

Service Method

ChangeNodeRescueMode

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.

Service Method

GetUserNodeLimit

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.

Service Method

ListProjectImages

ListProjectImages list all available images for that project.

Service Method

GetProjectImage

GetProjectImage return the metadata for a specific image, associated to the project.

Service Method

CreateProjectImage

CreateProjectImage create a new image associated to the given project.

Service Method

DeleteProjectImage

DeleteProjectImage deletes a project image.

Service Method

DeleteProjectImageVersion

DeleteProjectImageVersion deletes a specific version of a project image.

Service Method

ListProjectSSHKeys

ListProjectSSHKeys list all available SSH public keys for a project.

Service Method

ListUserSSHKeys

ListUserSHSKeys list all available SSH public keys for a user.

Service Method

CreateUserSSHKey

CreateUserSSHKey adds a new SSH public key to the user.

Service Method

DeleteUserSSHKey

DeleteUserSSHKey removes a SSH public key from the user.

Service Method

Top

gpcore/api/cloud/v1/spla.proto

SplaPrice

SplaPrice represents a price for a Service Provider License Agreement

Message

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

Top

gpcore/api/cloud/v2/requests.proto

ListBillingProfileBillsRequest

ListProjectBillsRequest requests a list of bills

Message

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

ListBillingProfileProjectsRequest

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

Message

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

ListNodesRequest

ListNodesRequest requests the list of all available images.

Message

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

ListProjectLogsRequest

ListProjectLogsRequest requests an audit log for a given project.

Message

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

ReadinessCheckRequest

Message

Top

gpcore/api/cloud/v2/responses.proto

ListBillingProfileBillsResponse

ListProjectBillsResponse contains a list of bills.

Message

Field Type Description
bills gpcore.api.cloud.v1.Bill List of bills
pagination gpcore.type.v1.PaginationResponse Pagination
years int32 List of available years for other requests.
total int64 Total number of bills available.

ListBillingProfileProjectsResponse

ListBillingProfileProjectsResponse contains a list of projects.

Message

Field Type Description
projects gpcore.api.cloud.v1.BasicProject List of projects
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of bills available.

ListNodesResponse

ListNodesResponse

Message

Field Type Description
nodes gpcore.api.cloud.v1.Node Node list
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListProjectLogsResponse

ListProjectLogsResponse contains a list of logs.

Message

Field Type Description
logs gpcore.api.cloud.v1.ProjectLog All log items for page
pagination gpcore.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 gpcore.api.cloud.v1.BasicUser A list with all users

ReadinessCheckResponse

Message

Field Type Description
version string Version of running service

Top

gpcore/api/cloud/v2/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.

ListBillingProfileBills

ListBillingProfileBills returns a list of bills associated to a given billing profile.

Service Method

ListBillingProfileProjects

ListBillingProfileProjects returns a list of projects associated to a given billing profile.

Service Method

ListProjectLogs

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.

Service Method

ListNodes

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.

Service Method

ReadinessCheck

ReadinessCheck is a simple health check to see if the service is up and running. It returns the version of the service.

Service Method

Top

gpcore/api/gateway/v1/requests.proto

ImageUploadConfirmRequest

Message

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

ImageUploadValidateRequest

Message

Field Type Description
id string
token string

LagoWebhookRequest

Message

Field Type Description
body bytes
signature string

Top

gpcore/api/gateway/v1/responses.proto

ImageUploadConfirmResponse

Message

ImageUploadValidateResponse

Message

Field Type Description
image_version gpcore.api.cloud.v1.ImageVersion

LagoWebhookResponse

Message

Top

gpcore/api/gateway/v1/rpc.proto

GatewayService

ImageUploadValidate

Service Method

ImageUploadConfirm

Service Method

LagoWebhook

Service Method

Top

gpcore/api/metadata/v1/requests.proto

GetMetadataRequest

Message

Field Type Description
ip_address string

ReportRequest

Message

Field Type Description
report gpcore.api.cloud.v1.MetadataReport

Top

gpcore/api/metadata/v1/responses.proto

GetMetadataResponse

Message

Field Type Description
metadata gpcore.api.cloud.v1.Metadata

ReportResponse

Message

Top

gpcore/api/metadata/v1/rpc.proto

MetadataService

GetMetadata

Service Method

Report

Service Method

Top

gpcore/api/network/v1/requests.proto

GetArpInformationRequest

Message

GetDHCPInformationRequest

Message

Field Type Description
mac_address string

ListMonitoringTargetsRequest

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination (ignored for now)

NotifyArpChangeRequest

Message

Field Type Description
mac_address string
ip_address string

UpdateMonitoringStatusRequest

Message

Field Type Description
status gpcore.api.cloud.v1.MonitoringStatus

Top

gpcore/api/network/v1/responses.proto

GetArpInformationResponse

Message

Field Type Description
networks string
arp_table GetArpInformationResponse.ArpTableEntry

GetArpInformationResponse.ArpTableEntry

Message

Field Type Description
key string
value string

GetDHCPInformationResponse

Message

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

ListMonitoringTargetsResponse

Message

Field Type Description
targets gpcore.api.cloud.v1.MonitoringTarget
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

NotifyArpChangeResponse

Message

Field Type Description
arp_ip_history gpcore.api.admin.v1.ArpIpHistory

UpdateMonitoringStatusResponse

Message

Top

gpcore/api/network/v1/rpc.proto

NetworkService

GetDHCPInformation

Service Method

ListMonitoringTargets

Service Method

UpdateMonitoringStatus

Service Method

GetArpInformation

Service Method

NotifyArpChange

Service Method

Top

gpcore/api/payment/v1/requests.proto

AddCreditCardRequest

Message

Field Type Description
billing_profile_id string

ChangeDefaultCreditCardRequest

Message

Field Type Description
billing_profile_id string
id string

ChangeDefaultPlanCodeRequest

ChangeDefaultPlanCodeRequest requests to change the default plan code for a given billing address.

Message

Field Type Description
billing_profile_id string Billing Profile UUID
plan_code string New lago plan code

CreateBillingProfileRequest

Message

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

DeleteBillingProfileRequest

Message

Field Type Description
id string

GetDefaultPlanCodeRequest

GetDefaultPlanCodeRequest requests the default plan code for a given billing profile.

Message

Field Type Description
billing_profile_id string Billing Profile UUID

ListBillingProfilesRequest

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination

ListCreditCardsRequest

Message

Field Type Description
billing_profile_id string
pagination gpcore.type.v1.PaginationRequest Pagination (ignored for now)

ListPlanCodesRequest

ListPlanCodesRequest requests a list of all plan codes available in Lago, including the default plan codes "free" and "gpcore".

Message

Field Type Description
pagination gpcore.type.v1.PaginationRequest Pagination (ignored for now)

RemoveCreditCardRequest

Message

Field Type Description
billing_profile_id string
id string

UpdateBillingProfileRequest

Message

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

Top

gpcore/type/v1/credit_card.proto

CreditCard

Message

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

CreditCardType

Enum

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

gpcore/api/payment/v1/responses.proto

AddCreditCardResponse

Message

Field Type Description
stripe_setup_ident string

ChangeDefaultCreditCardResponse

Message

Field Type Description
credit_card gpcore.type.v1.CreditCard

ChangeDefaultPlanCodeResponse

ChangeDefaultPlanCodesResponse contains the new plan code set on a payment profile.

Message

Field Type Description
plan_code string New default plan code (lago identifier)

CreateBillingProfileResponse

Message

Field Type Description
billing_profile gpcore.api.cloud.v1.BillingProfile

DeleteBillingProfileResponse

Message

GetDefaultPlanCodeResponse

GetDefaultPlanCodeResponse contains the default plan, set for a payment profile. This identifier is used for newly created projects ad the plan code.

Message

Field Type Description
plan_code string Current default plan code (lago identifier)

ListBillingProfilesResponse

Message

Field Type Description
billing_profiles gpcore.api.cloud.v1.BillingProfile
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

ListCreditCardsResponse

Message

Field Type Description
credit_cards gpcore.type.v1.CreditCard
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

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 "gpcore".

Message

Field Type Description
plan_codes string List of plan codes available in lago
pagination gpcore.type.v1.PaginationResponse Pagination
total int64 Total number of items available. May be differ from the number of results from this response because of the pagination.

RemoveCreditCardResponse

Message

UpdateBillingProfileResponse

Message

Field Type Description
billing_profile gpcore.api.cloud.v1.BillingProfile

Top

gpcore/api/payment/v1/rpc.proto

PaymentService

ListCreditCards

Service Method

AddCreditCard

Service Method

ChangeDefaultCreditCard

Service Method

RemoveCreditCard

Service Method

ListBillingProfiles

Service Method

CreateBillingProfile

Service Method

UpdateBillingProfile

Service Method

DeleteBillingProfile

Service Method

GetDefaultPlanCode

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.

Service Method

ChangeDefaultPlanCode

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.

Service Method

ListPlanCodes

ListPlanCodes list all available plan codes in lago, including the default plan codes "free" and "gpcore".

Service Method

Top

gpcore/type/v1/audit_log.proto

AuditLog

Message

Field Type Description
rpc_method string
token AuditLogToken
ip_address string
user_agent string
request_id string
payload bytes
created_at google.protobuf.Timestamp

AuditLogToken

Message

Field Type Description
subject_id string
jwt_id string
session_id string
expires_at google.protobuf.Timestamp
issued_at google.protobuf.Timestamp
issuer string
type string

Top

gpcore/type/v1/sentry.proto

SentryEvent

Message

Field Type 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)