Integrate Distribution Lists with Campaign recipients
This commit is contained in:
@@ -438,6 +438,132 @@ class CampaignRecipientAddressSourceSnapshotResponse(BaseModel):
|
||||
provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionListParameter(BaseModel):
|
||||
key: str
|
||||
value_type: str
|
||||
label: str | None = None
|
||||
required: bool = False
|
||||
default: Any = None
|
||||
allowed_values: list[Any] = Field(default_factory=list)
|
||||
minimum: float | None = None
|
||||
maximum: float | None = None
|
||||
pattern: str | None = None
|
||||
description: str | None = None
|
||||
|
||||
|
||||
class CampaignDistributionListSource(BaseModel):
|
||||
id: str
|
||||
tenant_id: str
|
||||
name: str
|
||||
revision_id: str
|
||||
revision: int
|
||||
definition_hash: str
|
||||
definition_kind: str = "static"
|
||||
description: str | None = None
|
||||
status: str = "active"
|
||||
entry_count: int = 0
|
||||
read_only: bool = False
|
||||
stale: bool = False
|
||||
parameters: list[CampaignDistributionListParameter] = Field(default_factory=list)
|
||||
updated_at: datetime | None = None
|
||||
provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionListSourcesResponse(BaseModel):
|
||||
available: bool = False
|
||||
expand_available: bool = False
|
||||
sources: list[CampaignDistributionListSource] = Field(default_factory=list)
|
||||
|
||||
|
||||
class CampaignDistributionListExpansionRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
list_id: str = Field(min_length=1, max_length=36)
|
||||
revision: int | None = Field(default=None, ge=1)
|
||||
effective_at: datetime | None = None
|
||||
purpose: str = Field(default="campaign_delivery", min_length=1, max_length=120)
|
||||
requested_channels: list[Literal["email", "postal", "internal_mail", "portal"]] = Field(
|
||||
default_factory=list,
|
||||
max_length=4,
|
||||
)
|
||||
parameters: dict[str, Any] = Field(default_factory=dict)
|
||||
idempotency_key: str | None = Field(default=None, min_length=1, max_length=255)
|
||||
|
||||
|
||||
class CampaignDistributionSourceReference(BaseModel):
|
||||
provider: str
|
||||
resource_type: str
|
||||
resource_id: str
|
||||
revision: str | None = None
|
||||
fingerprint: str | None = None
|
||||
label: str | None = None
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionExplanation(BaseModel):
|
||||
code: str
|
||||
message: str
|
||||
severity: str
|
||||
provider: str | None = None
|
||||
source: CampaignDistributionSourceReference | None = None
|
||||
provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionChannelCandidate(BaseModel):
|
||||
channel: str
|
||||
target: str
|
||||
target_key: str
|
||||
status: str
|
||||
contact_point_id: str | None = None
|
||||
locale: str | None = None
|
||||
preferred: bool = False
|
||||
reason_code: str | None = None
|
||||
explanation: str | None = None
|
||||
source: CampaignDistributionSourceReference | None = None
|
||||
decision_provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionRecipient(BaseModel):
|
||||
recipient_key: str
|
||||
display_name: str
|
||||
status: str
|
||||
channels: list[CampaignDistributionChannelCandidate] = Field(default_factory=list)
|
||||
identity_id: str | None = None
|
||||
account_id: str | None = None
|
||||
contact_id: str | None = None
|
||||
organization_unit_id: str | None = None
|
||||
function_id: str | None = None
|
||||
source_entry_ids: list[str] = Field(default_factory=list)
|
||||
explanations: list[CampaignDistributionExplanation] = Field(default_factory=list)
|
||||
attributes: dict[str, Any] = Field(default_factory=dict)
|
||||
provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionProviderEvidence(BaseModel):
|
||||
provider: str
|
||||
source: CampaignDistributionSourceReference
|
||||
actual_revision: str | None = None
|
||||
actual_fingerprint: str | None = None
|
||||
stale: bool = False
|
||||
generated_at: datetime | None = None
|
||||
details: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class CampaignDistributionListExpansionResponse(BaseModel):
|
||||
source: CampaignDistributionListSource
|
||||
request: dict[str, Any] = Field(default_factory=dict)
|
||||
recipients: list[CampaignDistributionRecipient] = Field(default_factory=list)
|
||||
excluded: list[CampaignDistributionRecipient] = Field(default_factory=list)
|
||||
diagnostics: list[CampaignDistributionExplanation] = Field(default_factory=list)
|
||||
provider_evidence: list[CampaignDistributionProviderEvidence] = Field(default_factory=list)
|
||||
expansion_hash: str
|
||||
generated_at: datetime | None = None
|
||||
snapshot_id: str | None = None
|
||||
stale: bool = False
|
||||
truncated: bool = False
|
||||
|
||||
|
||||
class CampaignJobsResponse(BaseModel):
|
||||
jobs: list[dict[str, Any]]
|
||||
page: int = 1
|
||||
|
||||
Reference in New Issue
Block a user