From ada0c1e7f1608f02e18e2fc994e99730477461ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 25 Nov 2020 16:30:58 +0100 Subject: [PATCH 1/5] Add Group API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- cs3/gateway/v1beta1/gateway_api.proto | 16 +- cs3/identity/group/v1beta1/group_api.proto | 176 +++++++++++++++++++++ cs3/identity/group/v1beta1/resources.proto | 55 +++++++ cs3/identity/user/v1beta1/resources.proto | 12 +- cs3/identity/user/v1beta1/user_api.proto | 27 +--- 5 files changed, 256 insertions(+), 30 deletions(-) create mode 100644 cs3/identity/group/v1beta1/group_api.proto create mode 100644 cs3/identity/group/v1beta1/resources.proto diff --git a/cs3/gateway/v1beta1/gateway_api.proto b/cs3/gateway/v1beta1/gateway_api.proto index e7ecba18..913c23ff 100644 --- a/cs3/gateway/v1beta1/gateway_api.proto +++ b/cs3/gateway/v1beta1/gateway_api.proto @@ -34,6 +34,7 @@ import "cs3/auth/registry/v1beta1/registry_api.proto"; import "cs3/gateway/v1beta1/resources.proto"; import "cs3/identity/user/v1beta1/resources.proto"; import "cs3/identity/user/v1beta1/user_api.proto"; +import "cs3/identity/group/v1beta1/group_api.proto"; import "cs3/ocm/core/v1beta1/ocm_core_api.proto"; import "cs3/ocm/invite/v1beta1/invite_api.proto"; import "cs3/ocm/provider/v1beta1/provider_api.proto"; @@ -279,8 +280,21 @@ service GatewayAPI { // Finds users by any attribute of the user. // TODO(labkode): to define the filters that make more sense. rpc FindUsers(cs3.identity.user.v1beta1.FindUsersRequest) returns (cs3.identity.user.v1beta1.FindUsersResponse); + // *****************************************************************/ + // ************************ GROUP PROVIDER **************************/ + // *****************************************************************/ + + // Gets the information about a group by the group id. + rpc GetGroup(cs3.identity.group.v1beta1.GetGroupRequest) returns (cs3.identity.group.v1beta1.GetGroupResponse); + // Gets the information about a group based on a specified claim. + rpc GetGroupByClaim(cs3.identity.group.v1beta1.GetGroupByClaimRequest) returns (cs3.identity.group.v1beta1.GetGroupByClaimResponse); + // Gets the groups of a group. + rpc GetMembers(cs3.identity.group.v1beta1.GetMembersRequest) returns (cs3.identity.group.v1beta1.GetMembersResponse); + // Tells if the group has a certain member. + rpc HasMember(cs3.identity.group.v1beta1.HasMemberRequest) returns (cs3.identity.group.v1beta1.HasMemberResponse); + // TODO(labkode): to define the filters that make more sense. // Finds groups whose names match the specified filter. - rpc FindGroups(cs3.identity.user.v1beta1.FindGroupsRequest) returns (cs3.identity.user.v1beta1.FindGroupsResponse); + rpc FindGroups(cs3.identity.group.v1beta1.FindGroupsRequest) returns (cs3.identity.group.v1beta1.FindGroupsResponse); // *****************************************************************/ // ************************ AUTH REGISTRY **************************/ // *****************************************************************/ diff --git a/cs3/identity/group/v1beta1/group_api.proto b/cs3/identity/group/v1beta1/group_api.proto new file mode 100644 index 00000000..f9e07718 --- /dev/null +++ b/cs3/identity/group/v1beta1/group_api.proto @@ -0,0 +1,176 @@ +// Copyright 2018-2019 CERN +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// In applying this license, CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +syntax = "proto3"; + +package cs3.identity.group.v1beta1; + +option csharp_namespace = "Cs3.Identity.Group.V1Beta1"; +option go_package = "groupv1beta1"; +option java_multiple_files = true; +option java_outer_classname = "GroupApiProto"; +option java_package = "com.cs3.identity.group.v1beta1"; +option objc_class_prefix = "CIG"; +option php_namespace = "Cs3\\Identity\\Group\\V1Beta1"; + +import "cs3/identity/user/v1beta1/resources.proto"; +import "cs3/identity/group/v1beta1/resources.proto"; +import "cs3/rpc/v1beta1/status.proto"; +import "cs3/types/v1beta1/types.proto"; + +// UserProvider API. +// +// The UserProvider API is responsible for creating +// a key-value map according to group groupprovider. +// +// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL +// NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and +// "OPTIONAL" in this document are to be interpreted as described in +// RFC 2119. +// +// The following are global requirements that apply to all methods: +// Any method MUST return CODE_OK on a succesful operation. +// Any method MAY return NOT_IMPLEMENTED. +// Any method MAY return INTERNAL. +// Any method MAY return UNKNOWN. +// Any method MAY return UNAUTHENTICATED. + +// Provides an API for managing groups. +service GroupAPI { + // Gets the information about a group by the group id. + rpc GetGroup(GetGroupRequest) returns (GetGroupResponse); + // Gets the information about a group based on a specified claim. + rpc GetGroupByClaim(GetGroupByClaimRequest) returns (GetGroupByClaimResponse); + // Gets the members of a group. + rpc GetMembers(GetMembersRequest) returns (GetMembersResponse); + // Tells if the group has certain member. + rpc HasMember(HasMemberRequest) returns (HasMemberResponse); + // Finds groups whose names match the specified filter. + rpc FindGroups(FindGroupsRequest) returns (FindGroupsResponse); +} + +message GetGroupRequest { + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 1; + // REQUIRED. + // The id of the group. + cs3.identity.group.v1beta1.GroupId group_id = 2; +} + +message GetGroupResponse { + // REQUIRED. + // The response status. + cs3.rpc.v1beta1.Status status = 1; + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 2; + // REQUIRED. + // The group information. + Group group = 3; +} + +message GetGroupByClaimRequest { + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 1; + // REQUIRED. + // The claim on the basis of which groups will be filtered. + string claim = 2; + // REQUIRED. + // The value of the claim to find the specific group. + string value = 3; +} + +message GetGroupByClaimResponse { + // REQUIRED. + // The response status. + cs3.rpc.v1beta1.Status status = 1; + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 2; + // REQUIRED. + // The group information. + Group group = 3; +} + +message GetMembersRequest { + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 1; + // REQUIRED. + // The id of the group. + cs3.identity.group.v1beta1.GroupId group_id = 2; +} + +message GetMembersResponse { + // REQUIRED. + // The response status. + cs3.rpc.v1beta1.Status status = 1; + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 2; + // REQUIRED. + // The members of the group. + repeated cs3.identity.user.v1beta1.UserId members = 3; +} + +message HasMemberRequest { + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 1; + // REQUIRED. + // The id of the group. + cs3.identity.group.v1beta1.GroupId group_id = 2; + // REQUIRED. + // The id of the user to check. + cs3.identity.user.v1beta1.UserId user_id = 3; +} + +message HasMemberResponse { + // REQUIRED. + // The response status. + cs3.rpc.v1beta1.Status status = 1; + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 2; + // REQUIRED. + // Tells if the user belongs to the group. + bool ok = 3; +} + +message FindGroupsRequest { + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 1; + // REQUIRED. + // The filter to apply. + string filter = 2; +} + +message FindGroupsResponse { + // REQUIRED. + // The response status. + cs3.rpc.v1beta1.Status status = 1; + // OPTIONAL. + // Opaque information. + cs3.types.v1beta1.Opaque opaque = 2; + // REQUIRED. + // The groups matching the specified filter. + repeated Group groups = 3; +} diff --git a/cs3/identity/group/v1beta1/resources.proto b/cs3/identity/group/v1beta1/resources.proto new file mode 100644 index 00000000..3533748c --- /dev/null +++ b/cs3/identity/group/v1beta1/resources.proto @@ -0,0 +1,55 @@ +// Copyright 2018-2019 CERN +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// In applying this license, CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +syntax = "proto3"; + +package cs3.identity.group.v1beta1; + +option csharp_namespace = "Cs3.Identity.Group.V1Beta1"; +option go_package = "groupv1beta1"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.cs3.identity.group.v1beta1"; +option objc_class_prefix = "CIU"; +option php_namespace = "Cs3\\Identity\\Group\\V1Beta1"; + +import "cs3/identity/user/v1beta1/resources.proto"; +import "cs3/types/v1beta1/types.proto"; + +// A GroupId represents a group. +message GroupId { + // REQUIRED. + // The identity provider for the group. + string idp = 1; + // REQUIRED. + // the unique identifier for the group in the scope of + // the identity provider. + string opaque_id = 2; +} + +// Represents a group of the system. +message Group { + GroupId id = 1; + string groupname = 2; + int64 gid_number = 3; + string mail = 4; + bool mail_verified = 5; + string display_name = 6; + repeated cs3.identity.user.v1beta1.UserId members = 7; + cs3.types.v1beta1.Opaque opaque = 8; +} diff --git a/cs3/identity/user/v1beta1/resources.proto b/cs3/identity/user/v1beta1/resources.proto index 0e2385a2..e085057a 100644 --- a/cs3/identity/user/v1beta1/resources.proto +++ b/cs3/identity/user/v1beta1/resources.proto @@ -45,9 +45,11 @@ message UserId { message User { UserId id = 1; string username = 2; - string mail = 3; - bool mail_verified = 4; - string display_name = 5; - repeated string groups = 6; - cs3.types.v1beta1.Opaque opaque = 7; + int64 uid_number = 3; + int64 gid_number = 4; + string mail = 5; + bool mail_verified = 6; + string display_name = 7; + repeated string groups = 8; + cs3.types.v1beta1.Opaque opaque = 9; } diff --git a/cs3/identity/user/v1beta1/user_api.proto b/cs3/identity/user/v1beta1/user_api.proto index bfe4f4c9..e6dafbf1 100644 --- a/cs3/identity/user/v1beta1/user_api.proto +++ b/cs3/identity/user/v1beta1/user_api.proto @@ -29,6 +29,7 @@ option objc_class_prefix = "CIU"; option php_namespace = "Cs3\\Identity\\User\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; +import "cs3/identity/group/v1beta1/resources.proto"; import "cs3/rpc/v1beta1/status.proto"; import "cs3/types/v1beta1/types.proto"; @@ -62,8 +63,6 @@ service UserAPI { // Finds users by any attribute of the user. // TODO(labkode): to define the filters that make more sense. rpc FindUsers(FindUsersRequest) returns (FindUsersResponse); - // Finds groups whose names match the specified filter. - rpc FindGroups(FindGroupsRequest) returns (FindGroupsResponse); } message GetUserRequest { @@ -140,8 +139,8 @@ message IsInGroupRequest { // The id of the user. cs3.identity.user.v1beta1.UserId user_id = 2; // REQUIRED. - // The group to check. - string group = 3; + // The id of the group to check. + cs3.identity.group.v1beta1.GroupId group_id = 3; } message IsInGroupResponse { @@ -177,23 +176,3 @@ message FindUsersResponse { repeated User users = 3; } -message FindGroupsRequest { - // OPTIONAL. - // Opaque information. - cs3.types.v1beta1.Opaque opaque = 1; - // REQUIRED. - // The filter to apply. - string filter = 2; -} - -message FindGroupsResponse { - // REQUIRED. - // The response status. - cs3.rpc.v1beta1.Status status = 1; - // OPTIONAL. - // Opaque information. - cs3.types.v1beta1.Opaque opaque = 2; - // REQUIRED. - // The groups matching the specified filter. - repeated string groups = 3; -} From ef0436a8474ebbf83d9322f69e7c2a5ddb28f5ec Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 26 Nov 2020 13:33:29 +0100 Subject: [PATCH 2/5] apply review comments --- cs3/gateway/v1beta1/gateway_api.proto | 2 +- cs3/identity/group/v1beta1/resources.proto | 2 +- cs3/identity/user/v1beta1/resources.proto | 14 +- proto.lock | 467 +++++++++++++++++++-- 4 files changed, 431 insertions(+), 54 deletions(-) diff --git a/cs3/gateway/v1beta1/gateway_api.proto b/cs3/gateway/v1beta1/gateway_api.proto index 913c23ff..86131fc3 100644 --- a/cs3/gateway/v1beta1/gateway_api.proto +++ b/cs3/gateway/v1beta1/gateway_api.proto @@ -288,7 +288,7 @@ service GatewayAPI { rpc GetGroup(cs3.identity.group.v1beta1.GetGroupRequest) returns (cs3.identity.group.v1beta1.GetGroupResponse); // Gets the information about a group based on a specified claim. rpc GetGroupByClaim(cs3.identity.group.v1beta1.GetGroupByClaimRequest) returns (cs3.identity.group.v1beta1.GetGroupByClaimResponse); - // Gets the groups of a group. + // Gets the members of a group. rpc GetMembers(cs3.identity.group.v1beta1.GetMembersRequest) returns (cs3.identity.group.v1beta1.GetMembersResponse); // Tells if the group has a certain member. rpc HasMember(cs3.identity.group.v1beta1.HasMemberRequest) returns (cs3.identity.group.v1beta1.HasMemberResponse); diff --git a/cs3/identity/group/v1beta1/resources.proto b/cs3/identity/group/v1beta1/resources.proto index 3533748c..5416a920 100644 --- a/cs3/identity/group/v1beta1/resources.proto +++ b/cs3/identity/group/v1beta1/resources.proto @@ -45,7 +45,7 @@ message GroupId { // Represents a group of the system. message Group { GroupId id = 1; - string groupname = 2; + string group_name = 2; int64 gid_number = 3; string mail = 4; bool mail_verified = 5; diff --git a/cs3/identity/user/v1beta1/resources.proto b/cs3/identity/user/v1beta1/resources.proto index e085057a..1d1ddd3d 100644 --- a/cs3/identity/user/v1beta1/resources.proto +++ b/cs3/identity/user/v1beta1/resources.proto @@ -45,11 +45,11 @@ message UserId { message User { UserId id = 1; string username = 2; - int64 uid_number = 3; - int64 gid_number = 4; - string mail = 5; - bool mail_verified = 6; - string display_name = 7; - repeated string groups = 8; - cs3.types.v1beta1.Opaque opaque = 9; + string mail = 3; + bool mail_verified = 4; + string display_name = 5; + repeated string groups = 6; + cs3.types.v1beta1.Opaque opaque = 7; + int64 uid_number = 8; + int64 gid_number = 9; } diff --git a/proto.lock b/proto.lock index f22933b2..542f5199 100644 --- a/proto.lock +++ b/proto.lock @@ -1192,10 +1192,30 @@ "in_type": "cs3.identity.user.v1beta1.FindUsersRequest", "out_type": "cs3.identity.user.v1beta1.FindUsersResponse" }, + { + "name": "GetGroup", + "in_type": "cs3.identity.group.v1beta1.GetGroupRequest", + "out_type": "cs3.identity.group.v1beta1.GetGroupResponse" + }, + { + "name": "GetGroupByClaim", + "in_type": "cs3.identity.group.v1beta1.GetGroupByClaimRequest", + "out_type": "cs3.identity.group.v1beta1.GetGroupByClaimResponse" + }, + { + "name": "GetMembers", + "in_type": "cs3.identity.group.v1beta1.GetMembersRequest", + "out_type": "cs3.identity.group.v1beta1.GetMembersResponse" + }, + { + "name": "HasMember", + "in_type": "cs3.identity.group.v1beta1.HasMemberRequest", + "out_type": "cs3.identity.group.v1beta1.HasMemberResponse" + }, { "name": "FindGroups", - "in_type": "cs3.identity.user.v1beta1.FindGroupsRequest", - "out_type": "cs3.identity.user.v1beta1.FindGroupsResponse" + "in_type": "cs3.identity.group.v1beta1.FindGroupsRequest", + "out_type": "cs3.identity.group.v1beta1.FindGroupsResponse" }, { "name": "ListAuthProviders", @@ -1284,6 +1304,9 @@ { "path": "cs3/identity/user/v1beta1/user_api.proto" }, + { + "path": "cs3/identity/group/v1beta1/group_api.proto" + }, { "path": "cs3/ocm/core/v1beta1/ocm_core_api.proto" }, @@ -1463,6 +1486,388 @@ ] } }, + { + "protopath": "cs3:/:identity:/:group:/:v1beta1:/:group_api.proto", + "def": { + "messages": [ + { + "name": "GetGroupRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + } + ] + }, + { + "name": "GetGroupResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "group", + "type": "Group" + } + ] + }, + { + "name": "GetGroupByClaimRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "claim", + "type": "string" + }, + { + "id": 3, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "GetGroupByClaimResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "group", + "type": "Group" + } + ] + }, + { + "name": "GetMembersRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + } + ] + }, + { + "name": "GetMembersResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "members", + "type": "cs3.identity.user.v1beta1.UserId", + "is_repeated": true + } + ] + }, + { + "name": "HasMemberRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + }, + { + "id": 3, + "name": "user_id", + "type": "cs3.identity.user.v1beta1.UserId" + } + ] + }, + { + "name": "HasMemberResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "ok", + "type": "bool" + } + ] + }, + { + "name": "FindGroupsRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "filter", + "type": "string" + } + ] + }, + { + "name": "FindGroupsResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "groups", + "type": "Group", + "is_repeated": true + } + ] + } + ], + "services": [ + { + "name": "GroupAPI", + "rpcs": [ + { + "name": "GetGroup", + "in_type": "GetGroupRequest", + "out_type": "GetGroupResponse" + }, + { + "name": "GetGroupByClaim", + "in_type": "GetGroupByClaimRequest", + "out_type": "GetGroupByClaimResponse" + }, + { + "name": "GetMembers", + "in_type": "GetMembersRequest", + "out_type": "GetMembersResponse" + }, + { + "name": "HasMember", + "in_type": "HasMemberRequest", + "out_type": "HasMemberResponse" + }, + { + "name": "FindGroups", + "in_type": "FindGroupsRequest", + "out_type": "FindGroupsResponse" + } + ] + } + ], + "imports": [ + { + "path": "cs3/identity/user/v1beta1/resources.proto" + }, + { + "path": "cs3/identity/group/v1beta1/resources.proto" + }, + { + "path": "cs3/rpc/v1beta1/status.proto" + }, + { + "path": "cs3/types/v1beta1/types.proto" + } + ], + "package": { + "name": "cs3.identity.group.v1beta1" + }, + "options": [ + { + "name": "csharp_namespace", + "value": "Cs3.Identity.Group.V1Beta1" + }, + { + "name": "go_package", + "value": "groupv1beta1" + }, + { + "name": "java_multiple_files", + "value": "true" + }, + { + "name": "java_outer_classname", + "value": "GroupApiProto" + }, + { + "name": "java_package", + "value": "com.cs3.identity.group.v1beta1" + }, + { + "name": "objc_class_prefix", + "value": "CIG" + }, + { + "name": "php_namespace", + "value": "Cs3\\\\Identity\\\\Group\\\\V1Beta1" + } + ] + } + }, + { + "protopath": "cs3:/:identity:/:group:/:v1beta1:/:resources.proto", + "def": { + "messages": [ + { + "name": "GroupId", + "fields": [ + { + "id": 1, + "name": "idp", + "type": "string" + }, + { + "id": 2, + "name": "opaque_id", + "type": "string" + } + ] + }, + { + "name": "Group", + "fields": [ + { + "id": 1, + "name": "id", + "type": "GroupId" + }, + { + "id": 2, + "name": "group_name", + "type": "string" + }, + { + "id": 3, + "name": "gid_number", + "type": "int64" + }, + { + "id": 4, + "name": "mail", + "type": "string" + }, + { + "id": 5, + "name": "mail_verified", + "type": "bool" + }, + { + "id": 6, + "name": "display_name", + "type": "string" + }, + { + "id": 7, + "name": "members", + "type": "cs3.identity.user.v1beta1.UserId", + "is_repeated": true + }, + { + "id": 8, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + } + ], + "imports": [ + { + "path": "cs3/identity/user/v1beta1/resources.proto" + }, + { + "path": "cs3/types/v1beta1/types.proto" + } + ], + "package": { + "name": "cs3.identity.group.v1beta1" + }, + "options": [ + { + "name": "csharp_namespace", + "value": "Cs3.Identity.Group.V1Beta1" + }, + { + "name": "go_package", + "value": "groupv1beta1" + }, + { + "name": "java_multiple_files", + "value": "true" + }, + { + "name": "java_outer_classname", + "value": "ResourcesProto" + }, + { + "name": "java_package", + "value": "com.cs3.identity.group.v1beta1" + }, + { + "name": "objc_class_prefix", + "value": "CIU" + }, + { + "name": "php_namespace", + "value": "Cs3\\\\Identity\\\\Group\\\\V1Beta1" + } + ] + } + }, { "protopath": "cs3:/:identity:/:user:/:v1beta1:/:resources.proto", "def": { @@ -1520,6 +1925,16 @@ "id": 7, "name": "opaque", "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 8, + "name": "uid_number", + "type": "int64" + }, + { + "id": 9, + "name": "gid_number", + "type": "int64" } ] } @@ -1694,8 +2109,8 @@ }, { "id": 3, - "name": "group", - "type": "string" + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" } ] }, @@ -1754,42 +2169,6 @@ "is_repeated": true } ] - }, - { - "name": "FindGroupsRequest", - "fields": [ - { - "id": 1, - "name": "opaque", - "type": "cs3.types.v1beta1.Opaque" - }, - { - "id": 2, - "name": "filter", - "type": "string" - } - ] - }, - { - "name": "FindGroupsResponse", - "fields": [ - { - "id": 1, - "name": "status", - "type": "cs3.rpc.v1beta1.Status" - }, - { - "id": 2, - "name": "opaque", - "type": "cs3.types.v1beta1.Opaque" - }, - { - "id": 3, - "name": "groups", - "type": "string", - "is_repeated": true - } - ] } ], "services": [ @@ -1820,11 +2199,6 @@ "name": "FindUsers", "in_type": "FindUsersRequest", "out_type": "FindUsersResponse" - }, - { - "name": "FindGroups", - "in_type": "FindGroupsRequest", - "out_type": "FindGroupsResponse" } ] } @@ -1833,6 +2207,9 @@ { "path": "cs3/identity/user/v1beta1/resources.proto" }, + { + "path": "cs3/identity/group/v1beta1/resources.proto" + }, { "path": "cs3/rpc/v1beta1/status.proto" }, From b8461ffb5f14cbe7d1c06ffef61066cae26a8b7b Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 26 Nov 2020 14:25:53 +0100 Subject: [PATCH 3/5] rename CIU -> CIG --- cs3/identity/group/v1beta1/resources.proto | 2 +- cs3/identity/user/v1beta1/resources.proto | 2 +- cs3/identity/user/v1beta1/user_api.proto | 2 +- proto.lock | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cs3/identity/group/v1beta1/resources.proto b/cs3/identity/group/v1beta1/resources.proto index 5416a920..116643b5 100644 --- a/cs3/identity/group/v1beta1/resources.proto +++ b/cs3/identity/group/v1beta1/resources.proto @@ -25,7 +25,7 @@ option go_package = "groupv1beta1"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.cs3.identity.group.v1beta1"; -option objc_class_prefix = "CIU"; +option objc_class_prefix = "CIG"; option php_namespace = "Cs3\\Identity\\Group\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; diff --git a/cs3/identity/user/v1beta1/resources.proto b/cs3/identity/user/v1beta1/resources.proto index 1d1ddd3d..703a48d6 100644 --- a/cs3/identity/user/v1beta1/resources.proto +++ b/cs3/identity/user/v1beta1/resources.proto @@ -25,7 +25,7 @@ option go_package = "userv1beta1"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.cs3.identity.user.v1beta1"; -option objc_class_prefix = "CIU"; +option objc_class_prefix = "CIG"; option php_namespace = "Cs3\\Identity\\User\\V1Beta1"; import "cs3/types/v1beta1/types.proto"; diff --git a/cs3/identity/user/v1beta1/user_api.proto b/cs3/identity/user/v1beta1/user_api.proto index e6dafbf1..5678962d 100644 --- a/cs3/identity/user/v1beta1/user_api.proto +++ b/cs3/identity/user/v1beta1/user_api.proto @@ -25,7 +25,7 @@ option go_package = "userv1beta1"; option java_multiple_files = true; option java_outer_classname = "UserApiProto"; option java_package = "com.cs3.identity.user.v1beta1"; -option objc_class_prefix = "CIU"; +option objc_class_prefix = "CIG"; option php_namespace = "Cs3\\Identity\\User\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; diff --git a/proto.lock b/proto.lock index 542f5199..d5543cd4 100644 --- a/proto.lock +++ b/proto.lock @@ -1859,7 +1859,7 @@ }, { "name": "objc_class_prefix", - "value": "CIU" + "value": "CIG" }, { "name": "php_namespace", @@ -1970,7 +1970,7 @@ }, { "name": "objc_class_prefix", - "value": "CIU" + "value": "CIG" }, { "name": "php_namespace", @@ -2243,7 +2243,7 @@ }, { "name": "objc_class_prefix", - "value": "CIU" + "value": "CIG" }, { "name": "php_namespace", From c8b902af171e462bf28584c05585d7681c3bf2a7 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 26 Nov 2020 14:27:20 +0100 Subject: [PATCH 4/5] Revert "rename CIU -> CIG" This reverts commit b8461ffb5f14cbe7d1c06ffef61066cae26a8b7b. --- cs3/identity/group/v1beta1/resources.proto | 2 +- cs3/identity/user/v1beta1/resources.proto | 2 +- cs3/identity/user/v1beta1/user_api.proto | 2 +- proto.lock | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cs3/identity/group/v1beta1/resources.proto b/cs3/identity/group/v1beta1/resources.proto index 116643b5..5416a920 100644 --- a/cs3/identity/group/v1beta1/resources.proto +++ b/cs3/identity/group/v1beta1/resources.proto @@ -25,7 +25,7 @@ option go_package = "groupv1beta1"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.cs3.identity.group.v1beta1"; -option objc_class_prefix = "CIG"; +option objc_class_prefix = "CIU"; option php_namespace = "Cs3\\Identity\\Group\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; diff --git a/cs3/identity/user/v1beta1/resources.proto b/cs3/identity/user/v1beta1/resources.proto index 703a48d6..1d1ddd3d 100644 --- a/cs3/identity/user/v1beta1/resources.proto +++ b/cs3/identity/user/v1beta1/resources.proto @@ -25,7 +25,7 @@ option go_package = "userv1beta1"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.cs3.identity.user.v1beta1"; -option objc_class_prefix = "CIG"; +option objc_class_prefix = "CIU"; option php_namespace = "Cs3\\Identity\\User\\V1Beta1"; import "cs3/types/v1beta1/types.proto"; diff --git a/cs3/identity/user/v1beta1/user_api.proto b/cs3/identity/user/v1beta1/user_api.proto index 5678962d..e6dafbf1 100644 --- a/cs3/identity/user/v1beta1/user_api.proto +++ b/cs3/identity/user/v1beta1/user_api.proto @@ -25,7 +25,7 @@ option go_package = "userv1beta1"; option java_multiple_files = true; option java_outer_classname = "UserApiProto"; option java_package = "com.cs3.identity.user.v1beta1"; -option objc_class_prefix = "CIG"; +option objc_class_prefix = "CIU"; option php_namespace = "Cs3\\Identity\\User\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; diff --git a/proto.lock b/proto.lock index d5543cd4..542f5199 100644 --- a/proto.lock +++ b/proto.lock @@ -1859,7 +1859,7 @@ }, { "name": "objc_class_prefix", - "value": "CIG" + "value": "CIU" }, { "name": "php_namespace", @@ -1970,7 +1970,7 @@ }, { "name": "objc_class_prefix", - "value": "CIG" + "value": "CIU" }, { "name": "php_namespace", @@ -2243,7 +2243,7 @@ }, { "name": "objc_class_prefix", - "value": "CIG" + "value": "CIU" }, { "name": "php_namespace", From 93650040f08b5f6b2f0f1992084f9b68aeac03d4 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 26 Nov 2020 14:28:01 +0100 Subject: [PATCH 5/5] rename CIU -> CIG --- cs3/identity/group/v1beta1/resources.proto | 2 +- proto.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cs3/identity/group/v1beta1/resources.proto b/cs3/identity/group/v1beta1/resources.proto index 5416a920..116643b5 100644 --- a/cs3/identity/group/v1beta1/resources.proto +++ b/cs3/identity/group/v1beta1/resources.proto @@ -25,7 +25,7 @@ option go_package = "groupv1beta1"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.cs3.identity.group.v1beta1"; -option objc_class_prefix = "CIU"; +option objc_class_prefix = "CIG"; option php_namespace = "Cs3\\Identity\\Group\\V1Beta1"; import "cs3/identity/user/v1beta1/resources.proto"; diff --git a/proto.lock b/proto.lock index 542f5199..b5dd6f4b 100644 --- a/proto.lock +++ b/proto.lock @@ -1859,7 +1859,7 @@ }, { "name": "objc_class_prefix", - "value": "CIU" + "value": "CIG" }, { "name": "php_namespace",