Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
247 changes: 237 additions & 10 deletions odpf/shield/v1beta1/shield.proto
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,17 @@ service ShieldService {
};
}

rpc UpdateGroup(UpdateGroupRequest) returns (UpdateGroupResponse) {
option (google.api.http) = {
put: "/v1beta1/groups/{id}",
body: "body";
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Update Group by ID";
};
}

rpc ListGroupUsers(ListGroupUsersRequest) returns (ListGroupUsersResponse) {
option (google.api.http) = {
get: "/v1beta1/groups/{id}/users",
Expand All @@ -127,14 +138,55 @@ service ShieldService {
};
}

rpc UpdateGroup(UpdateGroupRequest) returns (UpdateGroupResponse) {
rpc AddGroupUser(AddGroupUserRequest) returns (AddGroupUserResponse) {
option (google.api.http) = {
put: "/v1beta1/groups/{id}",
post: "/v1beta1/groups/{id}/users",
body: "body";
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Update Group by ID";
summary: "Add User to Group";
};
}

rpc RemoveGroupUser(RemoveGroupUserRequest) returns (RemoveGroupUserResponse) {
option (google.api.http) = {
delete: "/v1beta1/groups/{id}/users/{user_id}",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Remove User from Group";
};
}

rpc ListGroupAdmins(ListGroupAdminsRequest) returns (ListGroupAdminsResponse) {
option (google.api.http) = {
get: "/v1beta1/groups/{id}/admins",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Get all Admins of a Group";
};
}

rpc AddGroupAdmin(AddGroupAdminRequest) returns (AddGroupAdminResponse) {
option (google.api.http) = {
post: "/v1beta1/groups/{id}/admins",
body: "body";
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Add Admin to Group";
};
}

rpc RemoveGroupAdmin(RemoveGroupAdminRequest) returns (RemoveGroupAdminResponse) {
option (google.api.http) = {
delete: "/v1beta1/groups/{id}/admins/{user_id}",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Group";
summary: "Remove Admin from Group";
};
}

Expand Down Expand Up @@ -224,6 +276,37 @@ service ShieldService {
};
}

rpc ListOrganizationAdmins(ListOrganizationAdminsRequest) returns (ListOrganizationAdminsResponse) {
option (google.api.http) = {
get: "/v1beta1/organizations/{id}/admins",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Organization";
summary: "Get all Admins of an Organization";
};
}

rpc AddOrganizationAdmin(AddOrganizationAdminRequest) returns (AddOrganizationAdminResponse) {
option (google.api.http) = {
post: "/v1beta1/organizations/{id}/admins",
body: "body";
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Organization";
summary: "Add Admin to Organization";
};
}

rpc RemoveOrganizationAdmin(RemoveOrganizationAdminRequest) returns (RemoveOrganizationAdminResponse) {
option (google.api.http) = {
delete: "/v1beta1/organizations/{id}/admins/{user_id}",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Organization";
summary: "Remove Admin from Organization";
};
}

// Projects
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) {
option (google.api.http) = {
Expand Down Expand Up @@ -267,6 +350,37 @@ service ShieldService {
};
}

rpc ListProjectAdmins(ListProjectAdminsRequest) returns (ListProjectAdminsResponse) {
option (google.api.http) = {
get: "/v1beta1/projects/{id}/admins",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Project";
summary: "Get all Admins of a Project";
};
}

rpc AddProjectAdmin(AddProjectAdminRequest) returns (AddProjectAdminResponse) {
option (google.api.http) = {
post: "/v1beta1/projects/{id}/admins",
body: "body";
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Project";
summary: "Add Admin to Project";
};
}

rpc RemoveProjectAdmin(RemoveProjectAdminRequest) returns (RemoveProjectAdminResponse) {
option (google.api.http) = {
delete: "/v1beta1/projects/{id}/admins/{user_id}",
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Project";
summary: "Remove Admin from Project";
};
}

// Actions
rpc ListActions(ListActionsRequest) returns (ListActionsResponse) {
option (google.api.http) = {
Expand Down Expand Up @@ -576,9 +690,6 @@ message UpdateGroupResponse {
Group group = 1;
}

message ListGroupUsersResponse {
repeated User users = 1;
}

message UpdateGroupRequest {
string id = 1;
Expand All @@ -593,10 +704,6 @@ message GetGroupRequest {
string id = 1;
}

message ListGroupUsersRequest {
string id = 1;
}

message ListGroupsRequest {
string user_id = 1;
}
Expand All @@ -605,6 +712,66 @@ message ListGroupsResponse {
repeated Group groups = 1;
}

message ListGroupUsersRequest {
string id = 1;
}

message ListGroupUsersResponse {
repeated User users = 1;
}

message AddGroupUserRequestBody {
repeated string user_ids = 1;
}

message AddGroupUserRequest {
string id = 1;
AddGroupUserRequestBody body = 2;
}

message AddGroupUserResponse {
repeated User users = 1;
}

message RemoveGroupUserRequest {
string id = 1;
string user_id = 2;
}

message RemoveGroupUserResponse {
string message = 1;
}

message ListGroupAdminsRequest {
string id = 1;
}

message ListGroupAdminsResponse {
repeated User users = 1;
}

message AddGroupAdminRequestBody {
repeated string user_ids = 1;
}

message AddGroupAdminRequest {
string id = 1;
AddGroupAdminRequestBody body = 2;
}

message AddGroupAdminResponse {
repeated User users = 1;
}

message RemoveGroupAdminRequest {
string id = 1;
string user_id = 2;
}

message RemoveGroupAdminResponse {
string message = 1;
}

message Role {
string id = 1;
string name = 2 [(validate.rules).string.pattern = "^[A-Za-z0-9_-]+$"];
Expand Down Expand Up @@ -702,6 +869,36 @@ message UpdateOrganizationRequest {
OrganizationRequestBody body = 2;
}

message ListOrganizationAdminsRequest {
string id = 1;
}

message ListOrganizationAdminsResponse {
repeated User users = 1;
}

message AddOrganizationAdminRequestBody {
repeated string user_ids = 1;
}

message AddOrganizationAdminRequest {
string id = 1;
AddOrganizationAdminRequestBody body = 2;
}

message AddOrganizationAdminResponse {
repeated User users = 1;
}

message RemoveOrganizationAdminRequest {
string id = 1;
string user_id = 2;
}

message RemoveOrganizationAdminResponse {
string message = 1;
}

message ProjectRequestBody {
string name = 1 [(validate.rules).string.pattern = "^[A-Za-z0-9_-]+$"];
string slug = 2;
Expand Down Expand Up @@ -751,6 +948,36 @@ message UpdateProjectRequest {
ProjectRequestBody body = 2;
}

message ListProjectAdminsRequest {
string id = 1;
}

message ListProjectAdminsResponse {
repeated User users = 1;
}

message AddProjectAdminRequestBody {
repeated string user_ids = 1;
}

message AddProjectAdminRequest {
string id = 1;
AddProjectAdminRequestBody body = 2;
}

message AddProjectAdminResponse {
repeated User users = 1;
}

message RemoveProjectAdminRequest {
string id = 1;
string user_id = 2;
}

message RemoveProjectAdminResponse {
string message = 1;
}

message Action {
string id = 1;
string name = 2 [(validate.rules).string.pattern = "^[A-Za-z0-9_-]+$"];
Expand Down