22
33from __future__ import annotations
44from .identificationlink import IdentificationLink , IdentificationLinkTypedDict
5+ from clerk_backend_api import utils
56from clerk_backend_api .types import (
67 BaseModel ,
78 Nullable ,
89 OptionalNullable ,
910 UNSET ,
1011 UNSET_SENTINEL ,
1112)
13+ from clerk_backend_api .utils import validate_open_enum
1214from enum import Enum
1315from pydantic import model_serializer
16+ from pydantic .functional_validators import PlainValidator
1417from typing import List , Optional , Union
15- from typing_extensions import NotRequired , TypedDict
18+ from typing_extensions import Annotated , NotRequired , TypedDict
1619
1720
18- class EmailAddressObject (str , Enum ):
21+ class EmailAddressObject (str , Enum , metaclass = utils . OpenEnumMeta ):
1922 r"""String representing the object's type. Objects of the same type share the same value."""
2023
2124 EMAIL_ADDRESS = "email_address"
2225
2326
24- class OauthVerificationStatus (str , Enum ):
27+ class OauthVerificationStatus (str , Enum , metaclass = utils . OpenEnumMeta ):
2528 UNVERIFIED = "unverified"
2629 VERIFIED = "verified"
2730 FAILED = "failed"
2831 EXPIRED = "expired"
2932 TRANSFERABLE = "transferable"
3033
3134
32- class OauthVerificationStrategy (str , Enum ):
35+ class OauthVerificationStrategy (str , Enum , metaclass = utils . OpenEnumMeta ):
3336 OAUTH_GOOGLE = "oauth_google"
3437 OAUTH_MOCK = "oauth_mock"
3538 FROM_OAUTH_GOOGLE = "from_oauth_google"
@@ -85,9 +88,13 @@ class OauthTypedDict(TypedDict):
8588
8689
8790class Oauth (BaseModel ):
88- status : OauthVerificationStatus
91+ status : Annotated [
92+ OauthVerificationStatus , PlainValidator (validate_open_enum (False ))
93+ ]
8994
90- strategy : OauthVerificationStrategy
95+ strategy : Annotated [
96+ OauthVerificationStrategy , PlainValidator (validate_open_enum (False ))
97+ ]
9198
9299 expire_at : int
93100
@@ -132,7 +139,7 @@ class AdminVerificationStatus(str, Enum):
132139 VERIFIED = "verified"
133140
134141
135- class VerificationStrategy (str , Enum ):
142+ class VerificationStrategy (str , Enum , metaclass = utils . OpenEnumMeta ):
136143 ADMIN = "admin"
137144
138145
@@ -146,7 +153,7 @@ class AdminTypedDict(TypedDict):
146153class Admin (BaseModel ):
147154 status : AdminVerificationStatus
148155
149- strategy : VerificationStrategy
156+ strategy : Annotated [ VerificationStrategy , PlainValidator ( validate_open_enum ( False ))]
150157
151158 attempts : OptionalNullable [int ] = UNSET
152159
@@ -190,7 +197,7 @@ class VerificationStatus(str, Enum):
190197 EXPIRED = "expired"
191198
192199
193- class Strategy (str , Enum ):
200+ class Strategy (str , Enum , metaclass = utils . OpenEnumMeta ):
194201 PHONE_CODE = "phone_code"
195202 EMAIL_CODE = "email_code"
196203 EMAIL_LINK = "email_link"
@@ -212,7 +219,7 @@ class OtpTypedDict(TypedDict):
212219class Otp (BaseModel ):
213220 status : VerificationStatus
214221
215- strategy : Strategy
222+ strategy : Annotated [ Strategy , PlainValidator ( validate_open_enum ( False ))]
216223
217224 attempts : int
218225
@@ -250,7 +257,7 @@ class EmailAddressTypedDict(TypedDict):
250257class EmailAddress (BaseModel ):
251258 r"""Success"""
252259
253- object : EmailAddressObject
260+ object : Annotated [ EmailAddressObject , PlainValidator ( validate_open_enum ( False ))]
254261 r"""String representing the object's type. Objects of the same type share the same value.
255262
256263 """
0 commit comments