Complete Postbox access transition matrix
This commit is contained in:
@@ -6,6 +6,14 @@ from typing import Any, Literal
|
||||
from pydantic import BaseModel, Field, model_validator
|
||||
|
||||
|
||||
PostboxClassification = Literal[
|
||||
"public",
|
||||
"internal",
|
||||
"confidential",
|
||||
"restricted",
|
||||
]
|
||||
|
||||
|
||||
class PostboxAccessDecisionResponse(BaseModel):
|
||||
allowed: bool
|
||||
action: str
|
||||
@@ -19,6 +27,9 @@ class PostboxAccessDecisionResponse(BaseModel):
|
||||
selected_assignment_id: str | None = None
|
||||
holder_count: int = 0
|
||||
vacant: bool = True
|
||||
classification: str = "internal"
|
||||
classification_allowed: bool = True
|
||||
binding_status: str = "active"
|
||||
|
||||
|
||||
class PostboxDirectoryItem(BaseModel):
|
||||
@@ -132,7 +143,7 @@ class PostboxDeliveryCreateRequest(BaseModel):
|
||||
subject: str = Field(min_length=1, max_length=1000)
|
||||
body_text: str | None = None
|
||||
sender_label: str | None = Field(default=None, max_length=500)
|
||||
classification: str = Field(default="internal", min_length=1, max_length=50)
|
||||
classification: PostboxClassification = "internal"
|
||||
participants: list[PostboxParticipantPayload] = Field(default_factory=list)
|
||||
attachments: list[PostboxAttachmentPayload] = Field(default_factory=list)
|
||||
expires_at: datetime | None = None
|
||||
@@ -161,7 +172,7 @@ class PostboxLinkedCopyPolicyPayload(BaseModel):
|
||||
target_function_type_id: str | None = Field(default=None, max_length=36)
|
||||
target_template_id: str | None = Field(default=None, max_length=36)
|
||||
fanout: Literal["nearest", "all"] = "nearest"
|
||||
allowed_classifications: list[str] = Field(
|
||||
allowed_classifications: list[PostboxClassification] = Field(
|
||||
default_factory=lambda: ["internal"],
|
||||
max_length=20,
|
||||
)
|
||||
@@ -275,7 +286,7 @@ class PostboxRoutePreviewTarget(BaseModel):
|
||||
class PostboxRouteDryRunRequest(BaseModel):
|
||||
target: PostboxTargetPayload
|
||||
producer_module: str = Field(min_length=1, max_length=100)
|
||||
classification: str = Field(default="internal", min_length=1, max_length=50)
|
||||
classification: PostboxClassification = "internal"
|
||||
expires_at: datetime | None = None
|
||||
|
||||
|
||||
@@ -295,7 +306,7 @@ class PostboxExactCreateRequest(BaseModel):
|
||||
organization_unit_id: str = Field(min_length=1, max_length=36)
|
||||
function_id: str = Field(min_length=1, max_length=36)
|
||||
address_key: str | None = Field(default=None, max_length=120)
|
||||
classification: str = Field(default="internal", min_length=1, max_length=50)
|
||||
classification: PostboxClassification = "internal"
|
||||
|
||||
|
||||
class PostboxTemplateRevisionPayload(BaseModel):
|
||||
@@ -312,7 +323,7 @@ class PostboxTemplateRevisionPayload(BaseModel):
|
||||
min_length=1,
|
||||
max_length=500,
|
||||
)
|
||||
classification: str = Field(default="internal", min_length=1, max_length=50)
|
||||
classification: PostboxClassification = "internal"
|
||||
allow_vacant_delivery: bool = True
|
||||
routing_policy: PostboxRoutingPolicyPayload = Field(
|
||||
default_factory=PostboxRoutingPolicyPayload
|
||||
|
||||
Reference in New Issue
Block a user