Select Git revision
server.microgen.go
environments.proto 3.32 KiB
syntax = "proto3";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
option go_package = "git.perx.ru/perxis/perxis-go/proto/environments;environments";
package content.environments;
message Environment {
string id = 1;
string space_id = 2;
string description = 3;
StateInfo state_info = 4;
repeated string aliases = 6;
Config config = 10;
}
message StateInfo {
enum State {
UNKNOWN = 0;
NEW = 1;
PREPARING = 2;
READY = 3;
ERROR = 4;
}
State state = 1;
string info = 2;
google.protobuf.Timestamp started_at = 3;
}
message Config {
string source_id = 1;
// Deprecated
repeated string features = 2;
}
message CreateRequest {
Environment env = 1;
}
message CreateResponse {
Environment created = 1;
}
message ListRequest {
string space_id = 1;
}
message ListResponse {
repeated Environment envs = 1;
}
message GetRequest {
string space_id = 1;
string id = 2;
}
message GetResponse {
Environment env = 1;
}
message UpdateRequest {
Environment env = 1;
}
message SetAliasRequest {
string space_id = 1;
string id = 2;
string alias = 3;
}
message RemoveAliasRequest {
string space_id = 1;
string id = 2;
string alias = 3;
}
message DeleteRequest {
string space_id = 1;
string id = 2;
}
message MigrateRequest {
string space_id = 1;
string id = 2;
MigrateOptions options = 10;
}
message MigrateOptions {
// Ожидать завершения миграции в синхронном режиме. Если в запрос передан контекст с таймаутом,
// то после истечения таймаута миграция продолжится в асинхронном режиме
bool wait = 1; // Deprecated - миграция по умолчанию выполняется синхронно
bool async = 2; // Выполнить миграцию в асинхронном режиме
}
service Environments {
rpc Create(CreateRequest) returns(CreateResponse) {}
rpc Get(GetRequest) returns(GetResponse) {}
rpc List(ListRequest) returns(ListResponse) {}
rpc Update(UpdateRequest) returns(google.protobuf.Empty) {}
rpc SetAlias(SetAliasRequest) returns(google.protobuf.Empty) {}
rpc RemoveAlias(RemoveAliasRequest) returns(google.protobuf.Empty) {}
rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {}
// Выполнить миграцию окружения. По умолчанию выполняется в синхронном режиме, для асинхронного выполнения можно
// передать соответствующую настройку в опциях `MigrateRequest.options`
//
// При вызове миграции:
// - выполняются миграции для всех коллекций окружения
//
// В случае возникновения ошибок миграции они записываются в поле `Environment.state`
rpc Migrate(MigrateRequest) returns(google.protobuf.Empty) {}
}
message EnvironmentEvent {
string space_id = 1;
string env_id = 2;
message CreateEvent {}
message UpdateEvent {}
message DeleteEvent {}
message MigrateEvent {}
oneof event {
CreateEvent create = 101;
UpdateEvent update = 102;
DeleteEvent delete = 103;
MigrateEvent migrate = 104;
}
}