from pydantic import BaseModel
from typing import Optional
from arbor_imago import custom_types
from arbor_imago.schemas import auth_credential as auth_credential_schema
[docs]
class ApiKeyAvailable(BaseModel):
name: custom_types.ApiKey.name
[docs]
class ApiKeyAdminAvailable(ApiKeyAvailable):
user_id: custom_types.User.id
[docs]
class ApiKeyImport(BaseModel):
pass
[docs]
class ApiKeyUpdate(ApiKeyImport):
name: Optional[custom_types.ApiKey.name] = None
expiry: custom_types.AuthCredential.expiry | None = None
[docs]
class ApiKeyAdminUpdate(ApiKeyUpdate, BaseModel):
pass
[docs]
class ApiKeyCreate(ApiKeyImport):
name: custom_types.ApiKey.name
expiry: custom_types.AuthCredential.expiry
[docs]
class ApiKeyAdminCreate(ApiKeyCreate, BaseModel):
user_id: custom_types.User.id
[docs]
class ApiKeyExport(BaseModel):
id: custom_types.ApiKey.id
user_id: custom_types.User.id
name: custom_types.ApiKey.name
issued: custom_types.ApiKey.issued
expiry: custom_types.ApiKey.expiry
[docs]
class ApiKeyPublic(ApiKeyExport):
pass
[docs]
class ApiKeyPrivate(ApiKeyExport):
pass