syntax = "proto3"; package provisioner; service Provisioner { rpc ProvisionDatabase(DatabaseRequest) returns (DatabaseResponse); } message DatabaseRequest { string project_name = 1; oneof db_type { Shared Shared = 10; AwsRds AwsRds = 11; }; } message Shared { oneof engine { string postgres = 1; string mongodb = 50; } } message AwsRds { oneof engine { RdsConfig postgres = 1; RdsConfig mysql = 2; RdsConfig mariadb = 3; } } message RdsConfig { } message DatabaseResponse { string username = 1; string password = 2; string database_name = 3; string engine = 4; string address_private = 5; string address_public = 6; string port = 7; }