@@ -67,6 +67,36 @@ func (r *GroupMembershipService) New(ctx context.Context, body GroupMembershipNe
6767 return
6868}
6969
70+ // Gets a specific membership by group ID and subject.
71+ //
72+ // Use this method to:
73+ //
74+ // - Check if a user or service account is a member of a group
75+ // - Verify group membership for access control
76+ //
77+ // ### Examples
78+ //
79+ // - Check user membership:
80+ //
81+ // Checks if a user is a member of a specific group.
82+ //
83+ // ```yaml
84+ // groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
85+ // subject:
86+ // id: "f53d2330-3795-4c5d-a1f3-453121af9c60"
87+ // principal: PRINCIPAL_USER
88+ // ```
89+ //
90+ // ### Authorization
91+ //
92+ // All organization members can check group membership (transparency model).
93+ func (r * GroupMembershipService ) Get (ctx context.Context , body GroupMembershipGetParams , opts ... option.RequestOption ) (res * GroupMembershipGetResponse , err error ) {
94+ opts = slices .Concat (r .Options , opts )
95+ path := "gitpod.v1.GroupService/GetMembership"
96+ err = requestconfig .ExecuteNewRequest (ctx , http .MethodPost , path , body , & res , opts ... )
97+ return
98+ }
99+
70100// Lists all memberships of a group.
71101//
72102// Use this method to:
@@ -216,6 +246,28 @@ func (r groupMembershipNewResponseJSON) RawJSON() string {
216246 return r .raw
217247}
218248
249+ type GroupMembershipGetResponse struct {
250+ // The membership if found, nil if subject is not a member
251+ Member GroupMembership `json:"member"`
252+ JSON groupMembershipGetResponseJSON `json:"-"`
253+ }
254+
255+ // groupMembershipGetResponseJSON contains the JSON metadata for the struct
256+ // [GroupMembershipGetResponse]
257+ type groupMembershipGetResponseJSON struct {
258+ Member apijson.Field
259+ raw string
260+ ExtraFields map [string ]apijson.Field
261+ }
262+
263+ func (r * GroupMembershipGetResponse ) UnmarshalJSON (data []byte ) (err error ) {
264+ return apijson .UnmarshalRoot (data , r )
265+ }
266+
267+ func (r groupMembershipGetResponseJSON ) RawJSON () string {
268+ return r .raw
269+ }
270+
219271type GroupMembershipDeleteResponse = interface {}
220272
221273type GroupMembershipNewParams struct {
@@ -228,6 +280,16 @@ func (r GroupMembershipNewParams) MarshalJSON() (data []byte, err error) {
228280 return apijson .MarshalRoot (r )
229281}
230282
283+ type GroupMembershipGetParams struct {
284+ // Subject to check membership for
285+ Subject param.Field [shared.SubjectParam ] `json:"subject,required"`
286+ GroupID param.Field [string ] `json:"groupId" format:"uuid"`
287+ }
288+
289+ func (r GroupMembershipGetParams ) MarshalJSON () (data []byte , err error ) {
290+ return apijson .MarshalRoot (r )
291+ }
292+
231293type GroupMembershipListParams struct {
232294 Token param.Field [string ] `query:"token"`
233295 PageSize param.Field [int64 ] `query:"pageSize"`
0 commit comments