11from typing import Optional , Protocol , Sequence
22
3+ from workos .types .metadata import Metadata
34from workos .types .organizations .domain_data_input import DomainDataInput
45from workos .types .organizations .list_filters import OrganizationListFilters
56from workos .types .roles .role import RoleList
@@ -60,13 +61,13 @@ def get_organization(self, organization_id: str) -> SyncOrAsync[Organization]:
6061 """
6162 ...
6263
63- def get_organization_by_lookup_key (
64- self , lookup_key : str
64+ def get_organization_by_external_id (
65+ self , external_id : str
6566 ) -> SyncOrAsync [Organization ]:
66- """Gets details for a single Organization by lookup key
67+ """Gets details for a single Organization by external id
6768
6869 Args:
69- lookup_key (str): Organization's lookup key
70+ external_id (str): Organization's external id
7071
7172 Returns:
7273 Organization: Organization response from WorkOS
@@ -79,6 +80,8 @@ def create_organization(
7980 name : str ,
8081 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
8182 idempotency_key : Optional [str ] = None ,
83+ external_id : Optional [str ] = None ,
84+ metadata : Optional [Metadata ] = None ,
8285 ) -> SyncOrAsync [Organization ]:
8386 """Create an organization
8487
@@ -98,6 +101,8 @@ def update_organization(
98101 organization_id : str ,
99102 name : Optional [str ] = None ,
100103 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
104+ external_id : Optional [str ] = None ,
105+ metadata : Optional [Metadata ] = None ,
101106 ) -> SyncOrAsync [Organization ]:
102107 """Update an organization
103108
@@ -125,7 +130,6 @@ def delete_organization(self, organization_id: str) -> SyncOrAsync[None]:
125130
126131
127132class Organizations (OrganizationsModule ):
128-
129133 _http_client : SyncHTTPClient
130134
131135 def __init__ (self , http_client : SyncHTTPClient ):
@@ -167,9 +171,9 @@ def get_organization(self, organization_id: str) -> Organization:
167171
168172 return Organization .model_validate (response )
169173
170- def get_organization_by_lookup_key (self , lookup_key : str ) -> Organization :
174+ def get_organization_by_external_id (self , external_id : str ) -> Organization :
171175 response = self ._http_client .request (
172- "organizations/by_lookup_key/{lookup_key }" .format (lookup_key = lookup_key ),
176+ "organizations/external_id/{external_id }" .format (external_id = external_id ),
173177 method = REQUEST_METHOD_GET ,
174178 )
175179
@@ -181,6 +185,8 @@ def create_organization(
181185 name : str ,
182186 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
183187 idempotency_key : Optional [str ] = None ,
188+ external_id : Optional [str ] = None ,
189+ metadata : Optional [Metadata ] = None ,
184190 ) -> Organization :
185191 headers = {}
186192 if idempotency_key :
@@ -190,6 +196,8 @@ def create_organization(
190196 "name" : name ,
191197 "domain_data" : domain_data ,
192198 "idempotency_key" : idempotency_key ,
199+ "external_id" : external_id ,
200+ "metadata" : metadata ,
193201 }
194202
195203 response = self ._http_client .request (
@@ -208,11 +216,15 @@ def update_organization(
208216 name : Optional [str ] = None ,
209217 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
210218 stripe_customer_id : Optional [str ] = None ,
219+ external_id : Optional [str ] = None ,
220+ metadata : Optional [Metadata ] = None ,
211221 ) -> Organization :
212222 json = {
213223 "name" : name ,
214224 "domain_data" : domain_data ,
215225 "stripe_customer_id" : stripe_customer_id ,
226+ "external_id" : external_id ,
227+ "metadata" : metadata ,
216228 }
217229
218230 response = self ._http_client .request (
@@ -237,7 +249,6 @@ def list_organization_roles(self, organization_id: str) -> RoleList:
237249
238250
239251class AsyncOrganizations (OrganizationsModule ):
240-
241252 _http_client : AsyncHTTPClient
242253
243254 def __init__ (self , http_client : AsyncHTTPClient ):
@@ -279,9 +290,9 @@ async def get_organization(self, organization_id: str) -> Organization:
279290
280291 return Organization .model_validate (response )
281292
282- async def get_organization_by_lookup_key (self , lookup_key : str ) -> Organization :
293+ async def get_organization_by_external_id (self , external_id : str ) -> Organization :
283294 response = await self ._http_client .request (
284- "organizations/by_lookup_key/{lookup_key }" .format (lookup_key = lookup_key ),
295+ "organizations/external_id/{external_id }" .format (external_id = external_id ),
285296 method = REQUEST_METHOD_GET ,
286297 )
287298
@@ -293,6 +304,8 @@ async def create_organization(
293304 name : str ,
294305 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
295306 idempotency_key : Optional [str ] = None ,
307+ external_id : Optional [str ] = None ,
308+ metadata : Optional [Metadata ] = None ,
296309 ) -> Organization :
297310 headers = {}
298311 if idempotency_key :
@@ -302,6 +315,8 @@ async def create_organization(
302315 "name" : name ,
303316 "domain_data" : domain_data ,
304317 "idempotency_key" : idempotency_key ,
318+ "external_id" : external_id ,
319+ "metadata" : metadata ,
305320 }
306321
307322 response = await self ._http_client .request (
@@ -320,11 +335,15 @@ async def update_organization(
320335 name : Optional [str ] = None ,
321336 domain_data : Optional [Sequence [DomainDataInput ]] = None ,
322337 stripe_customer_id : Optional [str ] = None ,
338+ external_id : Optional [str ] = None ,
339+ metadata : Optional [Metadata ] = None ,
323340 ) -> Organization :
324341 json = {
325342 "name" : name ,
326343 "domain_data" : domain_data ,
327344 "stripe_customer_id" : stripe_customer_id ,
345+ "external_id" : external_id ,
346+ "metadata" : metadata ,
328347 }
329348
330349 response = await self ._http_client .request (
0 commit comments