feat(protocol): freeze M4 native session RC6 contract
This commit is contained in:
+218
-31
@@ -64,22 +64,24 @@
|
||||
"AssignedDesktop": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["assignment_id", "pool_id", "name", "availability"],
|
||||
"required": ["assignment_id", "pool_id", "name", "availability", "quality_limits"],
|
||||
"properties": {
|
||||
"assignment_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"pool_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"name": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"availability": {"type": "string", "minLength": 1, "maxLength": 64}
|
||||
"availability": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"quality_limits": {"$ref": "#/$defs/SessionQualityLimits"}
|
||||
}
|
||||
},
|
||||
"EntitledPool": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["pool_id", "name", "assignment_state"],
|
||||
"required": ["pool_id", "name", "assignment_state", "quality_limits"],
|
||||
"properties": {
|
||||
"pool_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"name": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"assignment_state": {"type": "string", "minLength": 1, "maxLength": 64}
|
||||
"assignment_state": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"quality_limits": {"$ref": "#/$defs/SessionQualityLimits"}
|
||||
}
|
||||
},
|
||||
"ResourceList": {
|
||||
@@ -232,32 +234,105 @@
|
||||
"fps": {"type": "integer", "minimum": 1, "maximum": 240}
|
||||
}
|
||||
},
|
||||
"VideoProfile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["codec", "bit_depth", "chroma_subsampling", "color_space", "transfer_function"],
|
||||
"properties": {
|
||||
"codec": {"type": "string", "enum": ["h264", "hevc", "av1"]},
|
||||
"bit_depth": {"type": "integer", "minimum": 8, "maximum": 8},
|
||||
"chroma_subsampling": {"type": "string", "const": "4:2:0"},
|
||||
"color_space": {"type": "string", "const": "bt709-limited"},
|
||||
"transfer_function": {"type": "string", "const": "sdr"}
|
||||
}
|
||||
},
|
||||
"AudioProfile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["codec", "sample_rate_hz", "channels", "channel_layout", "packet_duration_ms"],
|
||||
"properties": {
|
||||
"codec": {"type": "string", "const": "opus"},
|
||||
"sample_rate_hz": {"type": "integer", "minimum": 48000, "maximum": 48000},
|
||||
"channels": {"type": "integer", "minimum": 2, "maximum": 2},
|
||||
"channel_layout": {"type": "string", "const": "stereo"},
|
||||
"packet_duration_ms": {"type": "integer", "minimum": 5, "maximum": 5}
|
||||
}
|
||||
},
|
||||
"BitratePreference": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["mode"],
|
||||
"properties": {
|
||||
"mode": {"type": "string", "enum": ["auto", "explicit"]},
|
||||
"target_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000, "x-optional-pointer": true}
|
||||
}
|
||||
},
|
||||
"SessionQualityLimits": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["policy_version_id", "policy_display_limit", "selectable_display_maximum", "display_limit_override", "bitrate_minimum_kbps", "bitrate_target_kbps", "bitrate_maximum_kbps"],
|
||||
"properties": {
|
||||
"policy_version_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"policy_display_limit": {"$ref": "#/$defs/DisplayMode"},
|
||||
"selectable_display_maximum": {"$ref": "#/$defs/DisplayMode"},
|
||||
"display_limit_override": {"type": "boolean"},
|
||||
"bitrate_minimum_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"bitrate_target_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"bitrate_maximum_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000}
|
||||
}
|
||||
},
|
||||
"SessionAdjustment": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["display_reason", "bitrate_reason"],
|
||||
"properties": {
|
||||
"display_reason": {"type": "string", "enum": ["none", "policy_clamp", "direct_entitlement_override"]},
|
||||
"bitrate_reason": {"type": "string", "enum": ["none", "policy_default", "session_ceiling_clamp", "aggregate_capacity_clamp"]}
|
||||
}
|
||||
},
|
||||
"SelectedSessionDescriptor": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["video_profile", "audio_profile", "display_mode", "bitrate_target_kbps", "bitrate_maximum_kbps", "adjustment", "media_timestamp_basis"],
|
||||
"properties": {
|
||||
"video_profile": {"$ref": "#/$defs/VideoProfile"},
|
||||
"audio_profile": {"$ref": "#/$defs/AudioProfile"},
|
||||
"display_mode": {"$ref": "#/$defs/DisplayMode"},
|
||||
"bitrate_target_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"bitrate_maximum_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"adjustment": {"$ref": "#/$defs/SessionAdjustment"},
|
||||
"media_timestamp_basis": {"type": "string", "const": "gateway-send-wall-clock-ms"}
|
||||
}
|
||||
},
|
||||
"SessionRequest": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["client_device_id", "device_key_id", "pool_id", "idempotency_key"],
|
||||
"required": ["client_device_id", "device_key_id", "pool_id", "idempotency_key", "video_profiles", "bitrate_preference"],
|
||||
"properties": {
|
||||
"client_device_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"device_key_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"pool_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"idempotency_key": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"video_profiles": {"type": "array", "minItems": 1, "maxItems": 12, "uniqueItems": true, "items": {"$ref": "#/$defs/VideoProfile"}},
|
||||
"bitrate_preference": {"$ref": "#/$defs/BitratePreference"},
|
||||
"requested_display_mode": {"$ref": "#/$defs/DisplayMode"}
|
||||
}
|
||||
},
|
||||
"ReconnectRequest": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["client_device_id", "device_key_id", "expected_version"],
|
||||
"required": ["client_device_id", "device_key_id", "expected_version", "display_relaunch_confirmed"],
|
||||
"properties": {
|
||||
"client_device_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"device_key_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"expected_version": {"type": "integer", "minimum": 1}
|
||||
"expected_version": {"type": "integer", "minimum": 1},
|
||||
"display_relaunch_confirmed": {"type": "boolean"}
|
||||
}
|
||||
},
|
||||
"BrokerSession": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "principal_id", "pool_id", "state", "policy_snapshot", "cleanup_state", "idempotency_key", "correlation_id", "requested_at", "version"],
|
||||
"required": ["id", "principal_id", "pool_id", "state", "policy_snapshot", "cleanup_state", "idempotency_key", "correlation_id", "requested_at", "version", "requested_video_profiles", "requested_bitrate_preference"],
|
||||
"properties": {
|
||||
"id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"principal_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
@@ -275,7 +350,10 @@
|
||||
"ended_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"version": {"type": "integer", "minimum": 1},
|
||||
"requested_display_mode": {"$ref": "#/$defs/DisplayMode"},
|
||||
"effective_display_mode": {"$ref": "#/$defs/DisplayMode"}
|
||||
"effective_display_mode": {"$ref": "#/$defs/DisplayMode"},
|
||||
"requested_video_profiles": {"type": "array", "minItems": 1, "maxItems": 12, "uniqueItems": true, "items": {"$ref": "#/$defs/VideoProfile"}},
|
||||
"requested_bitrate_preference": {"$ref": "#/$defs/BitratePreference"},
|
||||
"selected_descriptor": {"$ref": "#/$defs/SelectedSessionDescriptor"}
|
||||
}
|
||||
},
|
||||
"AllocationPolicy": {
|
||||
@@ -297,7 +375,7 @@
|
||||
"ConnectionManifest": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["version", "purpose", "session_id", "reconnect_sequence", "gateway", "tunnel", "profile", "grant", "correlation_id"],
|
||||
"required": ["version", "purpose", "session_id", "reconnect_sequence", "gateway", "tunnel", "profile", "grant", "correlation_id", "selected_descriptor"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"},
|
||||
"purpose": {"type": "string", "enum": ["launch", "reconnect"]},
|
||||
@@ -307,7 +385,8 @@
|
||||
"tunnel": {"$ref": "#/$defs/ManifestTunnel"},
|
||||
"profile": {"$ref": "#/$defs/ManifestProfile"},
|
||||
"grant": {"$ref": "#/$defs/GrantReference"},
|
||||
"correlation_id": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
"correlation_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"selected_descriptor": {"$ref": "#/$defs/SelectedSessionDescriptor"}
|
||||
}
|
||||
},
|
||||
"ManifestGateway": {
|
||||
@@ -431,20 +510,14 @@
|
||||
"CapabilityProfile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["transport", "framing", "media", "audio", "source_rate_control", "client_decode"],
|
||||
"required": ["transport", "framing", "media", "source_rate_control", "video_profiles", "audio_profiles"],
|
||||
"properties": {
|
||||
"transport": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"framing": {"type": "string", "enum": ["datagram-v1", "datagram-v2"]},
|
||||
"media": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"audio": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"source_rate_control": {"type": "string", "minLength": 1, "maxLength": 64},
|
||||
"client_decode": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 2,
|
||||
"uniqueItems": true,
|
||||
"items": {"type": "string", "enum": ["h264-opus", "hevc-opus"]}
|
||||
}
|
||||
"video_profiles": {"type": "array", "minItems": 1, "maxItems": 12, "uniqueItems": true, "items": {"$ref": "#/$defs/VideoProfile"}},
|
||||
"audio_profiles": {"type": "array", "minItems": 1, "maxItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/AudioProfile"}}
|
||||
}
|
||||
},
|
||||
"GatewayRegistration": {
|
||||
@@ -538,7 +611,7 @@
|
||||
"SessionAuthority": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "audience", "reconnect_sequence", "expires_at", "capabilities", "provider_profile", "provider_identity"],
|
||||
"required": ["version", "session_id", "gateway_id", "audience", "reconnect_sequence", "expires_at", "capabilities", "provider_profile", "provider_identity", "selected_descriptor"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"},
|
||||
"session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
@@ -548,13 +621,14 @@
|
||||
"expires_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"capabilities": {"$ref": "#/$defs/CapabilityProfile"},
|
||||
"provider_profile": {"type": "string", "enum": ["apollo"]},
|
||||
"provider_identity": {"type": "string", "minLength": 1, "maxLength": 256}
|
||||
"provider_identity": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"selected_descriptor": {"$ref": "#/$defs/SelectedSessionDescriptor"}
|
||||
}
|
||||
},
|
||||
"ClientSessionAuthority": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "audience", "reconnect_sequence", "expires_at", "capabilities"],
|
||||
"required": ["version", "session_id", "gateway_id", "audience", "reconnect_sequence", "expires_at", "capabilities", "selected_descriptor"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"},
|
||||
"session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
@@ -562,20 +636,133 @@
|
||||
"audience": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"expires_at": {"type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$", "maxLength": 64},
|
||||
"capabilities": {"$ref": "#/$defs/CapabilityProfile"}
|
||||
"capabilities": {"$ref": "#/$defs/CapabilityProfile"},
|
||||
"selected_descriptor": {"$ref": "#/$defs/SelectedSessionDescriptor"}
|
||||
}
|
||||
},
|
||||
"ProviderStreamPolicy": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["resolution_width", "resolution_height", "fps", "codec", "bitrate_kbps", "audio_enabled"],
|
||||
"required": ["video_profile", "audio_profile", "display_mode", "bitrate_target_kbps", "bitrate_maximum_kbps"],
|
||||
"properties": {
|
||||
"resolution_width": {"type": "integer", "minimum": 320, "maximum": 16384},
|
||||
"resolution_height": {"type": "integer", "minimum": 200, "maximum": 8640},
|
||||
"fps": {"type": "integer", "minimum": 1, "maximum": 240},
|
||||
"codec": {"type": "string", "enum": ["H264", "HEVC", "AV1"]},
|
||||
"bitrate_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"audio_enabled": {"type": "boolean"}
|
||||
"video_profile": {"$ref": "#/$defs/VideoProfile"},
|
||||
"audio_profile": {"$ref": "#/$defs/AudioProfile"},
|
||||
"display_mode": {"$ref": "#/$defs/DisplayMode"},
|
||||
"bitrate_target_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"bitrate_maximum_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000}
|
||||
}
|
||||
},
|
||||
"DisplayLimitOverrideRequest": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["allow_display_limit_override", "expected_version"],
|
||||
"properties": {
|
||||
"allow_display_limit_override": {"type": "boolean"},
|
||||
"expected_version": {"type": "integer", "minimum": 1}
|
||||
}
|
||||
},
|
||||
"QualityChangeRequest": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["bitrate_preference", "expected_session_version", "expected_policy_version"],
|
||||
"properties": {
|
||||
"bitrate_preference": {"$ref": "#/$defs/BitratePreference"},
|
||||
"expected_session_version": {"type": "integer", "minimum": 1},
|
||||
"expected_policy_version": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
}
|
||||
},
|
||||
"QualityChangeOperation": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["operation_id", "session_id", "revision", "state", "requested_bitrate_preference", "effective_bitrate_kbps", "governing_policy_version", "session_version", "created_at", "deadline_at", "updated_at"],
|
||||
"properties": {
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36},
|
||||
"session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"revision": {"type": "integer", "minimum": 1},
|
||||
"state": {"type": "string", "enum": ["pending", "applying", "applied", "failed", "timed_out"]},
|
||||
"requested_bitrate_preference": {"$ref": "#/$defs/BitratePreference"},
|
||||
"effective_bitrate_kbps": {"type": "integer", "minimum": 100, "maximum": 1000000},
|
||||
"governing_policy_version": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"session_version": {"type": "integer", "minimum": 1},
|
||||
"created_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"deadline_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"updated_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"failure_code": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
}
|
||||
},
|
||||
"StopOperation": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["operation_id", "session_id", "state", "session_version", "created_at", "deadline_at", "updated_at"],
|
||||
"properties": {
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36},
|
||||
"session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"state": {"type": "string", "enum": ["pending", "attempting", "applied", "failed", "termination_unconfirmed"]},
|
||||
"session_version": {"type": "integer", "minimum": 1},
|
||||
"created_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"deadline_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"updated_at": {"type": "string", "format": "date-time", "maxLength": 64},
|
||||
"failure_code": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
}
|
||||
},
|
||||
"GatewayQualityWorkRequest": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id", "revision"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}, "revision": {"type": "integer", "minimum": 1},
|
||||
"current_applied_revision": {"type": "integer", "minimum": 0, "x-optional-pointer": true}
|
||||
}
|
||||
},
|
||||
"GatewayQualityWork": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id", "revision", "lease_expires_at", "selected_descriptor"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}, "revision": {"type": "integer", "minimum": 1},
|
||||
"lease_expires_at": {"type": "string", "format": "date-time", "maxLength": 64}, "selected_descriptor": {"$ref": "#/$defs/SelectedSessionDescriptor"},
|
||||
"current_applied_revision": {"type": "integer", "minimum": 0, "x-optional-pointer": true}
|
||||
}
|
||||
},
|
||||
"GatewayQualityAck": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id", "revision", "outcome", "current_applied_revision"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}, "revision": {"type": "integer", "minimum": 1},
|
||||
"outcome": {"type": "string", "enum": ["applied", "not_applied", "uncertain"]}, "current_applied_revision": {"type": "integer", "minimum": 0},
|
||||
"failure_code": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
}
|
||||
},
|
||||
"GatewayStopWorkRequest": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}
|
||||
}
|
||||
},
|
||||
"GatewayStopWork": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id", "attempt"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}, "attempt": {"type": "integer", "minimum": 1, "maximum": 1}
|
||||
}
|
||||
},
|
||||
"GatewayStopAck": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"required": ["version", "session_id", "gateway_id", "reconnect_sequence", "operation_id", "outcome"],
|
||||
"properties": {
|
||||
"version": {"type": "string", "const": "1"}, "session_id": {"type": "string", "minLength": 1, "maxLength": 128},
|
||||
"gateway_id": {"type": "string", "minLength": 1, "maxLength": 128}, "reconnect_sequence": {"type": "integer", "minimum": 0},
|
||||
"operation_id": {"type": "string", "format": "uuid", "minLength": 36, "maxLength": 36}, "outcome": {"type": "string", "enum": ["applied", "failed", "termination_unconfirmed"]},
|
||||
"failure_code": {"type": "string", "minLength": 1, "maxLength": 128}
|
||||
}
|
||||
},
|
||||
"ProviderSessionWork": {
|
||||
|
||||
Reference in New Issue
Block a user