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: "/api/v1/network/create" body: "*" }; } rpc List (NetworkListRequest) returns (NetworkListResponse) { option (google.api.http) = { get: "/api/v1/network/list" //body: "*" }; } rpc Delete (NetworkDeleteRequest) returns (NetworkDeleteResponse) { option (google.api.http) = { post: "/api/v1/network/delete" body: "*" }; } rpc GetAllTypes(NetworkGetAllTypesRequest) returns (NetworkGetAllTypesResponse) { option (google.api.http) = { get: "/api/v1/network/getalltypes" //body: "*" }; } rpc GetAssociatedUsers(NetworkGetAssociatedUsersRequest) returns (NetworkGetAssociatedUsersResponse) { option (google.api.http) = { get: "/api/v1/network/getassociatedusers" //body: "*" }; } rpc Associate (NetworkAssociateRequest) returns (NetworkAssociateResponse) { option (google.api.http) = { post: "/api/v1/network/associate" body: "*" }; } rpc Dissociate (NetworkDissociateRequest) returns (NetworkDissociateResponse) { option (google.api.http) = { post: "/api/v1/network/dissociate" body: "*" }; } } message Network { string name = 1; string cidr = 2; string type = 3; string created_at = 4; repeated string associated_usernames = 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; }