Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions sdk/batch/speechmatics/batch/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
from ._models import JobStatus
from ._models import JobType
from ._models import NotificationConfig
from ._models import NotificationContents
from ._models import NotificationMethod
from ._models import OperatingPoint
from ._models import SummarizationConfig
from ._models import Transcript
Expand All @@ -42,6 +44,8 @@
"JobDetails",
"JobInfo",
"NotificationConfig",
"NotificationMethod",
"NotificationContents",
"OperatingPoint",
"SummarizationConfig",
"Transcript",
Expand Down
30 changes: 23 additions & 7 deletions sdk/batch/speechmatics/batch/_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,23 @@ class OperatingPoint(str, Enum):
class NotificationContents(str, Enum):
"""Notification content options."""

SUMMARY = "summary"
DETAILED = "detailed"
DATA = "data"
TEXT = "text"
JOBINFO = "jobinfo"
TRANSCRIPT = "transcript"
TRANSCRIPT_JSON_V2 = "transcript.json-v2"
TRANSCRIPT_TXT = "transcript.txt"
TRANSCRIPT_SRT = "transcript.srt"
ALIGNMENT = "alignment"
ALIGNMENT_WORD_START_AND_END = "alignment.word_start_and_end"
ALIGNMENT_ONE_PER_LINE = "alignment.one_per_line"


class NotificationMethod(str, Enum):
"Notification method."

POST = "post"
PUT = "put"


class FormatType(str, Enum):
Expand Down Expand Up @@ -138,8 +153,9 @@ class NotificationConfig:
"""Configuration for job completion notifications."""

url: str
contents: Optional[NotificationContents] = None
auth_headers: Optional[dict[str, str]] = None
contents: Optional[list[NotificationContents]] = None
auth_headers: Optional[list[str]] = None
method: Optional[str] = None

def to_dict(self) -> dict[str, Any]:
"""Convert to dictionary, excluding None values."""
Expand Down Expand Up @@ -267,7 +283,7 @@ class JobConfig:
fetch_data: Optional[FetchData] = None
transcription_config: Optional[TranscriptionConfig] = None
alignment_config: Optional[AlignmentConfig] = None
notification_config: Optional[NotificationConfig] = None
notification_config: Optional[list[NotificationConfig]] = None
tracking: Optional[TrackingConfig] = None
translation_config: Optional[TranslationConfig] = None
language_identification_config: Optional[LanguageIdentificationConfig] = None
Expand All @@ -288,7 +304,7 @@ def to_dict(self) -> dict[str, Any]:
if self.alignment_config:
config["alignment_config"] = self.alignment_config.to_dict()
if self.notification_config:
config["notification_config"] = self.notification_config.to_dict()
config["notification_config"] = [nc.to_dict() for nc in self.notification_config]
if self.tracking:
config["tracking"] = self.tracking.to_dict()
if self.translation_config:
Expand Down Expand Up @@ -326,7 +342,7 @@ def from_dict(cls, data: dict[str, Any]) -> JobConfig:
notification_config = None
if "notification_config" in data:
nc_data = data["notification_config"]
notification_config = NotificationConfig(**nc_data)
notification_config = [NotificationConfig(**nc) for nc in nc_data]

tracking = None
if "tracking" in data:
Expand Down