API endpoint: api.metalstack.cloud

Talk to us

api/v1/common.proto

Enums

AdminRole

AdminRole specifies what role a logged in user needs to call this admin service

Name Number Description
ADMIN_ROLE_UNSPECIFIED 0 ADMIN_ROLE_UNSPECIFIED is not specified
ADMIN_ROLE_EDITOR 1 ADMIN_ROLE_EDITOR the logged in user needs at least editor role to call this method
ADMIN_ROLE_VIEWER 2 ADMIN_ROLE_VIEWER the logged in user needs at least viewer role to call this method

Auditing

Auditing option specified per service method by default all service methods are included add the auditing option if you want to exclude a method in auditing

Name Number Description
AUDITING_UNSPECIFIED 0 AUDITING_UNSPECIFIED is not specified
AUDITING_INCLUDED 1 AUDITING_INCLUDED if a method is annotated with this, all calls are audited
AUDITING_EXCLUDED 2 AUDITING_EXCLUDED if a method is annotated with this, no calls are audited

Chargeable

Chargable defines if calling a method requires that billing credentials are present or not

Name Number Description
CHARGEABLE_UNSPECIFIED 0 CHARGEABLE_UNSPECIFIED no chargeable option is set
CHARGEABLE_TRUE 1 CHARGEABLE_TRUE if this is set on a method, calling it requires that billing credentials are present
CHARGEABLE_FALSE 2 CHARGEABLE_FALSE if this is set on a method, no billing credentials are required

OAuthProvider

OAuthProvider defines which login providers are supported

Name Number Description
O_AUTH_PROVIDER_UNSPECIFIED 0 O_AUTH_PROVIDER_UNSPECIFIED is an unknown login provider
O_AUTH_PROVIDER_GITHUB 1 O_AUTH_PROVIDER_GITHUB specifies github as oauth login provider
O_AUTH_PROVIDER_AZURE 2 O_AUTH_PROVIDER_AZURE specifies azure as oauth login provider

ProjectRole

ProjectRole specifies what role a logged in user needs to call this project scoped service

Name Number Description
PROJECT_ROLE_UNSPECIFIED 0 PROJECT_ROLE_UNSPECIFIED is not specified
PROJECT_ROLE_OWNER 1 PROJECT_ROLE_OWNER the logged in user needs at least owner role to call this method
PROJECT_ROLE_EDITOR 2 PROJECT_ROLE_EDITOR the logged in user needs at least editor role to call this method
PROJECT_ROLE_VIEWER 3 PROJECT_ROLE_VIEWER the logged in user needs at least viewer role to call this method

Role

Role defines which role the logged in user got from the login provider

Name Number Description
ROLE_UNSPECIFIED 0 ROLE_UNSPECIFIED is not specified
ROLE_MEMBER 1 ROLE_MEMBER the user has member role in the scope
ROLE_MAINTAINER 2 ROLE_MAINTAINER the user has maintainer role in the scope
ROLE_ADMIN 3 ROLE_ADMIN the user has admin role in the scope
ROLE_OWNER 4 ROLE_OWNER the user has owner role in the scope

TenantRole

TenantRole specifies what role a logged in user needs to call this tenant scoped service

Name Number Description
TENANT_ROLE_UNSPECIFIED 0 TENANT_ROLE_UNSPECIFIED is not specified
TENANT_ROLE_OWNER 1 TENANT_ROLE_OWNER the logged in user needs at least owner role to call this method
TENANT_ROLE_EDITOR 2 TENANT_ROLE_EDITOR the logged in user needs at least editor role to call this method
TENANT_ROLE_VIEWER 3 TENANT_ROLE_VIEWER the logged in user needs at least viewer role to call this method

Visibility

Visibility of a method

Name Number Description
VISIBILITY_UNSPECIFIED 0 VISIBILITY_UNSPECIFIED is not defined
VISIBILITY_PUBLIC 1 VISIBILITY_PUBLIC specifies that this service is accessible without authentication
VISIBILITY_PRIVATE 2 VISIBILITY_PRIVATE makes this service blocked
VISIBILITY_SELF 3 VISIBILITY_SELF enable call this endpoint from the authenticated user only

Extensions

admin_roles

AdminRoles are used to define which admin role a logged in user must provide to call this method

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

auditing

Auditing defines if calls to this method should be audited or not

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

chargeable

Chargeable if this is set on a method, calling it requires that billing credentials are present

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

project_roles

ProjectRoles are used to define which project role a logged in user must provide to call this method

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

tenant_roles

TenantRoles are used to define which tenant role a logged in user must provide to call this method

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

visibility

Visibility defines the visibility of this method, this is used to have public, private or self visible methods

Extension Type Base Number
admin_roles AdminRole MethodOptions 51002
auditing Auditing MethodOptions 51005
chargeable Chargeable MethodOptions 51004
project_roles ProjectRole MethodOptions 51001
tenant_roles TenantRole MethodOptions 51000
visibility Visibility MethodOptions 51003

Messages

Paging

Paging defines paging for methods with a lot of results

Field Type Label
page uint64 optional
count uint64 optional

api/v1/cluster.proto

Messages

Cluster

Cluster describes a kubernetes cluster

Field Type Label
uuid string
name string
project string
partition string
kubernetes KubernetesSpec
workers Worker repeated
maintenance Maintenance
tenant string
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp
deleted_at google.protobuf.Timestamp
status ClusterStatus
purpose string optional
monitoring ClusterMonitoring

ClusterMonitoring

ClusterMonitoring contains details howto access the cluster monitoring

Field Type Label
username string
password string
endpoint string

ClusterServiceCreateRequest

ClusterServiceCreateRequest is the request payload for a cluster create request

Field Type Label
name string
project string
partition string
kubernetes KubernetesSpec
workers Worker repeated
maintenance Maintenance

ClusterServiceCreateResponse

ClusterServiceCreateResponse is the response payload of a cluster create request

Field Type Label
cluster Cluster

ClusterServiceDeleteRequest

ClusterServiceDeleteRequest is the request payload for a cluster delete request

Field Type Label
uuid string
project string

ClusterServiceDeleteResponse

ClusterServiceDeleteResponse is the response payload of a cluster delete request

Field Type Label
cluster Cluster

ClusterServiceGetCredentialsRequest

ClusterServiceGetRequest is the request payload for a cluster get request

Field Type Label
uuid string
project string
expiration google.protobuf.Duration optional

ClusterServiceGetCredentialsResponse

ClusterServiceGetCredentialsResponse is the response payload of a cluster get credentials request

Field Type Label
kubeconfig string

ClusterServiceGetRequest

ClusterServiceGetRequest is the request payload for a cluster get request

Field Type Label
uuid string
project string

ClusterServiceGetResponse

ClusterServiceGetResponse is the response payload of a cluster get request

Field Type Label
cluster Cluster

ClusterServiceListRequest

ClusterServiceListRequest is the request payload for a cluster list request

Field Type Label
project string

ClusterServiceListResponse

ClusterServiceListResponse is the response payload of a cluster list request

Field Type Label
clusters Cluster repeated

ClusterServiceUpdateRequest

ClusterServiceUpdateRequest is the request payload for a cluster update request

Field Type Label
uuid string
project string
kubernetes KubernetesSpec optional
workers WorkerUpdate repeated
maintenance Maintenance optional

ClusterServiceUpdateResponse

ClusterServiceUpdateResponse is the response payload of a cluster update request

Field Type Label
cluster Cluster

ClusterServiceWatchStatusRequest

ClusterServiceWatchStatusRequest is the request payload for a cluster watch status request

Field Type Label
uuid string optional
project string

ClusterServiceWatchStatusResponse

ClusterServiceWatchStatusResponse is the response payload of a cluster watch status request

Field Type Label
status ClusterStatus

ClusterStatus

ClusterStatus

Field Type Label
uuid string
progress uint32
state string
type string
api_server_ready string
control_plane_ready string
nodes_ready string
system_components_ready string
last_errors ClusterStatusLastError repeated

ClusterStatusLastError

ClusterStatusLastError is the last known cluster status error

Field Type Label
description string
task_id string optional
codes string repeated
last_update_time google.protobuf.Timestamp

KubernetesSpec

KubernetesSpec details of kubernetes this cluster

Field Type Label
version string

Maintenance

Maintenance defines when automatic actions should be scheduled on this cluster

Field Type Label
kubernetes_autoupdate bool optional
machineimage_autoupdate bool optional
time_window MaintenanceTimeWindow

MaintenanceTimeWindow

MaintenanceTimeWindow defines the start time and duration during which automatic actions will be performed

Field Type Label
begin google.protobuf.Timestamp
duration google.protobuf.Duration

Worker

Worker defines a set of worker nodes with identical properties

Field Type Label
name string
machine_type string
minsize uint32
maxsize uint32
maxsurge uint32
maxunavailable uint32

WorkerUpdate

WorkerUpdate is used to update a Worker group

Field Type Label
name string
machine_type string optional
minsize uint32 optional
maxsize uint32 optional
maxsurge uint32 optional
maxunavailable uint32 optional

Services

ClusterService

ClusterService serves kubernetes cluster related functions

Method Create

Request Type ClusterServiceCreateRequest

Response Type ClusterServiceCreateResponse

Description Create a cluster

This Language is not supported

Method Get

Request Type ClusterServiceGetRequest

Response Type ClusterServiceGetResponse

Description Get a cluster

This Language is not supported

Method List

Request Type ClusterServiceListRequest

Response Type ClusterServiceListResponse

Description List clusters

This Language is not supported

Method WatchStatus

Request Type ClusterServiceWatchStatusRequest

Response Type ClusterServiceWatchStatusResponse

Description WatchStatus of a cluster

This Language is not supported

Method Delete

Request Type ClusterServiceDeleteRequest

Response Type ClusterServiceDeleteResponse

Description Delete a cluster

This Language is not supported

Method Update

Request Type ClusterServiceUpdateRequest

Response Type ClusterServiceUpdateResponse

Description Update a cluster

This Language is not supported

Method GetCredentials

Request Type ClusterServiceGetCredentialsRequest

Response Type ClusterServiceGetCredentialsResponse

Description GetCredentials of a cluster

This Language is not supported


api/v1/payment.proto

Enums

ProductType

ProductType defines for which type of product a price applies

Name Number Description
PRODUCT_TYPE_UNSPECIFIED 0 PRODUCT_TYPE_UNSPECIFIED is unspecified
PRODUCT_TYPE_STORAGE 1 PRODUCT_TYPE_STORAGE for storage
PRODUCT_TYPE_COMPUTE 2 PRODUCT_TYPE_COMPUTE for compute, e.g. machines
PRODUCT_TYPE_NETWORK 3 PRODUCT_TYPE_NETWORK for network, e.g. ips and traffic
PRODUCT_TYPE_KUBERNETES 5 PRODUCT_TYPE_KUBERNETES for kubernetes, e.g. the control plane

Messages

Address

Address postal address of a customer

Field Type Label
line1 string
line2 string
postal_code string
city string
state string
country string

Card

Card is the payment card the customer pays with

Field Type Label
brand string
country string
exp_month int64
exp_year int64
last_4 string

Coupon

Coupon is a amount of free usage which can be granted to a customer

Field Type Label
id string
name string
amount_off int64
currency string
duration_in_month int64
created_at google.protobuf.Timestamp
redeem_by google.protobuf.Timestamp
times_redeemed int64
max_redemptions int64
amount_left int64

Invoice

Invoice a customer has to pay for subscription usage

Field Type Label
id string
pdf_download_url string
period_start google.protobuf.Timestamp
period_end google.protobuf.Timestamp

PaymentCustomer

PaymentCustomer is a customer at the payment processor

Field Type Label
login string
name string optional
customer_id string optional
payment_method_id string optional
subscription_id string
email string optional
card Card optional
prices Price repeated
address Address
coupon Coupon optional
vat string optional
phone_number string optional
balance int64 optional

PaymentServiceCheckAdmittedRequest

PaymentServiceCheckAdmittedRequest is the request payload for a check admitted request

Field Type Label
login string

PaymentServiceCheckAdmittedResponse

PaymentServiceCheckAdmittedResponse is the response payload for a check admitted request

Field Type Label
admitted bool
requested bool

PaymentServiceCheckIfCustomerExistsRequest

PaymentServiceCheckIfCustomerExistsRequest is the request payload for a payment check if customer exists request

Field Type Label
login string

PaymentServiceCheckIfCustomerExistsResponse

PaymentServiceCheckIfCustomerExistsResponse is the response payload for a payment check if customer exists request

Field Type Label
customer PaymentCustomer
exists bool

PaymentServiceCreateOrUpdateCustomerRequest

PaymentServiceCreateOrUpdateCustomerRequest is the request payload for a payment create or update customer request

Field Type Label
login string
customer PaymentCustomer
accepted_terms_and_conditions bool

PaymentServiceCreateOrUpdateCustomerResponse

PaymentServiceCreateOrUpdateCustomerResponse is the response payload for a payment create or update customer request

Field Type Label
customer PaymentCustomer

PaymentServiceDeletePaymentMethodRequest

PaymentServiceDeletePaymentMethodRequest is the request payload for a delete payment request

Field Type Label
login string

PaymentServiceDeletePaymentMethodResponse

PaymentServiceDeletePaymentMethodResponse is the response payload for a delete payment request

Field Type Label
there are no fields

PaymentServiceGetCustomerRequest

PaymentServiceGetCustomerRequest is the request payload for a payment get customer request

Field Type Label
login string
customer_id string

PaymentServiceGetCustomerResponse

PaymentServiceGetCustomerResponse is the response payload for a payment get customer request

Field Type Label
customer PaymentCustomer

PaymentServiceGetCustomerWithLoginRequest

PaymentServiceGetCustomerWithLoginRequest is the request payload for a payment get customer request

Field Type Label
login string

PaymentServiceGetCustomerWithLoginResponse

PaymentServiceGetCustomerWithLoginResponse is the response payload for a payment get customer request

Field Type Label
customer PaymentCustomer

PaymentServiceGetDefaultPricesRequest

PaymentServiceGetDefaultPricesRequest is the request payload for a get default prices request

Field Type Label
there are no fields

PaymentServiceGetDefaultPricesResponse

PaymentServiceGetDefaultPricesResponse is the response payload for a get default prices request

Field Type Label
prices Price repeated

PaymentServiceGetInvoicesRequest

PaymentServiceHasPaymentMethodRequest is the request payload for a get invoices request

Field Type Label
login string
customer_id string

PaymentServiceGetInvoicesResponse

PaymentServiceGetInvoicesResponse is the response payload for a get invoices request

Field Type Label
invoices Invoice repeated

PaymentServiceGetSubscriptionUsageRequest

PaymentServiceGetSubscriptionUsageRequest is the request payload for a get subscription usage request

Field Type Label
login string

PaymentServiceGetSubscriptionUsageResponse

PaymentServiceGetSubscriptionUsageResponse is the response payload for a get subscription usage request

Field Type Label
subscription_usage_items SubscriptionUsageItem repeated

PaymentServiceHasChargeableResourcesRequest

PaymentServiceHasChargeableResourcesRequest is the request payload for a has chargeable request

Field Type Label
login string

PaymentServiceHasChargeableResourcesResponse

PaymentServiceHasChargeableResourcesResponse is the response payload for a has chargeable request

Field Type Label
has_resources bool

PaymentServiceHasPaymentMethodRequest

PaymentServiceHasPaymentMethodRequest is the request payload for a has payment request

Field Type Label
login string
project string

PaymentServiceHasPaymentMethodResponse

PaymentServiceHasPaymentMethodResponse is the response payload for a has payment request

Field Type Label
exists bool
coupon_left bool
positive_balance bool

PaymentServiceRequestAdmissionRequest

PaymentServiceRequestAdmissionRequest is the request payload for a admission request

Field Type Label
login string
customer PaymentCustomer
accepted_terms_and_conditions bool
email_consent bool

PaymentServiceRequestAdmissionResponse

PaymentServiceRequestAdmissionResponse is the response payload for a admission request

Field Type Label
there are no fields

Price

Price of a product

Field Type Label
name string
unit_amount_decimal double
currency string
unit_label string
product_type ProductType
description string optional

SubscriptionUsageItem

SubscriptionUsageItem details of a subscription

Field Type Label
subscription_item_id string
subscription_item_name string
total_usage int64
period_start google.protobuf.Timestamp
period_end google.protobuf.Timestamp

Services

PaymentService

PaymentService serves payment related functions

Method CreateOrUpdateCustomer

Request Type PaymentServiceCreateOrUpdateCustomerRequest

Response Type PaymentServiceCreateOrUpdateCustomerResponse

Description CreateOrUpdateCustomer the payment data on the payment processor

This Language is not supported

Method GetCustomer

Request Type PaymentServiceGetCustomerRequest

Response Type PaymentServiceGetCustomerResponse

Description GetCustomer from the payment processor

This Language is not supported

Method GetCustomerWithLogin

Request Type PaymentServiceGetCustomerWithLoginRequest

Response Type PaymentServiceGetCustomerWithLoginResponse

Description GetCustomerWithLogin from the payment processor

This Language is not supported

Method CheckIfCustomerExists

Request Type PaymentServiceCheckIfCustomerExistsRequest

Response Type PaymentServiceCheckIfCustomerExistsResponse

Description CheckIfCustomerExists at the payment processor

This Language is not supported

Method HasPaymentMethod

Request Type PaymentServiceHasPaymentMethodRequest

Response Type PaymentServiceHasPaymentMethodResponse

Description HasPaymentMethod check if the customer has a payment method provided

This Language is not supported

Method DeletePaymentMethod

Request Type PaymentServiceDeletePaymentMethodRequest

Response Type PaymentServiceDeletePaymentMethodResponse

Description DeletePaymentMethod of the customer

This Language is not supported

Method GetSubscriptionUsage

Request Type PaymentServiceGetSubscriptionUsageRequest

Response Type PaymentServiceGetSubscriptionUsageResponse

Description GetSubscriptionUsage of the customer

This Language is not supported

Method GetInvoices

Request Type PaymentServiceGetInvoicesRequest

Response Type PaymentServiceGetInvoicesResponse

Description GetInvoices of the customer

This Language is not supported

Method GetDefaultPrices

Request Type PaymentServiceGetDefaultPricesRequest

Response Type PaymentServiceGetDefaultPricesResponse

Description GetDefaultPrices of the products on the platform

This Language is not supported

Method CheckAdmitted

Request Type PaymentServiceCheckAdmittedRequest

Response Type PaymentServiceCheckAdmittedResponse

Description CheckAdmitted if the customer is allowed to use the service on the platform

This Language is not supported

Method RequestAdmission

Request Type PaymentServiceRequestAdmissionRequest

Response Type PaymentServiceRequestAdmissionResponse

Description RequestAdmission for a customer to get allowed to used the service

This Language is not supported

Method HasChargeableResources

Request Type PaymentServiceHasChargeableResourcesRequest

Response Type PaymentServiceHasChargeableResourcesResponse

Description HasChargeableResources checks if the customer has resources actually consumed which are chargeable

This Language is not supported


api/v1/volume.proto

Messages

Snapshot

Snapshot is a unit of block storage create as a point in time block copy of a volume

Field Type Label
uuid string
name string
description string
project string
partition string
storage_class string
size uint64
usage uint64
state string
source_volume_uuid string
source_volume_name string
replica_count uint32
primary_node_uuid string
retention google.protobuf.Duration
statistics SnapshotStatistics
created_at google.protobuf.Timestamp

SnapshotServiceDeleteRequest

SnapshotServiceDeleteRequest is the request payload of a snapshot delete request

Field Type Label
uuid string
project string

SnapshotServiceDeleteResponse

SnapshotServiceDeleteResponse is the response payload of a snapshot delete request

Field Type Label
snapshot Snapshot

SnapshotServiceGetRequest

SnapshotServiceGetRequest is the request payload of a snapshot list request

Field Type Label
uuid string
project string

SnapshotServiceGetResponse

SnapshotServiceGetResponse is the response payload of a snapshot get request

Field Type Label
snapshot Snapshot

SnapshotServiceListRequest

SnapshotServiceListRequest is the request payload of a snapshot list request

Field Type Label
uuid string optional
project string
partition string optional
name string optional

SnapshotServiceListResponse

SnapshotServiceListResponse is the response payload of a snapshot list request

Field Type Label
snapshots Snapshot repeated

SnapshotStatistics

SnapshotStatistics are all detailed statistics of a snapshot

Field Type Label
physical_capacity uint64
physical_owned_capacity uint64
physical_owned_memory uint64
physical_memory uint64
user_written uint64

Volume

Volume is a unit of block storage

Field Type Label
uuid string
name string
project string
partition string
storage_class string
size uint64
usage uint64
state string
attached_to string repeated
source_snapshot_uuid string
source_snapshot_name string
volume_handle string
node_ips string repeated
rebuild_progress string
primary_node_uuid string
qos_policy_uuid string
qos_policy_name string
replica_count uint32
protection_state string
logical_used_storage uint64
statistics VolumeStatistics

VolumeServiceDeleteRequest

VolumeServiceDeleteRequest is the request payload of a volume delete request

Field Type Label
uuid string
project string

VolumeServiceDeleteResponse

VolumeServiceDeleteResponse is the response payload of a volume delete request

Field Type Label
volume Volume

VolumeServiceGetRequest

VolumeServiceGetRequest is the request payload of the volume get request

Field Type Label
uuid string
project string

VolumeServiceGetResponse

VolumeServiceGetResponse is the response payload of a volume get request

Field Type Label
volume Volume

VolumeServiceListRequest

VolumeServiceListRequest is the request payload of a volume list request

Field Type Label
uuid string optional
project string
partition string optional
name string optional

VolumeServiceListResponse

VolumeServiceListResponse is the response payload of a volume list request

Field Type Label
volumes Volume repeated

VolumeStatistics

VolumeStatistics are all detailed statistics of a volume

Field Type Label
logical_used_storage uint64
physical_used_storage uint64
compression_ratio double
total_compression_ratio double
physical_capacity uint64
physical_owned_capacity uint64
physical_owned_memory uint64
physical_memory uint64
user_written uint64
unrecoverable_data_integrity_errors uint32
recoverable_data_integrity_errors uint32

Services

SnapshotService

SnapshotService serves snapshot related functions

Method Get

Request Type SnapshotServiceGetRequest

Response Type SnapshotServiceGetResponse

Description Get a snapshot

This Language is not supported

Method List

Request Type SnapshotServiceListRequest

Response Type SnapshotServiceListResponse

Description List snapshots

This Language is not supported

Method Delete

Request Type SnapshotServiceDeleteRequest

Response Type SnapshotServiceDeleteResponse

Description Delete a snapshot

This Language is not supported

VolumeService

VolumeService serves volume related functions

Method Get

Request Type VolumeServiceGetRequest

Response Type VolumeServiceGetResponse

Description Get a volume

This Language is not supported

Method List

Request Type VolumeServiceListRequest

Response Type VolumeServiceListResponse

Description List the volumes

This Language is not supported

Method Delete

Request Type VolumeServiceDeleteRequest

Response Type VolumeServiceDeleteResponse

Description Delete a volume

This Language is not supported


api/v1/tenant.proto

Messages

PaymentDetails

PaymentDetails of a tenant

Field Type Label
customer_id string
payment_method_id string optional
subscription_id string
coupons Coupon repeated
vat string

PaymentDetailsUpdate

PaymentDetailsUpdate is used to update PaymentDetails

Field Type Label
customer_id string optional
payment_method_id string optional
subscription_id string optional
vat string optional

Tenant

Tenant is a customer of the platform

Field Type Label
login string
name string
email string
avatar_url string
oauth_provider OAuthProvider
payment_details PaymentDetails
admitted bool
phone_number string
terms_and_conditions TermsAndConditions
email_consent bool
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp
deleted_at google.protobuf.Timestamp

TenantServiceCreateOrUpdateRequest

TenantServiceCreateOrUpdateRequest is the request payload of the tenant create or update request

Field Type Label
tenant Tenant

TenantServiceCreateOrUpdateResponse

TenantServiceCreateOrUpdateResponse is the response payload of the tenant create or update request

Field Type Label
tenant Tenant

TenantServiceCreateRequest

TenantServiceCreateRequest is the request payload of the tenant create request

Field Type Label
tenant Tenant

TenantServiceCreateResponse

TenantServiceCreateResponse is the response payload of the tenant create request

Field Type Label
tenant Tenant

TenantServiceDeleteRequest

TenantServiceDeleteRequest is the request payload of the tenant delete request

Field Type Label
login string

TenantServiceDeleteResponse

TenantServiceDeleteResponse is the response payload of the tenant delete request

Field Type Label
tenant Tenant

TenantServiceGetRequest

TenantServiceGetRequest is the request payload of the tenant get request

Field Type Label
login string

TenantServiceGetResponse

TenantServiceGetResponse is the response payload of the tenant get request

Field Type Label
tenant Tenant

TenantServiceUpdateRequest

TenantServiceUpdateRequest is the request payload of the tenant update request

Field Type Label
login string
name string optional
email string optional
avatar_url string optional
payment_details PaymentDetailsUpdate optional
terms_and_conditions TermsAndConditionsUpdate optional

TenantServiceUpdateResponse

TenantServiceUpdateResponse is the response payload of the tenant update request

Field Type Label
tenant Tenant

TermsAndConditions

TermsAndConditions the tenant accepted

Field Type Label
accepted bool
when google.protobuf.Timestamp

TermsAndConditionsUpdate

TermsAndConditionsUpdate

Field Type Label
accepted bool optional
when google.protobuf.Timestamp optional

Services

TenantService

TenantService serves tenant related functions

Method Create

Request Type TenantServiceCreateRequest

Response Type TenantServiceCreateResponse

Description Create a tenant

This Language is not supported

Method CreateOrUpdate

Request Type TenantServiceCreateOrUpdateRequest

Response Type TenantServiceCreateOrUpdateResponse

Description CreateOrUpdate should only be used from within the application will check if tenant already exists and updates if necessary, otherwise create a new tenant

This Language is not supported

Method Get

Request Type TenantServiceGetRequest

Response Type TenantServiceGetResponse

Description Get a tenant

This Language is not supported

Method Update

Request Type TenantServiceUpdateRequest

Response Type TenantServiceUpdateResponse

Description Update a tenant

This Language is not supported

Method Delete

Request Type TenantServiceDeleteRequest

Response Type TenantServiceDeleteResponse

Description Delete a tenant

This Language is not supported


api/v1/token.proto

Enums

TokenType

TokenType specifies different use cases of tokens

Name Number Description
TOKEN_TYPE_UNSPECIFIED 0 TOKEN_TYPE_UNSPECIFIED is not specified
TOKEN_TYPE_API 1 TOKEN_TYPE_API is a token for api usage
TOKEN_TYPE_CONSOLE 2 TOKEN_TYPE_CONSOLE is a token for console or web ui usage

Messages

MethodPermission

MethodPermission is a mapping from a subject/project to a service method

Field Type Label
subject string
methods string repeated

Token

Token is a jwt authentication token to access the api

Field Type Label
uuid string
user_id string
description string
permissions MethodPermission repeated
roles TokenRole repeated
expires google.protobuf.Timestamp
issued_at google.protobuf.Timestamp
token_type TokenType

TokenRole

TokenRole is a mapping from subject to role there

Field Type Label
subject string
role string

TokenServiceCreateRequest

TokenServiceCreateRequest is the request payload to create a token

Field Type Label
description string
permissions MethodPermission repeated
roles TokenRole repeated
expires google.protobuf.Duration

TokenServiceCreateResponse

TokenServiceCreateResponse is the response payload of a token create request

Field Type Label
token Token
secret string

TokenServiceListRequest

TokenServiceListRequest is the request payload to list tokens

Field Type Label
there are no fields

TokenServiceListResponse

TokenServiceListResponse is the response payload of a token list request

Field Type Label
tokens Token repeated

TokenServiceRevokeRequest

TokenServiceRevokeRequest is the request payload of a token revoke request

Field Type Label
uuid string

TokenServiceRevokeResponse

TokenServiceRevokeResponse is the response payload of a token revoke request

Field Type Label
there are no fields

Services

TokenService

TokenService serves token related functions

Method Create

Request Type TokenServiceCreateRequest

Response Type TokenServiceCreateResponse

Description Create a token to authenticate against the platform, the secret will be only visible in the response

This Language is not supported

Method List

Request Type TokenServiceListRequest

Response Type TokenServiceListResponse

Description List all your tokens

This Language is not supported

Method Revoke

Request Type TokenServiceRevokeRequest

Response Type TokenServiceRevokeResponse

Description Revoke a token, no further usage is possible afterwards

This Language is not supported


api/v1/assets.proto

Messages

Asset

Asset defines the available resources which can be used

Field Type Label
region Region
machine_types Asset.MachineTypesEntry repeated
kubernetes Kubernetes repeated

MachineTypesEntry

Field Type Label
key string
value MachineType

AssetDefaults

AssetDefaults apply if no specific properties are specified

Field Type Label
machine_type string
kubernetes_version string
worker_min uint32
worker_max uint32
partition string

AssetServiceListRequest

AssetServiceListRequest is the request payload to list all Assets

Field Type Label
there are no fields

AssetServiceListResponse

AssetServiceListResponse is the response payload which containes the the Asset list

Field Type Label
assets AssetServiceListResponse.AssetsEntry repeated

AssetsEntry

Field Type Label
key string
value Asset

Kubernetes

Kubernetes related configurations available

Field Type Label
version string

MachineType

MachineType defines a server type

Field Type Label
id string
name string
cpus uint32
memory uint64
storage uint64

Partition

Partition defines a failure domain in one Region.

Field Type Label
id string
name string
address string
active bool

Region

Region defines a datacenter location

Field Type Label
id string
name string
address string
active bool
partitions Region.PartitionsEntry repeated
defaults AssetDefaults

PartitionsEntry

Field Type Label
key string
value Partition

Services

AssetService

AssetService serves asset related functions

Method List

Request Type AssetServiceListRequest

Response Type AssetServiceListResponse

Description List available assets

This Language is not supported


api/v1/health.proto

Enums

Service

Service defines the service for which the healtyness is reported

Name Number Description
SERVICE_UNSPECIFIED 0 SERVICE_UNSPECIFIED is a unknown service
SERVICE_CLUSTER 1 SERVICE_CLUSTER the kubernetes cluster service
SERVICE_VOLUME 2 SERVICE_VOLUME the volume/storage service
SERVICE_MACHINES 3 SERVICE_MACHINES the machine service

ServiceStatus

ServiceStatus defines the status of a service

Name Number Description
SERVICE_STATUS_UNSPECIFIED 0 SERVICE_STATUS_UNSPECIFIED service status is not known or unspecified
SERVICE_STATUS_DEGRADED 1 SERVICE_STATUS_DEGRADED the service is in degraded status, not the whole functionality is available
SERVICE_STATUS_UNHEALTHY 2 SERVICE_STATUS_UNHEALTHY the service is in unhealthy status, serious impact is expected
SERVICE_STATUS_HEALTHY 3 SERVICE_STATUS_HEALTHY the service is in healthy status e.g. fully functional

Messages

Health

Health reports the healt status of all services

Field Type Label
services HealthStatus repeated

HealthServiceGetRequest

HealthServiceGetRequest is request payload to get the health of the system

Field Type Label
there are no fields

HealthServiceGetResponse

HealthServiceGetRequest is the response payload with the health of the system

Field Type Label
health Health

HealthStatus

HealthStatus the health of one service

Field Type Label
name Service
status ServiceStatus
message string
partitions HealthStatus.PartitionsEntry repeated

PartitionsEntry

Field Type Label
key string
value PartitionHealth

PartitionHealth

PartitionHealth the status of a specific service in this partition

Field Type Label
status ServiceStatus
message string

Services

HealthService

HealthService serves health related functions

Method Get

Request Type HealthServiceGetRequest

Response Type HealthServiceGetResponse

Description Get the health of the platform

This Language is not supported


api/v1/ip.proto

Enums

IPType

IPType specifies different ip address types

Name Number Description
IP_TYPE_UNSPECIFIED 0 IP_TYPE_UNSPECIFIED is not specified
IP_TYPE_EPHEMERAL 1 IP_TYPE_EPHEMERAL defines a ephemeral ip address which is freed/deleted after usage
IP_TYPE_STATIC 2 IP_TYPE_STATIC defines a static ip address which must be freed/deleted explicitly

Messages

IP

IP is a ip address which can be used as loadbalancer addresses

Field Type Label
uuid string
ip string
name string
description string
network string
project string
type IPType
tags string repeated
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp
deleted_at google.protobuf.Timestamp

IPServiceAllocateRequest

IPServiceGetRequest is the request payload for a ip get request

Field Type Label
project string
name string
description string
tags string repeated
static bool

IPServiceAllocateResponse

IPServiceAllocateResponse is the response payload for a ip allocate request

Field Type Label
ip IP

IPServiceDeleteRequest

IPServiceDeleteRequest is the request payload for a ip delete request

Field Type Label
uuid string
project string

IPServiceDeleteResponse

IPServiceDeleteResponse is the response payload for a ip delete request

Field Type Label
ip IP

IPServiceGetRequest

IPServiceGetRequest is the request payload for a ip get request

Field Type Label
uuid string
project string

IPServiceGetResponse

IPServiceGetResponse is the response payload for a ip get request

Field Type Label
ip IP

IPServiceListRequest

IPServiceListRequest is the request payload for a ip list request

Field Type Label
project string

IPServiceListResponse

IPServiceListResponse is the response payload for a ip list request

Field Type Label
ips IP repeated

IPServiceUpdateRequest

IPServiceUpdateRequest is the request payload for a ip update request

Field Type Label
project string
ip IP

IPServiceUpdateResponse

IPServiceUpdateResponse is the response payload for a ip update request

Field Type Label
ip IP

Services

IPService

IPService serves ip address related functions

Method Get

Request Type IPServiceGetRequest

Response Type IPServiceGetResponse

Description Get a ip

This Language is not supported

Method Allocate

Request Type IPServiceAllocateRequest

Response Type IPServiceAllocateResponse

Description Allocate a ip

This Language is not supported

Method Update

Request Type IPServiceUpdateRequest

Response Type IPServiceUpdateResponse

Description Update a ip

This Language is not supported

Method List

Request Type IPServiceListRequest

Response Type IPServiceListResponse

Description List all ips

This Language is not supported

Method Delete

Request Type IPServiceDeleteRequest

Response Type IPServiceDeleteResponse

Description Delete a ip

This Language is not supported


api/v1/methods.proto

Messages

MethodServiceListRequest

MethodServiceListRequest is the request payload to list all public methods

Field Type Label
there are no fields

MethodServiceListResponse

MethodServiceListResponse is the response payload with all public visible methods

Field Type Label
methods string repeated

MethodServiceTokenScopedListRequest

MethodServiceTokenScopedListRequest is the request payload to list all methods callable with the token present in the request

Field Type Label
there are no fields

MethodServiceTokenScopedListResponse

MethodServiceTokenScopedListResponse is the response payload which contains all methods which are callable with the given token

Field Type Label
permissions MethodPermission repeated
roles TokenRole repeated

Services

MethodService

MethodService serves method related functions methods are functions in services

Method List

Request Type MethodServiceListRequest

Response Type MethodServiceListResponse

Description List all public visible methods

This Language is not supported

Method TokenScopedList

Request Type MethodServiceTokenScopedListRequest

Response Type MethodServiceTokenScopedListResponse

Description TokenScopedList all methods callable with the token present in the request

This Language is not supported


api/v1/project.proto

Messages

Project

Project defines a group of resources belonging to a tenant a tenant can have multiple projects

Field Type Label
uuid string
name string
description string
tenant string
created_at google.protobuf.Timestamp
updated_at google.protobuf.Timestamp

ProjectServiceGetRequest

ProjectServiceGetRequest is the request payload to get a project

Field Type Label
project string

ProjectServiceGetResponse

ProjectServiceGetResponse is the response payload to get a projects

Field Type Label
project Project

ProjectServiceListRequest

ProjectServiceListRequest is the request payload to list all projects

Field Type Label
name string optional
tenant string optional

ProjectServiceListResponse

ProjectServiceListResponse is the response payload to list all projects

Field Type Label
projects Project repeated

Services

ProjectService

ProjectService serves project related functions

Method List

Request Type ProjectServiceListRequest

Response Type ProjectServiceListResponse

Description List all accessible projects

This Language is not supported

Method Get

Request Type ProjectServiceGetRequest

Response Type ProjectServiceGetResponse

Description Get a project

This Language is not supported


api/v1/user.proto

Messages

Organization

Organization which is a customer of the platform can be a company or some other form of business

Field Type Label
id string
login string
name string
email string
billing_email string
avatar_url string
role Role
teams Team repeated
admitted bool optional

Team

Team is a sub structure of users in a organizations

Field Type Label
id string
name string
avatar_url string
role Role
project_id string

User

User is a end user of the platform

Field Type Label
login string
name string
email string
avatar_url string
oauth_provider OAuthProvider
organizations Organization repeated

api/v1/version.proto

Messages

Version

Version of the application

Field Type Label
version string
revision string
git_sha1 string
build_date string

VersionServiceGetRequest

VersionServiceGetRequest is the request payload to get the version

Field Type Label
there are no fields

VersionServiceGetResponse

VersionServiceGetResponse is the response payload with the version

Field Type Label
version Version

Services

VersionService

VersionService serves version related functions

Method Get

Request Type VersionServiceGetRequest

Response Type VersionServiceGetResponse

Description Get the version

This Language is not supported


status/v1/message.proto

Enums

MessageKind

MessageKind defines what type of message it is

Name Number Description
MESSAGE_KIND_UNSPECIFIED 0 MESSAGE_KIND_UNSPECIFIED is not specified
MESSAGE_KIND_INFO 1 MESSAGE_KIND_INFO is a informational message
MESSAGE_KIND_INCIDENT 2 MESSAGE_KIND_INCIDENT is a incident message
MESSAGE_KIND_CHANGE 3 MESSAGE_KIND_CHANGE is a change message
MESSAGE_KIND_RESOLVED 4 MESSAGE_KIND_RESOLVED is a resolved message
MESSAGE_KIND_UPDATE 5 MESSAGE_KIND_UPDATE is a update message

Messages

Message

Message is a test message to be displayed in the status

Field Type Label
id string
text string
kind MessageKind
timestamp google.protobuf.Timestamp
replies ReplyMessage repeated

MessageServiceListRequest

MessageServiceListRequest is the request payload to get the messages

Field Type Label
there are no fields

MessageServiceListResponse

MessageServiceListResponse is the response payload with the messages

Field Type Label
items Message repeated
pinned_items Message repeated

ReplyMessage

ReplyMessage is a message as a followup of a initial message

Field Type Label
id string
text string
kind MessageKind
timestamp google.protobuf.Timestamp

Services

MessageService

MessageService serves status message related functions this service is used as backend for the status dashboard

Method List

Request Type MessageServiceListRequest

Response Type MessageServiceListResponse

Description List returns all messages of interest

This Language is not supported


status/v1/status.proto

Messages

StatusServiceGetRequest

StatusServiceGetRequest is the request payload to get the status

Field Type Label
there are no fields

StatusServiceGetResponse

StatusServiceGetResponse is the response payload which describes the system status

Field Type Label
health api.v1.Health
overall_status api.v1.ServiceStatus
connection_broken bool
api_version string

Services

StatusService

StatusService serves status related functions this service is used as backend for the status dashboard

Method Get

Request Type StatusServiceGetRequest

Response Type StatusServiceGetResponse

Description Get the system status

This Language is not supported


Scalar Value Types

.proto Type Go Typescript
double float64 number
float float32 number
int32 int32 number
int64 int64 number
uint32 uint32 number
uint64 uint64 number
sint32 int32 number
sint64 int64 number
fixed32 uint32 number
fixed64 uint64 number
sfixed32 int32 number
sfixed64 int64 number
bool bool boolean
string string string
bytes []byte Uint8Array