Add encrypted envelope recipient state
This commit is contained in:
@@ -75,6 +75,26 @@ class PostboxAttachmentPayload(BaseModel):
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class PostboxWrappedKeyPayload(BaseModel):
|
||||
recipient_type: str = Field(min_length=1, max_length=50)
|
||||
recipient_id: str = Field(min_length=1, max_length=255)
|
||||
key_epoch: int = Field(ge=1)
|
||||
wrapped_key_ref: str = Field(min_length=1, max_length=2000)
|
||||
algorithm: str | None = Field(default=None, max_length=100)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class PostboxExternalRecipientTokenPayload(BaseModel):
|
||||
token_id: str = Field(min_length=1, max_length=255)
|
||||
state: Literal["pending", "available", "fetched", "expired", "revoked"]
|
||||
expires_at: datetime | None = None
|
||||
one_time: bool = False
|
||||
key_fetched_at: datetime | None = None
|
||||
revoked_at: datetime | None = None
|
||||
assurance_profile: str | None = Field(default=None, max_length=100)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class PostboxMessageItem(BaseModel):
|
||||
id: str
|
||||
tenant_id: str
|
||||
@@ -99,6 +119,10 @@ class PostboxMessageItem(BaseModel):
|
||||
key_epoch: int
|
||||
ciphertext_ref: str | None = None
|
||||
signed_manifest_ref: str | None = None
|
||||
wrapped_keys: list[PostboxWrappedKeyPayload] = Field(default_factory=list)
|
||||
external_recipient_tokens: list[PostboxExternalRecipientTokenPayload] = Field(
|
||||
default_factory=list
|
||||
)
|
||||
participants: list[PostboxParticipantPayload] = Field(default_factory=list)
|
||||
attachments: list[PostboxAttachmentPayload] = Field(default_factory=list)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
@@ -165,6 +189,12 @@ class PostboxDeliveryCreateRequest(BaseModel):
|
||||
participants: list[PostboxParticipantPayload] = Field(default_factory=list)
|
||||
attachments: list[PostboxAttachmentPayload] = Field(default_factory=list)
|
||||
expires_at: datetime | None = None
|
||||
ciphertext_ref: str | None = Field(default=None, max_length=1000)
|
||||
signed_manifest_ref: str | None = Field(default=None, max_length=1000)
|
||||
wrapped_keys: list[PostboxWrappedKeyPayload] = Field(default_factory=list)
|
||||
external_recipient_tokens: list[PostboxExternalRecipientTokenPayload] = Field(
|
||||
default_factory=list
|
||||
)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user