Files
2024-10-16 08:51:49 -04:00

30 lines
768 B
Python

from __future__ import annotations
from pydantic import BaseModel, Field
from typing import Literal, Annotated, Union
class ResponseJwks(BaseModel):
keys: list[ResponseJwk]
class ResponseRsaJwk(BaseModel):
kty: Literal["RSA"]
d: str | None = Field(default=None)
q: str | None = Field(default=None)
qi: str | None = Field(default=None)
dq: str | None = Field(default=None)
e: str | None = Field(default=None)
key_ops: list[str] | None = Field(default=None)
dp: str | None = Field(default=None)
n: str | None = Field(default=None)
p: str | None = Field(default=None)
class ResponseEcJwk(BaseModel):
kty: Literal["EC"]
ResponseJwk = Annotated[
Union[ResponseRsaJwk, ResponseEcJwk], Field(discriminator="kty")
]