Skip to content

Administration - Transcription Models & Aliases

Manage transcription models and transcription model aliases. Transcription models represent the underlying transcription engines, while transcription model aliases provide stable, user-facing identifiers that resolve to specific transcription model versions.

Sentence verification (sentver) models are administered separately in Administration - Sentence Verification Models.

Base path: /api/v1/speech-services/admin/models

Transcription Model Management

Method Endpoint Description
GET /api/v1/speech-services/admin/models List All Transcription Models
POST /api/v1/speech-services/admin/models Register Transcription Model
POST /api/v1/speech-services/admin/models/{name}/upload Upload Transcription Model Binary
POST /api/v1/speech-services/admin/models/{name}/verify Verify Transcription Model Backend
PUT /api/v1/speech-services/admin/models/{name} Update Transcription Model
PUT /api/v1/speech-services/admin/models/{name}/status Update Transcription Model Status
DELETE /api/v1/speech-services/admin/models/{name} Delete Transcription Model

Transcription Model Alias Management

Method Endpoint Description
GET /api/v1/speech-services/admin/aliases List All Transcription Model Aliases
PUT /api/v1/speech-services/admin/aliases/{alias} Create or Update Transcription Model Alias
PUT /api/v1/speech-services/admin/aliases/{alias}/resolve Update Transcription Model Alias Resolution
PUT /api/v1/speech-services/admin/aliases/{alias}/deprecate Deprecate Transcription Model Alias
PUT /api/v1/speech-services/admin/aliases/{alias}/undeprecate Undeprecate Transcription Model Alias
DELETE /api/v1/speech-services/admin/aliases/{alias} Delete Transcription Model Alias

List All Transcription Models

GET /api/v1/speech-services/admin/models

Requires Authentication - Scopes: admin:models:write

Returns all registered transcription models for the current tenant, including full backend configuration details.

curl -X GET https://koldan.dixilang.com/api/v1/speech-services/admin/models \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.get(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.json())
AdminModelResponse[]
Status Description
200 OK List of transcription models returned.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.

Register Transcription Model

POST /api/v1/speech-services/admin/models

Requires Authentication - Scopes: admin:models:write

Registers a new transcription model with the specified backend type and configuration.

RegisterModelRequest
Field Type Required Description
name string Yes Unique transcription model name (e.g. koldan-he-medical-v2.1).
displayName string Yes Human-readable display name.
description string No Transcription model description.
backendType string Yes Backend type: INTERNAL, WERNICKE
backendModelId string No Model ID within the backend (required for GOOGLE).
grpc GrpcClientConfig No gRPC client configuration (required for WERNICKE backends).
internal InternalBackendConfig No Internal backend configuration (required for INTERNAL backends).
engineType string No Engine type: K2 or SLIBE (INTERNAL only).
modelArch string No Model architecture: ZIPFORMER, ZIPFORMER2, etc. (INTERNAL only).
engineConfig object No Engine-specific configuration map (INTERNAL only).
sampleRate integer No Sample rate in Hz (INTERNAL only).
supportedLanguages string[] Yes Supported BCP-47 language codes.
supportsLangAutodetect boolean No Whether the transcription model supports automatic language detection. Default: false.
supportsStreaming boolean No Whether the transcription model supports streaming transcription. Default: false. At least one of supportsStreaming or supportsBatch must be true.
supportsBatch boolean No Whether the transcription model supports batch (offline) transcription. Default: false. At least one of supportsStreaming or supportsBatch must be true.
supportsPunctuation boolean No Whether the engine provides punctuation and capitalization. Default: false.
supportsDiarization boolean No Whether the engine provides speaker diarization. Default: false.
supportsItn boolean No Whether the engine provides inverse text normalization. Default: false. When true, the engine always produces normalized output regardless of the user's inverseTextNormalization setting.
itnDomain string No ITN domain identifier (e.g., HEB_GEN, HEB_MED). When set on a model that does not have built-in ITN (supportsItn: false), users can request ITN via the inverseTextNormalization option.
curl -X POST https://koldan.dixilang.com/api/v1/speech-services/admin/models \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "koldan-he-medical-v2.1",
    "displayName": "Koldan Hebrew Medical v2.1",
    "description": "Hebrew medical transcription model",
    "backendType": "INTERNAL",
    "internal": {
      "discoveryServiceName": "koldan-engine-k2"
    },
    "engineType": "K2",
    "modelArch": "ZIPFORMER2",
    "sampleRate": 16000,
    "supportedLanguages": ["he"],
    "supportsStreaming": true,
    "supportsBatch": true
  }'
import requests

resp = requests.post(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "name": "koldan-he-medical-v2.1",
        "displayName": "Koldan Hebrew Medical v2.1",
        "backendType": "INTERNAL",
        "internal": {"discoveryServiceName": "koldan-engine-k2"},
        "engineType": "K2",
        "supportedLanguages": ["he"],
        "supportsStreaming": True,
        "supportsBatch": True
    }
)
print(resp.json())
AdminModelResponse
Status Description
200 OK Transcription model registered successfully.
400 Bad Request Validation error (missing required fields, invalid backend type).
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
409 Conflict A transcription model with the given name already exists.

Upload Transcription Model Binary

POST /api/v1/speech-services/admin/models/{name}/upload

Requires Authentication - Scopes: admin:models:write

Uploads a transcription model binary file for an INTERNAL backend model. The file is stored in S3 and a SHA-256 hash is computed and stored.

Path Parameters
Parameter Type Required Description
name string Yes Name of the registered transcription model.
Request Body (multipart/form-data)
Field Type Required Description
file binary Yes Transcription model binary file (e.g. .tar archive).
curl -X POST https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/upload \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -F "file=@model.tar"
import requests

with open("model.tar", "rb") as f:
    resp = requests.post(
        "https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/upload",
        headers={"Authorization": f"Bearer {JWT}"},
        files={"file": ("model.tar", f, "application/x-tar")}
    )
print(resp.json())
ModelUploadResponse
Status Description
200 OK File uploaded successfully.
400 Bad Request Transcription model is not an INTERNAL backend type.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Transcription model not found.

Verify Transcription Model Backend

POST /api/v1/speech-services/admin/models/{name}/verify

Requires Authentication - Scopes: admin:models:write

Performs backend connectivity and readiness checks for the specified transcription model. The checks vary by backend type:

  • INTERNAL: Validates engine type configuration, discovery service name, and engine instance registration.
  • WERNICKE: Validates gRPC target configuration, performs a health check, and confirms backend model ID is set.
Path Parameters
Parameter Type Required Description
name string Yes Name of the registered transcription model.
curl -X POST https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/verify \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.post(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/verify",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.json())
VerifyModelResponse
Example Response
{
  "model": "koldan-he-medical-v2.1",
  "backendType": "INTERNAL",
  "status": "AVAILABLE",
  "checks": [
    {
      "name": "engine_type_configured",
      "passed": true,
      "detail": "Engine type: K2"
    },
    {
      "name": "discovery_service_name",
      "passed": true,
      "detail": "Discovery service name: koldan-engine-k2"
    },
    {
      "name": "engine_discovery",
      "passed": true,
      "detail": "Engine instance found at 10.0.1.5:50051"
    }
  ]
}
Status Description
200 OK Verification results returned.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Transcription model not found.

Update Transcription Model

PUT /api/v1/speech-services/admin/models/{name}

Requires Authentication - Scopes: admin:models:write

Updates the configuration of a registered transcription model. All fields from RegisterModelRequest are accepted; only provided fields are updated.

Path Parameters
Parameter Type Required Description
name string Yes Name of the registered transcription model.
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1 \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Koldan Hebrew Medical v2.1 (Updated)",
    "itnDomain": "HEB_MED",
    "supportsPunctuation": true
  }'
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "displayName": "Koldan Hebrew Medical v2.1 (Updated)",
        "itnDomain": "HEB_MED",
        "supportsPunctuation": True
    }
)
print(resp.json())
AdminModelResponse
Status Description
200 OK Model updated successfully.
400 Bad Request Invalid request.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Transcription model not found.

Update Transcription Model Status

PUT /api/v1/speech-services/admin/models/{name}/status

Requires Authentication - Scopes: admin:models:write

Updates the availability status of a transcription model.

Path Parameters
Parameter Type Required Description
name string Yes Name of the registered transcription model.
UpdateModelStatusRequest
Field Type Required Description
status string Yes New status: AVAILABLE, UNAVAILABLE, MAINTENANCE, or DEPRECATED.
statusMessage string No Optional status message (e.g. reason for maintenance).
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/status \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "MAINTENANCE",
    "statusMessage": "Scheduled maintenance window"
  }'
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1/status",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "status": "MAINTENANCE",
        "statusMessage": "Scheduled maintenance window"
    }
)
print(resp.json())
AdminModelResponse
Status Description
200 OK Status updated successfully.
400 Bad Request Invalid status value.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Transcription model not found.

Delete Transcription Model

DELETE /api/v1/speech-services/admin/models/{name}

Requires Authentication - Scopes: admin:models:delete

Deletes a registered transcription model. Transcription model aliases referencing this transcription model must be removed first.

Path Parameters
Parameter Type Required Description
name string Yes Name of the transcription model to delete.
curl -X DELETE https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1 \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.delete(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/models/koldan-he-medical-v2.1",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.status_code)  # 204
Status Description
204 No Content Transcription model deleted successfully.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Transcription model not found.
409 Conflict Transcription model is still referenced by one or more aliases.

List All Transcription Model Aliases

GET /api/v1/speech-services/admin/aliases

Requires Authentication - Scopes: admin:model-aliases:write

Returns all transcription model aliases for the current tenant, including deprecated aliases.

curl -X GET https://koldan.dixilang.com/api/v1/speech-services/admin/aliases \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.get(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.json())
ModelAliasResponse[]
Status Description
200 OK List of transcription model aliases returned.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.

Create or Update Transcription Model Alias

PUT /api/v1/speech-services/admin/aliases/{alias}

Requires Authentication - Scopes: admin:model-aliases:write

Creates a new transcription model alias or updates an existing one. The alias maps a stable user-facing identifier to a specific transcription model version.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier (e.g. hebrew-general).
CreateUpdateAliasRequest
Field Type Required Description
resolvedModel string Yes Name of the transcription model this alias resolves to.
fallbackModel string No Name of a fallback transcription model (used when primary is unavailable).
type string Yes Alias type: FAMILY, PINNED, or CONCRETE.
displayName string Yes Human-readable display name.
description string No Alias description.
isDefault boolean No Whether this alias is the default for the tenant. Default: false.
minHierarchyOrder integer No Minimum role hierarchy order required to access this alias. 0 means accessible to all authenticated users. Default: 0.
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "resolvedModel": "koldan-he-medical-v2.1",
    "type": "FAMILY",
    "displayName": "Hebrew General",
    "description": "General-purpose Hebrew transcription",
    "minHierarchyOrder": 0
  }'
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "resolvedModel": "koldan-he-medical-v2.1",
        "type": "FAMILY",
        "displayName": "Hebrew General",
        "description": "General-purpose Hebrew transcription",
        "minHierarchyOrder": 0
    }
)
print(resp.json())
ModelAliasResponse
Status Description
200 OK Alias created or updated successfully.
400 Bad Request Validation error (missing required fields, invalid type).
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.

Update Transcription Model Alias Resolution

PUT /api/v1/speech-services/admin/aliases/{alias}/resolve

Requires Authentication - Scopes: admin:model-aliases:write

Updates which transcription model an alias resolves to, without changing other alias properties.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier.
UpdateAliasResolutionRequest
Field Type Required Description
resolvedModel string Yes Name of the new resolved transcription model.
fallbackModel string No Name of the new fallback transcription model (null to remove).
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/resolve \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "resolvedModel": "koldan-he-general-v3.0",
    "fallbackModel": "koldan-he-medical-v2.1"
  }'
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/resolve",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "resolvedModel": "koldan-he-general-v3.0",
        "fallbackModel": "koldan-he-medical-v2.1"
    }
)
print(resp.json())
ModelAliasResponse
Status Description
200 OK Alias resolution updated successfully.
400 Bad Request Validation error.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Alias or target transcription model not found.

Deprecate Transcription Model Alias

PUT /api/v1/speech-services/admin/aliases/{alias}/deprecate

Requires Authentication - Scopes: admin:model-aliases:write

Marks a transcription model alias as deprecated with an optional sunset date. Deprecated aliases continue to function but clients receive deprecation warnings.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier.
DeprecateAliasRequest
Field Type Required Description
deprecationDate string (date) No Date when the alias becomes deprecated (ISO 8601, e.g. 2026-06-01).
sunsetDate string (date) No Date when the alias will be removed.
message string No Deprecation message for users.
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/deprecate \
  -H "X-API-Key: $KOLDAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "deprecationDate": "2026-06-01",
    "sunsetDate": "2026-12-01",
    "message": "Use hebrew-general-v2 instead"
  }'
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/deprecate",
    headers={"Authorization": f"Bearer {JWT}"},
    json={
        "deprecationDate": "2026-06-01",
        "sunsetDate": "2026-12-01",
        "message": "Use hebrew-general-v2 instead"
    }
)
print(resp.json())
ModelAliasResponse
Status Description
200 OK Alias deprecated successfully.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Alias not found.

Undeprecate Transcription Model Alias

PUT /api/v1/speech-services/admin/aliases/{alias}/undeprecate

Requires Authentication - Scopes: admin:model-aliases:write

Removes the deprecated status from a transcription model alias, clearing the deprecation date, sunset date, and deprecation message. The alias becomes fully active again.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier.
curl -X PUT https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/undeprecate \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.put(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general/undeprecate",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.json())
ModelAliasResponse
Status Description
200 OK Alias undeprecated successfully.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Alias not found.

Delete Transcription Model Alias

DELETE /api/v1/speech-services/admin/aliases/{alias}

Requires Authentication - Scopes: admin:model-aliases:delete

Deletes a transcription model alias. Users referencing this alias will no longer be able to resolve it.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier.
curl -X DELETE https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general \
  -H "X-API-Key: $KOLDAN_API_KEY"
import requests

resp = requests.delete(
    "https://koldan.dixilang.com/api/v1/speech-services/admin/aliases/hebrew-general",
    headers={"Authorization": f"Bearer {JWT}"}
)
print(resp.status_code)  # 204
Status Description
204 No Content Alias deleted successfully.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Alias not found.

Data Models

AdminModelResponse

Full transcription model details returned by admin model endpoints.

Field Type Description
name string Model name (unique identifier).
displayName string Human-readable display name.
description string Transcription model description.
backendType string Backend type: INTERNAL, WERNICKE.
backendModelId string Model ID within the backend.
grpc GrpcClientConfig gRPC client configuration (for WERNICKE backends, null otherwise).
internal InternalBackendConfig Internal backend configuration (for INTERNAL backends, null otherwise).
engineType string Engine type: K2 or SLIBE.
modelArch string Model architecture.
engineConfig object Engine-specific configuration map.
sampleRate integer Sample rate in Hz.
supportedLanguages string[] Supported BCP-47 language codes.
supportsLangAutodetect boolean Whether the transcription model supports automatic language detection.
supportsStreaming boolean Whether the transcription model supports streaming transcription.
supportsBatch boolean Whether the transcription model supports batch (offline) transcription.
supportsPunctuation boolean Whether the engine provides punctuation and capitalization.
supportsDiarization boolean Whether the engine provides speaker diarization.
supportsItn boolean Whether the engine provides inverse text normalization.
itnDomain string ITN domain identifier for inverse text normalization.
status string Current status: AVAILABLE, UNAVAILABLE, MAINTENANCE, or DEPRECATED.
statusMessage string Status message.
fileHash string SHA-256 hash of the uploaded model file.
createdAt string (ISO 8601) Creation timestamp.
updatedAt string (ISO 8601) Last update timestamp.

RegisterModelRequest

Field Type Required Description
name string Yes Unique transcription model name.
displayName string Yes Human-readable display name.
description string No Transcription model description.
backendType string Yes Backend type: INTERNAL, WERNICKE.
backendModelId string No Model ID within the backend (required for WERNICKE).
grpc GrpcClientConfig No gRPC client configuration (required for WERNICKE).
internal InternalBackendConfig No Internal backend configuration (required for INTERNAL).
engineType string No Engine type: K2 or SLIBE (INTERNAL only).
modelArch string No Model architecture (INTERNAL only).
engineConfig object No Engine-specific configuration (INTERNAL only).
sampleRate integer No Sample rate in Hz (INTERNAL only).
supportedLanguages string[] Yes Supported BCP-47 language codes.
supportsLangAutodetect boolean No Supports automatic language detection. Default: false.
supportsStreaming boolean No Supports streaming transcription. Default: false. At least one of supportsStreaming or supportsBatch must be true.
supportsBatch boolean No Supports batch (offline) transcription. Default: false. At least one of supportsStreaming or supportsBatch must be true.
supportsPunctuation boolean No Engine provides punctuation and capitalization. Default: false.
supportsDiarization boolean No Engine provides speaker diarization. Default: false.
supportsItn boolean No Engine provides inverse text normalization. Default: false.
itnDomain string No ITN domain identifier for inverse text normalization.

UpdateModelStatusRequest

Field Type Required Description
status string Yes New status: AVAILABLE, UNAVAILABLE, MAINTENANCE, or DEPRECATED.
statusMessage string No Optional status message.

ModelUploadResponse

Field Type Description
model string Transcription model name.
fileHash string SHA-256 hash of the uploaded file.
message string Upload result message.

VerifyModelResponse

Field Type Description
model string Transcription model name.
backendType string Backend type.
status string Current transcription model status.
checks VerifyCheck[] Verification checks performed.

VerifyCheck

Field Type Description
name string Check name (e.g. engine_type_configured, grpc_target_configured, backend_health).
passed boolean Whether the check passed.
detail string Check detail or error message.

ModelAliasResponse

Field Type Description
id string Transcription model alias identifier.
type string Alias type: FAMILY, PINNED, or CONCRETE.
displayName string Human-readable display name.
description string Transcription model description.
status string Model availability status.
currentVersion string Current resolved transcription model version name.
capabilities ModelCapabilitiesResponse Model capabilities.
deprecated boolean Whether the transcription model alias is deprecated.
deprecationDate string (date) Date when the alias was deprecated.
deprecationMessage string Deprecation message.

ModelCapabilitiesResponse

Field Type Description
languages string[] Supported BCP-47 language codes.
supportsLangAutodetect boolean Whether the transcription model supports automatic language detection.
supportsStreaming boolean Whether the transcription model supports streaming transcription.
supportsBatch boolean Whether the transcription model supports batch (offline) transcription.
supportsPunctuation boolean Whether the engine provides punctuation and capitalization.
supportsDiarization boolean Whether the engine provides speaker diarization.
supportsItn boolean Whether the engine provides inverse text normalization.
itnDomain string ITN domain identifier for inverse text normalization.

CreateUpdateAliasRequest

Field Type Required Description
resolvedModel string Yes Name of the transcription model this alias resolves to.
fallbackModel string No Name of the fallback transcription model.
type string Yes Alias type: FAMILY, PINNED, or CONCRETE.
displayName string Yes Human-readable display name.
description string No Alias description.
isDefault boolean No Whether this alias is the default for the tenant. Default: false.
minHierarchyOrder integer No Minimum role hierarchy order required to access this alias. 0 means accessible to all authenticated users. Default: 0.

UpdateAliasResolutionRequest

Field Type Required Description
resolvedModel string Yes Name of the new resolved transcription model.
fallbackModel string No Name of the new fallback transcription model (null to remove).

DeprecateAliasRequest

Field Type Required Description
deprecationDate string (date) No Date when the alias becomes deprecated (ISO 8601).
sunsetDate string (date) No Date when the alias will be removed.
message string No Deprecation message for users.

Enumerations

BackendType

Value Description
INTERNAL Self-hosted speech engine (K2 or SLIBE). Supports transcription model file upload.
WERNICKE External Wernicke speech service backend.

ModelStatus

Value Description
AVAILABLE Model is active and ready for transcription.
UNAVAILABLE Model is temporarily unavailable.
MAINTENANCE Model is under maintenance.
DEPRECATED Model is deprecated and scheduled for removal.

GrpcClientConfig

gRPC client configuration for connecting to a remote inference server.

All model-backed gRPC clients use round-robin load balancing. Supported target forms are:

  • dns:///wernicke-headless:50052 for DNS-based discovery.
  • server-a:2222,server-b:2222 for an explicit endpoint list; this is normalized at runtime.
  • static:///server-a:2222,server-b:2222 for the preferred explicit endpoint-list form.

DNS targets are refreshed periodically so a long-lived channel discovers replacement or newly added endpoints even while another endpoint remains healthy. Each streaming RPC stays on the backend selected when that RPC starts. If that backend disappears, the stream fails; only a new RPC can be assigned elsewhere. With TLS and multiple hostnames, all endpoints must share a certificate identity or authority must name the shared identity.

Field Type Required Description
target string Yes Single, DNS, or explicit static gRPC target as described above.
tlsMode string Yes TLS mode: PLAINTEXT, SYSTEM_TRUST, or MTLS.
authority string No Authority override for TLS verification.
deadlineMs integer No gRPC deadline in milliseconds. Default: 30000.
maxInboundMessageBytes integer No Maximum inbound message size in bytes.
metadata object No Metadata headers sent with every gRPC request.

InternalBackendConfig

Configuration for an internal backend that uses service discovery.

Field Type Required Description
discoveryServiceName string Yes Service discovery name for the internal engine instance.

AliasType

Value Description
FAMILY A transcription model family alias that can be updated to point to newer versions.
PINNED An alias pinned to a specific transcription model version.
CONCRETE A direct alias to a concrete transcription model.