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
O_AUTH_PROVIDER_GOOGLE 3 O_AUTH_PROVIDER_GOOGLE specifies google 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

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
TENANT_ROLE_GUEST 4 TENANT_ROLE_GUEST the logged in user needs at least guest role to call this method The guest role is assumed by users who are invited to a tenant's project without them having a direct membership within the tenant.

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 Description
page uint64 Page is used for pagination, if unset only the first page is returned, the list response contains then the page number for the next page.
count uint64 Count is the number of results returned per page, if not given server side defaults apply

api/v1/cluster.proto

Enums

Operate

Operate defines the types of reconciliation to be triggered

Name Number Description
OPERATE_UNSPECIFIED 0 OPERATE_UNSPECIFIED is not specified
OPERATE_RECONCILE 1 OPERATE_RECONCILE reconcile the cluster
OPERATE_MAINTAIN 2 OPERATE_MAINTAIN maintain the cluster
OPERATE_RETRY 3 OPERATE_RETRY retry the reconciliation of the cluster

Messages

Cluster

Cluster describes a kubernetes cluster

Field Type Description
uuid string Uuid of the cluster
name string Name of the cluster
project string Project where this cluster belongs to
partition string Partition where this cluster was created
kubernetes KubernetesSpec Kubernetes defines the kubernetes specifications of this cluster
workers Worker Workers defines the list of worker groups with their specification
maintenance Maintenance Maintenance defines when automated actions on this cluster should be scheduled
tenant string Tenant where this cluster belongs to
created_at google.protobuf.Timestamp CreatedAt defines the date when this cluster was created
updated_at google.protobuf.Timestamp UpdatedAt defines the date when this cluster was updated
deleted_at google.protobuf.Timestamp DeletedAt defines the date when this cluster was deleted
status ClusterStatus Status of this cluster
purpose string Purpose of this cluster, can be for example production, development or evaluation
monitoring ClusterMonitoring Monitoring details for this cluster

ClusterMonitoring

ClusterMonitoring contains details howto access the cluster monitoring

Field Type Description
username string Username to access the monitoring
password string Password to access the monitoring
endpoint string Endpoint is the url to access the monitoring

ClusterServiceCreateRequest

ClusterServiceCreateRequest is the request payload for a cluster create request

Field Type Description
name string Name of the cluster to create
project string Project of the cluster
partition string Partition of the cluster
kubernetes KubernetesSpec Kubernetes specification of the cluster
workers Worker Worker specification of the cluster
maintenance Maintenance Maintenance specification of the cluster

ClusterServiceCreateResponse

ClusterServiceCreateResponse is the response payload of a cluster create request

Field Type Description
cluster Cluster Cluster is the cluster

ClusterServiceDeleteRequest

ClusterServiceDeleteRequest is the request payload for a cluster delete request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster

ClusterServiceDeleteResponse

ClusterServiceDeleteResponse is the response payload of a cluster delete request

Field Type Description
cluster Cluster Cluster is the cluster

ClusterServiceGetCredentialsRequest

ClusterServiceGetRequest is the request payload for a cluster get request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster
expiration google.protobuf.Duration Expiration defines the duration after which the requested kubernetes access token can not be used anymore

ClusterServiceGetCredentialsResponse

ClusterServiceGetCredentialsResponse is the response payload of a cluster get credentials request

Field Type Description
kubeconfig string Cluster is the cluster

ClusterServiceGetRequest

ClusterServiceGetRequest is the request payload for a cluster get request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster

ClusterServiceGetResponse

ClusterServiceGetResponse is the response payload of a cluster get request

Field Type Description
cluster Cluster Cluster is the cluster

ClusterServiceListRequest

ClusterServiceListRequest is the request payload for a cluster list request

Field Type Description
project string Project of the cluster

ClusterServiceListResponse

ClusterServiceListResponse is the response payload of a cluster list request

Field Type Description
clusters Cluster Clusters a list of clusters

ClusterServiceOperateRequest

ClusterServiceOperateRequest is the request payload for the cluster operate request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster
operate Operate Operate is the operation which should be performed

ClusterServiceOperateResponse

ClusterServiceOperateResponse is the response payload for the cluster operate request

Field Type Description
cluster Cluster Cluster is the cluster

ClusterServiceUpdateRequest

ClusterServiceUpdateRequest is the request payload for a cluster update request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster
kubernetes KubernetesSpec Kubernetes specification of the cluster
workers WorkerUpdate Worker specification of the cluster
maintenance Maintenance Maintenance specification of the cluster

ClusterServiceUpdateResponse

ClusterServiceUpdateResponse is the response payload of a cluster update request

Field Type Description
cluster Cluster Cluster is the cluster

ClusterServiceWatchStatusRequest

ClusterServiceWatchStatusRequest is the request payload for a cluster watch status request

Field Type Description
uuid string Uuid of the cluster
project string Project of the cluster

ClusterServiceWatchStatusResponse

ClusterServiceWatchStatusResponse is the response payload of a cluster watch status request

Field Type Description
status ClusterStatus Status the cluster status

ClusterStatus

ClusterStatus

Field Type Description
uuid string Uuid of the cluster
progress uint32 Progress of the cluster reconciliation
state string State of the cluster
type string Type of the cluster status
api_server_ready string ApiServerReady represents the ready state of the kubernetes api server
control_plane_ready string ControlPlaneReady represents the ready state of the control plane components
nodes_ready string NodesReady represents the ready state of the worker nodes
system_components_ready string SystemComponentsReady represents the ready state of the system components
last_errors ClusterStatusLastError LastErrors is a list of the last known errors occurred during the cluster reconciliation
conditions ClusterStatusCondition ClusterStatusConditions is a list of status conditions of the cluster

ClusterStatusCondition

ClusterStatusCondition contains status conditions of a cluster

Field Type Description
type string Type is the type of the condition
status string Status is the status of the condition
reason string Reason describes the reason for the condition's last transition
status_message string StatusMessage is a human readable message indicating details about the transition
last_transition_time google.protobuf.Timestamp LastUpdateTime last time the condition transitioned
last_update_time google.protobuf.Timestamp LastUpdateTime last time the condition was updated

ClusterStatusLastError

ClusterStatusLastError is the last known cluster status error

Field Type Description
description string Description a human readable message indicating details about the last error
task_id string TaskId ID of the task which caused this last error
last_update_time google.protobuf.Timestamp LastUpdateTime last time the error was reported

KubernetesSpec

KubernetesSpec details of kubernetes this cluster

Field Type Description
version string Version of kubernetes

Maintenance

Maintenance defines when automatic actions should be scheduled on this cluster

Field Type Description
kubernetes_autoupdate bool KubernetesAutoupdate if set to true, kubernetes patch version updates will be done in the maintenance window
machineimage_autoupdate bool MachineimageAutoupdate if set to true, machine images will be automatically update by rolling nodes in the maintenance window
time_window MaintenanceTimeWindow TimeWindow defines the start time and duration during which automatic actions will be performed

MaintenanceTimeWindow

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

Field Type Description
begin Time Begin of the MaintenanceTimeWindow
duration google.protobuf.Duration Duration of the MaintenanceTimeWindow

Time

Time of day

Field Type Description
hour uint32 hour begin of the maintenance window, specified in 24 hour format.
minute uint32 hour:minute begin of the maintenance window.
timezone string timezone specifies for which region in the world the given hour:minute should apply.

Worker

Worker defines a set of worker nodes with identical properties

Field Type Description
name string Name of this worker group
machine_type string MachineType of machines which should be used for the worker nodes in this group
minsize uint32 Minsize defines the minimum amount of machines present in this worker group
maxsize uint32 Maxsize defines the maximum amount of machines present in this worker group
maxsurge uint32 Maxsurge defines the maximum amount of machines which are spun up in this worker group during a rolling upgrade
maxunavailable uint32 Maxunavailable defines the maximum amount of not available machines in this worker group during a rolling upgrade

WorkerUpdate

WorkerUpdate is used to update a Worker group

Field Type Description
name string Name of the worker group to update
machine_type string MachineType to change in this worker group
minsize uint32 Minsize defines the minimum amount of machines present in this worker group
maxsize uint32 Maxsize defines the maximum amount of machines present in this worker group
maxsurge uint32 Maxsurge defines the maximum amount of machines which are spun up in this worker group during a rolling upgrade
maxunavailable uint32 Maxunavailable defines the maximum amount of not available machines in this worker group during a rolling upgrade

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

Method Operate

Request Type ClusterServiceOperateRequest

Response Type ClusterServiceOperateResponse

Description Operate on 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 Description
line1 string Line1 the first address line
line2 string Line2 the second address line
postal_code string PostalCode of the city or address
city string City where the customer lives
state string Sate where the customer lives
country string Country where the customer lives

Card

Card is the payment card the customer pays with

Field Type Description
brand string Brand of the card
country string Country where the card was issued
exp_month int64 ExpMonth is the month when this card expires
exp_year int64 ExpYear is the year when this card expires
last_4 string Last4 are the 4 last digits of the card number, the full number is not stored anywhere

Coupon

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

Field Type Description
id string Id of the coupon
name string Name of this coupon
amount_off int64 AmountOff is th amount the customer can use for free
currency string Currency of the free usage amount
duration_in_month int64 DurationInMonth defines how many month this coupon is valid for
created_at google.protobuf.Timestamp CreatedAt is the date the coupon was created
redeem_by google.protobuf.Timestamp RedeemBy is the date when this coupon can no longer be used
times_redeemed int64 TimesRedeemed how often this coupon was already consumed
max_redemptions int64 MaxRedemptions defines how often this coupon can be consumed
amount_left int64 AmountLeft how many usages are left for this coupon

Invoice

Invoice a customer has to pay for subscription usage

Field Type Description
id string Id of the invoice
pdf_download_url string PdfDownloadUrl is the url where the customer can download this invoice in pdf format
period_start google.protobuf.Timestamp PeriodStart is the start date of this subscription
period_end google.protobuf.Timestamp PeriodEnd is the end date of this subscription

PaymentCustomer

PaymentCustomer is a customer at the payment processor

Field Type Description
login string Login of the customer
name string Name of the customer
customer_id string CustomerId id of the customer
payment_method_id string PaymentMethodId at the payment processor
subscription_id string SubscriptionId of the customer
email string Email of the customer
card Card Card the customer supplied
prices Price Prices which apply to customer resources
address Address Address is the postal address of the customer
coupon Coupon Coupon details of granted coupon if any
vat string Vat which applies to the customer
phone_number string PhoneNumber of the customer
balance int64 Balance actual balance of the customer

PaymentServiceCheckAdmittedRequest

PaymentServiceCheckAdmittedRequest is the request payload for a check admitted request

Field Type Description
login string Login of the customer

PaymentServiceCheckAdmittedResponse

PaymentServiceCheckAdmittedResponse is the response payload for a check admitted request

Field Type Description
admitted bool Admitted indicates if the customer is already admitted to use the service
requested bool Requested indicates if the customer requested admittance

PaymentServiceCheckIfCustomerExistsRequest

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

Field Type Description
login string Login of the customer

PaymentServiceCheckIfCustomerExistsResponse

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

Field Type Description
customer PaymentCustomer Customer is the customer
exists bool Exists indicates if this customer exists

PaymentServiceCreateOrUpdateCustomerRequest

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

Field Type Description
login string Login of the customer
customer PaymentCustomer Customer is the customer to modify
accepted_terms_and_conditions bool AcceptedTermsAndConditions indicates the modification of the terms and conditions acceptance

PaymentServiceCreateOrUpdateCustomerResponse

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

Field Type Description
customer PaymentCustomer Customer is the customer

PaymentServiceDeletePaymentMethodRequest

PaymentServiceDeletePaymentMethodRequest is the request payload for a delete payment request

Field Type Description
login string Login of the customer

PaymentServiceDeletePaymentMethodResponse

PaymentServiceDeletePaymentMethodResponse is the response payload for a delete payment request

Field Type Description
there are no fields

PaymentServiceGetCustomerRequest

PaymentServiceGetCustomerRequest is the request payload for a payment get customer request

Field Type Description
login string Login of the customer
customer_id string CustomerId of the customer

PaymentServiceGetCustomerResponse

PaymentServiceGetCustomerResponse is the response payload for a payment get customer request

Field Type Description
customer PaymentCustomer Customer is the customer

PaymentServiceGetCustomerWithLoginRequest

PaymentServiceGetCustomerWithLoginRequest is the request payload for a payment get customer request

Field Type Description
login string Login of the customer

PaymentServiceGetCustomerWithLoginResponse

PaymentServiceGetCustomerWithLoginResponse is the response payload for a payment get customer request

Field Type Description
customer PaymentCustomer Customer is the customer

PaymentServiceGetDefaultPricesRequest

PaymentServiceGetDefaultPricesRequest is the request payload for a get default prices request

Field Type Description
there are no fields

PaymentServiceGetDefaultPricesResponse

PaymentServiceGetDefaultPricesResponse is the response payload for a get default prices request

Field Type Description
prices Price Prices is the list of default prices

PaymentServiceGetInvoicesRequest

PaymentServiceHasPaymentMethodRequest is the request payload for a get invoices request

Field Type Description
login string Login of the customer
customer_id string CustomerId is the id of the customer

PaymentServiceGetInvoicesResponse

PaymentServiceGetInvoicesResponse is the response payload for a get invoices request

Field Type Description
invoices Invoice Invoices is the list of invoices

PaymentServiceGetOnboardedRequest

PaymentServiceGetOnboardedRequest check the onboarded status

Field Type Description
login string Login of the customer

PaymentServiceGetOnboardedResponse

PaymentServiceGetOnboardedRequest returns the onboarded status

Field Type Description
onboarded bool Onboarded indicates if the customer has seen the onboarded message

PaymentServiceGetSubscriptionUsageRequest

PaymentServiceGetSubscriptionUsageRequest is the request payload for a get subscription usage request

Field Type Description
login string Login of the customer

PaymentServiceGetSubscriptionUsageResponse

PaymentServiceGetSubscriptionUsageResponse is the response payload for a get subscription usage request

Field Type Description
subscription_usage_items SubscriptionUsageItem SubscriptionUsageItems is a list of usage for all subscriptions

PaymentServiceHasChargeableResourcesRequest

PaymentServiceHasChargeableResourcesRequest is the request payload for a has chargeable request

Field Type Description
login string Login of the customer

PaymentServiceHasChargeableResourcesResponse

PaymentServiceHasChargeableResourcesResponse is the response payload for a has chargeable request

Field Type Description
has_resources bool HasResources indicates if the customer has actually chargable resources

PaymentServiceHasPaymentMethodRequest

PaymentServiceHasPaymentMethodRequest is the request payload for a has payment request

Field Type Description
login string Login of the customer

PaymentServiceHasPaymentMethodResponse

PaymentServiceHasPaymentMethodResponse is the response payload for a has payment request

Field Type Description
exists bool Exists indicates if this customer has a payment method
coupon_left bool CouponLeft is true if there is still free amount on the coupon left
positive_balance bool PositiveBalance indicates if the customer still has positive balance

PaymentServiceRequestAdmissionRequest

PaymentServiceRequestAdmissionRequest is the request payload for a admission request

Field Type Description
login string Login of the customer
customer PaymentCustomer Customer is the customer
accepted_terms_and_conditions bool AcceptedTermsAndConditions indicates if the customer already accepted the terms and conditions
email_consent bool EmailConsent indicates if the customer already gave consent to email

PaymentServiceRequestAdmissionResponse

PaymentServiceRequestAdmissionResponse is the response payload for a admission request

Field Type Description
there are no fields

PaymentServiceSetOnboardedRequest

PayentServiceSetOnboardedRequest changes the onboarded status of the given customer

Field Type Description
login string Login of the customer
onboarded bool Onboarded indicates if the customer has seen the onboarde message

PaymentServiceSetOnboardedResponse

PaymentServiceSetOnboardedResponse respond to the changed status of the given customer

Field Type Description
onboarded bool Onboarded indicates if the customer has seen the onboarded message

Price

Price of a product

Field Type Description
name string Name of the price
unit_amount_decimal double UnitAmountDecimal the value of this price
currency string Currency of this price
unit_label string UnitLabel is a label which allows for searching this unit at the payment processor
product_type ProductType ProductType this price applies to
description string Description of this price

SubscriptionUsageItem

SubscriptionUsageItem details of a subscription

Field Type Description
subscription_item_id string SubscriptionItemId is the id of the subscription
subscription_item_name string SubscriptionItemName is the name of the subscription
total_usage int64 TotalUsage of this subscription
period_start google.protobuf.Timestamp PeriodStart is the start date of this subscription
period_end google.protobuf.Timestamp PeriodEnd is the end date of this subscription

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

Method SetOnboarded

Request Type PaymentServiceSetOnboardedRequest

Response Type PaymentServiceSetOnboardedResponse

Description SetOnboarded set the onboarded status

This Language is not supported

Method GetOnboarded

Request Type PaymentServiceGetOnboardedRequest

Response Type PaymentServiceGetOnboardedResponse

Description GetOnboarded get the onboarded status

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 Description
uuid string Uuid of this project
name string Name of this project must be unique per tenant
description string Description of this project
tenant string Tenant this project belongs to
is_default_project bool IsDefaultProject is true if this is the default project of the tenant.
created_at google.protobuf.Timestamp CreatedAt the date when this project was created
updated_at google.protobuf.Timestamp UpdatedAt the date when this project was updated
avatar_url string AvatarUrl of the Project

ProjectInvite

ProjectInvite defines invite to project

Field Type Description
secret string Secret is the secret part of the invite, typically part of the url
project string Project is the project id for which this invite was created
role ProjectRole Role is the role in this project the user will get after accepting the invitation
joined bool Joined is false as long as a user has not accepted the invite
project_name string ProjectName is the project name for which this invite was created
tenant string Tenant is the login of tenant who invites to join this project
tenant_name string TenantName is the name of tenant who invites to join this project
expires_at google.protobuf.Timestamp ExpiresAt the date when this invite expires
joined_at google.protobuf.Timestamp JoinedAt the date when the member accepted this invite

ProjectMember

ProjectMember defines a user that participates at a project

Field Type Description
id string Id is the user id of the member
role ProjectRole Role is the role of the member
inherited_membership bool InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant. This member does not have direct project membership but gains permissions on this project from the role he has in the tenant. Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
created_at google.protobuf.Timestamp CreatedAt the date when the member was added to the project

ProjectServiceCreateRequest

ProjectServiceCreateRequest is the request payload to Create a project

Field Type Description
login string Login is the tenant of this project TODO: is login really a good name?
name string Name of this project, unique per tenant
description string Description of this project
avatar_url string Avatar URL of the project

ProjectServiceCreateResponse

ProjectServiceCreateResponse is the response payload of creation of a project

Field Type Description
project Project Project is the project

ProjectServiceDeleteRequest

ProjectServiceDeleteRequest is the request payload to delete a project

Field Type Description
project string Project is the uuid of the project to get

ProjectServiceDeleteResponse

ProjectServiceDeleteResponse is the response payload to delete a project

Field Type Description
project Project Project is the project

ProjectServiceGetRequest

ProjectServiceGetRequest is the request payload to get a project

Field Type Description
project string Project is the uuid of the project to get

ProjectServiceGetResponse

ProjectServiceGetResponse is the response payload to get a projects

Field Type Description
project Project Project is the project
project_members ProjectMember ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions

ProjectServiceInviteAcceptRequest

ProjectServiceInviteAcceptRequest is the request payload to a accept invite request

Field Type Description
secret string Secret is the invitation secret part of the invitation url

ProjectServiceInviteAcceptResponse

ProjectServiceInvitesListResponse is the response payload to a accept invite request

Field Type Description
project string Project ID of the project joined
project_name string ProjectName if the project joined

ProjectServiceInviteDeleteRequest

ProjectServiceInviteDeleteRequest is the request payload to a delete invite

Field Type Description
project string Project is the uuid of the project
secret string Secret of the invite to delete

ProjectServiceInviteDeleteResponse

ProjectServiceInviteDeleteResponse is the response payload of a delete invite request

Field Type Description
there are no fields

ProjectServiceInviteGetRequest

ProjectServiceInviteGetRequest is the request payload to get a invite

Field Type Description
secret string Secret of the invite to list

ProjectServiceInviteGetResponse

ProjectServiceInviteGetResponse is the response payload to a get invite request

Field Type Description
invite ProjectInvite Invite is the invite

ProjectServiceInviteRequest

ProjectServiceInviteRequest is used to invite a member to a project

Field Type Description
project string Project is the uuid of the project
role ProjectRole Role of this user in this project

ProjectServiceInviteResponse

ProjectServiceInviteRequest is the response payload to a invite member request

Field Type Description
invite ProjectInvite Inviter contains a secret which can be sent to a potential user can be appended to the invitation endpoint at our cloud console like console.metalstack.cloud/invite/<secret>

ProjectServiceInvitesListRequest

ProjectServiceInvitesListRequest is the request payload to a list invites request

Field Type Description
project string Project is the uuid of the project

ProjectServiceInvitesListResponse

ProjectServiceInvitesListResponse is the response payload to a list invites request

Field Type Description
invites ProjectInvite Invites not already accepted the invitation to this project

ProjectServiceListRequest

ProjectServiceListRequest is the request payload to list all projects

Field Type Description
name string Name list only projects with this name
tenant string Tenant list only projects of this tenant

ProjectServiceListResponse

ProjectServiceListResponse is the response payload to list all projects

Field Type Description
projects Project Projects is a list of all your projects

ProjectServiceRemoveMemberRequest

ProjectServiceRemoveMemberRequest is used to remove a member from a project

Field Type Description
project string Project is the uuid of the project
member_id string MemberID is the id of the member to remove from this project

ProjectServiceRemoveMemberResponse

ProjectServiceRemoveMemberResponse is the response payload to a remove member request

Field Type Description
there are no fields

ProjectServiceUpdateMemberRequest

ProjectServiceUpdateMemberRequest is used to update a member of a project

Field Type Description
project string Project is the uuid of the project
member_id string MemberID is the id of the member to remove from this project
role ProjectRole Role is the role in this project the user will get after the update

ProjectServiceUpdateMemberResponse

ProjectServiceUpdateMemberResponse is the response payload to a update member request

Field Type Description
project_member ProjectMember ProjectMember is the updated project member

ProjectServiceUpdateRequest

ProjectServiceUpdateRequest is the request payload to update a project

Field Type Description
project string Project is the uuid of the project to get
name string Name of this project unique per tenant
description string Description of this project
avatar_url string Avatar URL of the project

ProjectServiceUpdateResponse

ProjectServiceUpdateResponse is the response payload to update a project

Field Type Description
project Project Project is the project

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

Method Create

Request Type ProjectServiceCreateRequest

Response Type ProjectServiceCreateResponse

Description Create a project

This Language is not supported

Method Delete

Request Type ProjectServiceDeleteRequest

Response Type ProjectServiceDeleteResponse

Description Delete a project

This Language is not supported

Method Update

Request Type ProjectServiceUpdateRequest

Response Type ProjectServiceUpdateResponse

Description Update a project

This Language is not supported

Method RemoveMember

Request Type ProjectServiceRemoveMemberRequest

Response Type ProjectServiceRemoveMemberResponse

Description RemoveMember remove a user from a project

This Language is not supported

Method UpdateMember

Request Type ProjectServiceUpdateMemberRequest

Response Type ProjectServiceUpdateMemberResponse

Description UpdateMember update a user for a project

This Language is not supported

Method Invite

Request Type ProjectServiceInviteRequest

Response Type ProjectServiceInviteResponse

Description Invite a user to a project

This Language is not supported

Method InviteAccept

Request Type ProjectServiceInviteAcceptRequest

Response Type ProjectServiceInviteAcceptResponse

Description InviteAccept is called from a user to accept a invitation

This Language is not supported

Method InviteDelete

Request Type ProjectServiceInviteDeleteRequest

Response Type ProjectServiceInviteDeleteResponse

Description InviteDelete deletes a pending invitation

This Language is not supported

Method InvitesList

Request Type ProjectServiceInvitesListRequest

Response Type ProjectServiceInvitesListResponse

Description InvitesList list all invites to a project

This Language is not supported

Method InviteGet

Request Type ProjectServiceInviteGetRequest

Response Type ProjectServiceInviteGetResponse

Description InviteGet get an invite

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 Description
uuid string Uuid is the unique identifier of the snapshot
name string Name of the snapshot
description string Description of this snapshot
project string Project this snapshot belongs to
partition string Partition where this snapshot resides
storage_class string StorageClass where this snapshot is created
size uint64 Size in bytes of the snapshot
usage uint64 Usage in bytes of the snapshot
state string State of the snapshot
source_volume_uuid string SourceVolumeUuid is the uuid of the snapshot this snapshot was created from
source_volume_name string SourceVolumeName is the name of the snapshot this snapshot was created from
replica_count uint32 ReplicaCount shows how many replicas of this snapshot exist
primary_node_uuid string PrimaryNodeUuid is the uuid of the storage server node where the primary replica of this snapshot resides
retention google.protobuf.Duration Retention is the duration after creation, after which this snapshot will be deleted
statistics SnapshotStatistics SnapshotStatistics are only visible to admins
created_at google.protobuf.Timestamp CreatedAt is the date when this snapshot was created

SnapshotServiceDeleteRequest

SnapshotServiceDeleteRequest is the request payload of a snapshot delete request

Field Type Description
uuid string Uuid of the snapshot
project string Project of the snapshot

SnapshotServiceDeleteResponse

SnapshotServiceDeleteResponse is the response payload of a snapshot delete request

Field Type Description
snapshot Snapshot Snapshot the snapshot

SnapshotServiceGetRequest

SnapshotServiceGetRequest is the request payload of a snapshot list request

Field Type Description
uuid string Uuid of the snapshot
project string Project of the snapshot

SnapshotServiceGetResponse

SnapshotServiceGetResponse is the response payload of a snapshot get request

Field Type Description
snapshot Snapshot Snapshot the snapshot

SnapshotServiceListRequest

SnapshotServiceListRequest is the request payload of a snapshot list request

Field Type Description
uuid string Uuid of the snapshot
project string Project of the snapshot
partition string Partition where the snapshots should be listed
name string Name of the snapshot

SnapshotServiceListResponse

SnapshotServiceListResponse is the response payload of a snapshot list request

Field Type Description
snapshots Snapshot Snapshots the snapshots

SnapshotStatistics

SnapshotStatistics are all detailed statistics of a snapshot

Field Type Description
physical_capacity uint64 PhysicalCapacity The physical capacity that exists in this snapshot layer
physical_owned_capacity uint64 PhysicalOwnedStorageCapacity The capacity that would be freed when snapshot is deleted
physical_owned_memory uint64 PhysicalOwnedMemory The memory that would be freed when snapshot is deleted
physical_memory uint64 PhysicalMemory The memory that exists for this snapshot
user_written uint64 UserWritten The amount of bytes written to this snapshot by the user

Volume

Volume is a unit of block storage

Field Type Description
uuid string Uuid is the unique identifier of the volume
name string Name of the volume
project string Project this volume belongs to
partition string Partition where this volume resides
storage_class string StorageClass where this volume is created
size uint64 Size in bytes of the volume
usage uint64 Usage in bytes of the volume
state string State of the volume
attached_to string AttachedTo us a list of nodes this volume is attached
source_snapshot_uuid string SourceSnapshotUuid if this volume was created from a snapshot, this was the uuid source
source_snapshot_name string SourceSnapshotName if this volume was created from a snapshot, this was the name of the source
volume_handle string VolumeHandle is the handle to mount this volume manually
node_ips string NodeIps is a list of storage server node ips
rebuild_progress string RebuildProgress shows the progress of a rebuild if any
primary_node_uuid string PrimaryNodeUuid is the uuid of the storage server node where the primary replica of this volume resides
qos_policy_uuid string QosPolicyUuid is the uuid of the QOS policy if any
qos_policy_name string QosPolicyName is the name of the QOS policy if any
replica_count uint32 ReplicaCount shows how many replicas of this volume exist
protection_state string ProtectionState shows the state of failure protection of this volume
logical_used_storage uint64 LogicalUsedStorage in bytes of the volume
statistics VolumeStatistics VolumeStatistics are only visible to admins

VolumeServiceDeleteRequest

VolumeServiceDeleteRequest is the request payload of a volume delete request

Field Type Description
uuid string Uuid of the volume
project string Project of the volume

VolumeServiceDeleteResponse

VolumeServiceDeleteResponse is the response payload of a volume delete request

Field Type Description
volume Volume Volume the volume

VolumeServiceGetRequest

VolumeServiceGetRequest is the request payload of the volume get request

Field Type Description
uuid string Uuid of the volume
project string Project of the volume

VolumeServiceGetResponse

VolumeServiceGetResponse is the response payload of a volume get request

Field Type Description
volume Volume Volume the volume

VolumeServiceListRequest

VolumeServiceListRequest is the request payload of a volume list request

Field Type Description
uuid string Uuid of the volume
project string Project of the volume
partition string Partition where the volumes should be listed
name string Name of the volume

VolumeServiceListResponse

VolumeServiceListResponse is the response payload of a volume list request

Field Type Description
volumes Volume Volumes the volumes

VolumeStatistics

VolumeStatistics are all detailed statistics of a volume

Field Type Description
logical_used_storage uint64 LogicalUsedStorage Logical storage space used by volume, given in bytes.
physical_used_storage uint64 PhysicalUsedStorage Physical storage space used by volume excluding parity, given in bytes.
compression_ratio double CompressionRatio compression ratio userWritten/physicalCapacity
total_compression_ratio double TotalCompressionRatio compression ratio sum(userWritten) / sum(physical capacity)
physical_capacity uint64 PhysicalCapacity The physical capacity that exists in this volume layer
physical_owned_capacity uint64 PhysicalOwnedStorageCapacity The capacity that would be freed when volume is deleted
physical_owned_memory uint64 PhysicalOwnedMemory The memory that would be freed when volume is deleted
physical_memory uint64 PhysicalMemory The memory that exists for this volume
user_written uint64 UserWritten The amount of bytes written to this volume by the user
unrecoverable_data_integrity_errors uint32 UnrecoverableDataIntegrityErrors Number of data integrity errors that could no be recovered by the system.
recoverable_data_integrity_errors uint32 RecoverableDataIntegrityErrors Number of data integrity errors that were recovered by the system.

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 Description
customer_id string CustomerId at the payment processor
payment_method_id string PaymentMethodId of the tenant at the payment processor
subscription_id string SubscriptionId at the payment processor
coupons Coupon Coupons a list of coupons the tenant has
vat string Vat which applies to this tenant

PaymentDetailsUpdate

PaymentDetailsUpdate is used to update PaymentDetails

Field Type Description
customer_id string CustomerId at the payment processor
payment_method_id string PaymentMethodId of the tenant at the payment processor
subscription_id string SubscriptionId at the payment processor
vat string Vat which applies to this tenant

Tenant

Tenant is a customer of the platform

Field Type Description
login string Login of the tenant
name string Name of the tenant
email string Email of the tenant
description string Description of this tenant
avatar_url string AvatarUrl of the tenant
oauth_provider OAuthProvider OauthProvider of the tenant
payment_details PaymentDetails PaymentDetails the tenant provides
admitted bool Admitted indicates if this tenant is allowed to use the platform
phone_number string PhoneNumber of the tenant
terms_and_conditions TermsAndConditions TermsAndConditions the tenant accepted
email_consent bool EmailConsent the tenant made
onboarded bool Onboarded checks if the tenant was asked to be onboarded
created_by string CreatedBy stores who created this tenant
created_at google.protobuf.Timestamp CreatedAt the date when this tenant was created
updated_at google.protobuf.Timestamp UpdatedAt the date when this tenant was updated
deleted_at google.protobuf.Timestamp DeletedAt the date when this tenant was deleted

TenantInvite

TenantInvite defines invite to tenant

Field Type Description
secret string Secret is the secret part of the invite, typically part of the url
target_tenant string TargetTenant is the tenant id for which this invite was created
role TenantRole Role is the role in this tenant the user will get after accepting the invitation
joined bool Joined is false as long as a user has not accepted the invite
target_tenant_name string TargetTenantName is the tenant name for which this invite was created
tenant string Tenant is the login of tenant who invites to join this tenant
tenant_name string TenantName is the name of tenant who invites to join this tenant
expires_at google.protobuf.Timestamp ExpiresAt the date when this invite expires
joined_at google.protobuf.Timestamp JoinedAt the date when the member accepted this invite

TenantMember

TenantMember defines a user that participates at a tenant

Field Type Description
id string Id is the user id of the member
role TenantRole Role is the role of the member
created_at google.protobuf.Timestamp CreatedAt the date when the member was added to the tenant

TenantServiceCreateOrUpdateRequest

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

Field Type Description
tenant Tenant Tenant the tenant to create or update

TenantServiceCreateOrUpdateResponse

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

Field Type Description
tenant Tenant Tenant is the tenant

TenantServiceCreateRequest

TenantServiceCreateRequest is the request payload of the tenant create request

Field Type Description
name string Name of this tenant
description string Description of this tenant
email string Email of the tenant, if not set will be inherited from the creator
avatar_url string AvatarUrl of the tenant
phone_number string PhoneNumber of the tenant

TenantServiceCreateResponse

TenantServiceCreateResponse is the response payload of the tenant create request

Field Type Description
tenant Tenant Tenant is the tenant

TenantServiceDeleteRequest

TenantServiceDeleteRequest is the request payload of the tenant delete request

Field Type Description
login string Login of the tenant

TenantServiceDeleteResponse

TenantServiceDeleteResponse is the response payload of the tenant delete request

Field Type Description
tenant Tenant Tenant is the tenant

TenantServiceGetRequest

TenantServiceGetRequest is the request payload of the tenant get request

Field Type Description
login string Login of the tenant

TenantServiceGetResponse

TenantServiceGetResponse is the response payload of the tenant get request

Field Type Description
tenant Tenant Tenant is the tenant
tenant_members TenantMember TenantMembers of this tenant

TenantServiceInviteAcceptRequest

TenantServiceInviteAcceptRequest is the request payload to a accept invite request

Field Type Description
secret string Secret is the invitation secret part of the invitation url

TenantServiceInviteAcceptResponse

TenantServiceInvitesListResponse is the response payload to a accept invite request

Field Type Description
tenant string Tenant ID of the joined tenant
tenant_name string TenantName of the joined tenant

TenantServiceInviteDeleteRequest

TenantServiceInviteDeleteRequest is the request payload to a delete invite

Field Type Description
login string Login of the tenant
secret string Secret of the invite to delete

TenantServiceInviteDeleteResponse

TenantServiceInviteDeleteResponse is the response payload of a delete invite request

Field Type Description
there are no fields

TenantServiceInviteGetRequest

TenantServiceInviteGetRequest is the request payload to get a invite

Field Type Description
secret string Secret of the invite to get

TenantServiceInviteGetResponse

TenantServiceInviteGetResponse is the response payload to a get invite request

Field Type Description
invite TenantInvite Invite is the invite

TenantServiceInviteRequest

TenantServiceInviteRequest is used to invite a member to a tenant

Field Type Description
login string Login of the tenant
role TenantRole Role of this user in this tenant

TenantServiceInviteResponse

TenantServiceInviteRequest is the response payload to a invite member request

Field Type Description
invite TenantInvite Invite contains a secret which can be sent to a potential user can be appended to the invitation endpoint at our cloud console like console.metalstack.cloud/invite/<secret>

TenantServiceInvitesListRequest

TenantServiceInvitesListRequest is the request payload to a list invites request

Field Type Description
login string Login of the tenant

TenantServiceInvitesListResponse

TenantServiceInvitesListResponse is the response payload to a list invites request

Field Type Description
invites TenantInvite Invites not already accepted the invitation to this tenant

TenantServiceListRequest

TenantServiceListRequest is the request payload of the tenant list request

Field Type Description
id string Id filters tenants by id
name string Name filters tenants by name

TenantServiceListResponse

TenantServiceListResponse is the response payload of the tenant list request

Field Type Description
tenants Tenant Tenants is the list of tenants

TenantServiceRemoveMemberRequest

TenantServiceRemoveMemberRequest is used to remove a member from a tenant

Field Type Description
login string Login of the tenant
member_id string MemberID is the id of the member to remove from this tenant

TenantServiceRemoveMemberResponse

TenantServiceRemoveMemberResponse is the response payload to a remove member request

Field Type Description
there are no fields

TenantServiceUpdateMemberRequest

TenantServiceUpdateMemberRequest is used to update a member from a tenant

Field Type Description
login string Login of the tenant
member_id string MemberID is the id of the member to update in this tenant
role TenantRole Role of this user in this tenant

TenantServiceUpdateMemberResponse

TenantServiceUpdateMemberResponse is the response payload to a update member request

Field Type Description
tenant_member TenantMember TenantMember is the updated membership

TenantServiceUpdateRequest

TenantServiceUpdateRequest is the request payload of the tenant update request

Field Type Description
login string Login of the tenant
name string Name of the tenant
email string Email of the tenant
description string Description of this tenant
avatar_url string AvatarUrl of the tenant
payment_details PaymentDetailsUpdate PaymentDetails of the tenant
terms_and_conditions TermsAndConditionsUpdate TermsAndConditions of the tenant
onboarded bool Onboarded checks if the tenant was asked to be onboarded

TenantServiceUpdateResponse

TenantServiceUpdateResponse is the response payload of the tenant update request

Field Type Description
tenant Tenant Tenant is the tenant

TermsAndConditions

TermsAndConditions the tenant accepted

Field Type Description
accepted bool Accepted indicates if the tenant accepted the terms and conditions
when google.protobuf.Timestamp When is the date when the tenant accepted the terms and conditions

TermsAndConditionsUpdate

TermsAndConditionsUpdate

Field Type Description
accepted bool Accepted indicates if the tenant accepted the terms and conditions
when google.protobuf.Timestamp When is the date when the tenant accepted the terms and conditions

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 List

Request Type TenantServiceListRequest

Response Type TenantServiceListResponse

Description List tenants

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

Method RemoveMember

Request Type TenantServiceRemoveMemberRequest

Response Type TenantServiceRemoveMemberResponse

Description RemoveMember remove a member of a tenant

This Language is not supported

Method UpdateMember

Request Type TenantServiceUpdateMemberRequest

Response Type TenantServiceUpdateMemberResponse

Description UpdateMember update a member of a tenant

This Language is not supported

Method Invite

Request Type TenantServiceInviteRequest

Response Type TenantServiceInviteResponse

Description Invite a user to a tenant

This Language is not supported

Method InviteAccept

Request Type TenantServiceInviteAcceptRequest

Response Type TenantServiceInviteAcceptResponse

Description InviteAccept is called from a user to accept an invitation

This Language is not supported

Method InviteDelete

Request Type TenantServiceInviteDeleteRequest

Response Type TenantServiceInviteDeleteResponse

Description InviteDelete deletes a pending invitation

This Language is not supported

Method InvitesList

Request Type TenantServiceInvitesListRequest

Response Type TenantServiceInvitesListResponse

Description InvitesList list all invites to a tenant

This Language is not supported

Method InviteGet

Request Type TenantServiceInviteGetRequest

Response Type TenantServiceInviteGetResponse

Description InviteGet get an invite

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 Description
subject string Subject maybe either the project or the tenant for which the methods should be allowed
methods string Methods which should be accessible

Token

Token is a jwt authentication token to access the api

Field Type Description
uuid string Uuid of the jwt token, used to reference it by revoke
user_id string UserId who created this token
description string Description is a user given description of this token.
permissions MethodPermission Permissions is a list of service methods this token can be used for
expires google.protobuf.Timestamp Expires gives the date in the future after which this token can not be used anymore
issued_at google.protobuf.Timestamp IssuedAt gives the date when this token was created
token_type TokenType TokenType describes the type of this token
project_roles Token.ProjectRolesEntry ProjectRoles associates a project id with the corresponding role of the token owner
tenant_roles Token.TenantRolesEntry TenantRoles associates a tenant id with the corresponding role of the token owner
admin_role AdminRole AdminRole defines the admin role of the token owner

ProjectRolesEntry

Field Type Description
key string
value ProjectRole

TenantRolesEntry

Field Type Description
key string
value TenantRole

TokenServiceCreateRequest

TokenServiceCreateRequest is the request payload to create a token

Field Type Description
description string Description of the token
permissions MethodPermission Permissions is a list of service methods this token can be used for
expires google.protobuf.Duration Expires gives the duration since now, after which this token can not be used anymore
project_roles TokenServiceCreateRequest.ProjectRolesEntry ProjectRoles associates a project id with the corresponding role of the token owner
tenant_roles TokenServiceCreateRequest.TenantRolesEntry TenantRoles associates a tenant id with the corresponding role of the token owner
admin_role AdminRole AdminRole defines the admin role of the token owner

ProjectRolesEntry

Field Type Description
key string
value ProjectRole

TenantRolesEntry

Field Type Description
key string
value TenantRole

TokenServiceCreateResponse

TokenServiceCreateResponse is the response payload of a token create request

Field Type Description
token Token Token which was created
secret string Secret is the body if the jwt token, should be used in api requests as bearer token

TokenServiceListRequest

TokenServiceListRequest is the request payload to list tokens

Field Type Description
there are no fields

TokenServiceListResponse

TokenServiceListResponse is the response payload of a token list request

Field Type Description
tokens Token Tokens is a list of tokens without the secrets

TokenServiceRevokeRequest

TokenServiceRevokeRequest is the request payload of a token revoke request

Field Type Description
uuid string Uuid of the token to revoke

TokenServiceRevokeResponse

TokenServiceRevokeResponse is the response payload of a token revoke request

Field Type Description
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 Description
region Region Region defines a datacenter location, e.g. a city.
machine_types Asset.MachineTypesEntry MachineTypes available by region
kubernetes Kubernetes Kubernetes a list of kubernetes versions

MachineTypesEntry

Field Type Description
key string
value MachineType

AssetDefaults

AssetDefaults apply if no specific properties are specified

Field Type Description
machine_type string MachineType defines the default machine type used
kubernetes_version string KubernetesVersion defines the default kubernetes version to be used
worker_min uint32 WorkerMin defines how many servers are specified as minimum
worker_max uint32 WorkerMax defines how many servers are specified as maximum
partition string Partition defines where the cluster is created if not otherwise specified

AssetServiceListRequest

AssetServiceListRequest is the request payload to list all Assets

Field Type Description
there are no fields

AssetServiceListResponse

AssetServiceListResponse is the response payload which contains the the Asset list

Field Type Description
assets Asset Assets defines a list of assets

Kubernetes

Kubernetes related configurations available

Field Type Description
version string Version of kubernetes
expiration google.protobuf.Timestamp Expiration sets the date on which the platform support for this kubernetes version expires

MachineType

MachineType defines a server type

Field Type Description
id string Id is the technical id of this machine type
name string Name of this machine type
cpus uint32 CPUs e.g. cores in this machine / server
memory uint64 Memory in this machine / server
storage uint64 Storage in this machine / server
cpu_description string CpuDescription describes the CPUs of this machine / server
storage_description string StorageDescription describes the disks of this machine / server

Partition

Partition defines a failure domain in one Region.

Field Type Description
id string Id is the technical id of this partition
name string Name of this partition
address string Address is the postal address of the partition
active bool Active indicates if this partition is usable
description string Description of this partition

Region

Region defines a datacenter location

Field Type Description
id string Id is the technical identifier of this region
name string Name of the region
address string Address is the postal address of the region
active bool Active indicates if this region is usable
partitions Region.PartitionsEntry Partitions in this region
defaults AssetDefaults Defaults are the default assets used if not otherwise specified.
description string Description of the region

PartitionsEntry

Field Type Description
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 health status of all services

Field Type Description
services HealthStatus Services the health of all individual services

HealthServiceGetRequest

HealthServiceGetRequest is request payload to get the health of the system

Field Type Description
there are no fields

HealthServiceGetResponse

HealthServiceGetRequest is the response payload with the health of the system

Field Type Description
health Health Health is the overall health of the system

HealthStatus

HealthStatus the health of one service

Field Type Description
name Service Name the name of the service
status ServiceStatus Status the status of this service
message string Message describes the reason for the unhealthy status if possible
partitions HealthStatus.PartitionsEntry Partitions describes the health of the service by partition

PartitionsEntry

Field Type Description
key string
value PartitionHealth

PartitionHealth

PartitionHealth the status of a specific service in this partition

Field Type Description
status ServiceStatus Status the health status of the service in this partition
message string Message describes the reason for the unhealthy status if possible

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 Description
uuid string Uuid of this ip
ip string Ip is either ipv4 or ipv6 address
name string Name of this ip
description string Description of this ip
network string Network is the network this ip belongs to
project string Project where this ip address belongs to
type IPType Type of this ip
tags string Tags on this ip
created_at google.protobuf.Timestamp CreatedAt is the date when this ip was created
updated_at google.protobuf.Timestamp UpdatedAt is the date when this ip was updated
deleted_at google.protobuf.Timestamp DeletedAt is the date when this ip was deleted

IPServiceAllocateRequest

IPServiceGetRequest is the request payload for a ip get request

Field Type Description
project string Project of the ip
name string Name of the ip
description string Description of the ip
tags string Tags to put onto the ip
static bool Static if set to true, this will be a Static ip

IPServiceAllocateResponse

IPServiceAllocateResponse is the response payload for a ip allocate request

Field Type Description
ip IP Ip the ip

IPServiceDeleteRequest

IPServiceDeleteRequest is the request payload for a ip delete request

Field Type Description
uuid string Uuid of the ip to delete
project string Project of the ip

IPServiceDeleteResponse

IPServiceDeleteResponse is the response payload for a ip delete request

Field Type Description
ip IP Ip the ip

IPServiceGetRequest

IPServiceGetRequest is the request payload for a ip get request

Field Type Description
uuid string Uuid of the ip to get
project string Project of the ip

IPServiceGetResponse

IPServiceGetResponse is the response payload for a ip get request

Field Type Description
ip IP Ip the ip

IPServiceListRequest

IPServiceListRequest is the request payload for a ip list request

Field Type Description
project string Project of the ips to list

IPServiceListResponse

IPServiceListResponse is the response payload for a ip list request

Field Type Description
ips IP Ips the ips

IPServiceUpdateRequest

IPServiceUpdateRequest is the request payload for a ip update request

Field Type Description
project string Project of the ip
ip IP Ip the ip to update

IPServiceUpdateResponse

IPServiceUpdateResponse is the response payload for a ip update request

Field Type Description
ip IP Ip the 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 Description
there are no fields

MethodServiceListResponse

MethodServiceListResponse is the response payload with all public visible methods

Field Type Description
methods string Methods is a list of methods public callable

MethodServiceTokenScopedListRequest

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

Field Type Description
there are no fields

MethodServiceTokenScopedListResponse

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

Field Type Description
permissions MethodPermission Permissions a list of methods which can be called
project_roles MethodServiceTokenScopedListResponse.ProjectRolesEntry ProjectRoles associates a project id with the corresponding role of the token owner
tenant_roles MethodServiceTokenScopedListResponse.TenantRolesEntry TenantRoles associates a tenant id with the corresponding role of the token owner
admin_role AdminRole AdminRole defines the admin role of the token owner

ProjectRolesEntry

Field Type Description
key string
value ProjectRole

TenantRolesEntry

Field Type Description
key string
value TenantRole

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/user.proto

Messages

User

User is a end user of the platform

Field Type Description
login string Login the login at the provider
name string Name of the user
email string Email of the user
avatar_url string AvatarUrl of the user
oauth_provider OAuthProvider OauthProvider of the user
tenants Tenant Tenants the user belongs to
projects Project Projects the user belongs to
default_tenant Tenant DefaultTenant this user belongs to
default_project Project DefaultProject this user belongs to

UserServiceGetRequest

UserServiceGetRequest is the request to get the user

Field Type Description
there are no fields

UserServiceGetResponse

UserServiceGetResponse the response when userservice get request was called

Field Type Description
user User User is the user

Services

UserService

UserService exposes rpc calls for users

Method Get

Request Type UserServiceGetRequest

Response Type UserServiceGetResponse

Description Get a User

This Language is not supported


api/v1/version.proto

Messages

Version

Version of the application

Field Type Description
version string Version of the application
revision string Revision of the application
git_sha1 string GitSHA1 of the application
build_date string BuildDate of the application

VersionServiceGetRequest

VersionServiceGetRequest is the request payload to get the version

Field Type Description
there are no fields

VersionServiceGetResponse

VersionServiceGetResponse is the response payload with the version

Field Type Description
version Version Version of the application

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 Description
id string Id of the message
text string Text of the message
kind MessageKind Kind of the message, this is to distinguish between the importance of a message
timestamp google.protobuf.Timestamp Timestamp when this message was created
replies ReplyMessage Replies are messages which are followups to the initial message

MessageServiceListRequest

MessageServiceListRequest is the request payload to get the messages

Field Type Description
there are no fields

MessageServiceListResponse

MessageServiceListResponse is the response payload with the messages

Field Type Description
items Message Items is a slice of all messages
pinned_items Message PinnedItems are messages which are of special interest

ReplyMessage

ReplyMessage is a message as a followup of a initial message

Field Type Description
id string Id of the message
text string Text of the message
kind MessageKind Kind of the message, this is to distinguish between the importance of a message
timestamp google.protobuf.Timestamp Timestamp when this message was created

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 Description
there are no fields

StatusServiceGetResponse

StatusServiceGetResponse is the response payload which describes the system status

Field Type Description
health api.v1.Health Health of the individual services
overall_status api.v1.ServiceStatus OverallStatus is the status of the system
connection_broken bool ConnectionBroken shows if the connection to the system is broken
api_version string ApiVersion of the system

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