Skip to content

Commit df1cf39

Browse files
feat: [api] Introduce RPCs to share resources with individual users
1 parent 78c0bdd commit df1cf39

File tree

18 files changed

+806
-16
lines changed

18 files changed

+806
-16
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 167
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-dfd13e2785a9e0e662f79aab0c03d45144d803fedd87510ec27791b79ede6162.yml
3-
openapi_spec_hash: 8dcab0c2c65f9eb778e9b2cf3c44bf5c
4-
config_hash: 21bab2a4731f1e55c0a2c62588576282
1+
configured_endpoints: 169
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-6b80aebab53bff73bb7b87c5f91f98c6dd5db2d623b6c613aaa5e61252b74d75.yml
3+
openapi_spec_hash: 9636e315ac739c1ab9cba65a7ead6559
4+
config_hash: 73893621fd64bbd87b86671decf334e6

api.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ from gitpod.types import (
1313
OrganizationTier,
1414
Principal,
1515
ProjectEnvironmentClass,
16+
ResourceRole,
1617
ResourceType,
1718
RunsOn,
1819
SecretRef,
@@ -302,7 +303,7 @@ Methods:
302303
Types:
303304

304305
```python
305-
from gitpod.types.groups import ResourceRole, RoleAssignment, RoleAssignmentCreateResponse
306+
from gitpod.types.groups import RoleAssignment, RoleAssignmentCreateResponse
306307
```
307308

308309
Methods:
@@ -311,6 +312,13 @@ Methods:
311312
- <code title="post /gitpod.v1.GroupService/ListRoleAssignments">client.groups.role_assignments.<a href="./src/gitpod/resources/groups/role_assignments.py">list</a>(\*\*<a href="src/gitpod/types/groups/role_assignment_list_params.py">params</a>) -> <a href="./src/gitpod/types/groups/role_assignment.py">SyncAssignmentsPage[RoleAssignment]</a></code>
312313
- <code title="post /gitpod.v1.GroupService/DeleteRoleAssignment">client.groups.role_assignments.<a href="./src/gitpod/resources/groups/role_assignments.py">delete</a>(\*\*<a href="src/gitpod/types/groups/role_assignment_delete_params.py">params</a>) -> object</code>
313314

315+
## Shares
316+
317+
Methods:
318+
319+
- <code title="post /gitpod.v1.GroupService/ShareResourceWithPrincipal">client.groups.shares.<a href="./src/gitpod/resources/groups/shares.py">create</a>(\*\*<a href="src/gitpod/types/groups/share_create_params.py">params</a>) -> object</code>
320+
- <code title="post /gitpod.v1.GroupService/UnshareResourceWithPrincipal">client.groups.shares.<a href="./src/gitpod/resources/groups/shares.py">delete</a>(\*\*<a href="src/gitpod/types/groups/share_delete_params.py">params</a>) -> object</code>
321+
314322
# Identity
315323

316324
Types:

src/gitpod/resources/groups/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
GroupsResourceWithStreamingResponse,
99
AsyncGroupsResourceWithStreamingResponse,
1010
)
11+
from .shares import (
12+
SharesResource,
13+
AsyncSharesResource,
14+
SharesResourceWithRawResponse,
15+
AsyncSharesResourceWithRawResponse,
16+
SharesResourceWithStreamingResponse,
17+
AsyncSharesResourceWithStreamingResponse,
18+
)
1119
from .memberships import (
1220
MembershipsResource,
1321
AsyncMembershipsResource,
@@ -38,6 +46,12 @@
3846
"AsyncRoleAssignmentsResourceWithRawResponse",
3947
"RoleAssignmentsResourceWithStreamingResponse",
4048
"AsyncRoleAssignmentsResourceWithStreamingResponse",
49+
"SharesResource",
50+
"AsyncSharesResource",
51+
"SharesResourceWithRawResponse",
52+
"AsyncSharesResourceWithRawResponse",
53+
"SharesResourceWithStreamingResponse",
54+
"AsyncSharesResourceWithStreamingResponse",
4155
"GroupsResource",
4256
"AsyncGroupsResource",
4357
"GroupsResourceWithRawResponse",

src/gitpod/resources/groups/groups.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44

55
import httpx
66

7+
from .shares import (
8+
SharesResource,
9+
AsyncSharesResource,
10+
SharesResourceWithRawResponse,
11+
AsyncSharesResourceWithRawResponse,
12+
SharesResourceWithStreamingResponse,
13+
AsyncSharesResourceWithStreamingResponse,
14+
)
715
from ...types import (
816
group_list_params,
917
group_create_params,
@@ -56,6 +64,10 @@ def memberships(self) -> MembershipsResource:
5664
def role_assignments(self) -> RoleAssignmentsResource:
5765
return RoleAssignmentsResource(self._client)
5866

67+
@cached_property
68+
def shares(self) -> SharesResource:
69+
return SharesResource(self._client)
70+
5971
@cached_property
6072
def with_raw_response(self) -> GroupsResourceWithRawResponse:
6173
"""
@@ -396,6 +408,10 @@ def memberships(self) -> AsyncMembershipsResource:
396408
def role_assignments(self) -> AsyncRoleAssignmentsResource:
397409
return AsyncRoleAssignmentsResource(self._client)
398410

411+
@cached_property
412+
def shares(self) -> AsyncSharesResource:
413+
return AsyncSharesResource(self._client)
414+
399415
@cached_property
400416
def with_raw_response(self) -> AsyncGroupsResourceWithRawResponse:
401417
"""
@@ -755,6 +771,10 @@ def memberships(self) -> MembershipsResourceWithRawResponse:
755771
def role_assignments(self) -> RoleAssignmentsResourceWithRawResponse:
756772
return RoleAssignmentsResourceWithRawResponse(self._groups.role_assignments)
757773

774+
@cached_property
775+
def shares(self) -> SharesResourceWithRawResponse:
776+
return SharesResourceWithRawResponse(self._groups.shares)
777+
758778

759779
class AsyncGroupsResourceWithRawResponse:
760780
def __init__(self, groups: AsyncGroupsResource) -> None:
@@ -784,6 +804,10 @@ def memberships(self) -> AsyncMembershipsResourceWithRawResponse:
784804
def role_assignments(self) -> AsyncRoleAssignmentsResourceWithRawResponse:
785805
return AsyncRoleAssignmentsResourceWithRawResponse(self._groups.role_assignments)
786806

807+
@cached_property
808+
def shares(self) -> AsyncSharesResourceWithRawResponse:
809+
return AsyncSharesResourceWithRawResponse(self._groups.shares)
810+
787811

788812
class GroupsResourceWithStreamingResponse:
789813
def __init__(self, groups: GroupsResource) -> None:
@@ -813,6 +837,10 @@ def memberships(self) -> MembershipsResourceWithStreamingResponse:
813837
def role_assignments(self) -> RoleAssignmentsResourceWithStreamingResponse:
814838
return RoleAssignmentsResourceWithStreamingResponse(self._groups.role_assignments)
815839

840+
@cached_property
841+
def shares(self) -> SharesResourceWithStreamingResponse:
842+
return SharesResourceWithStreamingResponse(self._groups.shares)
843+
816844

817845
class AsyncGroupsResourceWithStreamingResponse:
818846
def __init__(self, groups: AsyncGroupsResource) -> None:
@@ -841,3 +869,7 @@ def memberships(self) -> AsyncMembershipsResourceWithStreamingResponse:
841869
@cached_property
842870
def role_assignments(self) -> AsyncRoleAssignmentsResourceWithStreamingResponse:
843871
return AsyncRoleAssignmentsResourceWithStreamingResponse(self._groups.role_assignments)
872+
873+
@cached_property
874+
def shares(self) -> AsyncSharesResourceWithStreamingResponse:
875+
return AsyncSharesResourceWithStreamingResponse(self._groups.shares)

src/gitpod/resources/groups/role_assignments.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,8 @@
1616
)
1717
from ...pagination import SyncAssignmentsPage, AsyncAssignmentsPage
1818
from ..._base_client import AsyncPaginator, make_request_options
19-
from ...types.groups import (
20-
ResourceRole,
21-
role_assignment_list_params,
22-
role_assignment_create_params,
23-
role_assignment_delete_params,
24-
)
25-
from ...types.groups.resource_role import ResourceRole
19+
from ...types.groups import role_assignment_list_params, role_assignment_create_params, role_assignment_delete_params
20+
from ...types.shared.resource_role import ResourceRole
2621
from ...types.shared.resource_type import ResourceType
2722
from ...types.groups.role_assignment import RoleAssignment
2823
from ...types.groups.role_assignment_create_response import RoleAssignmentCreateResponse

0 commit comments

Comments
 (0)