Skip to content

Commit bf94aa9

Browse files
committed
Refactor API models and enhance error handling
- Introduced new error response models: `ErrorRsp`, `ErrorRspAllOfError`, and `ErrorRspAllOfErrorValidation` to standardize error handling across the API. - Added `GenericRsp` model for consistent response structure. - Updated existing models to utilize the new `Paging` model for pagination. - Refactored API endpoints to return `GenericRsp` instead of specific response types, improving flexibility. - Consolidated common definitions into `common.yml` for better organization and maintainability.
1 parent 8e368b9 commit bf94aa9

30 files changed

Lines changed: 3451 additions & 2927 deletions

scripts/backend_api_public_v2.yml

Lines changed: 2734 additions & 2767 deletions
Large diffs are not rendered by default.

scripts/common.yml

Lines changed: 483 additions & 0 deletions
Large diffs are not rendered by default.

scripts/generate-openapi.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ GENERATED_PROJECT_NAME="corbado-python-generated"
55
echo "Generating OpenAPI code ..."
66

77
cd "$(dirname "$0")"
8-
cp backend_api_public_v2.yml .gen/backend_api_public_v2.yml
8+
99
#rm -rf .gen
1010
mkdir -p .gen
11+
cp backend_api_public_v2.yml .gen/backend_api_public_v2.yml
12+
cp common.yml .gen/common.yml
1113
cd .gen
1214
rm -rf ../../src/$SDK_PACKAGE_NAME/$GENERATED_PACKAGE_NAME
1315
mkdir -p ../../src/$SDK_PACKAGE_NAME/$GENERATED_PACKAGE_NAME
1416

15-
16-
curl -s https://backendapi.cloud.corbado.io/v2/openapi.yaml -o backend_api_public_v2.yml
1717
docker run -v ${PWD}:/local --user $(id -u):$(id -g) openapitools/openapi-generator-cli generate -i /local/backend_api_public_v2.yml -g python -o /local --additional-properties=packageName=$SDK_PACKAGE_NAME.$GENERATED_PACKAGE_NAME,projectName=$GENERATED_PROJECT_NAME
1818

1919
cp -r $SDK_PACKAGE_NAME/$GENERATED_PACKAGE_NAME/* ../../src/$SDK_PACKAGE_NAME/$GENERATED_PACKAGE_NAME

src/corbado_python_sdk/generated/__init__.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@
7575
"DecisionTag",
7676
"DetectionInsights",
7777
"DetectionTag",
78+
"ErrorRsp",
79+
"ErrorRspAllOfError",
80+
"ErrorRspAllOfErrorValidation",
81+
"GenericRsp",
7882
"Identifier",
7983
"IdentifierCreateReq",
8084
"IdentifierList",
@@ -83,6 +87,7 @@
8387
"IdentifierUpdateReq",
8488
"JavaScriptHighEntropy",
8589
"NativeMeta",
90+
"Paging",
8691
"ParsedDeviceInfo",
8792
"PasskeyAppendFinishReq",
8893
"PasskeyAppendFinishRsp",
@@ -117,21 +122,18 @@
117122
"PasswordManager",
118123
"PasswordManagerList",
119124
"ProjectConfigUpdateCnameReq",
125+
"RequestData",
126+
"Session",
120127
"SessionList",
121-
"SessionListSessionsInner",
128+
"SessionStatus",
122129
"SocialAccount",
123130
"SocialAccountCreateReq",
124131
"SocialAccountList",
132+
"SocialProviderType",
125133
"User",
126134
"UserAggregate",
127135
"UserCreateReq",
128-
"UserDelete200Response",
129136
"UserList",
130-
"UserListDefaultResponse",
131-
"UserListDefaultResponseAllOfError",
132-
"UserListDefaultResponseAllOfErrorValidationInner",
133-
"UserListDefaultResponseAllOfRequestData",
134-
"UserListPaging",
135137
"UserStatus",
136138
"UserUpdateReq",
137139
"WebhookEndpoint",
@@ -202,6 +204,10 @@
202204
from corbado_python_sdk.generated.models.decision_tag import DecisionTag as DecisionTag
203205
from corbado_python_sdk.generated.models.detection_insights import DetectionInsights as DetectionInsights
204206
from corbado_python_sdk.generated.models.detection_tag import DetectionTag as DetectionTag
207+
from corbado_python_sdk.generated.models.error_rsp import ErrorRsp as ErrorRsp
208+
from corbado_python_sdk.generated.models.error_rsp_all_of_error import ErrorRspAllOfError as ErrorRspAllOfError
209+
from corbado_python_sdk.generated.models.error_rsp_all_of_error_validation import ErrorRspAllOfErrorValidation as ErrorRspAllOfErrorValidation
210+
from corbado_python_sdk.generated.models.generic_rsp import GenericRsp as GenericRsp
205211
from corbado_python_sdk.generated.models.identifier import Identifier as Identifier
206212
from corbado_python_sdk.generated.models.identifier_create_req import IdentifierCreateReq as IdentifierCreateReq
207213
from corbado_python_sdk.generated.models.identifier_list import IdentifierList as IdentifierList
@@ -210,6 +216,7 @@
210216
from corbado_python_sdk.generated.models.identifier_update_req import IdentifierUpdateReq as IdentifierUpdateReq
211217
from corbado_python_sdk.generated.models.java_script_high_entropy import JavaScriptHighEntropy as JavaScriptHighEntropy
212218
from corbado_python_sdk.generated.models.native_meta import NativeMeta as NativeMeta
219+
from corbado_python_sdk.generated.models.paging import Paging as Paging
213220
from corbado_python_sdk.generated.models.parsed_device_info import ParsedDeviceInfo as ParsedDeviceInfo
214221
from corbado_python_sdk.generated.models.passkey_append_finish_req import PasskeyAppendFinishReq as PasskeyAppendFinishReq
215222
from corbado_python_sdk.generated.models.passkey_append_finish_rsp import PasskeyAppendFinishRsp as PasskeyAppendFinishRsp
@@ -244,21 +251,18 @@
244251
from corbado_python_sdk.generated.models.password_manager import PasswordManager as PasswordManager
245252
from corbado_python_sdk.generated.models.password_manager_list import PasswordManagerList as PasswordManagerList
246253
from corbado_python_sdk.generated.models.project_config_update_cname_req import ProjectConfigUpdateCnameReq as ProjectConfigUpdateCnameReq
254+
from corbado_python_sdk.generated.models.request_data import RequestData as RequestData
255+
from corbado_python_sdk.generated.models.session import Session as Session
247256
from corbado_python_sdk.generated.models.session_list import SessionList as SessionList
248-
from corbado_python_sdk.generated.models.session_list_sessions_inner import SessionListSessionsInner as SessionListSessionsInner
257+
from corbado_python_sdk.generated.models.session_status import SessionStatus as SessionStatus
249258
from corbado_python_sdk.generated.models.social_account import SocialAccount as SocialAccount
250259
from corbado_python_sdk.generated.models.social_account_create_req import SocialAccountCreateReq as SocialAccountCreateReq
251260
from corbado_python_sdk.generated.models.social_account_list import SocialAccountList as SocialAccountList
261+
from corbado_python_sdk.generated.models.social_provider_type import SocialProviderType as SocialProviderType
252262
from corbado_python_sdk.generated.models.user import User as User
253263
from corbado_python_sdk.generated.models.user_aggregate import UserAggregate as UserAggregate
254264
from corbado_python_sdk.generated.models.user_create_req import UserCreateReq as UserCreateReq
255-
from corbado_python_sdk.generated.models.user_delete200_response import UserDelete200Response as UserDelete200Response
256265
from corbado_python_sdk.generated.models.user_list import UserList as UserList
257-
from corbado_python_sdk.generated.models.user_list_default_response import UserListDefaultResponse as UserListDefaultResponse
258-
from corbado_python_sdk.generated.models.user_list_default_response_all_of_error import UserListDefaultResponseAllOfError as UserListDefaultResponseAllOfError
259-
from corbado_python_sdk.generated.models.user_list_default_response_all_of_error_validation_inner import UserListDefaultResponseAllOfErrorValidationInner as UserListDefaultResponseAllOfErrorValidationInner
260-
from corbado_python_sdk.generated.models.user_list_default_response_all_of_request_data import UserListDefaultResponseAllOfRequestData as UserListDefaultResponseAllOfRequestData
261-
from corbado_python_sdk.generated.models.user_list_paging import UserListPaging as UserListPaging
262266
from corbado_python_sdk.generated.models.user_status import UserStatus as UserStatus
263267
from corbado_python_sdk.generated.models.user_update_req import UserUpdateReq as UserUpdateReq
264268
from corbado_python_sdk.generated.models.webhook_endpoint import WebhookEndpoint as WebhookEndpoint

src/corbado_python_sdk/generated/api/connect_tokens_api.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from corbado_python_sdk.generated.models.connect_token_create_req import ConnectTokenCreateReq
2525
from corbado_python_sdk.generated.models.connect_token_list import ConnectTokenList
2626
from corbado_python_sdk.generated.models.connect_token_update_req import ConnectTokenUpdateReq
27-
from corbado_python_sdk.generated.models.user_delete200_response import UserDelete200Response
27+
from corbado_python_sdk.generated.models.generic_rsp import GenericRsp
2828

2929
from corbado_python_sdk.generated.api_client import ApiClient, RequestSerialized
3030
from corbado_python_sdk.generated.api_response import ApiResponse
@@ -334,7 +334,7 @@ def connect_token_delete(
334334
_content_type: Optional[StrictStr] = None,
335335
_headers: Optional[Dict[StrictStr, Any]] = None,
336336
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
337-
) -> UserDelete200Response:
337+
) -> GenericRsp:
338338
"""Delete a ConnectToken
339339
340340
Deletes an existing ConnectToken.
@@ -372,7 +372,7 @@ def connect_token_delete(
372372
)
373373

374374
_response_types_map: Dict[str, Optional[str]] = {
375-
'200': "UserDelete200Response",
375+
'200': "GenericRsp",
376376
}
377377
response_data = self.api_client.call_api(
378378
*_param,
@@ -401,7 +401,7 @@ def connect_token_delete_with_http_info(
401401
_content_type: Optional[StrictStr] = None,
402402
_headers: Optional[Dict[StrictStr, Any]] = None,
403403
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
404-
) -> ApiResponse[UserDelete200Response]:
404+
) -> ApiResponse[GenericRsp]:
405405
"""Delete a ConnectToken
406406
407407
Deletes an existing ConnectToken.
@@ -439,7 +439,7 @@ def connect_token_delete_with_http_info(
439439
)
440440

441441
_response_types_map: Dict[str, Optional[str]] = {
442-
'200': "UserDelete200Response",
442+
'200': "GenericRsp",
443443
}
444444
response_data = self.api_client.call_api(
445445
*_param,
@@ -506,7 +506,7 @@ def connect_token_delete_without_preload_content(
506506
)
507507

508508
_response_types_map: Dict[str, Optional[str]] = {
509-
'200': "UserDelete200Response",
509+
'200': "GenericRsp",
510510
}
511511
response_data = self.api_client.call_api(
512512
*_param,
@@ -911,7 +911,7 @@ def connect_token_update(
911911
_content_type: Optional[StrictStr] = None,
912912
_headers: Optional[Dict[StrictStr, Any]] = None,
913913
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
914-
) -> UserDelete200Response:
914+
) -> GenericRsp:
915915
"""Update a ConnectToken
916916
917917
Updates an existing ConnectToken.
@@ -952,7 +952,7 @@ def connect_token_update(
952952
)
953953

954954
_response_types_map: Dict[str, Optional[str]] = {
955-
'200': "UserDelete200Response",
955+
'200': "GenericRsp",
956956
}
957957
response_data = self.api_client.call_api(
958958
*_param,
@@ -982,7 +982,7 @@ def connect_token_update_with_http_info(
982982
_content_type: Optional[StrictStr] = None,
983983
_headers: Optional[Dict[StrictStr, Any]] = None,
984984
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
985-
) -> ApiResponse[UserDelete200Response]:
985+
) -> ApiResponse[GenericRsp]:
986986
"""Update a ConnectToken
987987
988988
Updates an existing ConnectToken.
@@ -1023,7 +1023,7 @@ def connect_token_update_with_http_info(
10231023
)
10241024

10251025
_response_types_map: Dict[str, Optional[str]] = {
1026-
'200': "UserDelete200Response",
1026+
'200': "GenericRsp",
10271027
}
10281028
response_data = self.api_client.call_api(
10291029
*_param,
@@ -1094,7 +1094,7 @@ def connect_token_update_without_preload_content(
10941094
)
10951095

10961096
_response_types_map: Dict[str, Optional[str]] = {
1097-
'200': "UserDelete200Response",
1097+
'200': "GenericRsp",
10981098
}
10991099
response_data = self.api_client.call_api(
11001100
*_param,

src/corbado_python_sdk/generated/api/identifiers_api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
from pydantic import Field, StrictInt, StrictStr
2121
from typing import List, Optional
2222
from typing_extensions import Annotated
23+
from corbado_python_sdk.generated.models.generic_rsp import GenericRsp
2324
from corbado_python_sdk.generated.models.identifier import Identifier
2425
from corbado_python_sdk.generated.models.identifier_create_req import IdentifierCreateReq
2526
from corbado_python_sdk.generated.models.identifier_list import IdentifierList
2627
from corbado_python_sdk.generated.models.identifier_update_req import IdentifierUpdateReq
27-
from corbado_python_sdk.generated.models.user_delete200_response import UserDelete200Response
2828

2929
from corbado_python_sdk.generated.api_client import ApiClient, RequestSerialized
3030
from corbado_python_sdk.generated.api_response import ApiResponse
@@ -350,7 +350,7 @@ def identifier_delete(
350350
_content_type: Optional[StrictStr] = None,
351351
_headers: Optional[Dict[StrictStr, Any]] = None,
352352
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
353-
) -> UserDelete200Response:
353+
) -> GenericRsp:
354354
"""Delete a login identifier for a user
355355
356356
Delete an existing login identifier for a user by given `userID` and `identifierID`.
@@ -391,7 +391,7 @@ def identifier_delete(
391391
)
392392

393393
_response_types_map: Dict[str, Optional[str]] = {
394-
'200': "UserDelete200Response",
394+
'200': "GenericRsp",
395395
}
396396
response_data = self.api_client.call_api(
397397
*_param,
@@ -421,7 +421,7 @@ def identifier_delete_with_http_info(
421421
_content_type: Optional[StrictStr] = None,
422422
_headers: Optional[Dict[StrictStr, Any]] = None,
423423
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
424-
) -> ApiResponse[UserDelete200Response]:
424+
) -> ApiResponse[GenericRsp]:
425425
"""Delete a login identifier for a user
426426
427427
Delete an existing login identifier for a user by given `userID` and `identifierID`.
@@ -462,7 +462,7 @@ def identifier_delete_with_http_info(
462462
)
463463

464464
_response_types_map: Dict[str, Optional[str]] = {
465-
'200': "UserDelete200Response",
465+
'200': "GenericRsp",
466466
}
467467
response_data = self.api_client.call_api(
468468
*_param,
@@ -533,7 +533,7 @@ def identifier_delete_without_preload_content(
533533
)
534534

535535
_response_types_map: Dict[str, Optional[str]] = {
536-
'200': "UserDelete200Response",
536+
'200': "GenericRsp",
537537
}
538538
response_data = self.api_client.call_api(
539539
*_param,

src/corbado_python_sdk/generated/api/passkey_events_api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
from pydantic import Field, StrictInt, StrictStr
2121
from typing import List, Optional
2222
from typing_extensions import Annotated
23+
from corbado_python_sdk.generated.models.generic_rsp import GenericRsp
2324
from corbado_python_sdk.generated.models.passkey_event import PasskeyEvent
2425
from corbado_python_sdk.generated.models.passkey_event_create_req import PasskeyEventCreateReq
2526
from corbado_python_sdk.generated.models.passkey_event_list import PasskeyEventList
26-
from corbado_python_sdk.generated.models.user_delete200_response import UserDelete200Response
2727

2828
from corbado_python_sdk.generated.api_client import ApiClient, RequestSerialized
2929
from corbado_python_sdk.generated.api_response import ApiResponse
@@ -349,7 +349,7 @@ def passkey_event_delete(
349349
_content_type: Optional[StrictStr] = None,
350350
_headers: Optional[Dict[StrictStr, Any]] = None,
351351
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
352-
) -> UserDelete200Response:
352+
) -> GenericRsp:
353353
"""Delete a passkey event for a user
354354
355355
Deletes an existing passkey event for a user by given `userID` and `passkeyEventID`.
@@ -390,7 +390,7 @@ def passkey_event_delete(
390390
)
391391

392392
_response_types_map: Dict[str, Optional[str]] = {
393-
'200': "UserDelete200Response",
393+
'200': "GenericRsp",
394394
}
395395
response_data = self.api_client.call_api(
396396
*_param,
@@ -420,7 +420,7 @@ def passkey_event_delete_with_http_info(
420420
_content_type: Optional[StrictStr] = None,
421421
_headers: Optional[Dict[StrictStr, Any]] = None,
422422
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
423-
) -> ApiResponse[UserDelete200Response]:
423+
) -> ApiResponse[GenericRsp]:
424424
"""Delete a passkey event for a user
425425
426426
Deletes an existing passkey event for a user by given `userID` and `passkeyEventID`.
@@ -461,7 +461,7 @@ def passkey_event_delete_with_http_info(
461461
)
462462

463463
_response_types_map: Dict[str, Optional[str]] = {
464-
'200': "UserDelete200Response",
464+
'200': "GenericRsp",
465465
}
466466
response_data = self.api_client.call_api(
467467
*_param,
@@ -532,7 +532,7 @@ def passkey_event_delete_without_preload_content(
532532
)
533533

534534
_response_types_map: Dict[str, Optional[str]] = {
535-
'200': "UserDelete200Response",
535+
'200': "GenericRsp",
536536
}
537537
response_data = self.api_client.call_api(
538538
*_param,

src/corbado_python_sdk/generated/api/project_config_api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
from typing import Any, Dict, List, Optional, Tuple, Union
1818
from typing_extensions import Annotated
1919

20+
from corbado_python_sdk.generated.models.generic_rsp import GenericRsp
2021
from corbado_python_sdk.generated.models.project_config_update_cname_req import ProjectConfigUpdateCnameReq
21-
from corbado_python_sdk.generated.models.user_delete200_response import UserDelete200Response
2222

2323
from corbado_python_sdk.generated.api_client import ApiClient, RequestSerialized
2424
from corbado_python_sdk.generated.api_response import ApiResponse
@@ -54,7 +54,7 @@ def project_config_update_cname(
5454
_content_type: Optional[StrictStr] = None,
5555
_headers: Optional[Dict[StrictStr, Any]] = None,
5656
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
57-
) -> UserDelete200Response:
57+
) -> GenericRsp:
5858
"""Update project CNAME and generate SSL certificate
5959
6060
Update project config CNAME and generates new SSL certificate
@@ -92,7 +92,7 @@ def project_config_update_cname(
9292
)
9393

9494
_response_types_map: Dict[str, Optional[str]] = {
95-
'200': "UserDelete200Response",
95+
'200': "GenericRsp",
9696
}
9797
response_data = self.api_client.call_api(
9898
*_param,
@@ -121,7 +121,7 @@ def project_config_update_cname_with_http_info(
121121
_content_type: Optional[StrictStr] = None,
122122
_headers: Optional[Dict[StrictStr, Any]] = None,
123123
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
124-
) -> ApiResponse[UserDelete200Response]:
124+
) -> ApiResponse[GenericRsp]:
125125
"""Update project CNAME and generate SSL certificate
126126
127127
Update project config CNAME and generates new SSL certificate
@@ -159,7 +159,7 @@ def project_config_update_cname_with_http_info(
159159
)
160160

161161
_response_types_map: Dict[str, Optional[str]] = {
162-
'200': "UserDelete200Response",
162+
'200': "GenericRsp",
163163
}
164164
response_data = self.api_client.call_api(
165165
*_param,
@@ -226,7 +226,7 @@ def project_config_update_cname_without_preload_content(
226226
)
227227

228228
_response_types_map: Dict[str, Optional[str]] = {
229-
'200': "UserDelete200Response",
229+
'200': "GenericRsp",
230230
}
231231
response_data = self.api_client.call_api(
232232
*_param,

0 commit comments

Comments
 (0)