Coverage for polar/organization_access_token/schemas.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 12:42 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 12:42 +0000
1from datetime import datetime, timedelta
2from enum import StrEnum
4from pydantic import UUID4
6from polar.auth.scope import RESERVED_SCOPES, Scope
7from polar.kit.schemas import Schema, TimestampedSchema
8from polar.organization.schemas import OrganizationID
10AvailableScope = StrEnum( # type: ignore
11 "AvailableScope", {s: s.value for s in Scope if s not in RESERVED_SCOPES}
12)
15class OrganizationAccessTokenCreate(Schema):
16 organization_id: UUID4
17 comment: str
18 expires_in: timedelta | None = None
19 scopes: list[AvailableScope] # pyright: ignore
22class OrganizationAccessTokenUpdate(Schema):
23 comment: str | None = None
24 scopes: list[AvailableScope] | None = None # pyright: ignore
27class OrganizationAccessToken(TimestampedSchema):
28 id: UUID4
29 scopes: list[Scope]
30 expires_at: datetime | None
31 comment: str
32 last_used_at: datetime | None
33 organization_id: OrganizationID
36class OrganizationAccessTokenCreateResponse(Schema):
37 organization_access_token: OrganizationAccessToken
38 token: str