feat: govern autonomous campaign delivery schedules
This commit is contained in:
@@ -64,6 +64,7 @@ class CampaignScheduleCreateRequest(BaseModel):
|
||||
|
||||
source_version_id: str = Field(min_length=1, max_length=36)
|
||||
name: str = Field(min_length=1, max_length=255)
|
||||
delivery_mode: Literal["manual", "autonomous"] = "manual"
|
||||
recurrence_kind: Literal["once", "daily", "weekly", "monthly"] = "once"
|
||||
interval_count: int = Field(default=1, ge=1, le=365)
|
||||
timezone: str = Field(default="UTC", min_length=1, max_length=100)
|
||||
@@ -107,9 +108,14 @@ class CampaignScheduleOccurrenceResponse(BaseModel):
|
||||
schedule_id: str
|
||||
scheduled_for: datetime
|
||||
status: str
|
||||
idempotency_key: str | None = None
|
||||
generated_campaign_id: str | None = None
|
||||
generated_version_id: str | None = None
|
||||
error: str | None = None
|
||||
delivery_command_ids: list[str] = Field(default_factory=list)
|
||||
recovery_state: str = "none"
|
||||
evidence: dict[str, object] = Field(default_factory=dict)
|
||||
last_checked_at: datetime | None = None
|
||||
created_at: datetime
|
||||
|
||||
|
||||
@@ -120,6 +126,7 @@ class CampaignScheduleResponse(BaseModel):
|
||||
campaign_id: str
|
||||
source_version_id: str
|
||||
name: str
|
||||
delivery_mode: str
|
||||
recurrence_kind: str
|
||||
interval_count: int
|
||||
timezone: str
|
||||
@@ -133,6 +140,8 @@ class CampaignScheduleResponse(BaseModel):
|
||||
last_fired_at: datetime | None = None
|
||||
last_campaign_id: str | None = None
|
||||
last_error: str | None = None
|
||||
last_outcome: str | None = None
|
||||
last_recovery_state: str | None = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
occurrences: list[CampaignScheduleOccurrenceResponse] = Field(default_factory=list)
|
||||
|
||||
Reference in New Issue
Block a user