import enum from dataclasses import dataclass from owsclient import OwsClient from pydantic import BaseModel, Field class AudienceExportStatus(enum.StrEnum): PENDING = "PENDING" PROCESSING = "PROCESSING" FAILED = "FAILED" COMPLETED = "COMPLETED" DELETED = "DELETED" class AudienceExport(BaseModel): id: str audience_id: str = Field(alias="audienceId") audience_name: str = Field(alias="audienceName") created_by: str = Field(alias="createdBy") @dataclass class OwsDmpClient: ows_client: OwsClient service_name = "ows-dmp" def update_audience_export( self, export_id: str, status: AudienceExportStatus, zip_key: str | None = None ) -> AudienceExport: data = {"status": status.value} if zip_key: data["zipKey"] = zip_key response = self.ows_client.patch( self.service_name, f"/audience-exports/{export_id}", json=data, ) response.raise_for_status() return AudienceExport.model_validate_json(response.content)