|
1 | | -from typing import Any, Dict, Optional |
| 1 | +from typing import Any, Dict, List, Optional |
2 | 2 | from portkey_ai.api_resources.base_client import APIClient, AsyncAPIClient |
3 | 3 | from urllib.parse import urlencode |
4 | 4 | from portkey_ai.api_resources.apis.api_resource import APIResource, AsyncAPIResource |
|
9 | 9 | class Integrations(APIResource): |
10 | 10 | def __init__(self, client: APIClient) -> None: |
11 | 11 | super().__init__(client) |
| 12 | + self.workspaces = IntegrationsWorkspaces(client) |
12 | 13 |
|
13 | 14 | def create( |
14 | 15 | self, |
@@ -126,9 +127,57 @@ def delete( |
126 | 127 | ) |
127 | 128 |
|
128 | 129 |
|
| 130 | +class IntegrationsWorkspaces(APIResource): |
| 131 | + def __init__(self, client: APIClient) -> None: |
| 132 | + super().__init__(client) |
| 133 | + |
| 134 | + def list( |
| 135 | + self, |
| 136 | + *, |
| 137 | + provider_integration_id: Optional[str] = None, |
| 138 | + ) -> GenericResponse: |
| 139 | + return self._get( |
| 140 | + f"{PortkeyApiPaths.INTEGRATIONS_API}/{provider_integration_id}/workspaces", |
| 141 | + params=None, |
| 142 | + body=None, |
| 143 | + cast_to=GenericResponse, |
| 144 | + stream=False, |
| 145 | + stream_cls=None, |
| 146 | + headers={}, |
| 147 | + ) |
| 148 | + |
| 149 | + def update( |
| 150 | + self, |
| 151 | + *, |
| 152 | + provider_integration_id: Optional[str] = None, |
| 153 | + global_workspace_access: Optional[Dict[str, Any]] = None, |
| 154 | + workspace_ids: Optional[List[str]] = None, |
| 155 | + override_existing_workspaces_access: Optional[bool] = None, |
| 156 | + workspaces: Optional[List[Dict[str, Any]]] = None, |
| 157 | + **kwargs: Any, |
| 158 | + ) -> GenericResponse: |
| 159 | + body = { |
| 160 | + "global_workspace_access": global_workspace_access, |
| 161 | + "workspace_ids": workspace_ids, |
| 162 | + "override_existing_workspaces_access": override_existing_workspaces_access, |
| 163 | + "workspaces": workspaces, |
| 164 | + **kwargs, |
| 165 | + } |
| 166 | + return self._put( |
| 167 | + f"{PortkeyApiPaths.INTEGRATIONS_API}/{provider_integration_id}/workspaces", |
| 168 | + body=body, |
| 169 | + params=None, |
| 170 | + cast_to=GenericResponse, |
| 171 | + stream=False, |
| 172 | + stream_cls=None, |
| 173 | + headers={}, |
| 174 | + ) |
| 175 | + |
| 176 | + |
129 | 177 | class AsyncIntegrations(AsyncAPIResource): |
130 | 178 | def __init__(self, client: AsyncAPIClient) -> None: |
131 | 179 | super().__init__(client) |
| 180 | + self.workspaces = AsyncIntegrationsWorkspaces(client) |
132 | 181 |
|
133 | 182 | async def create( |
134 | 183 | self, |
@@ -244,3 +293,50 @@ async def delete( |
244 | 293 | stream_cls=None, |
245 | 294 | headers={}, |
246 | 295 | ) |
| 296 | + |
| 297 | + |
| 298 | +class AsyncIntegrationsWorkspaces(AsyncAPIResource): |
| 299 | + def __init__(self, client: AsyncAPIClient) -> None: |
| 300 | + super().__init__(client) |
| 301 | + |
| 302 | + async def list( |
| 303 | + self, |
| 304 | + *, |
| 305 | + provider_integration_id: Optional[str] = None, |
| 306 | + ) -> GenericResponse: |
| 307 | + return await self._get( |
| 308 | + f"{PortkeyApiPaths.INTEGRATIONS_API}/{provider_integration_id}/workspaces", |
| 309 | + params=None, |
| 310 | + body=None, |
| 311 | + cast_to=GenericResponse, |
| 312 | + stream=False, |
| 313 | + stream_cls=None, |
| 314 | + headers={}, |
| 315 | + ) |
| 316 | + |
| 317 | + async def update( |
| 318 | + self, |
| 319 | + *, |
| 320 | + provider_integration_id: Optional[str] = None, |
| 321 | + global_workspace_access: Optional[Dict[str, Any]] = None, |
| 322 | + workspace_ids: Optional[List[str]] = None, |
| 323 | + override_existing_workspaces_access: Optional[bool] = None, |
| 324 | + workspaces: Optional[List[Dict[str, Any]]] = None, |
| 325 | + **kwargs: Any, |
| 326 | + ) -> GenericResponse: |
| 327 | + body = { |
| 328 | + "global_workspace_access": global_workspace_access, |
| 329 | + "workspace_ids": workspace_ids, |
| 330 | + "override_existing_workspaces_access": override_existing_workspaces_access, |
| 331 | + "workspaces": workspaces, |
| 332 | + **kwargs, |
| 333 | + } |
| 334 | + return await self._put( |
| 335 | + f"{PortkeyApiPaths.INTEGRATIONS_API}/{provider_integration_id}/workspaces", |
| 336 | + body=body, |
| 337 | + params=None, |
| 338 | + cast_to=GenericResponse, |
| 339 | + stream=False, |
| 340 | + stream_cls=None, |
| 341 | + headers={}, |
| 342 | + ) |
0 commit comments