use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Account {
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub balance_seconds: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub email: String,
}
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DescriptionlessJobOptions {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub metadata: String,
}
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DescriptionlessJobOptionsData {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub callback_url: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Language {
#[serde(rename = "ar")]
Ar,
#[serde(rename = "bg")]
Bg,
#[serde(rename = "ca")]
Ca,
#[serde(rename = "cmn")]
Cmn,
#[serde(rename = "cs")]
Cs,
#[serde(rename = "da")]
Da,
#[serde(rename = "de")]
De,
#[serde(rename = "el")]
El,
#[serde(rename = "en")]
#[default]
En,
#[serde(rename = "es")]
Es,
#[serde(rename = "fi")]
Fi,
#[serde(rename = "fr")]
Fr,
#[serde(rename = "hi")]
Hi,
#[serde(rename = "hr")]
Hr,
#[serde(rename = "hu")]
Hu,
#[serde(rename = "it")]
It,
#[serde(rename = "ja")]
Ja,
#[serde(rename = "ko")]
Ko,
#[serde(rename = "lt")]
Lt,
#[serde(rename = "lv")]
Lv,
#[serde(rename = "ms")]
Ms,
#[serde(rename = "nl")]
Nl,
#[serde(rename = "no")]
No,
#[serde(rename = "pl")]
Pl,
#[serde(rename = "pt")]
Pt,
#[serde(rename = "ro")]
Ro,
#[serde(rename = "ru")]
Ru,
#[serde(rename = "sk")]
Sk,
#[serde(rename = "sl")]
Sl,
#[serde(rename = "sv")]
Sv,
#[serde(rename = "tr")]
Tr,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Language {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Language::Ar => "ar",
Language::Bg => "bg",
Language::Ca => "ca",
Language::Cmn => "cmn",
Language::Cs => "cs",
Language::Da => "da",
Language::De => "de",
Language::El => "el",
Language::En => "en",
Language::Es => "es",
Language::Fi => "fi",
Language::Fr => "fr",
Language::Hi => "hi",
Language::Hr => "hr",
Language::Hu => "hu",
Language::It => "it",
Language::Ja => "ja",
Language::Ko => "ko",
Language::Lt => "lt",
Language::Lv => "lv",
Language::Ms => "ms",
Language::Nl => "nl",
Language::No => "no",
Language::Pl => "pl",
Language::Pt => "pt",
Language::Ro => "ro",
Language::Ru => "ru",
Language::Sk => "sk",
Language::Sl => "sl",
Language::Sv => "sv",
Language::Tr => "tr",
Language::FallthroughString => "*",
}
.fmt(f)
}
}
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DescriptionlessJobOptionsDataType {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub custom_vocabulary_id: String,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub delete_after_seconds: i64,
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub filter_profanity: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<Language>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub media_url: String,
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub remove_disfluencies: bool,
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub skip_diarization: bool,
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub skip_punctuation: bool,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub speaker_channels_count: i64,
}
#[derive(Serialize, Deserialize, Default, PartialEq, Debug, Clone, JsonSchema)]
pub struct DescriptionlessJobOptionsAllOf {
#[serde(flatten)]
pub descriptionless_job_options: DescriptionlessJobOptions,
#[serde(flatten)]
pub descriptionless_job_options_data: DescriptionlessJobOptionsData,
#[serde(flatten)]
pub descriptionless_job_options_data_type: DescriptionlessJobOptionsDataType,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Failure {
#[serde(rename = "download_failure")]
DownloadFailure,
#[serde(rename = "duration_exceeded")]
DurationExceeded,
#[serde(rename = "duration_too_short")]
DurationTooShort,
#[serde(rename = "empty_media")]
EmptyMedia,
#[serde(rename = "insufficient_balance")]
InsufficientBalance,
#[serde(rename = "internal_processing")]
InternalProcessing,
#[serde(rename = "invalid_media")]
InvalidMedia,
#[serde(rename = "invoicing_limit_exceeded")]
InvoicingLimitExceeded,
#[serde(rename = "transcription")]
Transcription,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Failure {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Failure::DownloadFailure => "download_failure",
Failure::DurationExceeded => "duration_exceeded",
Failure::DurationTooShort => "duration_too_short",
Failure::EmptyMedia => "empty_media",
Failure::InsufficientBalance => "insufficient_balance",
Failure::InternalProcessing => "internal_processing",
Failure::InvalidMedia => "invalid_media",
Failure::InvoicingLimitExceeded => "invoicing_limit_exceeded",
Failure::Transcription => "transcription",
Failure::Noop => "",
Failure::FallthroughString => "*",
}
.fmt(f)
}
}
impl Failure {
pub fn is_noop(&self) -> bool {
matches!(self, Failure::Noop)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Status {
#[serde(rename = "failed")]
Failed,
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "transcribed")]
Transcribed,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Status {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Status::Failed => "failed",
Status::InProgress => "in_progress",
Status::Transcribed => "transcribed",
Status::Noop => "",
Status::FallthroughString => "*",
}
.fmt(f)
}
}
impl Status {
pub fn is_noop(&self) -> bool {
matches!(self, Status::Noop)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Type {
#[serde(rename = "async")]
Async,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Type {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Type::Async => "async",
Type::Noop => "",
Type::FallthroughString => "*",
}
.fmt(f)
}
}
impl Type {
pub fn is_noop(&self) -> bool {
matches!(self, Type::Noop)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Job {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub callback_url: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize"
)]
pub completed_on: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize"
)]
pub created_on: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_vocabulary_id: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delete_after_seconds: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub duration_seconds: f64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failure: Option<Failure>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub failure_detail: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_profanity: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub media_url: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remove_disfluencies: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skip_diarization: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skip_punctuation: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub speaker_channels_count: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub type_: Option<Type>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct JobAllOf {
#[serde(flatten)]
pub descriptionless_job_options_all_of: DescriptionlessJobOptionsAllOf,
#[serde(flatten)]
pub job: Job,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SubmitJobMediaUrlOptions {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub media_url: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SubmitJobMediaUrlOptionsAllOf {
#[serde(flatten)]
pub submit_job_media_url_options: SubmitJobMediaUrlOptions,
#[serde(flatten)]
pub submit_job_options_all_of: SubmitJobOptionsAllOf,
}
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SubmitJobOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub callback_url: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_vocabulary_id: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delete_after_seconds: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_profanity: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remove_disfluencies: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skip_diarization: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skip_punctuation: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub speaker_channels_count: Option<serde_json::Value>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CustomVocabularies {
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub phrases: Vec<String>,
}
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SubmitJobOptionsData {
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub custom_vocabularies: Vec<CustomVocabularies>,
}
#[derive(Serialize, Deserialize, Default, PartialEq, Debug, Clone, JsonSchema)]
pub struct SubmitJobOptionsAllOf {
#[serde(flatten)]
pub descriptionless_job_options_all_of: DescriptionlessJobOptionsAllOf,
#[serde(flatten)]
pub submit_job_options: SubmitJobOptions,
#[serde(flatten)]
pub submit_job_options_data: SubmitJobOptionsData,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum TranscriptMonologuesElementsType {
#[serde(rename = "punct")]
Punct,
#[serde(rename = "text")]
Text,
#[serde(rename = "unknown")]
Unknown,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for TranscriptMonologuesElementsType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
TranscriptMonologuesElementsType::Punct => "punct",
TranscriptMonologuesElementsType::Text => "text",
TranscriptMonologuesElementsType::Unknown => "unknown",
TranscriptMonologuesElementsType::Noop => "",
TranscriptMonologuesElementsType::FallthroughString => "*",
}
.fmt(f)
}
}
impl TranscriptMonologuesElementsType {
pub fn is_noop(&self) -> bool {
matches!(self, TranscriptMonologuesElementsType::Noop)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Elements {
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub confidence: f64,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub ts: f64,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub ts_end: f64,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub type_: Option<TranscriptMonologuesElementsType>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Monologues {
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub elements: Vec<Elements>,
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub speaker: i64,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Transcript {
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub monologues: Vec<Monologues>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Accept {
#[serde(rename = "application/x-subrip")]
ApplicationXSubrip,
#[serde(rename = "text/vtt")]
TextVtt,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Accept {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Accept::ApplicationXSubrip => "application/x-subrip",
Accept::TextVtt => "text/vtt",
Accept::Noop => "",
Accept::FallthroughString => "*",
}
.fmt(f)
}
}
impl Accept {
pub fn is_noop(&self) -> bool {
matches!(self, Accept::Noop)
}
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum AcceptTranscript {
#[serde(rename = "application/vnd.rev.transcript.v1.0+json")]
ApplicationVndRevTranscript0Json,
#[serde(rename = "text/plain")]
TextPlain,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for AcceptTranscript {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
AcceptTranscript::ApplicationVndRevTranscript0Json => {
"application/vnd.rev.transcript.v1.0+json"
}
AcceptTranscript::TextPlain => "text/plain",
AcceptTranscript::Noop => "",
AcceptTranscript::FallthroughString => "*",
}
.fmt(f)
}
}
impl AcceptTranscript {
pub fn is_noop(&self) -> bool {
matches!(self, AcceptTranscript::Noop)
}
}