Skip to content

Commit 3f36dc9

Browse files
authored
Fix notification config in batch sdk (#42)
1 parent 630470e commit 3f36dc9

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

sdk/batch/speechmatics/batch/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
from ._models import JobStatus
2121
from ._models import JobType
2222
from ._models import NotificationConfig
23+
from ._models import NotificationContents
24+
from ._models import NotificationMethod
2325
from ._models import OperatingPoint
2426
from ._models import SummarizationConfig
2527
from ._models import Transcript
@@ -42,6 +44,8 @@
4244
"JobDetails",
4345
"JobInfo",
4446
"NotificationConfig",
47+
"NotificationMethod",
48+
"NotificationContents",
4549
"OperatingPoint",
4650
"SummarizationConfig",
4751
"Transcript",

sdk/batch/speechmatics/batch/_models.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,23 @@ class OperatingPoint(str, Enum):
4949
class NotificationContents(str, Enum):
5050
"""Notification content options."""
5151

52-
SUMMARY = "summary"
53-
DETAILED = "detailed"
52+
DATA = "data"
53+
TEXT = "text"
54+
JOBINFO = "jobinfo"
55+
TRANSCRIPT = "transcript"
56+
TRANSCRIPT_JSON_V2 = "transcript.json-v2"
57+
TRANSCRIPT_TXT = "transcript.txt"
58+
TRANSCRIPT_SRT = "transcript.srt"
59+
ALIGNMENT = "alignment"
60+
ALIGNMENT_WORD_START_AND_END = "alignment.word_start_and_end"
61+
ALIGNMENT_ONE_PER_LINE = "alignment.one_per_line"
62+
63+
64+
class NotificationMethod(str, Enum):
65+
"Notification method."
66+
67+
POST = "post"
68+
PUT = "put"
5469

5570

5671
class FormatType(str, Enum):
@@ -138,8 +153,9 @@ class NotificationConfig:
138153
"""Configuration for job completion notifications."""
139154

140155
url: str
141-
contents: Optional[NotificationContents] = None
142-
auth_headers: Optional[dict[str, str]] = None
156+
contents: Optional[list[NotificationContents]] = None
157+
auth_headers: Optional[list[str]] = None
158+
method: Optional[str] = None
143159

144160
def to_dict(self) -> dict[str, Any]:
145161
"""Convert to dictionary, excluding None values."""
@@ -267,7 +283,7 @@ class JobConfig:
267283
fetch_data: Optional[FetchData] = None
268284
transcription_config: Optional[TranscriptionConfig] = None
269285
alignment_config: Optional[AlignmentConfig] = None
270-
notification_config: Optional[NotificationConfig] = None
286+
notification_config: Optional[list[NotificationConfig]] = None
271287
tracking: Optional[TrackingConfig] = None
272288
translation_config: Optional[TranslationConfig] = None
273289
language_identification_config: Optional[LanguageIdentificationConfig] = None
@@ -288,7 +304,7 @@ def to_dict(self) -> dict[str, Any]:
288304
if self.alignment_config:
289305
config["alignment_config"] = self.alignment_config.to_dict()
290306
if self.notification_config:
291-
config["notification_config"] = self.notification_config.to_dict()
307+
config["notification_config"] = [nc.to_dict() for nc in self.notification_config]
292308
if self.tracking:
293309
config["tracking"] = self.tracking.to_dict()
294310
if self.translation_config:
@@ -326,7 +342,7 @@ def from_dict(cls, data: dict[str, Any]) -> JobConfig:
326342
notification_config = None
327343
if "notification_config" in data:
328344
nc_data = data["notification_config"]
329-
notification_config = NotificationConfig(**nc_data)
345+
notification_config = [NotificationConfig(**nc) for nc in nc_data]
330346

331347
tracking = None
332348
if "tracking" in data:

0 commit comments

Comments
 (0)