139 lines
2.2 KiB
Protocol Buffer
139 lines
2.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option go_package = "esxlib/api/cloud";
|
|
package api.cloud;
|
|
|
|
|
|
service Cloud {
|
|
rpc VMList(VMListRequest) returns (VMListResponse);
|
|
rpc VMGet(VMGetRequest) returns (VMGetResponse);
|
|
rpc VMPower(VMPowerRequest) returns (VMPowerResponse);
|
|
|
|
rpc VMCreate(VMCreateRequest) returns (VMCreateResponse);
|
|
rpc VMDestroy(VMDestroyRequest) returns (VMDestroyResponse);
|
|
|
|
rpc VMListSlugs(VMListSlugsRequest) returns (VMListSlugsResponse);
|
|
|
|
rpc ZonesList(ZonesListRequest) returns (ZonesListResponse);
|
|
rpc NetworksList(NetworksListRequest) returns (NetworksListResponse);
|
|
}
|
|
|
|
|
|
enum PowerState {
|
|
UNKNOWN = 0;
|
|
OFF = 1;
|
|
SUSPENDED = 2;
|
|
ON = 3;
|
|
}
|
|
|
|
message VMPowerRequest {
|
|
string id = 1;
|
|
PowerState State = 2;
|
|
}
|
|
|
|
message VMPowerResponse {
|
|
}
|
|
|
|
message VMNetworkInfo{
|
|
string address = 1;
|
|
string lan = 2;
|
|
}
|
|
|
|
message VMInfo {
|
|
string id = 1;
|
|
string name = 2;
|
|
string slug = 3;
|
|
PowerState State = 4;
|
|
repeated VMNetworkInfo network = 5;
|
|
}
|
|
|
|
message VMListRequest {
|
|
string zone_id = 1;
|
|
}
|
|
|
|
message VMListResponse {
|
|
repeated VMInfo vms = 1;
|
|
}
|
|
|
|
message VMGetRequest {
|
|
// TODO: add some filters
|
|
oneof search {
|
|
string id = 1;
|
|
string name = 2;
|
|
}
|
|
}
|
|
|
|
message VMGetResponse {
|
|
VMInfo vm = 1;
|
|
}
|
|
|
|
message CreateOptions {
|
|
uint32 cpu_count = 1;
|
|
uint32 memory_mb = 2;
|
|
uint32 disk_gb = 3;
|
|
string network_id = 4;
|
|
}
|
|
|
|
message VMCreateRequest{
|
|
string zone_id = 1;
|
|
string name = 2;
|
|
string slug = 3;
|
|
repeated string AuthorizedHosts = 4;
|
|
string init_script = 5;
|
|
}
|
|
|
|
message VMCreateResponse{
|
|
VMInfo vm = 1;
|
|
}
|
|
|
|
message VMDestroyRequest{
|
|
string id = 1;
|
|
}
|
|
|
|
message VMDestroyResponse{
|
|
}
|
|
|
|
message Slug{
|
|
string id = 1;
|
|
string name = 2;
|
|
string description = 3;
|
|
uint32 cpu_count = 4;
|
|
uint32 memory_mb = 5;
|
|
uint32 disk_gb = 6;
|
|
uint32 cost = 7;
|
|
}
|
|
|
|
message VMListSlugsRequest{
|
|
string zone_id = 1;
|
|
}
|
|
|
|
message VMListSlugsResponse{
|
|
repeated Slug slugs = 1;
|
|
}
|
|
|
|
message Zone {
|
|
string id = 1;
|
|
string name = 2;
|
|
string description = 3;
|
|
}
|
|
|
|
message ZonesListRequest{
|
|
}
|
|
|
|
message ZonesListResponse {
|
|
repeated Zone zones = 1;
|
|
}
|
|
|
|
message Network {
|
|
string id = 1;
|
|
string name = 2;
|
|
int32 VLAN = 3;
|
|
}
|
|
|
|
message NetworksListRequest {
|
|
string zone_id = 1;
|
|
}
|
|
|
|
message NetworksListResponse {
|
|
repeated Network networks = 1;
|
|
} |