syntax = "proto3"; package pb; import "google/api/annotations.proto"; message NetworkCreateRequest { string Name = 1; string CIDR = 2; string Type = 3; string Via = 4; } message NetworkListRequest {} message NetworkDeleteRequest { string Name = 1; } message NetworkGetAllTypesRequest {} message NetworkAssociateRequest { string Name = 1; string Username = 2; } message NetworkDissociateRequest { string Name = 1; string Username = 2; } message NetworkGetAssociatedUsersRequest { string Name = 1; } service NetworkService { rpc Create (NetworkCreateRequest) returns (NetworkCreateResponse) { option (google.api.http) = { post: "/v1/network/create" body: "*" }; } rpc List (NetworkListRequest) returns (NetworkListResponse) { option (google.api.http) = { post: "/v1/network/list" body: "*" }; } rpc Delete (NetworkDeleteRequest) returns (NetworkDeleteResponse) { option (google.api.http) = { post: "/v1/network/delete" body: "*" }; } rpc GetAllTypes(NetworkGetAllTypesRequest) returns (NetworkGetAllTypesResponse) { option (google.api.http) = { post: "/v1/network/getalltypes" body: "*" }; } rpc GetAssociatedUsers(NetworkGetAssociatedUsersRequest) returns (NetworkGetAssociatedUsersResponse) { option (google.api.http) = { post: "/v1/network/getassociatedusers" body: "*" }; } rpc Associate (NetworkAssociateRequest) returns (NetworkAssociateResponse) { option (google.api.http) = { post: "/v1/network/associate" body: "*" }; } rpc Dissociate (NetworkDissociateRequest) returns (NetworkDissociateResponse) { option (google.api.http) = { post: "/v1/network/dissociate" body: "*" }; } } message Network { string Name = 1; string CIDR = 2; string Type = 3; string CreatedAt = 4; repeated string AssociatedUsernames = 5; string Via = 6; } message NetworkType { string Type = 1; string Description = 2; } message NetworkCreateResponse { Network Network = 1; } message NetworkListResponse { repeated Network Networks = 1; } message NetworkDeleteResponse { Network Network = 1; } message NetworkGetAllTypesResponse { repeated NetworkType Types = 1; } message NetworkAssociateResponse {} message NetworkDissociateResponse {} message NetworkGetAssociatedUsersResponse { repeated string Usernames = 1; }