1616)
1717from ...pagination import SyncMembersPage , AsyncMembersPage
1818from ..._base_client import AsyncPaginator , make_request_options
19- from ...types .groups import membership_list_params , membership_create_params , membership_delete_params
19+ from ...types .groups import (
20+ membership_list_params ,
21+ membership_create_params ,
22+ membership_delete_params ,
23+ membership_retrieve_params ,
24+ )
2025from ...types .shared_params .subject import Subject
2126from ...types .groups .group_membership import GroupMembership
2227from ...types .groups .membership_create_response import MembershipCreateResponse
28+ from ...types .groups .membership_retrieve_response import MembershipRetrieveResponse
2329
2430__all__ = ["MembershipsResource" , "AsyncMembershipsResource" ]
2531
@@ -108,6 +114,69 @@ def create(
108114 cast_to = MembershipCreateResponse ,
109115 )
110116
117+ def retrieve (
118+ self ,
119+ * ,
120+ subject : Subject ,
121+ group_id : str | Omit = omit ,
122+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
123+ # The extra values given here take precedence over values defined on the client or passed to this method.
124+ extra_headers : Headers | None = None ,
125+ extra_query : Query | None = None ,
126+ extra_body : Body | None = None ,
127+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
128+ ) -> MembershipRetrieveResponse :
129+ """
130+ Gets a specific membership by group ID and subject.
131+
132+ Use this method to:
133+
134+ - Check if a user or service account is a member of a group
135+ - Verify group membership for access control
136+
137+ ### Examples
138+
139+ - Check user membership:
140+
141+ Checks if a user is a member of a specific group.
142+
143+ ```yaml
144+ groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
145+ subject:
146+ id: "f53d2330-3795-4c5d-a1f3-453121af9c60"
147+ principal: PRINCIPAL_USER
148+ ```
149+
150+ ### Authorization
151+
152+ All organization members can check group membership (transparency model).
153+
154+ Args:
155+ subject: Subject to check membership for
156+
157+ extra_headers: Send extra headers
158+
159+ extra_query: Add additional query parameters to the request
160+
161+ extra_body: Add additional JSON properties to the request
162+
163+ timeout: Override the client-level default timeout for this request, in seconds
164+ """
165+ return self ._post (
166+ "/gitpod.v1.GroupService/GetMembership" ,
167+ body = maybe_transform (
168+ {
169+ "subject" : subject ,
170+ "group_id" : group_id ,
171+ },
172+ membership_retrieve_params .MembershipRetrieveParams ,
173+ ),
174+ options = make_request_options (
175+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
176+ ),
177+ cast_to = MembershipRetrieveResponse ,
178+ )
179+
111180 def list (
112181 self ,
113182 * ,
@@ -323,6 +392,69 @@ async def create(
323392 cast_to = MembershipCreateResponse ,
324393 )
325394
395+ async def retrieve (
396+ self ,
397+ * ,
398+ subject : Subject ,
399+ group_id : str | Omit = omit ,
400+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
401+ # The extra values given here take precedence over values defined on the client or passed to this method.
402+ extra_headers : Headers | None = None ,
403+ extra_query : Query | None = None ,
404+ extra_body : Body | None = None ,
405+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
406+ ) -> MembershipRetrieveResponse :
407+ """
408+ Gets a specific membership by group ID and subject.
409+
410+ Use this method to:
411+
412+ - Check if a user or service account is a member of a group
413+ - Verify group membership for access control
414+
415+ ### Examples
416+
417+ - Check user membership:
418+
419+ Checks if a user is a member of a specific group.
420+
421+ ```yaml
422+ groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
423+ subject:
424+ id: "f53d2330-3795-4c5d-a1f3-453121af9c60"
425+ principal: PRINCIPAL_USER
426+ ```
427+
428+ ### Authorization
429+
430+ All organization members can check group membership (transparency model).
431+
432+ Args:
433+ subject: Subject to check membership for
434+
435+ extra_headers: Send extra headers
436+
437+ extra_query: Add additional query parameters to the request
438+
439+ extra_body: Add additional JSON properties to the request
440+
441+ timeout: Override the client-level default timeout for this request, in seconds
442+ """
443+ return await self ._post (
444+ "/gitpod.v1.GroupService/GetMembership" ,
445+ body = await async_maybe_transform (
446+ {
447+ "subject" : subject ,
448+ "group_id" : group_id ,
449+ },
450+ membership_retrieve_params .MembershipRetrieveParams ,
451+ ),
452+ options = make_request_options (
453+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
454+ ),
455+ cast_to = MembershipRetrieveResponse ,
456+ )
457+
326458 def list (
327459 self ,
328460 * ,
@@ -463,6 +595,9 @@ def __init__(self, memberships: MembershipsResource) -> None:
463595 self .create = to_raw_response_wrapper (
464596 memberships .create ,
465597 )
598+ self .retrieve = to_raw_response_wrapper (
599+ memberships .retrieve ,
600+ )
466601 self .list = to_raw_response_wrapper (
467602 memberships .list ,
468603 )
@@ -478,6 +613,9 @@ def __init__(self, memberships: AsyncMembershipsResource) -> None:
478613 self .create = async_to_raw_response_wrapper (
479614 memberships .create ,
480615 )
616+ self .retrieve = async_to_raw_response_wrapper (
617+ memberships .retrieve ,
618+ )
481619 self .list = async_to_raw_response_wrapper (
482620 memberships .list ,
483621 )
@@ -493,6 +631,9 @@ def __init__(self, memberships: MembershipsResource) -> None:
493631 self .create = to_streamed_response_wrapper (
494632 memberships .create ,
495633 )
634+ self .retrieve = to_streamed_response_wrapper (
635+ memberships .retrieve ,
636+ )
496637 self .list = to_streamed_response_wrapper (
497638 memberships .list ,
498639 )
@@ -508,6 +649,9 @@ def __init__(self, memberships: AsyncMembershipsResource) -> None:
508649 self .create = async_to_streamed_response_wrapper (
509650 memberships .create ,
510651 )
652+ self .retrieve = async_to_streamed_response_wrapper (
653+ memberships .retrieve ,
654+ )
511655 self .list = async_to_streamed_response_wrapper (
512656 memberships .list ,
513657 )
0 commit comments