Commit 0b9a58b3 authored by George Papathanail's avatar George Papathanail
Browse files

feat: add AppDeploymentStatusChange cloudevent domain types

parent e177c75c
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -363,3 +363,28 @@ class AppInstanceStatusChangeCloudEvent(BaseModel):
    time: str
    datacontenttype: str = "application/json"
    data: AppInstanceStatusChangeData


class AppDeploymentStatusChangeData(BaseModel):
    # Same per-instance shape as AppInstanceStatusChangeData plus appDeploymentId:
    # the multi-zone deployment callback delivers an array of these (one per
    # instance), and the consumer subscribed at the deployment level needs the
    # aggregate id to tie the array back to its POST /deployments (ADR-0008).
    appDeploymentId: UUID
    appInstanceId: UUID
    appId: UUID
    edgeCloudZoneId: UUID
    status: str


class AppDeploymentStatusChangeCloudEvent(BaseModel):
    # Identical CloudEvents v1.0 envelope to AppInstanceStatusChangeCloudEvent;
    # only `type` and the `data` payload differ. onAppDeploymentStatusChange
    # delivers these as a JSON array (vendored spec: maxItems 100).
    id: str = Field(max_length=256)
    source: str = Field(min_length=1, max_length=2048)
    specversion: str = "1.0"
    type: str = "org.camaraproject.edge-application-management.v0.app-deployment-status-change"
    time: str
    datacontenttype: str = "application/json"
    data: AppDeploymentStatusChangeData